From 1689694d6517d5f20167c56db3b44bb16ce8ef4e Mon Sep 17 00:00:00 2001 From: Zachary Roth <100426704+zacharyr0th@users.noreply.github.com> Date: Thu, 16 Jul 2026 11:31:58 -0700 Subject: [PATCH 1/5] feat: capture local product surface and integrations --- .github/workflows/benchmark.yml | 41 +- .github/workflows/ci.yml | 123 ++--- .github/workflows/codeql.yml | 15 +- .github/workflows/live-typed-packs.yml | 25 +- .github/workflows/live-web-smoke.yml | 25 +- .github/workflows/metrics.yml | 38 +- .github/workflows/publish.yml | 59 ++- .github/workflows/security.yml | 78 ++- .gitignore | 16 +- .python-version | 1 + AGENTS.md | 14 + README.md | 8 + bun.lock | 127 +++++ docs/CHANGELOG.md | 2 +- docs/acquisition.routes.json | 18 + docs/alternatives.md | 4 +- docs/corpus.manifest.json | 29 + docs/launch-assets/README.md | 16 + docs/launch-assets/logo-app-icon.svg | 11 + docs/launch-assets/logo-favicon.svg | 10 + docs/launch-assets/logo-lockup-dark.svg | 21 + docs/launch-assets/logo-lockup-light.svg | 21 + .../logo-mark-monochrome-black.svg | 9 + .../logo-mark-monochrome-white.svg | 9 + docs/launch-assets/logo-mark-reversed.svg | 10 + docs/launch-assets/logo-mark.svg | 10 + docs/launch-assets/logo-square-dark-1024.png | Bin 10841 -> 8307 bytes docs/launch-assets/logo-square-light-1024.png | Bin 10803 -> 8366 bytes docs/launch-assets/logo-square-light-400.png | Bin 0 -> 3685 bytes .../logo-transparent-dark-1024.png | Bin 9261 -> 7684 bytes .../logo-transparent-light-1024.png | Bin 9530 -> 7692 bytes docs/scraping-boundary.md | 2 +- .../v6-launch/assets/01-context-drift.png | Bin 0 -> 94718 bytes .../v6-launch/assets/02-lockfile-workflow.png | Bin 0 -> 97866 bytes docs/social/v6-launch/assets/03-sync-diff.png | Bin 0 -> 109773 bytes .../v6-launch/assets/04-v3-pack-contract.png | Bin 0 -> 117944 bytes .../social/v6-launch/assets/05-context-ci.png | Bin 0 -> 93388 bytes .../assets/06-export-agent-context.png | Bin 0 -> 112781 bytes .../social/v6-launch/assets/contact-sheet.png | Bin 0 -> 303068 bytes .../v6-launch/generate_terminal_cards.py | 332 ++++++++++++ docs/social/v6-launch/twitter-thread.md | 212 ++++++++ docs/social/v6.1-benchmark/README.md | 39 ++ .../social/v6.1-benchmark/assets/01-cover.png | Bin 0 -> 73755 bytes .../v6.1-benchmark/assets/02-core-results.png | Bin 0 -> 67040 bytes .../v6.1-benchmark/assets/03-boundaries.png | Bin 0 -> 86006 bytes .../assets/04-pdf-isolation.png | Bin 0 -> 85666 bytes .../v6.1-benchmark/assets/05-integrity.png | Bin 0 -> 91479 bytes .../v6.1-benchmark/assets/06-evidence.png | Bin 0 -> 71962 bytes .../v6.1-benchmark/assets/contact-sheet.png | Bin 0 -> 290890 bytes docs/social/v6.1-benchmark/generate_cards.py | 359 +++++++++++++ docs/sources.md | 7 + docs/v6-directory-submission-plan.md | 236 +++++++++ docs/v6-directory-todo.md | 42 ++ docs/v6-directory-tracker.csv | 57 ++ docs/v6-github-list-targets.md | 146 ++++++ docs/v6-github-pr-recipes.json | 163 ++++++ docs/v6-hacker-news-plan.md | 100 ++++ docs/v6-sales-pr-automation.md | 161 ++++++ mcp/package.json | 120 +++-- mise.lock | 276 ++++++++++ mise.toml | 44 ++ package.json | 14 +- plugin/.codex-plugin/plugin.json | 4 +- plugin/README.md | 8 + plugin/assets/logo.svg | 11 + scripts/github_list_prs.py | 270 ++++++++++ src/docpull/__init__.py | 495 +++++++++--------- src/docpull/basis.py | 32 +- src/docpull/cache/__init__.py | 42 +- src/docpull/cache/frontier.py | 82 ++- src/docpull/cache/manager.py | 7 +- src/docpull/cli.py | 173 ++++-- src/docpull/context_packs/__init__.py | 96 ++-- src/docpull/conversion/__init__.py | 79 ++- src/docpull/conversion/extractor.py | 20 +- src/docpull/discovery/__init__.py | 101 +++- .../discovery/link_extractors/__init__.py | 42 +- src/docpull/export_formats.py | 27 + src/docpull/exports.py | 32 +- src/docpull/graph.py | 118 +++-- src/docpull/http/__init__.py | 41 +- src/docpull/http/client.py | 67 ++- src/docpull/local_workflows.py | 57 +- src/docpull/mcp/__init__.py | 26 +- src/docpull/mcp/server.py | 60 ++- src/docpull/mcp/tools.py | 25 +- src/docpull/metadata_extractor.py | 2 +- src/docpull/models/__init__.py | 127 +++-- src/docpull/models/events.py | 2 +- src/docpull/models/run.py | 21 +- src/docpull/models/schema.py | 9 + src/docpull/native_integrations.py | 88 ++++ src/docpull/output_contract.py | 9 +- src/docpull/pack_reader.py | 106 +++- src/docpull/pack_tools.py | 298 ++++++++--- src/docpull/pipeline/base.py | 4 + src/docpull/pipeline/steps/__init__.py | 71 ++- src/docpull/pipeline/steps/convert.py | 54 +- src/docpull/pipeline/steps/metadata.py | 4 +- src/docpull/project.py | 25 +- src/docpull/security/__init__.py | 38 +- tests/test_ci_policy.py | 32 +- tests/test_frontier_resume.py | 55 ++ tests/test_http_efficiency.py | 169 ++++++ tests/test_import_efficiency.py | 107 ++++ tests/test_native_integrations.py | 29 + tests/test_pack_tools.py | 23 + tests/test_pipeline.py | 20 + tests/test_surface_contract.py | 32 +- web/.gitignore | 3 + web/app/globals.css | 382 ++++++++++++++ web/app/icon.svg | 10 + web/app/layout.tsx | 56 ++ web/app/llms.txt/route.ts | 33 ++ web/app/manifest.ts | 26 + web/app/page.tsx | 53 ++ web/app/pricing/page.tsx | 87 +++ web/app/privacy/page.tsx | 94 ++++ web/app/robots.ts | 14 + web/app/sitemap.ts | 33 ++ web/app/terms/page.tsx | 88 ++++ web/components/LogoMark.tsx | 25 + web/components/SiteChrome.tsx | 47 ++ web/next.config.ts | 7 + web/package.json | 25 + web/public/apple-touch-icon.png | Bin 0 -> 2337 bytes web/public/favicon.ico | Bin 0 -> 15086 bytes web/public/favicon.svg | 10 + web/public/icon-192.png | Bin 0 -> 2294 bytes web/public/icon-512.png | Bin 0 -> 7430 bytes web/public/logo-mark.svg | 10 + web/public/logo.svg | 11 + web/tsconfig.json | 26 + 133 files changed, 6395 insertions(+), 935 deletions(-) create mode 100644 .python-version create mode 100644 AGENTS.md create mode 100644 docs/acquisition.routes.json create mode 100644 docs/corpus.manifest.json create mode 100644 docs/launch-assets/logo-app-icon.svg create mode 100644 docs/launch-assets/logo-favicon.svg create mode 100644 docs/launch-assets/logo-lockup-dark.svg create mode 100644 docs/launch-assets/logo-lockup-light.svg create mode 100644 docs/launch-assets/logo-mark-monochrome-black.svg create mode 100644 docs/launch-assets/logo-mark-monochrome-white.svg create mode 100644 docs/launch-assets/logo-mark-reversed.svg create mode 100644 docs/launch-assets/logo-mark.svg create mode 100644 docs/launch-assets/logo-square-light-400.png create mode 100644 docs/social/v6-launch/assets/01-context-drift.png create mode 100644 docs/social/v6-launch/assets/02-lockfile-workflow.png create mode 100644 docs/social/v6-launch/assets/03-sync-diff.png create mode 100644 docs/social/v6-launch/assets/04-v3-pack-contract.png create mode 100644 docs/social/v6-launch/assets/05-context-ci.png create mode 100644 docs/social/v6-launch/assets/06-export-agent-context.png create mode 100644 docs/social/v6-launch/assets/contact-sheet.png create mode 100644 docs/social/v6-launch/generate_terminal_cards.py create mode 100644 docs/social/v6-launch/twitter-thread.md create mode 100644 docs/social/v6.1-benchmark/README.md create mode 100644 docs/social/v6.1-benchmark/assets/01-cover.png create mode 100644 docs/social/v6.1-benchmark/assets/02-core-results.png create mode 100644 docs/social/v6.1-benchmark/assets/03-boundaries.png create mode 100644 docs/social/v6.1-benchmark/assets/04-pdf-isolation.png create mode 100644 docs/social/v6.1-benchmark/assets/05-integrity.png create mode 100644 docs/social/v6.1-benchmark/assets/06-evidence.png create mode 100644 docs/social/v6.1-benchmark/assets/contact-sheet.png create mode 100644 docs/social/v6.1-benchmark/generate_cards.py create mode 100644 docs/sources.md create mode 100644 docs/v6-directory-submission-plan.md create mode 100644 docs/v6-directory-todo.md create mode 100644 docs/v6-directory-tracker.csv create mode 100644 docs/v6-github-list-targets.md create mode 100644 docs/v6-github-pr-recipes.json create mode 100644 docs/v6-hacker-news-plan.md create mode 100644 docs/v6-sales-pr-automation.md create mode 100644 mise.lock create mode 100644 mise.toml create mode 100644 plugin/assets/logo.svg create mode 100644 scripts/github_list_prs.py create mode 100644 src/docpull/export_formats.py create mode 100644 src/docpull/models/schema.py create mode 100644 src/docpull/native_integrations.py create mode 100644 tests/test_http_efficiency.py create mode 100644 tests/test_import_efficiency.py create mode 100644 tests/test_native_integrations.py create mode 100644 web/.gitignore create mode 100644 web/app/globals.css create mode 100644 web/app/icon.svg create mode 100644 web/app/layout.tsx create mode 100644 web/app/llms.txt/route.ts create mode 100644 web/app/manifest.ts create mode 100644 web/app/page.tsx create mode 100644 web/app/pricing/page.tsx create mode 100644 web/app/privacy/page.tsx create mode 100644 web/app/robots.ts create mode 100644 web/app/sitemap.ts create mode 100644 web/app/terms/page.tsx create mode 100644 web/components/LogoMark.tsx create mode 100644 web/components/SiteChrome.tsx create mode 100644 web/next.config.ts create mode 100644 web/package.json create mode 100644 web/public/apple-touch-icon.png create mode 100644 web/public/favicon.ico create mode 100644 web/public/favicon.svg create mode 100644 web/public/icon-192.png create mode 100644 web/public/icon-512.png create mode 100644 web/public/logo-mark.svg create mode 100644 web/public/logo.svg create mode 100644 web/tsconfig.json diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index bde8701..15082cf 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -6,9 +6,6 @@ name: Benchmark # or if the injected duplicate fraction isn't detected. on: - schedule: - # 04:17 UTC weekly Wednesday — enough signal without daily Actions spend. - - cron: "17 4 * * 3" workflow_dispatch: permissions: @@ -18,6 +15,10 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: false +env: + MISE_LOCKED: "1" + UV_VERSION: "0.11.6" + jobs: benchmark: if: github.event_name != 'schedule' || github.event.schedule == '17 4 * * 3' @@ -29,21 +30,22 @@ jobs: with: persist-credentials: false - - name: Set up Python - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[dev]" + - name: Sync dependencies + run: uv sync --locked --dev - name: Run 10k-page benchmark env: DOCPULL_BENCHMARK_10K: "1" run: | - PYTHONPATH=src python -m pytest -v -s tests/benchmarks/test_10k_pages.py \ + uv run --locked python -m pytest -v -s tests/benchmarks/test_10k_pages.py \ | tee benchmark.log - name: Surface report in summary @@ -74,19 +76,20 @@ jobs: with: persist-credentials: false - - name: Set up Python - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[dev]" + - name: Sync dependencies + run: uv sync --locked --dev - name: Run public contract smoke tests run: | - PYTHONPATH=src python -m pytest -q \ + uv run --locked python -m pytest -q \ tests/test_surface_contract.py \ tests/test_public_feature_smoke.py \ tests/test_output_contract.py \ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0d1b0dc..726744b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,10 +2,6 @@ name: CI on: workflow_dispatch: - pull_request: - push: - branches: - - main permissions: contents: read @@ -14,61 +10,74 @@ concurrency: group: ci-${{ github.ref }} cancel-in-progress: true +env: + MISE_LOCKED: "1" + UV_VERSION: "0.11.6" + jobs: metrics-fresh: runs-on: ubuntu-24.04 + timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: persist-credentials: false + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db + with: + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" + - name: Check metrics freshness env: METRICS_MAX_AGE_HOURS: "168" run: | if [ "${{ github.event_name }}" = "pull_request" ]; then - python .github/scripts/check_metrics_fresh.py || { + uv run --locked python .github/scripts/check_metrics_fresh.py || { echo "::warning::Metrics are stale; run the scheduled Update metrics workflow after merge." } else - python .github/scripts/check_metrics_fresh.py + uv run --locked python .github/scripts/check_metrics_fresh.py fi test: runs-on: ubuntu-24.04 + timeout-minutes: 30 strategy: fail-fast: false matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10.20", "3.11.15", "3.12.13", "3.13.14", "3.14.6"] steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: persist-credentials: false - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: ${{ matrix.python-version }} - cache: pip - cache-dependency-path: pyproject.toml + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[all,dev]" + - name: Sync dependencies + run: uv sync --locked --all-extras --dev - name: Run tests - if: matrix.python-version != '3.11' - run: python -m pytest -q + if: matrix.python-version != '3.11.15' + run: uv run --locked --all-extras python -m pytest -q - name: Run tests with coverage - if: matrix.python-version == '3.11' - run: python -m pytest --cov=docpull --cov-report=xml --cov-report=term -q + if: matrix.python-version == '3.11.15' + run: uv run --locked --all-extras python -m pytest --cov=docpull --cov-report=xml --cov-report=term -q - name: Upload coverage XML - if: matrix.python-version == '3.11' + if: matrix.python-version == '3.11.15' uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a with: name: coverage-xml @@ -76,89 +85,85 @@ jobs: lint: runs-on: ubuntu-24.04 + timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: persist-credentials: false - - name: Set up Python - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" - cache: pip - cache-dependency-path: pyproject.toml + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[all,dev]" + - name: Sync dependencies + run: uv sync --locked --all-extras --dev - name: Check generated release metadata - run: python scripts/sync_release_metadata.py --check + run: uv run --locked python scripts/sync_release_metadata.py --check - name: Run ruff - run: python -m ruff check . + run: uv run --locked python -m ruff check . - name: Check formatting - run: python -m ruff format --check . + run: uv run --locked python -m ruff format --check . - name: Run pre-commit - run: python -m pre_commit run --all-files --show-diff-on-failure + run: uv run --locked python -m pre_commit run --all-files --show-diff-on-failure typecheck: runs-on: ubuntu-24.04 + timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: persist-credentials: false - - name: Set up Python - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" - cache: pip - cache-dependency-path: pyproject.toml + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[all,dev]" + - name: Sync dependencies + run: uv sync --locked --all-extras --dev - name: Run mypy - run: python -m mypy src + run: uv run --locked python -m mypy src package: runs-on: ubuntu-24.04 + timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: persist-credentials: false - - name: Set up Python - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" - cache: pip - cache-dependency-path: | - pyproject.toml - requirements-release.txt - - - name: Install pinned release tooling - run: python -m pip install -r requirements-release.txt + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - name: Build wheel and sdist - run: python scripts/build_release.py --verify-reproducible + run: uv run --locked --with-requirements requirements-release.txt python scripts/build_release.py --verify-reproducible - name: Verify wheel and sdist metadata - run: python -m twine check dist/* + run: uv run --locked --with-requirements requirements-release.txt python -m twine check dist/* - name: Smoke install built wheel run: | - python -m venv .pkg-smoke - .pkg-smoke/bin/python -m pip install --upgrade pip - .pkg-smoke/bin/python -m pip install dist/*.whl + uv venv .pkg-smoke + uv pip install --python .pkg-smoke/bin/python dist/*.whl .pkg-smoke/bin/docpull --version .pkg-smoke/bin/python -c "import docpull; print(docpull.__version__)" diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 4d8c191..d6770f0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,13 +1,10 @@ name: CodeQL +env: + MISE_LOCKED: "1" + on: workflow_dispatch: - pull_request: - push: - branches: - - main - schedule: - - cron: "38 6 * * 1" permissions: actions: read @@ -22,6 +19,7 @@ jobs: analyze: name: analyze (${{ matrix.language }}) runs-on: ubuntu-24.04 + timeout-minutes: 30 strategy: fail-fast: false matrix: @@ -36,6 +34,11 @@ jobs: with: persist-credentials: false + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db + with: + version: 2026.7.1 + install: true + cache: true - name: Initialize CodeQL uses: github/codeql-action/init@b22c66273205240d86582638b860f9b25772b4d3 with: diff --git a/.github/workflows/live-typed-packs.yml b/.github/workflows/live-typed-packs.yml index 55816a3..7d1ed3f 100644 --- a/.github/workflows/live-typed-packs.yml +++ b/.github/workflows/live-typed-packs.yml @@ -2,8 +2,6 @@ name: Live Typed Pack Smoke on: workflow_dispatch: - schedule: - - cron: "17 11 * * *" permissions: contents: read @@ -12,6 +10,10 @@ concurrency: group: live-typed-packs cancel-in-progress: false +env: + MISE_LOCKED: "1" + UV_VERSION: "0.11.6" + jobs: live-typed-packs: runs-on: ubuntu-24.04 @@ -22,17 +24,16 @@ jobs: with: persist-credentials: false - - name: Set up Python - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" - cache: pip - cache-dependency-path: pyproject.toml + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[dev]" + - name: Sync dependencies + run: uv sync --locked --dev - name: Run free live typed-pack smokes env: @@ -40,7 +41,7 @@ jobs: run: | set +e mkdir -p live-reports - python -m pytest tests/test_typed_knowledge_packs.py::test_live_typed_pack_smokes -q \ + uv run --locked python -m pytest tests/test_typed_knowledge_packs.py::test_live_typed_pack_smokes -q \ | tee live-reports/live-typed-packs.log status=${PIPESTATUS[0]} python - "$status" <<'PY' diff --git a/.github/workflows/live-web-smoke.yml b/.github/workflows/live-web-smoke.yml index 57ac2a3..cb3a6af 100644 --- a/.github/workflows/live-web-smoke.yml +++ b/.github/workflows/live-web-smoke.yml @@ -2,8 +2,6 @@ name: Live Web Smoke on: workflow_dispatch: - schedule: - - cron: "43 10 * * *" permissions: contents: read @@ -12,6 +10,10 @@ concurrency: group: live-web-smoke cancel-in-progress: false +env: + MISE_LOCKED: "1" + UV_VERSION: "0.11.6" + jobs: live-web-smoke: runs-on: ubuntu-24.04 @@ -22,17 +24,16 @@ jobs: with: persist-credentials: false - - name: Set up Python - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" - cache: pip - cache-dependency-path: pyproject.toml + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -e ".[dev]" + - name: Sync dependencies + run: uv sync --locked --dev - name: Run free live web smokes env: @@ -40,7 +41,7 @@ jobs: run: | set +e mkdir -p live-reports - python -m pytest tests/test_live_web_smoke.py -q | tee live-reports/live-web-smoke.log + uv run --locked python -m pytest tests/test_live_web_smoke.py -q | tee live-reports/live-web-smoke.log status=${PIPESTATUS[0]} python - "$status" <<'PY' import json diff --git a/.github/workflows/metrics.yml b/.github/workflows/metrics.yml index 4e571db..19e9d59 100644 --- a/.github/workflows/metrics.yml +++ b/.github/workflows/metrics.yml @@ -1,5 +1,8 @@ name: Update metrics +env: + MISE_LOCKED: "1" + # Refreshes METRICS.md and the README downloads chart from PyPI + GitHub APIs. # # Signals: @@ -9,8 +12,8 @@ name: Update metrics # - GitHub traffic (clones, views, referrers, paths) — last 14 days. # # Plugin install proxy: `/plugin marketplace add raintree-technology/docpull` -# is a git clone under the hood. Weekly clone counts are enough for trend -# tracking without daily Actions spend. +# is a git clone under the hood. Manual clone-count refreshes are enough for +# trend tracking while the external metrics APIs are unreliable. # # Why a workflow instead of an external dashboard: # - Single source of truth committed in-repo (no external service to babysit). @@ -25,9 +28,6 @@ name: Update metrics # `METRICS_TOKEN`. The workflow falls back to GITHUB_TOKEN if absent. on: - schedule: - # 09:12 UTC weekly Monday (off-hour to dodge top-of-hour Actions spikes). - - cron: "12 9 * * 1" workflow_dispatch: permissions: @@ -48,29 +48,41 @@ jobs: github.event_name == 'schedule' || github.ref == format('refs/heads/{0}', github.event.repository.default_branch) runs-on: ubuntu-24.04 + timeout-minutes: 30 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: persist-credentials: false ref: ${{ github.event.repository.default_branch }} - - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" - + version: 2026.7.1 + install: true + cache: true - name: Refresh metrics artifacts env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} METRICS_TOKEN: ${{ secrets.METRICS_TOKEN }} run: | - if [ -n "${METRICS_TOKEN:-}" ] && GH_TOKEN="$METRICS_TOKEN" gh api "repos/${GITHUB_REPOSITORY}" >/dev/null 2>&1; then - export GH_TOKEN="$METRICS_TOKEN" - else - if [ -n "${METRICS_TOKEN:-}" ]; then + metrics_token="${METRICS_TOKEN:-}" + use_metrics_token=false + if [ -n "$metrics_token" ]; then + printf -v GH_TOKEN '%s' "$metrics_token" + export GH_TOKEN + if gh api "repos/${GITHUB_REPOSITORY}" >/dev/null 2>&1; then + use_metrics_token=true + fi + fi + + if [ "$use_metrics_token" != true ]; then + if [ -n "$metrics_token" ]; then echo "::warning::METRICS_TOKEN is present but failed GitHub API validation; falling back to GITHUB_TOKEN." fi - export GH_TOKEN="$GITHUB_TOKEN" + printf -v GH_TOKEN '%s' "$GITHUB_TOKEN" + export GH_TOKEN fi + unset metrics_token use_metrics_token python .github/scripts/update_metrics.py - name: Check generated metrics freshness diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 054f2e3..bffe11d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -30,9 +30,14 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: false +env: + MISE_LOCKED: "1" + UV_VERSION: "0.11.6" + jobs: build: runs-on: ubuntu-24.04 + timeout-minutes: 30 outputs: version: ${{ steps.meta.outputs.version }} steps: @@ -40,9 +45,13 @@ jobs: with: persist-credentials: false - - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - name: Read pyproject.toml version (and verify tag match on tag push) id: meta @@ -74,17 +83,14 @@ jobs: fi echo "version=$PROJECT_VERSION" >> "$GITHUB_OUTPUT" - - name: Install release build dependencies + - name: Build distributions run: | # Pinned (see requirements-release.txt) so compromised *latest* # release tooling cannot be auto-pulled into the wheel-building job. - python -m pip install -r requirements-release.txt - - - name: Build distributions - run: python scripts/build_release.py --verify-reproducible + uv run --locked --with-requirements requirements-release.txt python scripts/build_release.py --verify-reproducible - name: Verify wheel and sdist - run: python -m twine check dist/* + run: uv run --locked --with-requirements requirements-release.txt python -m twine check dist/* - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a with: @@ -102,18 +108,16 @@ jobs: with: persist-credentials: false - - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 - with: - bun-version: "1.3.11" - - - name: Install release gate dependencies - run: | - python -m pip install -r requirements-release.txt - pip install --no-build-isolation -e ".[all,dev]" + - name: Sync release gate dependencies + run: uv sync --locked --all-extras --dev - name: Install local render runtime run: | @@ -122,14 +126,14 @@ jobs: agent-browser --version - name: Check generated release metadata - run: python scripts/sync_release_metadata.py --check + run: uv run --locked python scripts/sync_release_metadata.py --check - name: Run Bandit - run: python -m bandit -q -c pyproject.toml -r src scripts + run: uv run --locked python -m bandit -q -c pyproject.toml -r src scripts - name: Run A+ real-feature smoke run: | - python scripts/real_feature_smoke.py \ + uv run --locked python scripts/real_feature_smoke.py \ --json \ --full-mcp \ --strict-ci \ @@ -139,7 +143,7 @@ jobs: - name: Run A+ release scorecard run: | - python scripts/release_a_plus_check.py \ + uv run --locked python scripts/release_a_plus_check.py \ --strict \ --output-dir "$RUNNER_TEMP/release-readiness" \ --smoke-report "$RUNNER_TEMP/release-readiness/real-feature-smoke/real_feature_smoke.report.json" @@ -151,9 +155,8 @@ jobs: - name: Smoke install built wheel run: | - python -m venv .release-smoke - .release-smoke/bin/python -m pip install --upgrade pip - .release-smoke/bin/python -m pip install dist/*.whl + uv venv .release-smoke + uv pip install --python .release-smoke/bin/python dist/*.whl .release-smoke/bin/docpull --version .release-smoke/bin/python -c "import docpull; print(docpull.__version__)" @@ -168,6 +171,7 @@ jobs: publish: needs: [build, release-gates] runs-on: ubuntu-24.04 + timeout-minutes: 30 environment: name: pypi url: https://pypi.org/project/docpull/ @@ -190,6 +194,11 @@ jobs: persist-credentials: false if: github.event_name == 'push' && github.ref_type == 'tag' + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db + with: + version: 2026.7.1 + install: true + cache: true - name: Create GitHub release if: github.event_name == 'push' && github.ref_type == 'tag' env: diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 1f1191e..e976d47 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -2,10 +2,6 @@ name: Security on: workflow_dispatch: - pull_request: - push: - branches: - - main permissions: contents: read @@ -14,9 +10,14 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} +env: + MISE_LOCKED: "1" + UV_VERSION: "0.11.6" + jobs: secret-scan: runs-on: ubuntu-24.04 + timeout-minutes: 30 steps: - name: Checkout full history uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 @@ -24,6 +25,11 @@ jobs: persist-credentials: false fetch-depth: 0 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db + with: + version: 2026.7.1 + install: true + cache: true - name: Run Gitleaks # Use the MIT-licensed gitleaks CLI rather than gitleaks-action@v2, # which requires a paid GITLEAKS_LICENSE secret for organization repos. @@ -35,33 +41,36 @@ jobs: python-security: runs-on: ubuntu-24.04 + timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 with: persist-credentials: false - - name: Set up Python - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - python-version: "3.11" + version: 2026.7.1 + install: true + cache: true + - name: Install uv + run: python -m pip install "uv==$UV_VERSION" - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip setuptools==83.0.0 - pip install -e ".[dev]" + - name: Sync Python dependencies + run: uv sync --locked --dev - name: Audit Python dependencies - run: python -m pip_audit + run: uv run --locked python -m pip_audit - name: Run Bandit - run: python -m bandit -q -c pyproject.toml -r src scripts + run: uv run --locked python -m bandit -q -c pyproject.toml -r src scripts - name: Run Python security regression tests - run: PYTHONPATH=src python -m pytest -q tests/test_security_hardening.py tests/test_discovery.py tests/test_integration.py + run: uv run --locked python -m pytest -q tests/test_security_hardening.py tests/test_discovery.py tests/test_integration.py mcp-security: runs-on: ubuntu-24.04 + timeout-minutes: 30 defaults: run: working-directory: mcp @@ -71,13 +80,13 @@ jobs: with: persist-credentials: false - - name: Set up Bun - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db with: - bun-version: "1.3.11" - + version: 2026.7.1 + install: true + cache: true - name: Install MCP dependencies - run: bun install --frozen-lockfile + run: mise run setup - name: Audit MCP dependencies run: bun audit @@ -86,4 +95,33 @@ jobs: run: bun test - name: Typecheck MCP - run: bun run typecheck + run: mise run typecheck + + web-security: + runs-on: ubuntu-24.04 + timeout-minutes: 30 + defaults: + run: + working-directory: web + steps: + - name: Checkout + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 + with: + persist-credentials: false + + - uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db + with: + version: 2026.7.1 + install: true + cache: true + - name: Install web dependencies + run: mise run setup + + - name: Audit web dependencies + run: bun audit + + - name: Typecheck web app + run: mise run typecheck + + - name: Build web app + run: mise x -- bun run build diff --git a/.gitignore b/.gitignore index a40bf3f..0156e0e 100644 --- a/.gitignore +++ b/.gitignore @@ -83,9 +83,6 @@ target/ profile_default/ ipython_config.py -# pyenv -.python-version - # pipenv Pipfile.lock @@ -195,9 +192,9 @@ QUALITY_IMPROVEMENTS.md test_fetch.py test_error_handling.py -# Playwright -.playwright/ -playwright/.auth/ +# Browser automation artifacts +.browser/ +agent-browser/.auth/ trace.zip screenshots/ @@ -216,3 +213,10 @@ screenshots/ .agents/ competitors/ docs/internal/ + +# mise local overrides +mise.local.toml +mise.*.local.toml +mise.local.lock +mise.*.local.lock +.mise/ diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..28d9a01 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.12.13 diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..142dcf5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,14 @@ +# DocPull Agent Instructions + +DocPull is the open-source context dependency manager for AI agents. Its core +contract is local-first, browser-free by default, reproducible, cited, and +budget guarded. + +- Preserve CLI, Python SDK, MCP, and artifact-contract compatibility. +- Do not silently enable browser or paid/cloud rendering. Those paths require + explicit user configuration and budgets. +- Respect robots, source rights, provenance, and existing cache/lock semantics. +- Never store credentials or fetched private content in fixtures or reports. +- Use uv for Python work and Bun 1.3.11/Node 24 for the web and MCP packages. +- Run the focused pytest suite while iterating and `bun run validate:full` from + the root for repository-wide changes. diff --git a/README.md b/README.md index 5e96060..d980a3b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ +

+ DocPull +

+ # docpull **Context dependencies for AI agents. Browser-free by default.** diff --git a/bun.lock b/bun.lock index 39021d5..4a0ed15 100644 --- a/bun.lock +++ b/bun.lock @@ -23,25 +23,118 @@ "typescript": "^6.0.3", }, }, + "web": { + "name": "docpull-web", + "version": "1.0.0", + "dependencies": { + "next": "^16.2.9", + "react": "^19.0.0", + "react-dom": "^19.0.0", + }, + "devDependencies": { + "@types/node": "^25.9.1", + "@types/react": "^19", + "@types/react-dom": "^19", + "typescript": "^6.0.3", + }, + }, }, "overrides": { "postcss": "^8.5.10", }, "packages": { + "@emnapi/runtime": ["@emnapi/runtime@1.11.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA=="], + "@hono/node-server": ["@hono/node-server@1.19.14", "", { "peerDependencies": { "hono": "^4" } }, "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw=="], + "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], + + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="], + + "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.2.4" }, "os": "darwin", "cpu": "x64" }, "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw=="], + + "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g=="], + + "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg=="], + + "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A=="], + + "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw=="], + + "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.2.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA=="], + + "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.2.4", "", { "os": "linux", "cpu": "none" }, "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA=="], + + "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.2.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ=="], + + "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw=="], + + "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw=="], + + "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg=="], + + "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.2.4" }, "os": "linux", "cpu": "arm" }, "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw=="], + + "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg=="], + + "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.2.4" }, "os": "linux", "cpu": "ppc64" }, "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA=="], + + "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.2.4" }, "os": "linux", "cpu": "none" }, "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw=="], + + "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.2.4" }, "os": "linux", "cpu": "s390x" }, "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg=="], + + "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ=="], + + "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg=="], + + "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q=="], + + "@img/sharp-wasm32": ["@img/sharp-wasm32@0.34.5", "", { "dependencies": { "@emnapi/runtime": "^1.7.0" }, "cpu": "none" }, "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw=="], + + "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.34.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g=="], + + "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.34.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg=="], + + "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], + "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.29.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="], + "@next/env": ["@next/env@16.2.10", "", {}, "sha512-zLPxg9M0MEHmygpj5OuxjQ+vHMiy/K7cSp74G8ecYolmgUWw0RwN02tF56npup/+qaI8JB97hQgS/r2Hb6QwVA=="], + + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.2.10", "", { "os": "darwin", "cpu": "arm64" }, "sha512-v9IdJCa0H0mbo+8z5zwUpOk1Vj7RjkcI5uNYf5Ws1y6szf/p3Mzl9hLaST8SCt6L9h8NGnruZcd2+o0NTNwDhA=="], + + "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.2.10", "", { "os": "darwin", "cpu": "x64" }, "sha512-17IS0jJRViROGmA9uGdNR8VPJpfbnaVG7E9qhso5jDLkmyd0lSDORWxbcKINzcFqzZqGwGtMSnrFRxBpuUYjLQ=="], + + "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.2.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-GRQRsRtuciNJvB54AvvuQTiq0oZtFwa1owQqtZD8wwnGpM2L39MV22kpI72YSXLKIyY40LC66EiLFv4PiicXxg=="], + + "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.2.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-zkN9MQYS7UQBro+FnISUq1itaQjXI9xqISzuQ+2bc921NcJ1x4yPCqrn77tVN6/dOOXaaWVX3k6/bR07pPwK+A=="], + + "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.2.10", "", { "os": "linux", "cpu": "x64" }, "sha512-iCVJnwvrPYECvA6WM/7+oo+OiTvedIKLxtCLAZP4xZR3nXa1zmzZyLPbYCmWvpd4CvMYF1EMTafd0ii3DygLvA=="], + + "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.2.10", "", { "os": "linux", "cpu": "x64" }, "sha512-ov2g4H0dHY9bPoOU83m91hWT7Iq5qy13bUnyyshLU3HGR1Ownn0X9QpmDPc5iIUaahTp7f7LeGAhV4DSFtackw=="], + + "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.2.10", "", { "os": "win32", "cpu": "arm64" }, "sha512-DwAnhLX76HQiFFQNgWlcK+JzlnD1rZ+UK/WY0ZMI/deXpvgnesjNYrqcfo1JzBuz4Kf7o3brIBL0glI1junatA=="], + + "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.2.10", "", { "os": "win32", "cpu": "x64" }, "sha512-0JXq3b85Jk9Jg4ntLUbXSPvoDw3gpZou7twuKdoFG2jOw635v7+IiXfTaa0TxVMyx78pUjnrVYwLgjKfX4e6/A=="], + + "@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="], + "@types/node": ["@types/node@25.9.4", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-dszCsrKb5U7ZsVZBWiHFklTloVl0mSEnWH/iZXfZUlI4rzCUnsvGmgqfuVRHL54ugE7/wRuxEIXRa2iMZ+BG6g=="], "@types/pg": ["@types/pg@8.20.0", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow=="], + "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], + + "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + "accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], "ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="], "ajv-formats": ["ajv-formats@3.0.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.41", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-WwS7MHhqGHHlaVsqRZnhvCEMS0owDX+SxRlve7JkuH7My1Ara3ZriTmCQupPfYjxMZ8I/tgxtJYr2t7taHaH4A=="], + "body-parser": ["body-parser@2.3.0", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^2.0.0", "debug": "^4.4.3", "http-errors": "^2.0.1", "iconv-lite": "^0.7.2", "on-finished": "^2.4.1", "qs": "^6.15.2", "raw-body": "^3.0.2", "type-is": "^2.1.0" } }, "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw=="], "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], @@ -50,6 +143,10 @@ "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + "caniuse-lite": ["caniuse-lite@1.0.30001800", "", {}, "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA=="], + + "client-only": ["client-only@0.0.1", "", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="], + "content-disposition": ["content-disposition@1.1.0", "", {}, "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g=="], "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], @@ -62,12 +159,18 @@ "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + "docpull-mcp-lab": ["docpull-mcp-lab@workspace:mcp"], + "docpull-web": ["docpull-web@workspace:web"], + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], @@ -148,8 +251,12 @@ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + "nanoid": ["nanoid@3.3.15", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA=="], + "negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], + "next": ["next@16.2.10", "", { "dependencies": { "@next/env": "16.2.10", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.2.10", "@next/swc-darwin-x64": "16.2.10", "@next/swc-linux-arm64-gnu": "16.2.10", "@next/swc-linux-arm64-musl": "16.2.10", "@next/swc-linux-x64-gnu": "16.2.10", "@next/swc-linux-x64-musl": "16.2.10", "@next/swc-win32-arm64-msvc": "16.2.10", "@next/swc-win32-x64-msvc": "16.2.10", "sharp": "^0.34.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-2som5AVXb3kE6Yjine3/mNbBayYF58eguBWIVVUdr1y/L426xyVEgYxgBG+1QC34P2x5E+tcDup6XkuOAX3dCA=="], + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], @@ -182,8 +289,12 @@ "pgpass": ["pgpass@1.0.5", "", { "dependencies": { "split2": "^4.1.0" } }, "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + "pkce-challenge": ["pkce-challenge@5.0.1", "", {}, "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="], + "postcss": ["postcss@8.5.16", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg=="], + "postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="], "postgres-bytea": ["postgres-bytea@1.0.1", "", {}, "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ=="], @@ -200,18 +311,28 @@ "raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="], + "react": ["react@19.2.7", "", {}, "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ=="], + + "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], + "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], "router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="], "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + + "semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + "send": ["send@1.2.1", "", { "dependencies": { "debug": "^4.4.3", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.1", "mime-types": "^3.0.2", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.2" } }, "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="], "serve-static": ["serve-static@2.2.1", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw=="], "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], + "sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], @@ -224,12 +345,18 @@ "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + "split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + "styled-jsx": ["styled-jsx@5.1.6", "", { "dependencies": { "client-only": "0.0.1" }, "peerDependencies": { "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" } }, "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA=="], + "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "type-is": ["type-is@2.1.0", "", { "dependencies": { "content-type": "^2.0.0", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA=="], "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 9f8a2c5..ea6f742 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -127,7 +127,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 `CIThresholds` through the root Python SDK contract. - Remove provider and observability extras from the public package extras; internal experiments that need those SDKs should install them directly. -- Remove the unreleased Playwright renderer runtime and keep `agent-browser` as +- Remove the unreleased browser renderer runtime and keep `agent-browser` as the sole local browser-rendering contract for local, Vercel, and E2B paths. - Make the `sec-filing` profile use the extractor ensemble so base installs fall back to the built-in extractor when optional Trafilatura is unavailable. diff --git a/docs/acquisition.routes.json b/docs/acquisition.routes.json new file mode 100644 index 0000000..68e8441 --- /dev/null +++ b/docs/acquisition.routes.json @@ -0,0 +1,18 @@ +{ + "schema_version": 3, + "generated_at": "2026-07-15T04:21:53.366286+00:00", + "output_contract_version": 3, + "routes": [ + { + "route": "local-fetch", + "output_format": "markdown", + "fetched_count": 0, + "record_count": 0, + "domain_count": 0, + "skip_counts": { + "robots_disallowed": 0 + } + } + ], + "domains": {} +} diff --git a/docs/alternatives.md b/docs/alternatives.md index 2d52915..f57d3d3 100644 --- a/docs/alternatives.md +++ b/docs/alternatives.md @@ -18,7 +18,7 @@ tool. | Crawl static/server-rendered websites at modest to large scale | DocPull | Async HTTP, framework-aware extraction, manifests, cache support | | Parse one messy article page in Python | trafilatura | Excellent text extraction library; DocPull can also use it as an optional extractor | | Build a custom crawling pipeline with queues, middleware, and spiders | Scrapy | Mature scraping framework for custom pipelines and broad crawler control | -| Automate a real browser or interact with JavaScript-heavy pages | Playwright, Puppeteer, Selenium | Required when useful content only exists after client-side rendering or interaction | +| Automate a real browser or interact with JavaScript-heavy pages | agent-browser, Puppeteer, Selenium | Required when useful content only exists after client-side rendering or interaction | | Build browser-backed crawlers in the JavaScript ecosystem | Crawlee | Strong fit for JavaScript/TypeScript crawling stacks | | Use a hosted web-to-LLM extraction service | Firecrawl, Jina Reader, hosted extraction APIs | Useful when you want an API service to manage crawling/extraction infrastructure | | Search the live web before building a pack | Dedicated search/extract providers, then DocPull source ingestion | Search providers find candidate sources; DocPull's public release contract starts when selected sources are fetched, parsed, packed, and validated locally | @@ -55,7 +55,7 @@ tool. | DocPull | Yes | Yes | Yes | Yes | Yes | No | | trafilatura | Yes | Yes | Yes | No | Partial | No | | Scrapy | Yes | Yes by default | Yes | No | No | No | -| Playwright/Puppeteer/Selenium | Yes | No | Mixed | No | No | No | +| agent-browser/Puppeteer/Selenium | Yes | No | Mixed | Yes | No | No | | Crawlee | Yes | Mixed | No | No | No | No | | Firecrawl/Jina Reader/hosted extraction APIs | No | Hidden/varies | API-first | Partial | Partial | Yes | diff --git a/docs/corpus.manifest.json b/docs/corpus.manifest.json new file mode 100644 index 0000000..cb4d6fd --- /dev/null +++ b/docs/corpus.manifest.json @@ -0,0 +1,29 @@ +{ + "schema_version": 3, + "output_contract_version": 3, + "generated_at": "2026-07-15T04:29:31.283115+00:00", + "output_format": "markdown", + "run": { + "schema_version": 1, + "profile": "rag", + "start_url": "pack --help", + "max_pages": null, + "max_depth": 5, + "include_paths": [], + "exclude_paths": [], + "output_format": "markdown", + "naming_strategy": "full", + "rich_metadata": true, + "extractor": "default", + "enable_special_cases": true, + "strict_js_required": false, + "max_tokens_per_file": null, + "emit_chunks": false, + "tokenizer": "cl100k_base", + "auth_type": "none" + }, + "document_count": 0, + "record_count": 0, + "chunk_count": 0, + "records": [] +} diff --git a/docs/launch-assets/README.md b/docs/launch-assets/README.md index 7d80a46..7afaf93 100644 --- a/docs/launch-assets/README.md +++ b/docs/launch-assets/README.md @@ -9,6 +9,22 @@ submissions. - `logo-square-dark-1024.png` - light mark on dark square background. - `logo-transparent-dark-1024.png` - dark mark on transparent background. - `logo-transparent-light-1024.png` - light mark on transparent background. +- `logo-square-light-400.png` - 400x400 directory and marketplace icon. + +## Logo SVGs + +- `logo-mark.svg` - primary two-color mark on a transparent background. +- `logo-mark-reversed.svg` - warm-white and green mark for dark backgrounds. +- `logo-mark-monochrome-black.svg` - solid black mark. +- `logo-mark-monochrome-white.svg` - solid white mark. +- `logo-lockup-dark.svg` - mark and wordmark for light backgrounds. +- `logo-lockup-light.svg` - reversed mark and wordmark for dark backgrounds. +- `logo-app-icon.svg` - rounded-square app and social icon. +- `logo-favicon.svg` - simplified small-size icon. + +The mark uses near-black `#101213`, verification green `#0F6B5D`, and warm +white `#F5F4EF`. Preserve the geometric D silhouette, chamfered outer and inner +right shoulders, and inset module; do not close the counter at small sizes. ## Screenshots diff --git a/docs/launch-assets/logo-app-icon.svg b/docs/launch-assets/logo-app-icon.svg new file mode 100644 index 0000000..0d3331a --- /dev/null +++ b/docs/launch-assets/logo-app-icon.svg @@ -0,0 +1,11 @@ + + DocPull app icon + The DocPull mark reversed on a near-black rounded square. + + + + diff --git a/docs/launch-assets/logo-favicon.svg b/docs/launch-assets/logo-favicon.svg new file mode 100644 index 0000000..7970925 --- /dev/null +++ b/docs/launch-assets/logo-favicon.svg @@ -0,0 +1,10 @@ + + DocPull favicon + + + + diff --git a/docs/launch-assets/logo-lockup-dark.svg b/docs/launch-assets/logo-lockup-dark.svg new file mode 100644 index 0000000..56e447d --- /dev/null +++ b/docs/launch-assets/logo-lockup-dark.svg @@ -0,0 +1,21 @@ + + DocPull logo + The DocPull mark and wordmark for use on light backgrounds. + + + + + DocPull + diff --git a/docs/launch-assets/logo-lockup-light.svg b/docs/launch-assets/logo-lockup-light.svg new file mode 100644 index 0000000..bc28737 --- /dev/null +++ b/docs/launch-assets/logo-lockup-light.svg @@ -0,0 +1,21 @@ + + DocPull reversed logo + The DocPull mark and wordmark for use on dark backgrounds. + + + + + DocPull + diff --git a/docs/launch-assets/logo-mark-monochrome-black.svg b/docs/launch-assets/logo-mark-monochrome-black.svg new file mode 100644 index 0000000..939dfd0 --- /dev/null +++ b/docs/launch-assets/logo-mark-monochrome-black.svg @@ -0,0 +1,9 @@ + + DocPull monochrome black mark + + + diff --git a/docs/launch-assets/logo-mark-monochrome-white.svg b/docs/launch-assets/logo-mark-monochrome-white.svg new file mode 100644 index 0000000..e9446b8 --- /dev/null +++ b/docs/launch-assets/logo-mark-monochrome-white.svg @@ -0,0 +1,9 @@ + + DocPull monochrome white mark + + + diff --git a/docs/launch-assets/logo-mark-reversed.svg b/docs/launch-assets/logo-mark-reversed.svg new file mode 100644 index 0000000..839f280 --- /dev/null +++ b/docs/launch-assets/logo-mark-reversed.svg @@ -0,0 +1,10 @@ + + DocPull reversed mark + The warm-white DocPull mark with its green inset module. + + + diff --git a/docs/launch-assets/logo-mark.svg b/docs/launch-assets/logo-mark.svg new file mode 100644 index 0000000..5ade7c6 --- /dev/null +++ b/docs/launch-assets/logo-mark.svg @@ -0,0 +1,10 @@ + + DocPull mark + A geometric capital D frame with a small green square inset in its lower-left counter. + + + diff --git a/docs/launch-assets/logo-square-dark-1024.png b/docs/launch-assets/logo-square-dark-1024.png index 4401996a624601ba94d9788b3389df6dd6536d63..43cc966c38e50af18808d33a9971cf0f553b1290 100644 GIT binary patch literal 8307 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 literal 10803 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 literal 0 HcmV?d00001 diff --git a/docs/launch-assets/logo-transparent-dark-1024.png b/docs/launch-assets/logo-transparent-dark-1024.png index d8382e924ddd7f1fd6300b3d0c438a6606bc88ed..cbaaa6463c872f0d18dab073e04bd732069c1624 100644 GIT binary patch literal 7684 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 literal 9261 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 literal 9530 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 diff --git a/docs/scraping-boundary.md b/docs/scraping-boundary.md index bd95a0c..2fd9304 100644 --- a/docs/scraping-boundary.md +++ b/docs/scraping-boundary.md @@ -50,7 +50,7 @@ browser. - Use Scrapy when you need a programmable spider framework with custom item pipelines. -- Use Playwright, Puppeteer, Selenium, or Crawlee when browser automation, +- Use agent-browser, Puppeteer, Selenium, or Crawlee when browser automation, sessions, queues, and interaction are the core job. - Use a hosted extraction service when you want managed rendering, proxies, and external infrastructure. diff --git a/docs/social/v6-launch/assets/01-context-drift.png b/docs/social/v6-launch/assets/01-context-drift.png new file mode 100644 index 0000000000000000000000000000000000000000..4a934df0f961f6b65fb3aae334540b709290b564 GIT binary patch literal 94718 zcmeFZbySq^_cn?}2q+<-AmD(2v`Dvtw19Mjf^`JjL!KM` ze7^7R_pbM>^{#c!I_Lax9!D64d7inS``-87*S_|(@p&&JhJBy-J_-s7wuJawc@z}X z*C;4=py;>3EB4GLM<};YP$b^IQT#HoIqjf{FF}H~i-D2sHIrkDgL}{H#n}7$8RwnE zrQR9mf|cntwO*&=K$sp8Cf&39-(L(mV31f5!=$KeQ}zj2=pa&Jx;Pnb50qB?)c zDrIAV2nC<=_h_fT2mSXs%Hk6|)qj6@HX2-iGnhX|mDgRuf1kIrKQH|E`Rjbhw|oEo zV2zEz@bB|rQ}GYr4*ncpHHB|u{`-qX;{UCWAeIuwl>7G_lqyfM|BsC8|AAZo|3Bh? z(?$2-8CGYkajzI`g)mZY2k^9$Lq*2OhcJRizW2=gBe=q z+ zvo}h@A|~bk9hK;c7I{6|Je=!r4KauDGA6Pz(z6PWsk0GFD@pfEAZEa$zb^WUeY#&N^Kx+7ZKx zc9r+<`-eDZDEw zNy}4dtF|b*p2LL(gK?ZYT!+MjXv@pvUCfX7&T`@j#cRcKb68NAiI4?FMaEh$&5sM8 z+v5ox9%9FG*tGq(8%+6JH3dB_fZ~{wPV<fGyBqle3$*yO31mhTl+zg+GkdCYsqhQo2>)zw48 z5|pxDFj9Hq=<1qiZ;5J7^W7yEaQAKfZ$qDrDKXM-xsHs8tV4Hl*>C^me^@HXu2FF$ z;IQR3!gx_<+%qKhO(|-J-#TNx5j%$v?)Ky@`oQooHFR-lSvfB(Doz+(&amjwqeox( zv`6j(bI=eQ9m#9?wWoj%DM%Cy$Q}&H$@niz5nPY=gj7TX8(Z33ORM3Xs-2jcS`1Dj zEq#uvze{P7zN}0>8lcD)~M5X6;lLQExog{zI9k|J?kAcyRq$Z#g!-M5?e4=Kg1s((;x)P4N?P#=n@q$Vz?sAk#!n`sCjz z^xEy&H<5s*-_L2N;(45cMN^N+`E)lI*O-$8e;*+2hBd9MSRilZLe$E{<>cgclh=ng z|1rN$ueL~uWiOU0juWbhApeZ?^&QU&9OZ?z)N?2fzv~?vshnz4k(UDz zUKs`>6xh;?LgE5(j0}uQ%IarVTJ6;Yn3BGJTcjlCr$_Z_cm7`ED>(+9>PUO%1;@6m z&g{=^bqN{CXV8~1lIjyY5x!Vh0bTSzf)gX1wgw%A#IGADA7k0({^wLQaB6@5DT3Zt z_S9}vQgIQj0S!%TMN;H}OfNLJ{o(Hsi^cVH8~yb3YNxZAgzCBGe}ZiN!#fzcCTu50 zRHwo5(W(x4pVBg21AVBWr>E|mD1|W^n0JIJh1&fLgR-Z^wJmzXyid>}urut80i*w6 zqk6Az`w=I|j1F<`ZVVWXt@=QNgK&3pNSjrpR%A)3pllA7+!mc!q@-HZ3LP;0xHTI> zTp{2O2r|(KAvfcK;;`CCokW^{#`|Yjb8TNcLhD!!2RgGchvXHmrmFJ?8-b_l)2h)a zdli?!X)kVx5$m?Mxp&k>RDHBQnr8^N;6IOG?h}_iPnFzgbOBrBvIfU6%E0yPA%@#t z?)LG2Ou!(xKBaZZ8WVGW0p5xVcdhNN1;U3a#kJB1VJ-A?CFVk^guUyEE72Q9h{h6Fv#8!&)A3zhVvHAzyJkwX_Is1dm z&=)_YQ=*r7|Aiy+U(*P{qAOx{F!=n%LGS6swZO$*2RsX)y7f0cJ%i%^h=~sVDlBYvYp%`X&q{ptSB!&Yt18StRW2LP@nxs#{it;FLdmz~!c|+R zF6BIQh=axK&8Rdr{Y@XEp!}@+XWC!CQBhHmlMCrv5p+5X?pmS%V?#MY{|m#_aNy@k zj;%b;dmyvn+ySX-wy5XRgK2{1EgJCT^UK(DWK1(s07>&xn8|Wktdby zE1z~g{5fFs{km8+ciF;1CV*t;+E7PcUcMz(uPv~oq=NaHIjlny{u^HUAzfmM;L#)X zQlo*|s<>~-5RZlrB?l>~g8VMK&v<$LtW{`aVn6BYyVB0-e*Ro&I9YCCvCYH7W5#iQ zuoBH%VOcW18M|#>HDZc*^%zU2-TNVVAn9dABt%J3v9!YBv&FobnORDDx=8APwT(?` zY6_X4TX%bttu(`MBy^Uo# zD#F6T)wWyfb92A4vtuJ7jyBiAqL_6eRZM4-JqikRTDD~4IAHVcoVhwGWJ(=eTs%%+ zzC_1q{L0EAASBGl%yd896*wKq85|t+9ciw`YvyCZcp%+fKf%l8PsX2-n`^eB<8JWj zlj79eE-qz4LPBb4>O*p#_LT#D91WDO#Bcs2O+R}_O3#&$>g?-KrJ-$=CDV~#_{!2X zIuQj*VhM#<*w~jBm-k@l=n!RP1bB?*YrCEuN;r~=iDi=UJL3rnh=|QrTJbY7N{flL z!8JI+>mQrEcELAh01TW!0hZsk+==cw^+OBP03pnDn{8#|HKp>TKvhm|Ra zsZ`_?6l7#jFBzCR8PR3aDY(aEYo11yhZWmgVssG;Dh-D_WgK z-6B-L!Hn709tNm81g}-aAXO!w{?czAVB04%c8pnu<#6er0rMXi8Sr+Q!Ognvb7*g~h;toUySn6o)tf0dsZ` z5|@{s525tFw{UA{XefxB_jtpy7jeSzrM7-_K1rKPq@zDwcK z6+8V6y)%h@E3;Luyj-VBR#rt-RU$hAu2@)DURb2%u9Jx3;#Zvn)6>(~SlE^`mAHh2 zkx6}s!NKCPvecn9yiIdbT6#vzhYugR6A_Y=_ZgHt!4kP6?2)fkqpmTDMapB=wJgm? zCi}j``GoB3?2L+vDvIgeTbI+HKYz|GZ*T9+=GD@_=f-%Dr^Q>)+zizdyOx%f9UU6l znXD+N@)XIGNzj40(25uHx$MsU_CWjIDetbJ9Yn^jrKx%9ay3LF``tqa>~C6ndQ($V zPK!-VutVeMlP4Ck2a-qF3LSQ)ib_jMi;K4ru=6FUD0E0`YwL8i-OApVOqoRB6@RTg zKtXBuy8XuqqhPD3sf~v;dE?>XaXpnWFj&qCqft;$xY^tl#+1K4SXkueWQw6zSzS7{ zjOSKr=FcH()k>B_T>_Nf8x6IF;q0#tq@q3CURhbO;fiP05g-?^4Q~2vWMaZ$zD{SR zrNCN(-xkF0boi2nCa&rCr%#{w+{vD=4k(B@YbeMj@(Ea7sDi`Zp2NF|mWj#t{Oo8I zejOPZX<}j$8xw<(U8I_uk)IC@{_000G*ib&OG`^f=XAE%QIaW}LtXfsi%lTOeRFkS zaq-gw@37ENm*dSRLO;B`yb=?&wZvY_>cB<1BB8-KD*2jlH%3NAfH@aeR@&OyW~=R3 z!TOu$-(4e9k-pQluqTti7n76(UXP=ej(r)^o!sQb`q+Q6!lI?Mbw2VoiZ$jxF0`J4 zlJel-fLh>=Z;~r3Pp4}f2u$nTNEsr8F(10CC@Lym&HDTMr!)!){m6(^*3wY{+lh^sk%ndk zdGIVt2V;<*3FCH`L5XYrwYh)4^&>8PB=H<`?wtgI1R9urbhQXz4$`$mux3i6@A-PzgM zdgh%k9Td&$mfI-OmXo}TWNK^@kStEzaVqs6Z!B<`fHj{G6??eNf+EJ%gc zn4%$B-%!cTL;KCgWZ!JMgKLGvk@nIx)_2m7A`t#a&R;7!f@n`nbIt46y=4`Khn`+XjJG% z6?Lu~Sej-BWUes7-`Sk(_79B~gu^JH;f5LE(UQ>M(4E;fG4$ViUmmgcj9&D=Xgp`^ z5X#v=e?d!+D@1o37CImCY-u6%Fcx{rBEJjS-cWf%^b!Td(d#eb?Ei{k{el1k@BY&V zV*QLS1e2uECB(%~okwM8%jw0#Xyx>??qW*iq}g@uebM|guk0WSj=-EB5(g0C?)~mq zpfNVi^7QolzReBXv4Mq!wzfhre=hOed-puEpM*IHmTK`{r}CN!BykSvzbVBeCVQp?PXwa?71 z*;aw#2veqZN?~DPK%P8#^8Nb$Ok4)lmRcBy!RU~8)Cw=Z=ThkD=?RG|8)V##%S(mj z;hLI~fPrjo=IV(Bxgqzfe*SzN3`-d>LPbR-Ff}mvgeL^t?A?O*42B;*ythlquNElX zPYCZs$SWvdKq3Q(m1-Jzs_~iy**b3XewcerN}BMHT;Rfa5k0AIXQZY=E`mIr$CnZ1 z>!-h{_A6>P2njFI`YS9e?%(f;<)neS1p44IAkU6Wm6anwG@NsFjOaIF!^XzOn2?s1 zre$Dw4lOkr&z`pizQEZTO{jgPj|I<6c^;+(GuS%ACKztB$IZf{iP_2spM2={jEEFiM;d%Jv;%~DJk=-1A4ca?xj7aF*Px_udCjL!FS08u$EK!gRdxihP(6AKyuG|6KXU;;z)k@^?$f8uo!PDN zlFWPe?g7*X7UpDspNW<>D|(^5s|yno+Z<8rxHIEw1U>%UhQ(5)^bN3vxIcrfnEjIoX~mD=!C8adWibx+9Ecou?cHCG-ZL zrAbIg7GkaRXRK5d0ZOA;^xssN zbvPVs;yBEmT08+*V*Dlt!I{1F`@S&DYDqoK|LaKqO6 z#^lIog^Q!H@!Fa~=JQ14ufStv7at!Vh~+GY>C9Bu;^epX6KN_zT@9U<4P z?3kFC#Ja2cHy)it0H*%}fehU6;<HeW?q2`dXr0?WbZz9$KyAnY_C0AxSP zN=kP27V}F>TT4q?Yq!II_qAy;K*FH08orhV~Z3T8vYaolxHzY78$i_LNYlXRS$ z&*eVfi(mOS_IQ)`zBajVsbSEmYi^t}JC48i0~O^fdblw|R$4w?$~!#?Dmx`yePSsN zFdxIi!!YOL(=()+s%pPcDHM7t_K;juL_{h3cyoLxI$Ac-d~#e>qlAskh)vx>Mn+Rp z^UIen$eJ+|->xMxZkJyoevv(KoSZM&KD~TwX0L5~mIT1wh=Z@wjtvw%h>JKmY`#fvf6`HoBiFQ@T*N=8OxT-^EkQde6Ld6~&{ zERMW#Ysh#q%>DXmu>;?H;tMee32RLEgzQ-J@6UncyvvKjW7AF3-QAkf(s_l2FDWVc z7q=#ZgK@?+G3Lo*xxS?j78U}_P{c)n!6AJk*oe(9 ztILo`Bsx0E*JkVDLEO8y4(o4!RR^YDV%YPP*Wi)I8!@(<0F5(PS;QJ3+SS?p_827f zY4-pM3C0N!CE+uwZ}hY|vbDp-25(CWtFAul|JWovQ+MP3?Cs05v$H{Zl;qAS)P6wJ zhf9uv5=?lrwn7{Tghqwg>l=E{&47)#2Ut~SXZGO!uORXyepla9aJABZi2*#_l5yvg z&Es98j~|V*($iZO_JFgVt#dtCUy>pV^8V+|BIuB?jCVwt6Ps$RhJCRTYNa0+5L)g# zZ=TyWdWyUf_ynSWY*cT)bQ~8qcWhitR?f{q`=Z|u98$hRLxW+VVS;Y{_aC?&oOYC? zq^NHt!V=7b$fniHOg`$F=jG+4|NI%8kZ{RDceb}+cq@vDhKfq+a&?_$IX_>z#^J!u z!J(w62r=A0cYqup=T6eq1-{-9*;y7H-G_bY-O|`tE4u@BL3vR{$;jX!$ac87xswFj z>Rbq1F3);)PsoXD#i##uTs+*JTHQp9}s9 z*6qTv5~r zaR9X$WkbPiu13Y0(ypnMI-lMCti3ru?eU_yQQypEjut;8kjLNs>gZ&dadPS4?Cw|V zfBC%Og7{q9yKhj0(U+!wg)~{tR?|^9i=YF(=kolh%3-DYN2aD^su=deS_i%U`l}RH zS}2Z^QUpt?7+V%f)WKr3(2T2>>tf zOP>io#dx8`799W$dnaOATILI0>>3<-1vNC+Eq=?)TE)Q~pCk+O zy}Vkl-0e>`Mm4(8FRJu5rnuoOk9A4?ii!r1Hkr*>1+^{l9iPa?;Lae}rLgi6Y*f9{v8ju_ua_&!Qo*Xj@d{fW#s^{EELtf{%Z>7CmRZJ z(+R zW-v)FcVCqqJ6C>g&~)b2pe5V)f1&{HFTI%7-CYOw*6`5CbgeP0nS?0QIZCso*3m}A zM`Lp`)6kr$1@$AC5xf=n`uEL$?+fXDSNRSO{()o1Ac6LlYpyv7r}6qgPT$wC%wFp% z&5uV3@lShtx}k#k1&>(b21iUey&jNk&98sdTbar#nMIiMjv`$;-2dOaA?fe1% z;DIU+AIi(k-5g#kxjcJlW%+x&eWGDzAU(lhr9&YD4OIZAoE0;%zgX}srYfmY1pHdE*Hou@sLnTTC}@y- zT(RKX=B~J|PX>;|nrn7Y31pC#GtgQ`d~4?2t3>!U9!En-oJPqh6q?;N>0DuBV=7v8 z-@7SBKo0@#zccEsh`aBZ-bzf#3ZQ_@3{4g6B4iSHxVXmLFCHtMH*F3yC0X-qfu!Xl zW$WF0uwR8qB1J_ydU|l}8aH5*Hy-xq)X%aqrNhkV?5-Phj)lvEtMum0?`8=&pVLK} zi-e{oV9YaRlDK)@XEt>*WFqJK7ipGhWD~T?U2YhpIXGZ>WRvcJ5XI(w{v$ovVPj^6=~0w9HJf4Cq)cbCV;6 zqrIdc8i$)=Kkc_{YRwZ75jna#VET8ue!hAAkfF-{c*-*(2N59{pkjNlycL!ygQ+nv z6<>`O`NPMKkXcKPB}^W`ZO5_QfvT#iaMOUt0*Z8E6Fq%V)<_**2bFGZrDF5*2V_BF zYM(xQcs(5qFG$R1(#H*IBjI(EZ`pj!{lL4%ttk?A{y_Y*ku~1I0nzQ{9v#I*Shmsm zjyo#cjnYg+K_Sd*|G;{;Kg4%@#@AxHj@Pjh>mxlNk7r;`?M;yOe?yuP4sdWfATP{O z_KUs0a=NF`=zDl{l+C25qOvhnMX7%|S}>c)1z{tNjE@K7N(vXba??uR=V`QBpm8|b z;Qly2tduiK%5%6g?fgw{APL}st8sVnW_1v5F?=M#Mby<}!@GEGcL~eOQrlz%oR2l% z0*G#T{s>8(C3}0|D~9~XER$c~mU0vMv1d^9 z{ku@-5>~du3_D@yMn_MNw3Jkin>)p?lgy&9Ftgjby1G+&akJSGQkK(|`^$Fy<#{BN zWk-)Vq64j~5@30SXO_Z^&EshHZf=UhG=3row(a-NjFbuq*%X8s6Y5-tb5yW1bYa-y}LV2(_*B( zIFJHFRxK?p^$L@DY>bgZPC&r894YwrEf=p}oFK3un#?ps zjm)1vzZPSLDlT*7nBwAw=pr6jrLeQJZ=AgN@9nR*_;^&NZ0CeYQO}bq=Iqa=Hx03nRwxFW*D>)gG>jrRpv_@}x z`y+SGMaZ%y6Q>~j=Y&bRemeHa3KcJ}Sa+W9+i&?&{$gzeD=t=X|fCj?57 zAu~EKKxm_KbZASW+)bN#=e*&Eph|3Pb#);HM-3_lgO&9UIyyRbp8NknN!a(CK3u-t zA2aJ*xoDG3d_c-kP3G|K&6|&V^GFK1M?^$|?pOOrzbFXgWAeuxI%?t<&g!_3J6W$h z`z*KSJ}@uOa9CMf+-bf*(=#@P7)ZPRMkY+v^6hDSqEni!kxcbUNd9kzcKJ3GFATte zY$ncr;6h1F#|N7btzN~yDl5MXEt}KGBr?5tkyiJeAS)9)Wz+rdnxpt72Sz)%I4 z?bg1dQW2inw`{_S< zn9+-u&|R8+hE?vMw$yHhcQI_gTLUy2Lj|D0q5%w+n(*-W@c8KH@aXVx@HP16+s%{E zSc=|$MqE&Uc@b5T6L)L6D<`k8s+8c-uk&QhI_o?g_)NG6rPo84^^w#2e#}mJ;(+px zmnI;Vl2b0rzlqsH+8cgsKbv{=(|s1^d?KcBlyb(r97cmqe;)%QwGQ1=Hg~3Z9NE&P z(kQ9Mpgb$UZ|d~uzr`#!ijEH2z9jhJp_x`$dr#hYcn7}y4pMBa8r~bpqbMXXw}IT-W6BPHh@5M_Vy+-00oO`kxNmb`Ky>=8$JFnr!Rot(a^{- z3HkoLG5OAUt8DcCq1yX&3NUQ}8>5G7LmS>cRf>RH#-Nv%lZ!lp`8SMJ?Cg;7pWi3> zJb@_bDNOe8%yU~CBD*B~E*dyA&Z<)1QLxQ_9zk9XEJyAdEXIo)R=9%#y1`6(&I z3nz@B>0$rFO3_!p9obYp{)`-r8Dd~$%qAQ#Dh1h#-OjT6YWu)SpAIN|0cg#|!{blN zT5OXU*vRo^cMkV~w?Y@p_s5UTf$5~;U#3yLDg~OS8wKzr_?MWtxSYK7>0GrT0avG^ z)os~Kzt~)LjrPK~LhUoIXrcj64L-c)cO(Qv5ZBKnE_^!n)o7`Eag4V9E5QwSJaphy zRtx36zSboM`5=KJ<@&s+@a~<~j{L!LzJsL>uiN}^1pO$ywFO^bwxPjockY`9+7S^8 z*DJJxI;Eh&W*9;%VrEcQ`T_V)_>BX*B)Q* zBKp!nMZBjv;QZv0G533%1}kTUfvyFk0OaGWAet#$jV3sr|1H1)#WqRcE04lqGkpV+B8-Hu!TlfnAhx-z5gs~Gp~F;V-AisvtPzhU92 zLUBNXXbgWBbKLcaWy2eWDQL4CUpUy_9t4Px#u)-oX9e{D%e7;-(7k_B?EYsT(0|LW zECa2Y<#g7i{TIHOMo%dzNl6oUR-wahkZy>dyxcM~7YRqzthU}?e1gGozWaNjE2`iM zg(WI7IQTt_X>9c4(E)+oFSUTMd9G0bZWghLq%dd(b=8$#o!~FC(4H!$*#BgxAd^G% z86k2V$puA6tSL7TmQJUuKBe}?m#sY%Gi@}D#Y;Ia@OcOcms7m07}bk6d#CG(%Z`rC zR~NH}99_utX_MMaRav5ZLA|#**Vs%`1%p8#N$_LiFes#9Ahcli!euM^fF1#45}w%w zFnglgOcM6*|Kkf5pW>+sQrf#+fnPN>&Pc>FkJaj*1ItOPlmhNys#f1QKpBMI10p7F z+tbx9m4Xxdp+ewKGyCH8O2+4h z*|JLR5<;FsSgiWzaBny$b<>S`ZxT&o^+a6(n7`AMf2dRQz`vV*ykUJ4;cAEzE7%*#=zKf^K zu7N;r48@YX*W?oF;lH7=jPT>i}Z`kQ)N`k zY&@&}2U6WA>IDmc1mp%B>}^>st=n0VS(KF69B)qVOxJalZE$WFMU|Uh>m82yq>ztF zNl85<6__Y0xlV1HMID-kIV2Tlc-Lqww91TdoXs^*Cgo3iW0BgOwigu^I)LQt>4S=2 zzg}=0Z-7k0@QNd|%+NcGrZ1d^@{!T7AUmk^VY4ik-JlZ;{7mZS)V}$m3O`4V64Np= zKuOnjFO(UYV1G(v$V9-Lh~Hz=?VXWT%UoR7q2zH zNgb$#P1Um1CM}*CHY>#FsDhjvBOOzxc;AnJ%QKGWhkFZ|fCC&Z7LyOKZ|$q_ zE3k|*$d?9nJ0PL5x3{;o?LHu4W=7S#+NUb#AgQRR*cd5s-cV*VH_IzyV@JBU85k%7 zOb`aROHEi}e7roIMo1m_Cmf;8r&@Q(@fP%MSaOtLDun~l?+*t;c5nhLt8N22++?x+ zw>yu+x~d&Ay-Oui`Wk!hmSz%)Al4uG-;GpDiQo?8Ymy`&2$l2HBV$7&Lu0`|@D+Rm z|08d{gvQ21D48=uczJm{mjJzht6l$(?|DxYT>m{u3a|u;`T5{c!rF4E%ImN-UTK{3 zW2ENPw)iDyDgy{mqF-+P>rb`npKtHlNJvW&$xRekS~i4hgg+%E<;c~c%smA75uJJN zAC&S76V$#1qgGc}=jV07hU%2Z$6o+!iU!W0)+?GIDZ!fNOK#!bFto`?qlPr?y@?av4LD|xT;8DtK<&+isR(U!yBFU z=ES|fb%~>U7`fRu^NO3)2e(-v3lKfn{jBmn`17-^DCQ!3Y8mX>piPvU6IdXB6psHn zfm3XkVb!rdo&Fv55QzPSqZM*zyAa)ta=~S0O}wPwuj04!WxtXW{ONLeuM=FK?b|xo zFZ5`RrtQN^KEA1`>8bdqTZ{}0huDVzQX3G=R#mL0e(a|FzEde+Oe6p*nfrU&^ zQ^aKhv$ES%Vq=TzBJLj~a#PQF9r><@1ViAhSe-E2-M?k*pI`q735SWE7iP=)%0>z_Hdj1_bS7+vW2PM<6LLDhf)O z_g{6S=Fg!u(7#ZAd{|ssY+!73OwKozBfPTM3_aNaf*!YskVG#WK)KY*{*~8!Jf#?RZD;Bn^9wRn?2vzJ=3b{b zLdtoXJZ@8f$Qw5+53{jpMngeaZyb)XAyFF-j|`6&a63ho&}>v(+MO(yt;mu;A&#qL zGq+e-h2ltfMg*8=GF{2^G6AW#CKC-i6*qV@Xp;yJe?-Z}MGNMm@6Un--=?BUrwyZN zZg#12+CokFW;7fgQCHl|%t2fA?}`!<>AmR6ABP3j5!LQeR3J3KId=DWTrI)p@-(dWx`zOE~A0Eg`` z*Q^E1h;8CJiUr&~TXFH;_OSlJ#FB9qEx|^G(X@T*<~?X|`hj~_Pw)DG;cJ_q$O#@E zK)()!Klg%3QrtD_usU*SX)A(gZ?X27sd2P6K z&2bOEx)zVSq^fXJ+q>2E*)SZu3yM|A`f+F_S4L>4sm)1pYAaZ(9<@rB@kX_DDk>!v zwpSd96<<6vBFpFCzP{ZC7G%^-T5kHbw?k zf_gTJOG@Yn*Vah7HEIXPhI8j7%qF_?j9EE%0tMX7)KpYe#mC=kkvj*-NE(QqCBn;l z)Jju)ObFl7iw}QIH9jG)CtInj7B&HS^h4Af z=>O0KKoPKOvJRU}U}CBf{4b(#;|KL zbT?$Yg7Wg_pzZJ}?Il{!PqXHZagpE`7_~MFyMi_MFuOV>lla|&amXv27VPyDSmE0+ z`lYvbMP;L7BSQ90$Tjp*1hY%nYI$t8c|X4pma}S(_Ms>2VJbMLS|0lK26i`Tw%fCfjsk!4EckBJS{R99DjA54DDemrnl6F18A5YthiYm11GkSY48 z%ZCyTeEKJS0}#5ctEO_h{lTsx9fxZKJAAgb&#IK{6Sy2vV-RZZ-6A1JouO?vj0%4Q z$8f7MUoiPNurZTE4tY+)d)^#!C&G7LS5UCpJql;ADo1dsTJwQJ(>fLI&Mcsv4fG8( zdECz$U>Z;ydJ+xLhBlrQ@<5;tw1Fj%s8m>LUPAbC3kwT#bJ=KFt{P+T!Sv^|5$ESQ zh+#_63yIfPDXhql^@z(ZeCF!#!2lgy$j!YwLO-1S5XXT5`tF;d3E`k6uGXC>`{&Qy zF3ST|;#eq-O_yj>n?DVduhLTnQlc2IvtUu{b~;nJIG1PeTPoV@FLiCgM7yGzQE%ramt$8Ya<~z zc$X}%_!!dW_fHFofKlXFh{=VFkF`YL;O#G`e-LF2FMlZ_!EAhg2*R3t zxspR0)1CxqTB^C8icLsJ&&y-AYc&J=V6BAk1>GyS8`9-)POvftY{~kUP#mECHvo(q zDC>UZdPY20wsF#96P5d_qL7WX;_1ugP@GpE+JA7E!-R#k1uLC%1~2AcHLV;dgyKo} zF!I58p`Nvl=V$s`nP!=vfcqUuE(u6T%}=cJ^_BFbg#pc<8WJ87f$Akn92*M_1`#&f zf@a<|I!>%h5))kEF%~K$P1tZ2_(PFRuexs^C9QSSJqP4MA|e+*8QvEF+V|1rUv086 z19b{SRwf39`d2*q43M{CDzd@-j<|==rr(M+6ak_o#YL3Rx9l2R!2 z1l@go0-eaoB)OLyr2#kLpZKyYHR#tP)P%iR6~ums>6&qtlBq#jx{_AAuJMm5)_2q* zZ50=_wUSa?*Ga*C4Z%ka#=?|(4c^eog85+;B_;f{>p{=O*Pzh}G#%R79=?#;*d8-= zluw}$jOX9m2@cT%6;2Gu_2z_}j)XSY_fP)h2q=rUGjlg*@-|K^v_Ln9`|*VdPjjI zow%)&P2TsxFkjz`&%h$1S6^`O%J%n3sfp;%h73il(_g|l3H8t3y?iVkt>=AJ<+>m# zeG;rvbLY|T`b7AHO=ON}&aYqD_XQsLoTR|^KSzYi8Cv(M!wn@EJyk&=jsE4OVEPJPh<38p+a-e8#&e9=cqRPP2zxSru_gY8V zz{F90SS=UqBXqA=x}0C#(Iua^ito+)XWd2l>V+9rdDC{+UH}?FEAn+9&|leEG0`zn zR$VRvK{!HnN#>GJ5Y)v^cF3k`Y_|O+COPwNE==#tMI8V|#RXFun;dw*=}+1c!Z-m~8#lZIrn-ApOO&wlklA#T5X~J0PGe z!wWU3udlZk`3V02WKUfx`7O;Z`L6gttDseFZ?QZv+%fQG_O*^jOUlq1Fm_O1OcHd* zaJyW-@({bBlLl_7t45!!O_!KYava;2gGk~cAPAJ-2Pb?p>dDoWhoXAO5(|gL z=5Wt!g;EzG0--!Hp$;71I1nGD=p_nZ-mkQ!0=z@t=jrU6oU)T+lZjG^FluQa%u!{q zBlJuE^$XNrl62k&$AmmVvd~e?FLJ`xXmXdBzAjiQ^lS&0eJygK0ejevA{koEXd+|0s}6I ziI2CJa^`4c6G!T1#V%(MpKLZF50Z$Ce(sNNTJ~*0satyPxBkSSep`?gJX)|lTQv@I z5R_&#r=rq-TT2|tHILI)vt6ws*Q!#U@2rCSYw}9U5g$T)n*h)pM^wLtc z{mUBQjI^ftKu&?>RAj}a|NWt)kk_&V13fDx756~K|)WO5@|8u>RO17Sn(FY@=e!!5&kHb+>1ypM+^b`+iFpj^8rXtVmV|W~O zN2t*u#D9+CV^9;-iegfGjEh?Zv;$I61)sU(&*=;dOsc=^T_o~XD>>Z?{&sV`*+4KF z_MTFm9>v*haKP@nF{K9&mBjfy8W2G^2mZ1z)WybgEL?bOZ9ax>q>_UEWP1T}!{ zbYOwt0QQ@oFO32D)Dr6Od*|fRW_P|tDwN&O!hpjR;a}(KM0<7J@%F1sCOr_iZfw-l zaFTQDs($=90Q3;o6G#Wp@ZnNU;ZX_0#6}W_pc?AE7eb~(_9tCH*f?2(OiHsaS= z#x|hE$VyJmT0Z3wXIwOn82ZN|ws$?<01%i~SBLmuK+=BwdOyEO0C~2?Fem#zF>!7wI9!^Qs#bHvy(=%=aDU3ay;6P_E9Lav-J*q>TuX!*IB_% zsfR|h0=!!!GltWCJHXZw5>*-nZnsuslyavm`wJ~0t{1P>YiO>Dr0nHm*~}5ZUWM90 ze?O!^2Uo~K8wS*`=`qfJR$-YfEpCMNETd}@APs*~kJCsDQg*2*hT1Q`*_K#UMG|=I zDjgU0=ib~gnShp*3Z?K6}lpsfFs*?@dw_=kFXcJ@^gmCarWSl9iW*2RNk3XnXQA<}dzFCO__hPlYXAG+4tp#F9fTdu-mTr)xN|51XXC>!!td0|t5^5ijS^-EWeQY&nrSGmy zI_OtdQLw@6)cBT>f$-X@@d_YbnV4!C8wM$tl7z%~kCF& z3^&}j=vI~kPQ#}iqOH_eA|m{*9%Qbl-D;J!E~Ou+RPOW=ES6wEh71{3`>S$ddHk}{ zhPz=c@gnq4t?S<(A>SM7Ox%nQv)djX$a?SkQeOCdg2LHpPod+K07W@OM}e(iLY;Kh5_vS zp>_!}XrGAvKA+i7 zMnp`-a=pODm~CQ3Rt`8?T!zI1q_e|TduR81dHFYPWDuCD5I5h@A_mm5Lm8Pu)wiUuX)penRB zog+3vLFl)%G{ONG&@z&umz<_k(Pt9-og=1$u|I5&I`u&pY^d2ZB2NRf7nc1`E6~iB)&jj;)V=7p$4e=?Dm#Fncq@eR98~H}s#83x#`pBR zGy0CQhGIwPq0^5!%~dCJ`d+`8NC{<(8wG-8xqMY+ zWsZf>@s!ye)Uq?7*7vsdR(AHt$cm-UT(&&0>$%^TXb*`Ps_ZU1Bm4~0CymriI$KI; z&L5Iln47{sPWJ9EnMN`D`(C`iI-eQto&pbGz1bRHu9*%ueJIPO0`$C3*o(_KUU3}l zZEY`1!dx8fm6vrUIrAq9Ve51N(esw)CY2a@W@oSe;eryGRJGp+yKgTJ$Su%dh7w00 z&Q9uQ21D^?w_$Nrj%+rmtG`;7ByH~R`Wec0Yt@D}eDF_tl{&van-K`a?7w;<9rvfGE5fW}s6s6De7d}gZnYJyr&~t(uKOpIq-e@4>D}fu*?v5=L71r%* z*-<6|Ch7PbCb%uK^E=X}+I}x<00FuZH2OGzln-~Mg~^YoCkfOjzki3i&VxU&!DDaM z_vuv}=}{!QXv+gRBFabbtoNUFRVQ(_42{SSE8W?0$;!HZ1Ht{`Dm$Q4lRnoke*SQ! zO*SLbuzg?h0k-SP_BNt@@O$xad;1G|Uf$==OV>$_=TD0o)u&1wom(_uwyBT`+oQV6 zXh7DlSLan0=rlG7y<#2g>g?ot`XDT;`O_=zr!t~W6O*IN53dhSn(8O*2DaONoX|@6 zOjK8|uQQxo+w=r&&ob_uDavbJ>?4Ot{}0~YI;hG%`X2Q)!5~BgK|nxIT0lTrL0Uk% zIUwEA4Jshg9n#(1jkJVxr!-QB?zsE-zTe;c=FV^Ky?@;^j5_M`oF_i9_u6Z%J@|k) zpmTW_5JLCBnDv}*n6r2iB)pb$Gvk+)KtEY%Z#v~7jz~?+%u0f=0*WhpPqwBx=Zz#WH5HA4z9ALUcNn2&Ul8lZmW1FnV|$BF_;)N}7$xQM z?lF>Yrq1P2^YSjx!f?NP!*l`omGojQ8?T2xhTR@HyzgzmAj9k7A~$FuAH0zW$~G=-R^j5Qc|PxO%RpVI9=@V z+u@VG6;bj^{JF4gw{2diaJ8Fg`p{NW^G)iB$Bi49*N_XvV;$7g@PoRBc%pO0o&Mv2 zXBXV>S=i``wetH!9x>{E@R5&m59D?=_3`)48Pu28y&2JDZaUu8HOa&qe|{_z>I<>u zCo8yV=jwW$6jFkjI=*7Cz3{MTq?EQlWtE+4pmjVXQY^M{Tj2^;mtUXs{n=AsAeQle z(E00^waIkWIC3w7J}&j~zyrMa-(zL`8@8j3lj|Q5JH_LLGBgEG2KGM0U87no` z->C9~&?kjRV>*b@7I#gBBgfoQiPAJDtR~hl&RIo5K98YTL^vDHTCZc$?x?h}d z_;#my;qI>MsR{97Ab*C8Q=<^pQw;+Xel*ZOzmpXETT60zDy%W2$oF9mLRJo|z0yKU z)A5{^-=yTo8{Pyoykwf2YeMK)w(-JsHaLJJ`6=4qm?fS&F0fx19MoLv^BQj&t5(`WDC__@S|8{qaPKZTGAfU>Z5N8^lUPT z?f)~)ozEt^5VRK##saP8A&j7|a5;Cc%ly_`e%NUvr zHk!p_ro?e5(zlDRp<$L8qW-;{T%u}rN{aSL*O=U{`Q4jZWBnfUZGPC;-$nV+ZsZ~E z=&$yt7%l?kVrers>ucfU9~mL4nWcvZ^ffAnJf-!Kpw%{=s*tv}mzK6TBz7KP&R9+` zn43K6`lA*4{mY*3U0Y1a4t4yE+6f|F8%0G4cZ)_dC?n6eVaTNMqLIc{TV+Q{hlPEGRjkxa^PIK zoemnDLzyOq-BG={`{$DA!`|NB3Q*=05EqGvv=ecjW@TpbqSa8*^4iU}=6Z!>f5*&Y z?F+Qr=XC$L%qwK3UhPim-gpNm zyn=`s`bN<71h&iQzCWM@{F_ETkK2Cdoj5sV4o-MkS-4&_Ya@6@^cxNpQRwuw_(Y^w zR1y$KOZGWmHt=gI;qwW@h=j^^M3FE;vS%unU8nCSc9Xlw$L)UH(EMzmCK0nbS(%#B zFDe6DFgIUb`w`nCW;SM=gZ@vzq-fw5lK%yQqgRhNlPEfyraffxR*=X}ZKlPuGRl1w zTe^05&>*#qW^t@5aCuHi*}A*bJzip-Td*z%iT@V?vF(Zax_9xf?vK%6qa>W1Cn$7n zz<=sAAa2TbVegD0`}$b+l&dK}N^^*^x(Tl+Dz*%#$6=v5s&mD-P1E1km!`ToP?_w( zzHhV+&I`+3YR{7{F-Wx+vr0*L-b;F9=j3o%{Y;1=)-qlnv0h{I$@s{yRrhUA)DvTR z=c8{dhYeO)>40AMR4v}~B$O3Qdg{-A-zy8+-uZDi-uzLPXO|CLRO)b}Q z**`Se;rwL73n$%!CG=l`!Jt79^*oKvfH&>De0R%GQ&(fzDsQH3{pwh8b%9iN^~E$H z&aTp^w<^6Y@Ek$~Xs!1ph$cFBO>*f?r%FkSX(}gyXaXq*S&r3N1tak5&}m}1Z8af8 zueX(cMJL80-d1@!6|{+{0?#dr^)pDxCB5*aW##1M4{Cqhs#9~$dU$+nqgJDR zBSLJu0xU?vEQ~;|;$@es;+K*ttv3hc5c)XYQV3OTkyGhhQ%*ef*$ByP!X4uQW$-5| z0uG~A(g?TZ!DMjDZZ_ptU*EexAEx&A4*t6=te2WePMrgjI-W~Te5UCZCh^kZVrohn z1qCI=Q%d;2ujo7qP9d?6r-xVPAkk*34yIAA*Yt@{;OzJ_EudX@!R>H%aqfAvfoYKq zm4f!BAI~taVZ+$_6o1`8!;9wmiU7;;ml7*YZu3al02+W2Vm;nPMMp=Av3t8S&1@g< z;&mjYiK`h7I)Ca}MpUUf&%|Srkh$*7#hl)(HiXUzt1`$CM>)H9FZYb+r^I3 zD0RX{L2MvqmY51KO1xK7`!(Ui5%whP&%}*77e5?U(+mTdh+0RRubwwZxC(5$R?3- z2-}Cj3eY~Dms%def}mdG6c!mN%P2r&R$f|FVLcMumABvx+7R9D7`pWrRL&P?I={yK zj)pK{uw2=>2844jd<6NA`E3i!-HhaS`(;#OVt2sBV6`nW{msyUJ2jr&<>!K=rC(7) z&u2)N-eY6WC$4X7tRCX$<`Rk&OyGh}s=c!_yRX#z(Dcb-3^19Axt}{ETWt;&_Lsc5 z+S1a(W;z`_j2j&nv<+0bZ?}P)sa9>JUahP1yEa;rG#_JqhS|EKdFhuLRU4~!?`XS} zVk2M7b|f}7iHGs9$N?(KVFFJIAl!;7?OpJvlqd(4PbjNRRvC%tDp*j=B6*E3&m|dc zgPUf%kE}5k#n@5zc4hU>eZ@IZ36ab)i8pWlS+wY2B#_`E)>ddB@>Dr4>0jE-#KoSU>^}@gW;Cn*bQiKGYcmP! z{7)w${oftw>Qd*d>@N588wyOD8d;k|?4YFH9=3ksnE&n38qLXkPi$hM=27k6H)V0d zQp3xmb8%@IPgW(jBuDnl1mIgVnv?s4G#55+@A_o-(UiFFlV(vfGKwe$Egj|;1)no| z+leTF^yBE(%Iv0mGR?wz&q>6%9R#r!EqTA+FZ5>eJ z!?%n?YB4CQDBbmq3_9v?m0HDHWo6~ur)O@b4kIQ1=S4h1w1SI?n?*bJz-VQ^c$j=Wp$XGcD3POBJ%oWJRBA7lP z^=mmh;ST08^;oZu@r^Y!dgm^YL|QLacw#xF^IT>>ye3ksh2gg1I_$r2oqpK5jC@93IorVo3_V(0x*3JB}`%>(rj8bPCipt90lw=T+3W`#jhdtpC#$oTS zf3v%zLP4gk^L!jq7T`Z;RnFBuPWkxv*yDUPX$j@&-$-}ZGeW@@{wJBci@>DT&(F%6wP9x?sG=drIl&OX6G zeTCjRApw02*<+mbX8JS`sTUT?|ekdeBQ7Tk` z0ddnOGT>|fkAKdya)9rGuJzNU?75B8 z0;9F4MZ7Ll0FPd@{uI~k4I49y$xxBNOkHidWOR|{`Kl`>vfg&tq1hAbjwLfTO>48$ zG{n3$H~7-+hatdmnx3h}E5ihH2(gVq1m$1Ip?=o=t8}`{o|W~~RFp#X4Kt(-sT&iLNU+n4G2`Meg*1>-RTcnk=LLsS$a z6_iaseBg2#4b0jH%ucWBoP=BCcNuB#7|1Um2?dBOU zQDPvV^wM;4MWG>IAZG%~gSmcw1*ef*GsCOjzD1yWyO5%ui#GwAO%%6LT7ik_bkWrG zv?(|pgr>rR5P;9K2lYzp2luc-vWr`??9b6i#n|HR1iX9w`bvUCZsb6DWv8vHh__f* zOy$CJvVl)_Wd+f^xtyfh!#necx&CdVJ1+P~1NzQYPRE9C{@GVq7JuhkZZh>#qgUYE zMyW2vTU@CQ%{Pb6F6vl{-Hk{1lW5x(+%EG zni#9`Z}~8^QxeB1No0?U8NWZ_?97aWw0+5jKnDhvzQy#hKZhY(%jv{Yk5#p z&<}oD2b*I8$Mlxq=>awq0YuEwqg5!B)3}bXZ{65LBKDP`_SF|>z^uTfblLa6JyKDs(kDYGHDR%waX>^d{)@rlF!QbSO8339#X zJ}+Os^gnm(?UG&Ld;~rb!+Gj&lmJqu>M1ISAtKcVy&4D((`gAodg|(N1=3Jr#k^|P6UQSdSVbgHO^%~e7FQ8Zcfc`dUAhr!w7Iulex*rmJfx4L)?>7z-jon z+6+d4hK<7<4(sk`kLQEP+uU(MH*#L7H4)Twd1SSzZEOs+0jPO_QqAS?pp>W9QS_NO zR{YkEPC;bP4>q&uyks$>HjKpiDacYbZ%wP#8Y;oE0N^M%inVL6uB|ybl&KflHG~Kq zMzN;4XijGT9szBmTm<57#o4~m<3(yH3y<{+L|p6M-KV_`O zJhp(F%WezJvnewIm6?s5o*&k`<7Q@MJ?3>-L8`fym?0@%aX53=!a(Yd2jg$MhzN;SfiOkc zYrDTmrF?TxEg%>OKgj7j4~EmBlB@$Y^7&T(ygpVSUj$m%L$N8!n(z>LsxsK)88GEv$9md@xv^-}||w*1-ljR9s!bd!&gpeXpajxLZc429lCT z-@n5vk@JCKY&>UK5YZ(a`dz0jDoVjtg(7e74*w066|2>Mq9L|$o!M4nwcHL~G*K?U zf1u!fysLX_+7%z9^!xwKUUcq))foU{0^(m$fRn6Z#ooq5Z&V(5N;S^71|GdJ1xa1w z5@ue678Hhym%H#-u_a5%$jGRwnZF@dOV`L+2SYhsx20p%l`WU)Ma9HIhKDzAOyl(- z*8kJ?In!_vo6R<+HcI3EcaJ(W!_6&XnykM7HiL=>jd8~d`-ph?{Rz`I4A> zdk44W#WMLNF>{%Go%W@V>kg(BX^e2=}PV%_-DnPH2)%|(n*#?I(d zA6gkb=U|Oxs=^`F?w@q48ecuHa(p$44~!yR?ZtWrLdy%~kHn|d^<2kx?2;ri9#};V zDnFua3*}TshU91Jow@u3s~w(cUvA&J&r4&f##qwdXrSes=C_|&p?$V~{$1(V9m`p5 z_&}~nX|;oN7NKBLt@!7;oLuCD!aX*o-glzyam72@Qs$Z0#jgne=u%9t^hwPw_6Vv= z^Dm1^A|vOmf5pl}{%UVGRtPC3#$H;P{d0*RPn?FO3eU@qH{m-lO7112k-Bcy6CEw^ zZex{3*{qkyH^0=+@DmWR z>rICzJz$x-W8{PN!8oJTaUgQ%QXs6tO3k5kS>nRt&sNu zwxHdIw3UiJ#N6m!UT!x7URm#e;l$@7Ba^AJ`QAj=#a(<@3Q{r~l#3laj@VI>Yf^q8 zkyO_XSa1ZM738VbQC3Yv$zHE_Vg9(arFBU>*w+_sM_yQn@VrY1K4KJA1f0Bx-tdCV zgsfj)#$zWat?5D{Dg`>=aq%U1sofmJeQ7oq@#aO}9MWXph@G@98l?G=)a zB~f&2a4M`zT44s#x`I=62tvO4MSGZ7UYxa*o2kjkrd;r^?HR}*C&8NeUWmiX*FT2F zK5XaLhDQ4C2w~(8W8_Yn(5vEbA6=pz#oR zK(q%({F$$|E49ej+tM}C86E4iZz72(wzy6G(4aten0Cd?AWfkVSNxuwk(gWFMs&`U zIn}ELu?@`nG)IcDLL9ytW%j#BWM;zFhF){?`|R>~M@Px@#pv!f3f*u8#~miav#kT_ zj&~$xdL7s0+id)9@ao%=v~RKy{rSE=b2zQaS}j>j8Gg;7Bxf(-l}S!O&}Ur{D!uvc zY*24}x|@+njowd>YhaWKKP+{Gu2bI@O(&6h!>LSwZ+KfE2;KlNaMavU?qpYyy zaW2(d)mXZ4GY%5$*gZ84nyW4E2q~{5^swYbd>1Xtam@Z zQ3so05`~z8x7}1E*W>wF@-}Jdfiklx7*0|qi{)ngP!)>{4W$jkIa&Bqys+>hCs3f!ImyLb)(muWnwCR$6%f-7SaGo`8Y%f>>Cx2z z5tcYY#fWD%Q(MbnqDCP3_h5ElwJm(=e%;fh(rNcs`shmxPosqV*`bcafO^Lf4Epq| zaSEzBdkHq-x(-e}?9P9Vn-YF@tvjWWsY!b34E*fPF1-drbW?$4il*IPO{4irkNd*< zc^k=F!DkR&l^GfE>J~(Ve_c)b&h4t^kW;cgF|TAUGM1bWP)DSu%vwIIktw?xFM#%E zFprURVIX2~^ysb^<{A6}6%_Iit{ALOaQI^tt@TcEVtP=vOxO5uJ1#CJsMC2KnCy~L zZ=bilZLp~K7oR9AdFH;(ZoxoLTFfebWpIn?>(i%twdg+g&;xwLy1KOR%qHwUXr=LOtCb+sd@CBC~`O4_P?OJ!kAFo_+GtK{BA ziESC(NjQMoy%Rb*`o?f=&k7?BikxF?@!gw`zll=v`*ixu69eugc=7*aKqFlM+0PE+e+)ic%3c#ONE zMaF-ltgfycbewby62_(D-H5rt03RPjy=JlG$mR##{DtK*d0Tq5Iu7u-a&K-nth1u- z)wZEHwc31X*Ly`X`xf{SK+$Z4@?yMFnCqmh!3I2G_^s*eIY}K3SAxx!RaQw*>p>djS7rA=&VW_YdsaIi-j90P-MBFxlR5QL zks4f9mK^54+T-w<^4_h#e0i1k{Sz?{0g3^L*$x4;JrJn6t% z6sXfYJVekVfPj;oAR6DOK+%dLxuD<)1q*L_*>_kL5wyuL;0S`toAaYh!cE z%2)&1#Kgrg@7=4mKHUV+l={~fW0Q%BgLLUPpXqZl#%C3*XB*svFp0VPM@Gz$Q+Wmh zU||1>kN{s_U%xKLbHF6wwg*oO z4-b1_))5n%+LW=jwhCrt8FCS`u`w{Pu^j@9!ffVijT7$KTnkO#?w`T=04MJ0D%fTY zxB75^7@}5XWn(axlb@ds#;dZbp+Rxjgs1x^!YlJ_l3-yHG#2Ir9;4qqOibv#V17yP zTVW*2Gl)U94e&Wwa?V~k&~uWq^!^Fcet@g+`L|T zX!X?HYR}61+lgtQuo;4lPgvLHB2gwF+mxAyD!X5p1Pn+c>&g=fFlMeR57Y*)kJg_@ zayi7uo~rRSpGuMoV(5br%hJ^NY-{c1Ma=`8=mQG+sSduGwu$4NTqM03?D2fUB2>%U zy8%V@8nBa=akIG~xK)M3Ob)c`#X0kTMGwbj{yaKkF}WJK+tv_)ZmJt2T)B-&PuhU6;x z6D|L;*4UaDB4gh@YbENAE>RgqI9}97AxN*Z2G2|Ki;8XKPsy;h2yGqL&fnSD)OUCy zqgP+xTk#2x9EewynUQ@kf-`=(9)7*Pj9OIU7ZphX`upN^WA`fwz^fhOAEhC>F`z~I z7P>8M%)V7o+xoo2@-FkwgF8dA-@n{y94t}oFiA^UCRj08F?3}st}9Fo|J^il+w!U0 z8e{?X164FMRP<3}#RVBpcVsNy87s@a6CL%e2$rTw5i_h(2qto5?|71~SAY(N{QUfC z6wi?L|NO>`7w~_yp4zN^WXDD&sZnaA$*{s}aoBh2P-9G%6zm`8$N@n_V%<&Bg#cI6 zbTo9d*Rj&?6T}}4Wg6X*LO#{(#nrY~2=Y^&_F3JeRKl+AICEYM31Y;bk?_`dTJ$Q? z`>vO($v?v2L3pJkEv~(Mr=!%=)Ki+dp{K#80lXCs&rU3^`p~G5t@|MH~LH2WI2*xm- zb{d-Bi@l)Ojdj>?5kS+-r0F?Lt=5PM_hz!Z*dz9VHRjJ2*(YUqllv?EFg{wDF1Hj`d-<2nYWhN7VkxhdEb zNQo-v{l@&=jgclNrWVsh6;I9UEJES_YMemfJi0RIbK37jGHS}oesWKZ3$>nyHeaY5 zDIPxFSsXsMg@%^mEIO&m=Y_R@)67de$+nK|ls^4#3|;rY9t4opKI8Cha@~IB{;~|@ zCVhWKhrO`wKR!vFlU0(II=JkXnQONEh?M_As^Gd_zrQZGSFaa;pYM#b+M(PgR37Jw zdtlNW6SR!kVh?`s$ajY%B`XzH(-gxisE#-yrQLL@O!!hdyzWe3)zhx1?TfA8r*vu1A<$#n(wt!lRC?%@AFxe4z*!y zCpl$cz1w<<(V$Xz+eZ|N;ha+-kafkql(Rtt?jb&T~aabm~W z{&|8G5h;S!r;&+Po!8I2d!3g^4k=47u|&j0WHhK+YKuFj+B8>A)=>MLhf3@Pom}Vb z*q7*}kkUhdm}(u8llh4-ADtA?o8()i$vFvmX{uBT6b<=wpT?7cX-|IpO0bli3?Yy4 zx5%&oW+q5Z)Meeb-Jo5xTV7n^?`xb4>3I_;_amlDopI90l7R{BOKammsS@(bBXJQM5Zka`KU;lfPIsI0RUYULi(awt2o65Qt^g%npz|2J3NGCEx7!&7TR4x?a%lXTi|$!!$qq#}QprGF%a z=6NsfgIB8bv3VN0Nt`+LdZ(=Z?tv4SO*8H-!#i6>RSNeXSLcQ$3Nh30eIs+*+%yb} zj0uZX$;fJ4Uti=hx4XrmM#|2jH!|xO%3UBT$_|MwZ08)~tL}k0F<)wht_k$`t`BuI zbRE^-x}YhadH5jw8^+auHd~`{VMuv3v!cUf0>ji^vtt+K`JX`DEHvyvGH<%^gk`c* z-WnU=9_8k}8ksLmjERr-u6Z_vRG@#d7-PRNxW6f(*D`S zm34Vv!#wIhmTKrg@7Yvb&KSkrBI%Y&wz9iFC*BoNu{S>X^q08x-=ui5>XQE1VfAJb ze2XbhUYN3oNY7BeY-uTzRRK#`DN|QFjrMZH){zqt9Sh#G;tOu&cZ6&F=`=M?rJ%&_Q&18dn)yHDSa$0wn2TZ&?3MeL{`MRDfB!!5cIjw~f+gnU2y{g$bD;<5Pd?z6~u{W0QW zF>3eBXtw60m*KhpoQ9?wf2P#rPIZ<51k1z73RUyghbH2s{I2gFl=UPc=ULCJ1Td! zI^Gtoe8H?08%roCXCm}fPXK~xk ziAR$O-yK*Vjaxt6aq!$As^c3Q5W31TPJ`}WTXSo;+s#(J<~%1iu|rxRjjFf5fA?y< z(`eoD*Oj*P65mOGlh{F2++K|_t+T8!5U>1&SkXN&bZ;{7&^(J;6vDJLGX6KS6RISz zaDwK5!u=iobe*3k)H+Y6ql4n9C3nJt!g^*c)MDvqyR6{O`r>7t>R(L=J|w}xktwn+ z9a37Q_Pvx0v_fv5`gWNO*n!Y#%9WsDar>nrh!MN`r6nvxyJ6ktJecZer+M6)OmSRy zOP&rAqW@m;M|qoz=mJF|6BhAsYVptELG3R1502sMTUvDFP6b75LUIf+Y5CCNCHWfb zd0fxEdX{1BrKVFFGXF z%OjKi_>vGEN=dH|z;PiXtVzh9h{xitIsAvC&-=)}FIbJ;3@$rNxBK94GVuQEjq-j# zBXe)1f3j)F8_VKcJ)_`z3;c6J-hcLB@0C&`@|`cDY%Zv$DepoAV)n0_!%uTj-D_ zz6U)=K;Vh6w%61Qs!bLv&1N&yuC&?r#vrQ6&Sjq;VaH=oZ>)sIMI>=km#&{FTieJ` z71<|ZX-j_BNs`ECNC~b&W1eR4;f@|*@Ckt?Z_O<&UeD#ErBAGvN{FYJJ!W*&e2&QOP>00s0MDw44jU@wie zvu~sd9?(OJfRAL$)9oG@dfK5LyxOj@CY!6WE#J?a#kTt9RPrZqDDO4+Dnno+xYVgN z=c5SjsT5!;bdd8M=%627tbF^o5yh1&gEvtBQ9Ona2D}&IlK-vtu^yOy+4X+%xU&q# zsbs-$w)bKXr=OPjle@2TSRHmZeY}oh$WilMT}#)6f@jWiW@e+74i*4%Km-d?J!ft; zAt6t191YMmLW7Wh82=LL;5Afzy*?}{jzCB%_JMCHJ))BGC?*8;!8xb8iH-8%Kz+ve zuddxH)ZO^XVq`Q)0=nsyy$wua9zogv-sWrKC!hCaWMpMiRMkP(7ZHK#9(3jG#n;2b z$D_qMvhO-zH59yOtY@48L5B6p;5;mCQr9M|jn`6gQjRXP=4L#Rse1Ak7(f0WN{wKm zQmETdz7P-{3FLPb%XOe{mk_f?CpKr_CN2LM9 z-wP!y@x&DL?vOi+!x|+3Vi*^5V<*9nE6bb#(-Gko&qw-4bndN>6;+Cnn~2NVxNKMd zJR10iVb4k_dugBCop#EOo{Q;C5i^X3t)|!TS_G5(o<~@|QoRnob-&xRv=b`zbtO5} z!2al`s%v|GZCw5F!qm9b`|-&Zi%r?f8%B}}ssacFt(Hk12zwUAUb4tesS;FHzTDZi zQNL^p12{M9-gkUMy7&Phm0cBtSsGbW(@+PL&0sUf?i1?bh=QPHgp)HpPJ?UrgW z$JaZ=NxCUc`0M*BXme{+I5%Nr12hfW8KwWqiiVM~cEb1I@Y9WGGPk;g@;G=ZP-k)7 zU(CHVJ63r^@FdE)s`Av1oz48^sr84Ed#>u4_(8*W07)PM0d{)EB=GR;uQuhFv3lD=uygjYWXb8;19YfWT^_ zzY+v*cksHDN_F{P|IlgJ0kdl8{8P7jaOaNCI+0q(<=Rl*MmvsB))WnptAIov_D~}7 z)xJ`%59X{{mYVZvnfOGxNmfPkNd5BZA$CO)yrESEgGb9}r3#R!Z~FxBpOmq(^h=2T z!q)c5o4G^8o)BA9l;oHC#{O!yTe=pxr8D2pKVm(SH@NU<-wAh*+yC|_i=CbxC=84C z3#km>tXr8{RB)4@_rB?!Zhb z2@OHKzfTx%j@)+4T$j|8YTpyMlvj@YTO+8caA$V(j{h9@)hAi$=V`@G|HYI_!C)9V zX|%064dP;FW4Xk)W+VHnf(hRoYD)I@Qa!moXfE|$vE-xa4-aO!Vg+0%@&Q|DbFyw4 zJf<^|ZqQ%x^SL9nZay`D?<8Cqyxm|3cjX%cGfjQXX~2{Ekl=9gBZhd%B8we#Qpk!H z_b1BDpSnMY2vw^gRyB};=;S&HhXaS4$;z;s?Ux$qN<6c=+V0UwSp{WJau=GH1ma2} zL0Hn6bzSbxN8vF{jQx2PHE!wTq$ohJB?p2}6yYHBgK%=Q9!!&jM1D-#tb`XU)wbt< zkVqO`l({`vW#}4ypq-imUw4t}vbdzWlBp`U5EPenj)s<=?h?B4iGr~7#7sm==T0ob{^>x2)xK42b-Xa<`7p znnR86$V?r?`I}9*)ZIR&4WpW%Vjm~4-LbGKV1%U*urL~N_N<(<85%1{Q&?DJ(Mc0$ z^zyGy3pAG-o2r?MnEcPO@z7&Kh0Q0vmb(07!z2`u4L11k;w7M050={UL9F8|CAjt{ zJoL-;V-eTY3SZ$aY26QH!k?)l$;xE9F%~{}8Sp&kDFye)Ye{~EXt~mFzv#0j_bv%P zyhvfanjn}PgJH*GrfjQ2(IUX?`0!!aTNhD(FL57l5%g0m1+s<3Pb{ekucMi=WT0l7 zROd8sIl*|1`(A_Rpp`dTx{j<1k@o+(Qh6O{FoqnFY~23T+S-5YhzGRv3eDUV4ozeu z$l}cF;7VUJIn@;)NoT-%(RqzVR$5t5skp?QzYZxa>)*EA`5Vh{umehWB~v4w`zBf+ zQgXABp4yp^kivkrT-x#39r@(9jSCarSHar%NmRg4mMM|PeEzT=bqX8#QgzY1WPEn!w%VM zyU%k=9HLu74H%bo3}jEfuAYovpB4|zAnQ9ZC*LtRCO2A(svqw z{rxQ(o=Wn_c7QIDw(EIXo@CD%t8ni(>c+)ucU_NA6Z#3p(}IiSv@{O8t=F31*GU2D z!#eYM`QzY(^@ zAcvE$J3~;AC7!GoP}2Li*<%|n%&Fc4u$YuYNJqblg2B)H-M1g5`;?Wc3Gk2=E8iv!EPCF4OQ@Y;qWWgNU8Tv!7@;!Fu&e0H7U_~9F2$Tu6L-Y z%JFf_7k{zvC5Iv|K~%Ly7^=%AD8cJq7Z--77}(N`XGjP6gxKGb1e2rdeU=3*ro+ue za~7~E9;V6fI|{<-7jEBIy!E$H?Zvv>B zz|WZKuHFT8>2D`gilkP3`Et&P?SaVB z58%hwg_Juf0kC?L&x_5cTsiiRV5|=S_MkT-BSR}QwJrThwFAs!p+>Rw4`UGT-=Tfy z%~gpw5Qn5WEb?xEu6(E7Ar(DU?#$nTr2ySRcypD@u;fcDM~M5@igtGchUo;>{%_bDpkeRwroGUzhth9d z7;ScB2DM}ak_c-!C#R1vqqL^{1N`=K@logI5h@r$JBpOg+l}`?#QE`V8 zJM#b)m2DTWu=UAF$3eaHuVDTHnvKo6%6nW>2#-3%C~Sgx!6yF1^fp!Lwc_1{5w z%P%$2<2e=|#7$}#uY{DWe*d1ur5W)q4uU`iNZncVdc|WB-M^?5>`_4z@%~%P`DgF2 zUGr$r)3hS&=>B;(2Te=?CG@J)h@(+@ZhnrpAe>DdTOGw zax1&-J}w`e<#pf>>hy#sCCpJruKU!_X#+(rI{GY=V-ajdc4uhI}Bq8V$gNH8`ig(SWQ3tx%-IC;SxMWN$t6uU0 zE99SPQ>#3`S&V>(5DJN6^dwhV0U0zNj3mUa*Dby6eFQhih~#=h&A+p8Fn>?wg6<6gd9pTL&N9zjtZBOZir@uj^6$H+2OB!gb-BCa+w@ z+dXWp7h4wpo)%^l0c<)rAOCn4B>mrY8RxRIP;SPNPf1Er-B<;mG|_LTvik_x1x{7( z{|3us z0S$mp#*&(Ki=p#6r9?V2^m6`tErF7R;dgJpI-7`J6C`_pvVXt73QTjb#JGc2K}+@~ zBrd2Bdi(*?m6C$uGDfP(>Uh=NO9tmYj(|ckRqsau)cya&C88^}Jk`7Y_`*bySMn{u zB@2)Lu1eo@O?8K>Z3ApJK&@#EsuFuHbwgzb(71s~6y$S&MSZ~n+TZc1^+tbcu^5h? zvokj??oiTPlJB1H=xDwfKOe|>2+mIYt`B&_cMXzr3gI<)HXkXzZF()KH8X7P9;oKI zIc<;cuXV}jOEfn$(NkLz%By9tz$^~us(iCAFA^AwmLkdtG9F#pP@n{UMBfH8o__j9TZ8B_~1&6c<0f9F>xO;-Ty9al74ek=$xlO+B_s+Rhuim-!s$SKrTK{ZVTUPh%*>jFDdQRgy znraPk>0zv?+>D~KFh>kZR}4V4!fF!JGo2o;T{^z;v#o0klC@S>ep%%3*gd?ImJp+D z{X#xsWqvd(#2+}a;@!uYhT+=mVs^-HS)yRb3mACUBVL$Kn5dM8vs2uAU(CUhscJB} zJe>b*ZoW9BdbzY}Ktv5L8Qvpl}Z+3nnI=)y5~*t`_bRg`LusHEh>I=7YS_`seG|iLW>0L zb)NJ?=-7~uH{S1FuoreIjwB+{V$5lksTw8S0dD3Ud@q8!^$6+>2L0ouN zgZ%M2GuzbdX+xaPqxvh%8jdKYHf{;=erKB`>w z+vtbQ*77RmoBc&+Db1p>pc^{=WYh~M8@G-hiGBS1Ma;}2O?E8TB~2W#p~G88!nknZ3G zm2a4VEVl1Z{5muw;!j=oa3^-$)Tg|4v?X>LY`=Ibm87MFCf)vDL-eULOJ5XD>J_8D zL8pi)bI;)N%;3txJ3MYqvz&)$h~(=Vv@Voehx$^f*ZOrDTshByOX{WdIpK-iLS&HA;Ge&|~e|T<0Pri<=bn3*5 zPikoO<1{&slp^f(of~z~3}?*`lOf3#)P82Zz%Z$)JEwaoMEPm~2$&0vP;v7wtBJ45 zHl^^Gm}VB+J6DV1C_PW-1!UbpjY)88;SKB|VM9sQ=NNlCyLmM{x>TIZ!5>twwl;>t zs;U_=;eYq+v-;mwN(BMTlrEXXeNpry?M@UurZq*Zm=q^Gv`+ zDFJ;il<})CsvtbEPiAm!+RC1>d7CcRY?8s2Vo)<{-|$yaa*X+a;xvvyLI_wS4akew z^Xl)d2hVwoqXc=|x?KY`O{L##y?<(T7kf3_g4TAPwQ=q*Bf1naWaF_gyabmAqF&5N@NM|FW6?JF|CnQZ-S}M~Z_Wpe6JpjG7Lh-O4Bdeg zk_=2UhcZ-@arHYpE0#BhoHa!l5R*Oi(9}TPy*(d)XRaAsyw}@P6IExIT>|{KAtkaI z;cSGNnC`c?vrt_ry$@*KCe*@$5<=eV2Bwk8pT?GRFyP8^{L^BTe-_r0+WW~83xnZ8 z#Wno&r>=uxpkwh{x}aDCM8Ns8kjz7S2X>6$g-r#F*G%TOV){3baPba)^g!XU5hC(z zY$&g<&7lc_&D%?cvVWif7csTye|w@T+6?ry7qGgK1Hu#12yr{y=a7Kl1Y+ii$++9v;FHVhsxnp>FAQ{FVe!zX zvEWx>zCichJ&d-o$@|%lMy2P^%uO7oQp(B!&I=M}Xe_DoqzF!Z|K5MUJIw;U%tm!9 z_A);&T4|!D(m_BwDCl@C7Dx6#^|34eLmS)BMK&Z{8T1nqzupa!7Cr(ht=wlriVOct1Hdwe6~QvU5^ZxdzBQ=U{7MgR?_U&tvPVF1JyCCoeinajL3#EI2-q6oW_m|>33q$)-a>wiza?zuI$h@1T5QxETD^V`#plpLkSHsB zzQJ>to=hO6nKA(Rz3$8T6(Y-%xt)+64Q9Li4Bh+S5R<=dLO!^oa<8opv)6zs55l6~ zG#x8T6d?}zZDy&b*C970)-$RwR?+{{@;es9sX;wLJTrC*xjMBv#uo~*y*m=fnl%A4 zrLz~B3jd#->xw)pZi2&R)@6=3BRSAj5kh28$pSIhj8>i$_awOug+|*drs%sudr3!K zHnKFzhN<{t^lgWrQQX-J#|Ca^h=4}>Sx#P^`ES|T`n}yLP34WZOHDKQV`(_pg9PS= z>BA%GXv0mafe4tp_ZRg@z1s<2H42hTyw~Zq zN$go%>~*)vqkJH0U}IL5C-P#6!vOBccr@>*IOSn!%fA5*zl~z;>0tvZF(b05OU#b{ zl)`!mQIcw_;%@Hg%4?{JtyjZ53%^l#&quM7CK~VZ&$9M-_Vu@e0R`kc?ux)&o26L? zNps4wo865A1eLEpnLB<|$o!xQ$EJfNDZ04AQUVuO@urhHMikZyDivg4i;F^60XGe! zvn8ITmmy&n=8MkfyG0XyyA&jTlGxu9Fb;Dbp1eJxY69Ms>pWEJj^vAU*-ByYLlzOL z!H1QsJlGGhg9ba~u=9&lPBuvMosDK_QJS(SkC!RR4us83rvfmL8MW6%YM9&_o`(H0KkUinZfuC4 z7!R}nN6D6lS@ldT`NnxiA^oOzf=q3CeuN6q=CKmDg*uLPneIS@$Mg$p4hc=6z2mOB zCnuFs$?u@;dfv3C{V;ZGcBP6yS*q|iG#F{zc_2ftwBadUlIR>qqS}y($e2Zp%1KOI zjZ3d*Uhd90ds>C2;&~K$KIMIWc#h*xzx#?NT$yIUxGtGWd99V+ecj$!!3f*1ujZ&? z)W<8g$B0C1sCUXs$g+?zRG^-%dwfwkGLC?u^5lF3O@5YUR_9h?-@KU=eiy+=pZ6n% z=7E!O74IG7`*C$lW9E*mxjQ1$rPW6-QYOu^eV>}}5##$M1Ts{38^nA_Yv(To8%*yP z{+&z)&jhMF+K2oTJ`=o7Tbjmc{?O zq^ipM)pH%*-&U}z^y1th%#OS8WpP@`EQu-~Yi8pDxV+})8g3-_dQ==I6||ezkRi6& zp(7I$+xx3vBM+d&m0L|Z8W2kngtFnMYODp)y2KD1MCdx>-SB{UG)XoHzx#+ngll; zs3?$H7n&;7)m{yFDx2(=)w3Kml}78)P^~^?77RlK=HPp>!Zis7`8+M(#H8nS)W585 zh&o!AgNhN6l2g*^{Dlz#(XnigNQA@3T6J9g<}4WAlHngbS4qp`p4oMK#?qImfF-v5u+HNex;7fxJb#cln2L_hU zAnE*D9h5leLeKs@{4zrNkFyi+xPNKsNV9U%8fVmivfOOV;Vu!M;~(rxtR5$mVKvW9 zQ-D`-LcJD+7&$IUwmdmHdf!gCHO!L`hT>pr%c{S(^W{sp1of`v!iN?+7H2R2aS$JP zUY(Ds%HJg)NP{)_U_qIeZ>-gFE#MSC{lybbk_DQM+jo8{L0iL?hnZ#712&ES-7uTw zm(}L$KOWk$rr3FvtDNah}(DOu@ZQ`jeS==_Y!5wAVeOLfJ-fXfFz3Mq!lXehu_CL&E(oQTX)5 z>!oy2YAOVj2?+p{U|60r6SO4FAY0s-?|NNp6 zRIoUopajTqZ%wxxizE|~Y*PuJ%I`zHhzR+I6=kt96405e4F+39eZKK=l;V2n_E*CZ zXjKi>>UYUkS>p&GbdM``1`fCk>IT({EkD^LCHRkIrdFAJF3wa(6O*IXkN=Yv%;?Yhm5; zeZ@<+zxDCdc_3FS4J8OCr;~NqmQ798UZlAl@nHU*hSl%cl3)O;APNv)G(C<|uC;aH zS#x3{#7Jb}T62O1va(_a;$(7G;@i8*TJ37@J~O@F-f3krNS&*Am`FVbSz{?Z{0dbV zC8?nJ%cn%*r~l@FdaFTshmw+#f|K+0yB)>x$bDvZhjh9|+Y28+;(KkBc!lWN2!N(JzKVXl7{% z=LHU3e}4&n;LlARQ+!YdbVcvi)cEH4F-<-m>6*>3rt`>XV9QSuA5@2Yc*v7Yo|Ot^ zehl!vsAeZ|1xa;2+MCVu-IG6%|37sq_LgoxtpmOIA;*(vek$mMQ_{n zt+Y%%YXy){SZW~C$aDffX>0dlUwD!F^hl!oN9R>HH{A~*+v>TPC((?`t4n{ zW5&^yh2`e1#nTgP{mN)?>T85Gjc=9ms%R*RHJLuy4dy#KOib2Lqp$pcbYD)%zEsu zi7ZSr?jVoPH|g+{_!-Vd8FmVP;#kSbF=9BPR!0DEkUHPVOTBV=W{E4euOwxWYqf~h zFB1?AL(k4j$Bc|?s_nBgJW%t}35VTX+Zp(SjN|u&qSm zwX|4t0rxw~CP%nLd1y*-COv@WQDNGcnu_UuFxQZKn4CA()O`2Zo|aij zxLHduqFKDTVrfF;s4I5&(19#oEsEj##dBa z>|bApg16v|znnRU8+N%=w2S$`)>%9pI$5hOwjO~D{O-j2Irp61ihXciS!&%2*Y+GZ z-}zUs8Eedv^>zEOi*=b^d!(|13qxq3<>A~+-8E;%LYlJ>pf-7VfQ)316(ww8qoF3| zFo;I{lV6f^-Zh=w{J4Qeu4Evd@OsaDiBT*qi>@&mB>d+NHFI~1f4(Q%l!a`-$Kfl{ zA*3+%!a+#ZY{Sxm>FA3xkg8Z~y5 zuF+ru{_dX*hMYBYL`;Sl{O-m1#ode=L(ueb8plOS^!V*oE7}F+Q1?pSy}{2Q>kd3Bc~5Aut4becNX!1w1O`CNOG zb@BugIWMc_MPyN>bdX+vRc@_|fuE9`AZ2K3Dk&l&BBfwpCWV={e56=bOmAyu70}?H zgXZ6^^96Kc?F%|t&+KS$v~;vbK5Q8M$1DD}QD1i7qJvmDSQGH;MrOredH>YZR*p+d zbUWzF+T2{4Xb3Gny!wODh0!J+2X#M;|s@TzLqPjm)faD=G?pMxcd= zuGy#q{%u??@@T1PacPQOAg{5}T@)^)s;WYtu@cnjtzcoH*RBWE%&%v5-!d^n+uGaX zaZ&dSEosThqCnKt)%ztR$H(PJj+XcKAH8Am!ll)l8QEB%y@qStwXo^+P3Em zLcGQ)!?c_2-tU)I*VI_5w1i4gguTXFUE4D!<%sNMms!BqStH0XJ@5O-=(J2L}U>U~+ssBbulmtpE^sTN?+r$F7mpL)8a7 zfg8LH4jrIP^ZA9So=c&&#|h1$97`0DUdthI9(HJ|skXfED+tW5nsfTX;4b7KEzXsc>3VvaW@$*`t0{>tZy zm8v`iYA%E5evn}SGzl4R?dBws(Fjf+1G%8Q{zGWcI<~@~^A3()f_~54ZFdahxcksl z*)j|Hlg~6Qp0@h($#@!0#VJh!x7u2FJw3>b1gA8r-rB7h`Mqv=+G)ulYnmWw3Og?Ip0A-wYVDfWFpW zP#=LQO^=T|0>j2bzqw5FtgIA&UHKXvm)-HfmUXVZBwh-XVKLz5YLH4~wjVC`EN5m} ze;erM*LAn01&{Y=Rah99mj^D-)}A!ayXNfdxxTrZs_A8eogK6ixwi^%VwB)Qkv;OP zw#4Yyjp$uhwcV7C=S(2O4}JlHfq1FdsHoHEyzwyn8xD2~wenXAxaO0)Y^hpHZER-j zt_mZsTF@RE93EJ#u>9UK>%GO?4N_#dy}Ai3o|rb;+pFMx*OV=tR^>X)A8G5#!U8Y21iM3)Z}uK*HHzhszq;wZzPcS5P_?D-m&HgW5Wewy>o#*0 zIA3$GrLA4k0ag_a*GpwYW$6Qh%LPORi3|3hYhBv)P9Vn|m(?>WK9h$Kt5#MynuE#WygL)Y}9d+ZnR!bDum0c~pOn@_V7!jjhw&9Nf!sj3h zaI)}UkevVj4kY(jpWZLFSOVMtFYg`Cs4C)CC^N?>Lx~AlF*JjQtXjPeZHi1;&1L|3 z>3VU`$G!gn`+obX_*de81NB|=e$;N>q*Q+R`DSIUNw}m+G{g$x1;Cj$IeYs*YIP~T zVSF?Me41 z&6Ct;PqKdxCFOe~UdqP4PX0+~neC$gZHLm-RE(-=IDDn7sCka!LO6PO= z%((C-2Dw?)lA)CR{WKD>oS;-9+*i*w5c%TRa4K88fje2AA3GO_L~mS(ZaobL=_Po0QG@7i$96%Z0|N# zUr6igV`RYyuh5wEse`){D^LMJT48sM@R{HlR~vI_R=+X`$%)VRArMK)f|@0dxTh9@ zJvJQ@$nBGDit;?O(#e?gRW*P$O6Jp_0^2}Z$AiXB4n(lL)`2HP{04rpF>Z9E=ebw- zry=OZ(V2jA;I;H@#}Qz@jmM$;JR%W*Mw|pGiZ1RvOUO z5g%0-XKFliEzO=os+&X0shKC}#WGRj1O!K4I5&9)4gkqyKTh%cpK?7~7O@c2Bn1Jf zRUs0zM{zRr4?^D2@oF#-5U3hb+;pgeKc$F5LCVzLF8&DR34{UO42p=YLO8yOWF1Sf zn-XU=?;a+Bw-W^dpm~tdlU|#AaK5jaH#u9AwsEl>lW+>njU;LE*>{iV8*;HfRQP;{ z$;GXBX7CG5MM8AJ7ZV51763El<#M&zGY?uLNbMr@yIYmV&Nm1?(3khxC+>nrv98re1KoQc>Q7Esn zU&M|UV(^#jzdk-EH9W}59_lJ`2s^qb zr>6ntMWCsPqgXMfGHctm;mB=tH-4jo*Gi>zWzLg{HTh( z#^=MYU%f)73vXvCE-sckM(x3gg@XD15}%DbKm}C3tan<`Fcig&>z_2L5DUd;<8q_+ z6=YkrG8{;D-)|w6cyaPW?|izt2qKU%>hWNX2Z29obuU~oS@F(aOqoXmkN$7Y`RW@F z98~MHB@CpaQxtSVscI~Y7R_mBa0QgGvUVC0L_S+aRz`xBR^f{S?8ek;nXCK_l~?$8 zIcCX@DR`J~6NO{H1&mxxL;Ya$S`u6kgG>=5P2gr&0E|`12IV!dfY4jV|KGTtKb2xp~53cp+tQUg zjN3u}rXOhsXAR0JAX3QZ@%Xz;I^QBywPpo;$_mSW^(_#w_K*{2F|sph|Du||WyxK$ zFe#LkYK{fv0XEp)}-TB+=r8? z7iM6cz}zP{*bl~hw?~tY>+2|wj5cYP&+HL|pF-URGgWc8z2c3=QF3|TbR_N;9v+v} zuyI-fI#feAIXQzUN)3loWbK+iMO;2E)~IuuOWWGox@kzs>9x_66rUfTjZICZvXbAm zkop@iz%mW_#y98GXy+Dk9v^AR+uHK*xI!3Lts&RO_(Q)}FM4hliVfxZFQHxOg`k z2de*D9HzF#ts@7N?=LpVJE=4@G!T+?V6AVNKkQ5DT}1{bB{6;_za$PPrG-vnw&yMj zPl~$lK5BudM9I%9=JPz1($)Pn$1w%n8vlC)^oX;!cc7-}DengUajDI}(!tw)b!OC5 znE??IgTS7jl=nQvk^i^V_YY)a>&M2PkLTSO6HzoE@Dvx7OG8nVpMM5Xpiaokn4Fy*xV(!||5T_^qfY>3JjfSsJ4|-1tWcO?9*XrIie?o;b4X`fG!Z0t04MRjk)0 zbm+sjn4v5rQEZqf(?1yPs|@agg`8ilkmjT>Y4W7VWVl^z4pd(Z4J-sTw(agW_N|}k zk;_QF1C}(yfhoCbU6OCyC4c)t*Q8L47BgllPd1O0RlI~AkKcJgz|*!jF~7M={Fjzs zSF?DGQ4_c0lf}6GV=*)wlQ*YioMmLV{3U=Eqh687V1Eb-vFbtnBRg+@-QM zH|B4`E{~ddwLLF0KybDFqpbUphq)DVQ4W!`u@);RESMNw1@KifqwRV;1APPAySwRf zd0?7e`T-OZ1LEXzJF=q&8JU}_H=5>ed)L-ZQ{Uyc$n!t}%RDp76Ca-lFc*kdK>?n% zs{*L!`R6fIe98haXxbj9P3v?DLIeq7k0d7Oh=zunZOM!6N6V9nds?ol`*b#N!c?H& zIT?znzP^xzja+Mw0Axge=f!ltJN!C)Kjb?nJ`0O22MUDe8Ua88S~Oj4la6& zW^i$GX6Iy4llOQB#o+tZ_@dY!z=D4&g7Gl1u;458JetQ_f`%|y5^`%6WMtfb*cpg% zMIa(;7?PoiBWa@=-mybCi$eI~qQMs+x<`;YGCN6U?_DhO=A8wm5Pz5xRIhr|Msbh6 z`J%o3UU7kqSUf|x@%lHpHu44nIFcbv>1gXU*D|h5eg@h^p1A>GKwgl(`TZQCso9ue zlpdBAh5;Y_j$*H@J4J%@(pR$2`iQ|#9Eqtiw?nX@2enbRMn@D9(bU&N&+p7c&r?!f zSC#V0H&Z0%&CTAqE>+C8CKyk~t-Re~7yCVhYwyC}Ke!crUKAQB%dJA^?a|Qm-!_-= z;;(LRPw>DA+sNrT)||1_)z#(I=8kkth05fptEu83ZN5ofC!?Y?7g{EpWt*I=s$yH! zgic$Yo9i>IfbtUDIp9l9akUf)4Xs}u9VI@m0C?Ex>1n`3d{mUA<+J`GM;}i&v&sp$ z0qeRV6!cYJ$Jjht=5&dmV3#N~i^DX}YjZt4K`jf5_a4PFW~=F7MayMUNTyv?m#5c+ ze9E2he~s;o@)ckAwO5k*5&Y7?_p=-B9sX_e`vapaIOmULk(6KA3hCT(O*!7ykXVRo zrbVSFs;h%8(4g^}u90P0YAk{*{6^|Cc%;oB@jgeE6_if73PGPki={O={iY_Q5bFCA zub%gIc6KP1A`?C)ZIcTe*dpc|Y4ssm7ZB(*q}0v|g@LaSUy3eceI zolaQ(lCR(rD}&B(gfji+ZY(e-)8!{K#c^>nUq`t?5s~KHMID8npS?SYO5OHWO6$`S zG#|dnDU=t9Z*>u!oR|>TT%MeroPN%azbgJtE;BjGAN!~F!m*G_D00~Nmg{E1fP7at4<2@1Y-rx1Vdk-ENd|4~eo z_C;h&!pitI!X046lJ7N+9GC8SeoJZCBA&_fURnJ@dX{bS8-;2}5GLC*yZc?uW ze}T}_mjY>n*oR78HE;j7Wsyb1U$QJ;Sn9>ejgP$b!o?uXMi$D)pqt46TXLaJ-yjze zve=lqsdVknWHVpS&E2rW8pPyJZV!z?iVc}ytIT&60X)hIHC4&hAD12jY1_JN40@^( z2C9-42TCN!ox9nxD#p-A`XIvP-jUn|NZMg~AYNy_!W1MowIuBDL4Ij| z@cux<6%^snh=1sE7r$Ltaz;u_g1d zj+FPZ#U+++k0S}`=U(=$juBLWtQgmu?z9sSQIcj7|PViNRB;c$XDxO2uaTF!B z8j*Gt2I+F2L2%&Yd(*O|IcZ7G!&8)*G_ZCKlb8}^@E)Le5d0*&>h0|R0LUIn$ET(! zTaV?cgB)9OGJ+KuMf)3W=2QyI z6-?JLj|4vVm;~&(sKRm*xCtfXR zKc^01xAT1s`QS~q?*zLbB@{Y*u(OiK$E*inCeMeRThHppgvewvu4!~h*`sUFlc}jv zjtz=9g7wY(Eltg+1TTz@&*vYZq7_G8kqUFWe%9O&tV%2U+!R{h(e2xMD%UZMSd912 zqn)1oYasFAO`(|0l&-!85PLwZc$npXrC_)MJ&J8kD5~pDCs#(GuR4Nf&;pjR`2i8S z`qVDdnNWmPuU4Eq&Ki_JSg*>%ok||w_LuQ2Ltip9lrU4%qup(MKdv0WXhC`T2WM3@ zayPybaz-o9reAZV^kclgTRgTfe85 zxW+s`QkXn0R35gXDw7v6fwv^amoYbQ(#J-=Yq(rWnKx0FS(!ng2xe87JGDh&S^S83iQGAyVNOt7nzBO&_{kx&lgO2NOrSVr-!%hxb)nvaPZ z=WPmqlpgj9mt(BVO>5zQO!Krf+*BILT`&7OM56@{>lKvWRZxRvZp?A?St@N^-(0uW zYUnMq>ZydVgphnv8L{o5-Qx%m4kSQ&K(?P6uQdJdPXhr8R@!Nb(p&pPp7go9?Q?zENb&BnUR)R;=RP zn`F`OK2SiTC=D+(x!KGuud0&Y3Z6;arPfO%c6IfKdvX8JSzhC~z1W;xqh;?tZa+Ua z+ubEB=^mFAQ>7-7T~NV7&P7Ge^#TG;dDet2pCaNgy?O~bK0YI%m)}5!4|s{0{wXUA zcg^a1j0(X&Q|fhW4Hc`TbZ^eWY;`6{qYN$3F^C6PpO0ic)TdttL6Fh}7Hgjmh1TCFVG$xeZzp%vd|2|VsEFb) z4N7aNDFWAeu@lMg3qY&H8k$M6T?L6X53O{~&xqTDqb)uy{-jO=GdJ_O z_J@jK$921jU|X@Z+561jr_Yz~JT5{Mqq<=@C8~QH({~GMItY7D0OP)(N!y`R&z+bu zSD|&aTsbfn*1}7%Y+Sz9N(T})@XLX`dYrcBL}5HH z|3I~*+S40$GLHnXtg0L92L8|xuVwg0dCIVUKHl*B{)7~Qr(9Pw6oK3ELQ2d(`X@a* zd-W7MQ0{3h7tT}l1_HhiTA;P3l_f_;oKF%U-nVct$d(4|o;O*6c~lU$`_7!KEYQuu z-oc?uSZsG^XE31#0s+kiuwKFkNTm-mu~S9I$Eu4dPyZVI6j&8?i`s)03$?zniHb;1 zZ$XPKxm)>>uer%H^7PaO^JRJ8J2W~Cwr8TDk%_G*XD6fMZIKBX%I^5=?^tR>5CMDGSnf%Ru4e8o;_Gv6CvD6S(& zcx}z^?L>Res6@t8bk$xGHk7!!WoDV)ZSe9O^PLbb{p?=b79vn=xvyE=L^H|)ELo_U zK1Fn;+FnVC!*D~fixP({hkxG}H?h{zqj7n9e6D|R%qPR>M~)DMDJxse7M9|2&_E+$ z67P5YDIiici0zK?-u_58dNfXC$^j(R-qzCM-NT=QOBz#p7( z;RfMQWY7(s;~2xDl#&56-?dCs_GWcR8bKn9ea9D1F%0D3?!CM`^FZft$6dK^vtN&T-${`}c+VtTR+>E*Uvkz&F0UERTD@sLcJIW29`((Kinl;Y=*W%qmE zeH3f?bhsDRh^gA*IpaVD4RE#Vw1fGMY;WD2ouKCwHSetM z9=@(!icH^KZTS*DHWJluHZdU6WRak__ACSu+6>e1=3naD-XJO%i`+w)qIoqCrm}J? zFOKdxKF^ld78V0$^DOH<&JOS@edP%x-A(z~&hv++kv0f`M5Nm6bU8-t-n&cEVN&`N&j{oz=6l#}mzsU~U zK~G`?8B`MqEu;YBS&lC_+Rl%BozA zH+In;pddu3@Ot{`m@nb26{Tor=4P87x?BJTLLHJ_(0_)v@^}bG=<0lX!4VO@U@p}x zL?osH3*Iu6#v@JJQ0Lls`>UI;*<)^Q4ijN=p>4HpOIzdgh8sN)1_J72k#%jpMK@4P zZQEUL^X0y^G04s~l#v-C%Ni0RL50_HK0kLpP2*r*>v8(1}eaG&&vzul^?fYW~vXmuaj&ANC9g>z%h`M{G*{Ev4WX8=CRXRPLQXBb!v6<@K{1w_FNqK$p76J z6CMWC*=TZJOPp9CgN#f~U0iB=YBafhI>}n(d2F`6&!2FA!(~U*@|YK_fDJw%bg|J| zdSv)u&5iGIcO$qvj6hLBpq`tj#{9mjPPLEhV-X#ly60n7e!1X|zwAGz;BfW3WotNP zXU8c28z73!)jctq`lTX3=mw_z#p0qS(h7J6s5Y$Hm)UUCke62j$94EG+?}EGaDmIy%Xy^Vi$~m{ea3 zrMtV+$H$M0yRKA)mcFK{ln6Yfq_cBf$ADNn-s`Ud$IB5yPha@`MYXLJBO@cIo(aHc zq;vb79b;f~G&I!Fufii&(`7l_G0|~1*Y>)Z*omWh?d_|20|PlMHB2om%B!nC-IPTg zJ)y;4gP)#tyXW>7@lSe-!wzJ1b#=s()5GPasKms=4x)m{n;NU1(6^TpQwne}p?Vdw zkj$GKZcR-?eSL4a8-GonYOpo?_(NhWN<_h||p<8M292KY8`Rm@hnoxfO zBaXyiD~YE^Ov&;*<9#dIlU@u0nSli*>Lz9aehP@6(=SRj+p)Z+dAgT)f-o8S>3|i) zt0qiaOiWDcG0Ndz0oaJuuO}H9@18i>7@%4}v`??eIXyY)3-$hK@e0D{;WhfA0u7rz z89Jc4ch>{;+aJWm{xN0L$iG74v%-p-3AZvkt-$VEJJ^vcU|1b4s|L;X^A>WAw zhHtn8C{CRkDa*)!^lNms6AR*Ty>q+2Uzo#FomB0nYhnlsNwd7pEH8gHUqpf=6l3l& zwO_X~ZU|`&ToWtNtotrz^eT+!jmF=BJQD_MXM0wJBmy`{<(3oNSQt|u^Edxa(Zp*Y z0ULg+skyngw^UhOHrU_a8L1OeI!OAjL*WKWKo`-nSu-FLp{yrsdAK9(!tPySJg$A0 z)J^dBQ-0<^|5c>@Ge5*W|AVZL6K;xBLvs;?sO1$kfaHb-=)+X`*w|TRbkFT2HxJLP zYaE(C3p?k;?Cj)7Pk?9!fY4%MVvMPJ9gmhQEKQ>pJjP=gqz1tmj8nQa1tleM3nDl6 z>z$}>2JLzxjmKYNNkxT4czAexE}j`xAqNZ2h-PL7_4W1CG<`=)byye#47Wo1k;5s;8Hc;o{^ku#%((|DqIL`MA7JonxnW^l|EHa?!Dg=vc337Z=%b zSCKyLDX#X?hzZ5qDny#SDz9;_Bi-3JVB!8!Sd>EG{c~|)Avq<%`g+V4w9oyyR}44* zr*FwKUns3>?az`%11to1lQ6_29TP)PTMTb^ucDlp#A4|!0}X+K|8WPwKlbLs_;r#2 z!M9#-vLD0&=``o(vo|+pD6%ES<3 z)c+wQBv8r4cyM4~y5*EUL=+lA9kcs;8?;*&ZxkkpFnl@~>6QqdciTP~Ja1Bi*#9LH zV5n{nA1SRnO(S)fQAPv;2|F8y1lG^HshW=lpABDDhucI8M>qkA2m7KiWVm`ZCAMp&E`xF_MV=eS$7n|AjhtNjpo6!#Bbg5=5x`^Gz8U8Jg~D z<D68<-gUMn< z)vH`Wa^h;Nkdg-9V6k>t`aBk=JihE*rt9Qhg1V8d+8qb3vQ0!17)u~U+jq`nCVe59 zly@HIC!IMbzk$;6ufuKhEuDU%#py@?ix!U()64k@!kfgvsO$i(gaAFpS2RjZ%pR)- z8=xf7m`bx=%(gvz+Hlwb9$%^5b>Fcui*QMauqp^o&MzA5xHauI{-yKlg+75Yfs09& zu1+pU)ydv;fh2!2KfbkWIxYSpClFm#H3%#dR^5ZEEfO%fYd4B|&O-~&r6}aDB4cBx zBC{CK`Z-FpW4QVBYX1(BiOI!9*JVe!vfkPGEJKNNQ%h{dl`gL637Z0!j0sl{&Ijg% z#)lL~5e)pWbv`XEeGA>Zb$+!V`$p)?wB7L>sMd}T^1>C$B#K0XDK$Db1GBQrzeN5z zn=cS>L<-{7&V-DQC9Kh#%;S3V-c7^ZJwF+B!kbI`N6HkT2wL#kPy%T#Ew3(C`1 zkAK}ifBxK#J4N4YVPXOX0!0cf7J^K|UhqHCz8!`j@&t{k$YO(o5P)lrj!GHas5UV* z<>9WAdXZ+LYn+vrSLfEbTf(9#eDUmD6iA zwU@TGr)9)zchI8fX?yGYkqHreR)73*&yjWgdE))3FZ0ND%DP1k#X&K**{-fw6`2n* z^)@?#A3l_2XJ>n7j01b3D=N&&=EwZ0)6FCBn5X2Pn4P^jFl!r_tJQ4xGqW~cG^5_t zX(*X3&Rhoqk%9LCv3tQA{B5$;*Sv_Bog#{@{v&1W3y3bG8CLwp)Rzu_Sc4i}r)*uusr1T&OeUs=PtZylH4=-mTamU(HCT@Q&rlokPMM<4MNgkshdBE1(P01!rcC{X~q4AV0` z1b43;ELK&>=S6MPWUa-_dFJb;#ipe>?shPh#en4K_VSPwA3UnT$)A08MUuBfPhgHTe& z^#vh(#^Pk)P`1fRN`fm3Pl(XcR;D};QTM!6J!=6;YKI`8GCkYBB_<^W1tXZ79cHPhkxVZ0z-5 zzE~M)weldxw}HYWJ9~Rc@rkM`Dsw!X^|cq(KHZy1PcES9{gd}5=jtK&pv>X8I(aqo zB@g8{2%~@+0r99&K3R@iEAKuB_re&Bqxb_~FD3*WX6Wyi7#yH`iy0IZ#lqyVOT}6H zPsoV$5<{g)8BI0ebq93M`Pq55uk{8YibA(7ujufoWoKn2!#+8Mt;g;g z9weuiflaM)DFv>SOnJ9rwr#hkmJl4i&?6>er6ptCFPl$FNa&Az7M?*C)LqeHRFB9& zaGNCN{I;!a>-6$)?$2m89XK>0-T@}`V75uf=BmB4#sKRmyj8DE6b1%_b%315eQizF z?EnQaj{o0mfNb;NnHT6M{=iP(Gc2zcDnvz4GVvgfbX%GHKzRO9Mdgd31r(&iO+~i* zKO2>f6QXWO%Hth5*CGSZBe8p|s#{v#?Isa+`AVY_pr;oV3DL50aG;dV1GRMB*DCwU z7?rtd_NVUI7Dp^cYU*kR3n)UaR#{`Q=B`{4=}zzF=jXGUMTmZ1k_(IHzm!x|+}Myr zNwf7_yP4e0r)D$jrCuTq6i(!FJ;c%WZ24V><906^pP2YzPzy=_Kb}D%|9fU}sZ-HC zwruS6DBS6&#I{q`McVFE&I_1tP)jpoW4Gv0y)Gum^pR(`{I`Y!s$SLt;&s&r?@Euh z6Wqmy!TE3G#T>V@o$1@q)Y-F6N1Mj!#qp%KKMMw;VyQp1<}!8UsL#&mntsA?`Z)0z zEk^B4TKeON$7OGr-~DKfM{i=A2-r_qut{v{5?~HyXXXxPt1>Q0{pSgUzP`$X@RI79unraPx3?2d!vDR6iJNX@vrGEVFl|eZ~drY$nR_ zBa&jMym2kAo2QG5Q{T%H=D#Lfe{Rgn%L~nlrQ28Q-|Y&Cl&&6{th=>p03*yI!+5&LV!Mdu(v9z)r zTZhU)$O-)I$0fznAL(-D& zUrMhpC=-mW#Jd<}4|1Q+V9RVva)b!TYCi&&^WtzR&w@@hhNsfe3e&LUNU8i39*4|Mp730dBYbXMKQi} z_CPU=4hxD<{Yd@c9h@q>!m=6OyAC9FG&sY&q#r^w=W9eYTE6)|%)bBm@t0@B2LC8RH)JeGivxN*Z)jSTGG{LC|NAS*Oi_1@fzPG_+c#D7TQDnyIA9)$KFd z;=%K}2AGn^FRepYuaom8>tUjQ3Agu+^->$t|Ej?= z{Gd40EdE4ZzMqxMF!RHQ0-HUj#QZB}1{7khjBoiIj8sRjysYi?vnboIb3D|r)SiD+^Cjpo;Q;g}xZw}iQN=3V-_rFLTk$MM(+z(24@{5G-5RAF8 z%FA(?_R}D*_0){aYyFV4Btr@8@v_(w;ytg1={G?yPU!-F`EbAY4I*%2X@V ztn=P!H7_>#p2gtl6L;8DheAlBOdEJrlPu&0Pazbx-c&r*+)c$Q$hq7RyW8hP9BFQ9 zb2Aqzo2olsV7;rSb$30H-qcDfzz2kpkoW!RJ~cKs12(g+S{fQ54FE{M!z6OgI#_b3 zt!)r$+Az5oK;(F*f_9YeL^p~1*dMEGP~Rm#xpZ+pGrQ*LppHHm0ri8u)0a$a_ZptI z522w1dFhL{-d=Y>fw%R9kgl!d*)F?)rij9kk8WMc7_iH^PKY1HWo50VL&n=w=7!%y zeL~sA)Z=2(DwPX%P?M2WTSGw(=WY{`c^5sl`#ibd#qk17uN`^IFnSOz^`A|meBH4C zANK6~Xx1|UikR+uD8C+lu1~p{xN(9ur<<%wi)+6(!7OxWhz`@E?^7;MH3B4oVIr=` zSLbdfnRubGRt|d@Gbt(Y2KEV)Zq53Mov&Knhyr5ztH}{CyAo$Gt;P6LnwqYzu5-o9 zk~bGVm)oQMp03dE6KmE=W35=&TH8AZ)8(iyPEUb}IwrvUK61LCur;caqLr6(NG>*= zv}a!gm3zKE3j3Lqmrwg(+573?W)rx9^ms={`TZ77=m_Bgt+r zby@ZV6Zmc6;Wbc5n)M|yI`djC9rS^QQd^6E0Qd4b3K3E2^E|z{l%S-noQsj4@xf~V z4LUAWT9O3>pf-`s>LVldEdY~ukE~%KszzvG;XKDsG^B~?2Gi)iFhqa)1o{}v5D>j6 zX{exu)y&|Iq}+IQt$nU|^2OV3(UR7COUio5`Q~nE%k%B=3OmF_kqjj` zrdhO#1wZ8B?z}c-=?G3{SIROr_8<$=@(SlTCVjdIk-ufU216VM%(v?ZBix(vU&F83 z1WDX+LMxo65si3Q$?i+a=mkNU1NFGeI)GKNw0)C^y~$5}Xu?}KM&Q)lIY!0nZ*&|uOHVYo!+ zdH}rm7E`K_{9FO2hxL!(Tpr?0L!MI~3P~toTNg9SWB=@I2?#FhrM@yg0luwHgV-(4 z$?*8`G)w51 zm@F-90o0OhwhlVWk%y=dh@UVT0j79;*5Bq8yIDUJM3MObRdB{>Yxyd_udkAmNmg-i zc9zR)#%Y;O0W=r7GB3_dOuk=*AHqYl`RXPYHGJ>;az_9&J$8L_6(BfHfXxq7os4kC z#T94>Pe3)McXpfy`Mth>1lm#h{JxwteBfYAHtu_hh=_uRBk>HW*5itt^>e_VhMVP8 zh$`gw?(+3fwqlV^Z9-by3}B&Uj`Bzl+UYkv#iT)>T*brNViOe6i-@MhP`mf`p*cYD5HV0q3hQ$>u^-*7cp2y zcUqSz{cuFYV}XYH;JmwdwMH+{#RH5ANOV+G)MC*4&qEI1`t@XGcS^PrGTt^s_HQD$ z|L01&^125!P>hTItLyNo%Y{$i%Xas7V4lUi+o8_~w~$x&(QY zp5DoIKfxp@Gj+968c8~wt8M!S!S*vP`UaT`?2FD_R|(1hl@*h>ddJ$ zYUih?DynMWMJW`do;UI_K%TrKD3#A!=U5eNaAp!AS4EPDl9IGWs8|sTV7E`lBo!9f z;Jjk#n;PqvF`Vx{=y`Qna(b$*t;IGHtw_Yz$I0U5JBkB2>^CPd|DF|;O2N#e&0{*l zu)IrwVZ~W_4qjv{G~N$u>)Ssim3*KwJL-=HZh#!yb0-;p+q_Tn_l}TKdOuLP_H_5~ zpDmJ=IOJEJqojME2$hHw>Xg~8B{_eynrNylZ7fu4c0+k#M0WI`;q=udPb_PI%dvp z*VhP6ymtrQlEJ-Wqn(kPWyod&y1$p!S~*!Pe-r`owV>~HKvG|t&rOG_tD+r7Fct>q z(q^-_QBh;bl0P^DhhOq&;^|v^_`WB?$9FL6_Z(>LRaZ<0P)~LabvloON-z&J>?})Y z7L74X%)t=qbxW+=`7v;yf_Gqr_9LYuW1_TP4vNZLbqf-EW7t@{f!Be(wz-Re!P(v2 zF0ZJsuNFqN>0$G(Bqqzh1i zn%dgn#+mVH_tnE!%cX|J%PU5yDY^iWgnFNqH4Yf_v2)a1G&kF^vMmo1lJiw%uB6l! zY;4O6dbK*+Y03Bm4?y}MB}?wgzcxBFB&_2N#ARm$3xE$u)!x47b5}!dXvn4+8h2{z zzM&>2AyIpnmERXu=W2@%d)zr{DjEhh#(aj$s~`l(W@n)gPfaq+=8LwzvyURozuu>j z4~tYi`373Ga;ZGgUJft8q+?EU)(^wKY7h+kEM;enzG@eagAuO81S9iOsln>%l2$RuhZwzBV|C z|E4_2s>whdYHDM}W!v)Q!TTbxc*)fCJ1lG@W-7Dh3yfeB^8*CPbmCSB2^N{GRdQsd zSJwPR+cRTKW$;pFcYK)`K-+MjG&el0del(k>CtqzK+{rE!VtHx2~H>q$y7dP9ikU} zKj5-2GvWi2bE@L7VIahmZP35`FQ+~i2ZM-02qamQT`IvcnFT&){cnsvw7-i0TejH{ z)A#P4e(8tr6-tODFSe@7yb%D@y>Fp|I7*hA$Vuf41l$!;xh1G$f}5$Mi;k~uchs5F zdEIq(cW%yYv^N;t1fAyGa+^ee4EL_i&UM-UNy(XRYAR?3)}Dt~CCDA!FoU}Iexb3T zPWHajkWlc_4hTDdN=PXOO-4axuFMMlV3?+egtxdTqtSNzG!ZN0G`SMgDlU6dOceyG zM$)ShIbOAObw=MZCBjiKd{Eh|ih&0Y*8MV>q(&True78jJjC*6o?^@PY7U!|y(gyy7&I7Ia zfkmvKN=Ve>_{GupxXk`uqHfS{x3#s!U%VKD9%jGp%7AG*^r2F6kYo+>p6SNy6zL4S zy1oi6*mzgNcYn`L?}!#Zt=QA--SLzl_4MJzW^J6Bw)Sj>H{XiUH@Eru z{WQH^wFcgYKq{r)-`o4rI?%x=Slj#iwZ1gp%D-Qp*gcqA+M)}3SB^C^^r|1)^R zO_H3v1B|D{<`wEb?|pH$z|z&M_$seU7Fngw@$@MJ?r+n7b6y4^|0EB*f;_`t8Z zxmV|&=^Pwm2Q&AQW*(Mcpio7@{4EYP{Y7FS@AsqRbb>j(qgMMo_a0EabH9EmF02|=Xfg6f?1 zRSbP>UAYE>jQK6)4$BiAJLOZ}9XE-F5Mn)dVtBD%E1sCB-FVV$1}ZL)80-2zusY@N z1GMxS1L4U75f9dLci+AQ13q|o7#LCfaL@&v0JBKa(y)n~(-R=#a*B$BzLF^OHP6vG zIH%g%Rnu+0f&jd*0DL;)l2V)=7KoNwC)>YZ;ds|>WquxFA<-9#D0!MFSD2S4uOL_N zzM|#m7(*U&2FMO4=8BS%3#cehogEx$UX0AlXnjt1eb`S0xNq)3t<#a0%IY0!GZ|B% zEg_1ew)UsV`T40S4UGg69D> zi2MEdwb742VbZBO^PE*h_|(+Yhy7X6IjPO{eRM*${ee9MJXy9eM$Ik0-69FV!q@ky zKsi!7G9tAdCI5**o@b&F=CfQknkO{u`8GP=s zo=UyL>uaIkg-N+xPVIq&OX_VxW(-nj`|>+&B&6day~Z!`@$@{QG0TquUOjzcbhK>c zpa~i@Yn~#rzhtL@Qc+Q(6p*U+-pM9>?xlpXUzY#9`m;s?k85*!)7|OR(}9n}r^A_*4=u(m#dpw|7f`+-2L9;m8+|myY{h53i-?mn zZSBA{-S=po8Rkm{faMd^wN)Gp@Ar}?JLD7i4UbiF)n5tJr`ZWUB)Em>cRX7OSOog?lg`pi4k&M<&$5DBOE8Tl!dODfAw}0UFzPDdFdr&R?d~swhKdb%g z=oS`YMVMx0c}e zTBQk98a~X}kCKulKsuqhvA}@#Gw97mrJD3TnxTyQRG*yU>RJ)VYB$83H^>k zSPqog-J4q-0FbAG$oF0%-@)k})cclO{$(6KSX4wmW9#FcNPVO-^_H~5ks9S~$JYUv zGHkeE+0;Ck8lXi~?aII|07PTtSlFvn0zns1xITFvY@94vgdUnxe7rkbJ1`(iz+LKr zcPL3)@QD~Gl*7)e$=xb3oSYbTxH$CjIeKS=-_uoB)zd4ZLNc4n4oY!R@A-_oI!b*; zdd4UZ$Mn)#X5beCV(C-3j}iyI$FMQ&+nbx0S9Q#7)Kemlwp1B8*t5SNkR*HpRxCFJ zG$nZ7+uOU2NTIUw(#qm;z2YH!2sVQbn}?i~l95+iMXx1WYi}42QqWEw$h~2#*Fl!e zZ~LJkGt@65DlRT=N`4bG!#T{GO-dl7j8t#l3E^3EN2|XAPp&OSpi@494J2AnA%<5W3e&uur9sw>Vt^h0)n55S*^bC zSNmr{5ru`}sR9tU>&vHHj`r{1-sksmWD#PCI2if_v!zwDl?N!!L~&Mp2n&<%3vzE{ z8&%F)#ZihGC-b8+hEeXxh=+A}F!1zD-kch23z#y^n?Um~vz@PgaTbmgU#L;-6u5c~ zf5ggHWk(djEcCHWnIV(npoa}MfP8*($eH2iLG4rKhT9~tm4RJ~Sy7ti<82hktoOd< z<>dvP!GG=}0AI9$b&=EU_sP=so+SOm`H%6#)J|; zQiQzgo8Z?$vdo}=r#02)$E3i~joRdkNCKs%tV>m6YU5n7Dr2-6!0pn*bYs1K4o@ssKl(W%TNIc+Er$A1FVR zhz3Plhl^7{&j&3wz%4=hzAb?bI^D?JUE%NNP_ zNeyGMKSBBRc>ezt`zJB-{uE%o zw6HW5Y^*EFvd7yZ`u?*Q$g(Dx^{aiZKEz?KbQbu=$6^6v4|lh#x0aSn8r9#yv2uLH z-l|cb=!gS`XzJRm&THSUdnrS?AKju zQ{6+&yCX0JzWIRWjMM84kxtuco)ie@LQ+C~zJ^f%_wjE&JU%)(KB6G^y1ra;%pvZU zGBf=ST+Xw8=F^^>p2NP!ltg9HuIL!;tSbK=)MW!YKh~g#daQ{f8(`&#HaFRV`Gd%P z>jM;tzg+L)w5LzxVEGFuWAU6unp)ZdHW~_qLNaoiOG}1pbAL@fbGUt9h>CEb>852m zW_vWC{5s8aY+*sr3EuRdd-sc#lNv7S`TE8Z&PQ|XM+>+?qw}`E{6F=qe&fJHG*XUT zkk(y#`Mfh~0plS6*Ij7tIEyLfrE7EOBvWeq0bWH2dsR7knx@auT<(3(*NhBS;Ij_t z>h8H*FN(MUV@_x(lNHhqjRK#EQ_ibMa=`q9+A5pF?w|I%4Q&^v4Su91*?2gA-4oHGC9d6;h zNQTGNWxK?p`a@8~g+MUCi+8&BG(KkSWGi{P@=a+o503(@6d}VLC4F$Q@=QGph8Q{^ z4Izt4Jf1m4x7hxvsP=4MixOSTlLFrh<7FSh7CtNW$q5zI+c>-6 zV}rM1bCmCBmOq+A_qOzC9W%Dj`90#=MUO2_^|*NK6E}XgL~A3n`|l(=JmlG=Mm}$s zyZr?zp!K|sVf>pDc#SLHLg(e=&~Wkf&X3LxcT)**eX=od+q&HXy_vppEOk`H7qK#w z#Q~TG0;ce$kV0a>D^*a-Cci=F^rVO=`C`UwlQpB%pFu{-}w)z+HkuOaGXUvSPe{O(8ghvlhc-r~SSNs25B_3T+Vs1u;x=fw}m zHb{RG&VKFDOIMHpx))UHYU-*OToIsXMg7c-CT^kx`87MJudJ*LI}Ws#l5oS{``z;q zz;_c1J}TiV(u0P?r3r?gOO2PZk3#(d4}Em@PfZUaJmSxd7`VN@1lk%;yj}58CST!U zlNrVY1x{U)oO96R?%n@$ax%ZCx4-!< zDH-!3I*>*z=)KY7WPnZJbSwnWqq_OVc<2V)RDNOQ$LcbF+Cz#-_Wd+tk(Td`JNNSl z5PSP~M~COnb?q!n_x9-TG_BjhI6>KtB&!!)>sJ|3Se92;`V;7tWx|YJUk5$C0{4O1 z%nUNLus|IbPf2`gW@x%cf(u$BQHfD-5NXt9D1+_3nzq(nF%r0(YyWQ^F*yULhsRLw ze|WmS=#hCor#&`53;DggPL{%u4hZuHjKjENHIMfq5&>7d&udH{Iy7Mr1Z_!6k=Mw& zysmJN(`h(nCSAI#pC!Q-Qd44Q2O48dI}(ai|2RYcC-Sf|E}=!pN=F(=a16}43q)yc_Ov{MoKeGq|qKum(v`1mv)4w1Bu{bSr}8w-=m z0695mP8Tov_qS*(w59Mlht1AFLv|K?d_j&h!&|F@-w%4IA5p8EoTNzhVv|zbR<^|< z2TFo*wMD&*bIhy(|6FAG+f8eRno&_&PsEsH;5zvHPlq2ZDyh&*XGVi7gu` zrZn)H`-+?sK>G_^4>!icrLhZ*_u1>%fG>p~Zfj~&_pV=Sc_1Hjb3+=axM;u@0>=VR zU2RSd^+|0V)YsadV02~Q_&hMhxB9uWWBKXm>kqg<5mN$OxF>KnxAwi!&zWI_O~t1d zhwQQs5u>GP5G5siKfGBjk zZXcjF7eoSOps7zcYQ8iH!t%i1sRSHz`dwXE0P|dGz~v`aR91GpM+)6&Do)UFylR;) zqj?~RE0s^wqgpKZgpcuc?~iYp^6nGs+3 z3mH8K&ickQAMdNhJO6<10d6r{>qD-QONYc?$e!b35z;#3sCrqCMc6a}hH><)FQ73* zxB3#M>Ru3eUv|~^osNNyW{`%h_1nw49J@#GggUgs<*p8uVsYGgduqvjkXgwi{9_?9 z>Q=_&h*5R5C$zAFnwf88kJtqtCOALKM(0S^Vl9!@^?yN=k<8XnD7B^LZ}K{_v9h}eAH-Bj>Guxt_| ziFE>}RiUrJ=aQ1Ak)3%31qwl-HE!oBs6~tBeE=@>E;pP9SUyN-3`$P{q&A`)1G2jy zV`~{}Ql8VW!3~nRsvU*4vtsF`LfbTJQ2dMb!pYHXSQUZg;T0?LDd2 zwKY7AIkl`}F#BW|PRT0^OY2MfR$c&_xGFM7l;jG|z6XwWTrUC9NOB=KD7co!xl2*a z3_t3Z42HacKoCWTV9>k}Hv_ylEI{U}3+85$e&&arc6nAk_qzO=Q2ymRDp!6okE>r! z6^X23daq5toGg#?ZBSa;{p&H)&6&f`#2$7{=wfef>U=+cj*4UBbmE`=HPkVX!6Kx7 zm#ii!*$Fzuj*Y9ptl~pVXkJ>QAK>r0Yj&pw?Qj+9sN7nVfwDC%sE|Ow`@fj;#xGdB z?Ug}Peb}0HA+EMRUj=!|M=pe=QFCUkMnDYqsz2%nY3Os`Yk-^288qX}F2klFpTD5xT<<=IXv|K-2zz>J z%R4{kd)5Nrw|!Xg0G=Hm`lRaND^MQ*2_994J1E6Lrq0b>!=O{2(mt}Yzt8J=j9Up0 zJ}TFgGsXBn{=c7RG%t=v%yUX-W_ZaAF-2RbLkbS|_peW?(m~BuEC4KNUFH!iM&3I8 zYhnx|YHXB|RfC?%`n_~S86X0FPw??6U&K!Iuc)f3fkoMHcaiQ`#?C4TKB?{ndr`tUNsd~!x+AC+xQ4ZL{o}$5J`6HNec)jR&k1&rSrJ0)b8cJMKaADK-`;XBA>@Aw z;+uz%@^0TxkJ11hD(HCE=rBpZ{pSzi8basAgPIB$MYztAPzOsVy{$Yf_9((^GU(=l;9J7ZHsSf|3cnrr@CQ1RKI#R~-RN zD@S@lnuiLD@?_=Z8(r3v939z9O8$5DpTLL33OY>(q+{T1 zH2RhUA{7)lTVc$1QtD9Lai_jMw1y5fY~I^EW(9H_D$A z#(j{J@7MFbL#9BH{2n34<%-JX8ad>!QgweVgqPFcYVV|V(c$qT91e2iP*Uf5&zLwG zwNeJ>iS@|KefA|ZFWCgTx4ptu&zF&rQIWaEkXRfiQo5H$IXH+>7RJW+3e^8oDso={-dw(0RrZKl^E;tVyw7ffZl>9^6j~dl%k^V zbcibOsIjZBcm-^i)>d}7IJs3`zWVyF&_d!Lp@qqGWM)hmi|2D30*aTORGsGC4u9?; zERH%?_g)}s_7lJk#wk(P)tL|GR{#nnG+3Fwe*_cZF&wT7AGX-ddrLvHudIrzktVJI zBeQ7G$Gv~&o92raAmjixxSw?ti_6P_vdDGIsaB&^uljB9W-!HnS~`}Tg~l;F@6`(i zoG5Rbz2uG#>M3TjfT7pPzjwUPl9>yAP6D%{(AC8HuXv^~olh&v+Oz4mlb`nncOg97 zmE9v(gtHI>Ro^yh#IFxcl{Sxb?(-A7S%|P3SNdu!XK4G+{2$z2_P(!PL8U5e;1VE_ zD04rW0D9E@Uzh-vq*__9X3M2Ap&>k)rXB3>%_M2T!1#lfZsb!GC4papc{Yy zt2WT9XJa1;w0nk&$8G6^R-&V;>U`8v(-+3U6rVR}7D>os`R-B$G0?JYsV{-&X3AI6 zLv(fNrSr9%QO%DZhd^%5Gd--*EarJpr8I5-lJGOqwu(98^1@UE(y(^#VbAAB0J%=uvS4efVI8Vuu79i6%T z#X1VDu?6EdZ-BoqP@(}5nwZ_VljFq`U{Ig^?VCszybKsHMjq3xUZlh8ek)|?9~KcJ zCoAi1zH&oNoefqSyZPY!{l)~8ON&WqP>C6Ma6&Q?}=hg5%b8}xj9vf7fJ z1_lOkObuZ1NP`U&;}4g2I7L%~2_+u9S&u>!&qs~w=G zlcJ8sCm?V+xJ=flEOTXHeHl9^ZL3hpGEIg>f+NcCS6v;t<^f!Zf$S0@EGp{XJftR% z_GnnwI}Kz`^*D-=S(A&Nsk%B~?eyu11L~6T@7?jQg0lOWpXaK$)Va7yMxccOQ(NX8 z`Ki1=l^0OxfRF?wEc5Q$*wZeorz*anlMna<)RmBLoYa7!`Z-;aVMxptj$_##h*Y57gGrH(oPU(F^06wc zoPST^K?Fj-mk91PHA<6wd>8j&z(lbrGgEY%6F8_|UAec}zj%~#ARf^`WEMWcL6E&q z3@23pf;SP=(6ey@@|kICPRMIotnnvg70eIh*`?o7G`_yhRpJ7yuVfYrHir`}Ez6#T zc|H=pquakXD>(*uq-VDqfaL3Grv?z#)0pExx_bI(85k%R_E%TQQ#$7x>}IHQ;T58U zkx7?3Ugo}{?;2!grhmy^1&$jK%YZqW{|qCTkvBQX#rm?WxcHIPt)R=yI~n_r)`ZC; zGwVk|(;dULz9fygVGtFq zfrA@a$>;QVzF)H^z|n0ic_IJmN@6Is1Fy zgS|g}7KtGw8h*wR_9ct#bw_l)iYH%ZC`!^R?RKUDH zJuSaS3IE_1eJ;@qQNM$vVTR;U;5mu`KpoUP2QM)tTW(y7kxHjHm%MkILO~DNL z?7{6uk-DDl&hJgiTBuLPeRy_2#A2juys{>XW4l-zYylb|qlWFP!J#c8?6NWs4d^Aj zUePsvucYPo&XMAykr34b6_ZwXM01ps5kq`<+-rZ9yg3bzlaPQ?i10yi$+oV9QjV9Q zt}3tEP*)K*HPZ``-Sj$TR;g}U{CMRE^*eL^#;DAZGSslkg!tBgB3O*qUFhBHG*UD{ zwU#E+Gh~;lN~58-FXj7(H8np`*iKfJ%iL#ZvNL)uBn*EO8s|<*cq^#o7uS(T{Rbao|mjm!pD*Egy`%OliFC= zye-4c!s=C74Fasp55N1hWl*tV<5@+ErQit=hzh@mjOtu4gw>M^2n9QK#@;fJciOF>0vHELi*J484MN5wQX1Q%vN5v zJ~W2(N{IzljVm!Ay5Fd^eRLHfjgkT~)%MQz@28IGsf6iSU2mjh<$#mLo zm%&1!$22kxKim3FF}_}E0tjpQlw$_t85`r{SQm0GBAk6`K1J$z-4_TwVA~dn<{Wrz z$d{xRJ3CL;*4`_i3oCNgi}CJt+g?l03;bBNk!g$m za(i}|b9H7$@4X8lzE217Jk#`SQwSILQ6m%ghG&S{n8r)^0z@|81z5iiQI3OH5V#krOm0#%nZh zqp>^Bn~Oa_#{!d8wTF2H$uh2g;#@`<%Py`*}$vFxNgtT6O zg`Fa``e{T0TyN`WjMN)smrA<80adm{1wcw{z=@gW6Zx5&Yw9=l9J+P-*XIc0Q|*UTwZaZ*Wh#PGbUx;8Hp{ZnEATn#_jH)EmylcH|ExB zqCaWL%+$i{7gNzrs;V&LwURPsOe|)4jJAgAeB0VFEVMUKDukv}JzJi2V)SM^D~tK= z6saiZ(^O+--j0OPaoDf-r0O_voSDJ&f~TG#>C6z5__#H7nHr?~ENRT1?d^MRPrvRAMV&d&}n1$8D zr4=p`HO07?MucKi(LN={)+klzZ7LxEt=M;_=5KgR*XH@to@xvA^`6vxE*X`C+pTjE zje1;ZFZ>nBR6Zna|6JI8-_R;tw4=twO+}sSK$jsCfBhb~wVSH%F{^F1vL%4KN zF$XJ7ZQ`!M#MnxbVGL!e7Pv%`V;{eByuWCz0ty>d)mWp;+7VfQ~eRNZ@v!OW#(b$rc2k7V9L*MU`tXH41BU z`3OaPZr#OcPELj{Hy8GO=}c{C$&pQJs`)pgnYvoYuM9hnSCHQ>PWiWscD|`ixXG!? zpjFkra^&G*nUuuT)^X=@%>cpO*>Rtp4)SRWoZ?<)bNf~lIhEr%qmfL255`>r^N;qO z&3zxc&i(4$xd9+y2h{vGtU~Gh$PfvJiTq)|mi{zUJS4~&BO`bV+R9J$AtAj-s1Sqo zA5pEi=6Lkv`TsW$HP_Ct6< zMYzquWE7M+9?1-Ir}xSGcVY6B`s07ZSA@sR5ky3vP|ojdQ1CH#m$$P~B+009FU%wW zwrhldkv=%sy+uR{(qAG)25vu-d-hWdtQ3PxDP4BMfXKso@lD0CELa*pb+Bu_n1ebLiAjQd%l6 zAmx?4PB^m$6hH>jQqK=Xn){Wdp?WpSUt5njCbl4-HvHlY?mb`}WmX-8G?X8B9K0p! z=Ad2DakAdYgy}c{k}Drfc244s58Wal5jjv^&AYiRc?EerJ6C_#Le=e!t*RcnmJdG* z9-vh0A+`t=2-;P@uL1!}N>b7sfMfs=48Pdq7XyZE@oEin4DqpXaq+Pz>Td}Ct63o4 zsls2gz%YJ%OJK(gT(Q0GZlMg0M%Dlyv_{#a?Y@{0IM2u!WxD`os4W2w1QF?2TsAf_ z%FxDGHfz{yFi|pJTEXk2HtC7s~UZavYChb=YG}LXV{E7HQc5uk>G&%I~ z%ra(0db&5%u`{!9v??KoSzu%Y(9i=M47iN||C6T5J0@&BR3LvR(T8kqZjvf_f~5Y; z+1VNf=C63n*Y>7Cc9~XNL#v_eNPv9la(+@DEt0#hOA7dJ!M?{UGkdt3Q|7OCh@mSj*moVc7i<7D6)F|TgZcE z6B_14$8I8L2O*AZXkWC_k{MarKE$4$s-hshsY}}Z%E$_^#@_iXQ3{b*p?p%v0vFaK za17$9&xXBJL^>q-T1su*Fk-mfYWlbyz?nkzvVyZCCAe|HVVWl@G1A?7-+;o**5GUJ z5cK=iTj*{Zj1xp?-IUm9J%>sb`1j@CFuJFEdUm$+@bSaX&U6?Vzc=bKP{2T1=;EBP zl7EUc|6LRyJI$*@4;B9|Xh)S3GQTsE-dt%2mOT}rU)Gboy}il8)BEhDt+hMgyae1r zwzt`U8_qNw9Pp3!Iqk+?p5PZu_gy{oGi0!okT?iEBO9TcTf}pp74xCZJ<;(|D@ZC^hVXs=eMrG;sE6Yo>M*+$i z2Z+?WJSRd6r-_?iX#fO0Y{w3CR@9GX4GVX_jRBP!IK2Uo%+~N|?u5C}-J9qr^&WWO zfw8lK>C6m~WuZHr$$~`eoMQUv1sNF`?FL|aM_&^A!Tf~~WvMz4lZl-pLiQIL#pjBF z#nR2hEI~uPH;{z<@d-)_FPI0mw?HjN8iGZD8F+^(vY9(fah#8q06F-qn$006@JVeax;Vc;$Yc_4a$0IFQszD#r@wAAN-Kd!3?emX=HuBOroOCtcA#`&EK*WwCQBHp=EiP^tjE9%{P{oU?FDf*!1c}QMJ=s z$}|Ai`c#qvx)1DT17x;PV0xRQ_vv}VUl+y3@^=-8G9z_Nt4o?3dVel&d*a3W@KOAz(algQT%JB!vzeR5#td*y1Mm;KYz)^ zg4z`gszBWN1npJA8YvrBC%QA7tV?bbYm)9j+re* zp{QDTTglFXFJs+4jVty1RjCcalx5jrhcNE}RsT!NxBHN>X{xmvzm_P{Q%QJo8$Qpa z)jO%Pu!7y^QOqq>%1TYVVp@V0^??}~oT&=@WD%D^FkIv)i?tMIi7jjrVGHrEHdmz! z#N(AjzK?S~scZTq?&9R?Uw-7>uqgfIj?~Qbxg7S-;9|mba{YO{(*-iSJ^z}?SB-x% zJun&e%c;0B=~Sc54iFh$6PV2YV;vb=Z6VwK*AG(FGAR?la61Q0Ku!1~pXFkIff_>^ zxXN~y#$z>kzG=?<| zAk%q?Coo!kL`*C1JEya9vVgLNzQo$XBI|0CIqMVZy(gF-l;-pCD-8{m?d)~(R6!t6 zTk|R+m^P1{Q1E}^t zzgR+G$lBW4x;p5};Hx74&;eIhUA3NHx|JOX z<|uf1-EntNo3Pas7IN~i9s$!NfQL>@aK4}q2D*vMgT_csZyD+s9>SHxvW=A2+*BD| ze{nQAAUKBrOpZP-2#g5|b294F0@R~>`@Xit|3*i#TR>04x6?bw`6)ad=y5IHnuuk* z2B1DLZvm(D@Ti?PG6Pf09rEqr-0h(8UkG0k+XV~VwxX>nW`UK#2Bp#;q#&2P-*8o2i_15+9&~h5P184oN zBVd-Yp@fRhdAm^E`>iVP*~r5sz2K`T{!v}q5n_x*%(5)g0%LTkikj|AW%#v*NdEM+ zRJONG4S#0`-B&mm3^B~JauX0Rk(ZaHa9@A>V7>K?luLcdH{R{5P?68z>LNkQh2t^!4e;mR*2K-FY}yMVV83 z8?NnoX5H*LmuD7M*rmJNvf1lciNA%IsdIx6+Du{(yLTgljYgERMuf87%Z4Y93G{Yh zS=k9NR{Gv}x;L5L+nC-*k2{I+kXaS1PdgxpEXtvVO$TyEzV^MFgQ*Dfw^JCYC! z5OP0v7kY8r$UyKYi^$ypo{9=-+%6z8-wPT6xdi+aI3@dmVC`#q)x|~d#$cMD@A>K1 z7urfXPSw>?=X*kK7dE>+;4vT|)?Co1jO`pc=%v9l-5FWmCT%UHaZacaW=i`ALeOFp z$A@Nke`(k6?b+sJ2Nwcz_kv3$G{+z`YbKOhTqFDHI$1+Z>mIp);pT{Q?-3jm&5viMFCCM*1@8 zy;=RTTl9BNG6wu?c>E`XwN<%}~*(v1rwf`q$i-$VE^FDQUQv0MBS4*P%F)pW|pXH-MM+hyhp>$j8 z?-^dc_QG3uf|6wEZpd#Ns})OAy4u9d#A&JEZ#{bwMr@Fw+_4Rj4v@}Ux40QCc^E}+ zqoyyz(*OJk2Z`fsO=^v*^|K`Z`$bk<4`AMt#nhN-Rj&&6Kbva9l@p&~0oJR}{^1j) zv4HZl@nIX9akEP%8rV=xcODS_2SqcicaETnHJvsS> zG%nAuWO|5>ycCvauK|S%?J{RoroR}uccar0H?tyKI6(bG_~)9uEOIe&CK|6vqugxg zOP?CjQ!B1+mIU1pa`mP2HBS;izOk_>BONHCL#15 zfe3sjV(lejOAP6Iihs6tOeJ{k0yv!_)Y|xXjCex(MO>31^BuI31QG~jvCY~Df0`O; z{Idh8t{hwyEF38>dF>}Qg_pp#ULQmyzBk^>14~`RTIWZ+$`^}Y0}8_ViEAHsvyFgxj~Wajx7 z*1h2yHEa4>hV0*HYjrobzvb*SxwGG73P zjdQBCKdgU$e=FD4I!tcx_F!Lt_~3|rp1-TN=!YGPDG&tx8m+?I&(5YGV}U9`gbQ_ zhE(7sA8)C%v)0UP%rO$mT#&)e_6ye6vB=0p_mwsh2ExUk>RxtAg-Tf2*bOok)kl4C z+Iux(%$_DHdGvv(8vTu)x)9gfFR8h~W1p`7#boUcwy&3eqbnx==%%>kx6Xf-Acu^R zTb;cwbL$V#9iu_o&wm1k&E|=HmqcTU{Le~yd}}af-tci4{NJAhaq8ti zZ1KN;Rq+uhZT|hY|05gl(S7>gOa1?E`v2+eeRQ(^^M-d&dHs5yg%ZABkM|njI|zR?%31 zc;awJisPvpO1r z+xsmZW>$Tzy_5)y2)5=FcygjrPg4+X)0euz(>)p1~0P zv9>3jWRI8QV_soj9WJqP!lusN92uqW)t-TD;CV8Ee_;$7M@?158(8#r&p&Yw z2ceMe%NMSd2R=qOfaK^?EYxh6|>sPW4B&z&8smc-yEJdKTorC zg^&Fsq#gLBZ`OuGQF|;^S~p&6)_5MD!pfgQPpPg{_^c&DUop_VV0kcqA|F`Mw{+H7{@WQGR-+2$xqmd?)gL&HOT*Rr$g&STw#uj=h`pil;b6eCGH zd&l^pp&GoWzOF%uNzk3M`e{7Tw7!b&Fy51>%CLOCp~2;6fByb{#) z7CdJ~80uqXnV;*95eokfr&2El2S>Vj-Rv87ws+O<>V)}jk3a}qtCgMo)jwR`>34sE zuFk9Xk0$9{Jzk&HeyxsXb5hAa_m1WKFUbPq)ymz@VC2gQ)^w$PvlVsEPx7g#U(dCurY>G-J z6_sAo=^%Lcj?n*!cB9?+#^vB*OXlQFSN)>Sn_?W>*F_lRYcOE!ZH+|%W~FUqWGH+2 zyZE)R;dbTStMr@y#5lJOfq?3<85dL9r#FP)Si{>lY|={x6YXa~sI|btlr}-ZyoIM( z@e7@YvC%K0$7%sI`Y-c{Ffrqq#A6k3dc4*w4k;LocLYj65WApcS$t8?AsvW|&~ zb?O1POVU4lfBHaZ7U!gKDfj_8u(h-d!=Sb!6?MD8{gmI90j(H7wg5INGzX*++LU0q z`1r|`C1*Q2*>hWc3iEK7D6w$kLg+tfUf+KQQVjB@r%Tyq53TpaPa(>#afEAoD?sYm z+Rpo9^!zDbr|7wojIiau984c=wxM>z;1HsoE{|UC8o1tkr}(j%!xYpxkL{DwdCQs| zXn&j7_`C=Ykws^_`{uV(!y*r_nD!Fd7yVF4tF(g0X{HT$oU zgcg&D39PhPS6Y9ipdcubt4>Ot?j~)PRiLbQyW+3vzoT6|_J_8v?gJye06iB=LvNn= zPF{B4pa6PBB*?dz=u>jyrE5}!tmtb4GM1$1&Few>2ta*CU^w_sg)GfWHQyP&4a5AxC z<4m$vVDTQYxhB9xON%$k*c@K6HxW^0#>%#Ly1eiCYSJ8UUKga7(Q30)hxhC)JgpYf z3j(0W(&{o63buJ$EIM+&RSK{m5ZlPhq0S~Q!2FYWe*5Jgg*L30N!r&zY!5sEbOswQ zfvWtA3c+AG#8Jza#Ke$ITZgQRksP)%mmnK04NbiBb7r7TLv{7oC}~B=c`SSQSX(F(0E7%*x)K=oQfznHZUs+IPQw+WTGb!apAx8zT=T36l;4 zZ}-F1YEpiF?iv0!Z_*xTToKlI!99SY)OJ6Mejts9Nrg9cU3qZd_jvF2XsumOAO+Qf zA}66>N)$gHYoxYWp-Z4s#k}d8s3=6Ky8-*Be~9N)rqy2}o4#}3+;ol0W`}^HycFNhc}Z3M%xcN4D@25q0oF61Oizg(##ebujBdd=0`(jqxsc`%JoAMiDrYIA=2 zh%zR)oS&e)keFql_ozhQq9{;Fzp?BRUGJC7w?x$)ul zwiQ=7nLr#zN=UV{I{6Et)P&^HDqSteWX+J?&rK;);-b&q_TYD}0d z<~!KY`mhP}=+D*FSy`YXpOoBnrN{8UKE!ywEvjH$IWD8F&P?T3cUvztxN~0;X0G?o znvhe45Xk4xMb@2V>7w`p@wsR5ora^s!Q?}10I!#G!GHlVIq{L9!QhH?@u^dwHZlrK zF=G3we_vnwU``N93!|eS8Y3_xf_wDTfW?Y}I@{BG`Vq!-mw!O3KT3658u&}Tm8Ivs6vYe^K3Kbnq_6mg8pAxmEWzKXF>25@Y=V*UN z$C%UL&W8_etOX8mrx=st9FQ3a14H^ECHX^ox&gzbAUiLDX<=Ab_FQkmOd*z1`MR~$ zRh>qlzz){}_0@SaE)7&ruy7RhiI+fBot!n8PuPD+UC_GnU}3#SKs$77N1&~itrwoO zyLL(#^xRd@_ka8M>f*74q5flhP$(1!n^|2~QQvEV;>&&DSja z0^$~@^aw6U7amfOE|~hQXiM|L1vM~IIP|obnZ;K}R2h9E$@pCCuH@<(b4}HE`9So( zCVOv9(K45~Q82gqP3wsh^R0J(+)Sy)X|Sts3WQ724Ii64J&ldL6|k|Kv{xX};Vjm& zoRma*wq>D)l=O3apJgxd`cCEn+w|pk>+*Pg)R$7EkI&jU{1UIU^YfBc;*9zofZXkE zhrTI^gdFV_$W16kkCM3?KfV-oW{KeuXp6Na+Jqp^e>YIv(Ls}4saD3{t$~glYQ{+X^I{pVm4;nbN`-` z&-eX-24|MCd;3$dn7!31$K8R2qKAvEo_5V`S_=x4)F!QtC@i~hGnqE(|3|rkPRu!C z@`YiS^XUG4_e^wKHBEsM{yr{w?w`%57e}|eCW{<@%dO$yvE|I$(IB2y@klNeD1~qL@HFHy}Nz?hoNz)nXs&y^W@B*t#0wPl>v9yEgNV4{BrU` zsRVSSfLMCADMfoar|ob#ln0NtN3(xQFWfL#53GFa;i>NN{f=GTLDAO;p@$wlg`Xrl z+4inGApa1$CLJZ}Za`poTdmA=Ue#5k5(IOy-*yv}spfe<4<+p93bz{vY>EiGQ{F2r zQ2bo+G>{RePKgGez@R#HSIhV{qZ17Jda7mBud|WM-R!qD&$6E!32XOb>sI#dg1DRpKndt z;FI?TLRVKSD=P~Ec0_n1pz*2E(W%iM4P&?V&}(1%pAZODB(G$g&_@+l>MocAWY!C# zOyelYCd!q@4h}kx2l~)~FhA;rJr-3>leVk0-HqAjk`~O#{Y^MvGm;CgMosPl6Mxdv z`9!n=sMg3b+?FvQwa%Q8AnqQ1wN>eSd_Lw+^kXZlM|wRW($zE5QGq*u9P}ID;qbu2 z>J-2`@w$m_)DNB>vNFkU6mymEa0aC?ey*z^b(m3 zaaHxlJ(s2e$3@l9lcDWZIr()=D27qeJLNGLJl~eO)-*g2G|)g~42hXu;3N?X7TodF z=>j=vziGLJHvNEuhLAd1QPi%E?qO1rD+BxskA)Uw(>AwDSaUQ|qgm&Y9FCHe8A7F) znLl(p>{=P^O`bMKfBQTq&IPigdeMtRl>PeTDi*T{caG;Ab1{zJERMLzV$RR>|0ec( zkJK-qzjDbyU2$=50KE?AST)Sr$CtGngO49a8XG!Kl(>?&7E0o!T%A-UVe;r($Y~%7 zT$GV_?TPB^)Aw?Knl?0}yK)^mOs1VMPL}msOFMS(G+06`; zoYXPfzYy_Dtj_Pt)G9OAiBda#C(B%9r;3j;`=_F!O}aje&X~&>)lE{a^KzpkuMMTA z&kqlyIH6B)o=c5X{y3KjtJBD~fo?PPgFMP4dh>+A>oc95U5ZAAWdWTdh_00Q_=J_) zThr=b{@KVh9l(U-vJ-%;6hC=Aw6L|+2w=>JpNn@P5 zs}a4J3}&8azMkb~Yd7Zb5IQA8ntXIz2N1EIj~|tO@XzKaSEOXcwWJ}CQW>WoNn!Kk z=_*}Uh?^-~)sg|j?3Z&lP7xU+sTD509rP!x=s%0t_($`G_-~EW{{n%$Kn@l%12x%W z<>XLNA6Cvhj|ZX$0-2WM%gO=^yQJak-ECUI`y!_3aN|_j;Tu z5f|Y%eY$vITeIAac6EWo_ttId0sRNEcOxa*d$RL#%xVMMj(b{|;~kMW=?9>1pAT(l zyDgG$40lsabivn<+Ny?Hlrpk#0x1-Dv-=R z{IiE^4Xxhd)Vtw);Fu{Tl;#r$EaoO|OGeg8KZb|rNIv^5zr)k}^^IJK{n;KsTa2o^ z8*5uydTIlidUP*>>T7^x@r-&+vFsewvjVBqo6Pxm#APUySQAr`ikZ%cxym?w)F!cy${iwy9sh|$Y3$b&6?c;KCY07eE+8w;peXX0jb z=)5Momi}K-6NN=K2Us|gs=L&4TDS{QyBNQ1F;VV{(eW4nh6OCJ+YnsvNIo;ik<0=B zpKQL0exFF2$5&+zJ8sL!f@kJws6XLEi8?EWtsJV@cQ`MkaZg)^Mlf@!_HC?;3kEdE zB~8XGC>e}Af`}}j-0KzFh#@8&bA!dg$tb3_;@?rYw43F0<}NN+Qx~Yw>xs^ zol$xcg30gW-H4SsQEiLmsne!Hf)wDDhA>Z3RkaQQLXU({YAMXy{S|pB!psi*2dK zm*pwV*stOhN>-sH1c&(uC@P{i(k8>hS46Z_i=J9qhn=#4D}oXpVEkZkq@L~8@ZW@M z>Rb+44D$CQZ|9|wbPv34&ctTH&-(80u!01!xJ<>FZRUJ&u_xGj0p&CWt0SSb?#sny z5-T^%A|mk>+cTelm(r1#7;9FsU}tkinvBK9QYYs`#j+g}5gy^FwLN1z_#*lD<>a54<{IQ=Uz1G~ORjV5w}w0@DoVjC>frl;mV! zTLP|7m1hl0K|fT}Xl)2oV1KJFkOf(}S-=8!a&pMd%^C+r)5|Yfy-<~_B9h+2<<64Q zBcw)mE@5*ZM!T1~PYW~1!zYdiEzrisn@T+s5pl#v#A0gfup=rX-D#qv;^)r(YT{hQ zAq=UfcN!Gn-5KknhqcAFx@!$-pFhVf#6JMG^SAuGz#kb0dGcG^N}kqSQc1Uqw02j= z?}SAOs7x3C2o~*(6i~USQTc2x$e^YWc+?f>ZQmTZM&O+arLc66mt`>2#O#TQjgjHM zCE?2M8tj&%pEOB6WCtlAl#^Ax?y*}oR8xyM7Uup>=tr6g+rl$oYMev$;cM5CyOJ&m z-Y)F35AU?>Vg1V2zXCSipx+5YWv@f}&K@agUyOZf{7|mntuNuFu%7NHFkIr%Bgshx-G)K8lJ>|` z#jeEb<&$NvhlYl0i~YN8Vy;@;Mo;dgqRS7a09K)U+4Qo;#}Y5UPTKJ>f3d4qg1G+; z`Y3_{w(}8G9x8ivPS$qjg?LZG?d*0#AFbFqmL+`X{n+F?dbQBYkSUxr3v)#Q#~rZftCYr0PS9 zpF*rdPaihUp&!UoOTPVVcfdwC2r!+trcM%v^ktY7XzKvVNOlRwbJr|Z1fA@4tRBa6 z=>S2CnDT1EU=|HVAEd}s>OU$N8Y-_~I6lF1xSrKm#$tI8ea=#4;14gCAih?+gKUl4azTcXa5sz$EF5%$`t~PyLX-YuBBARWz78 z+rbg_V;x9Vf_T7oUXDIfs*Fm_%n}Azi)XwvmvGl*S!JbLw}Sc)1}qBll<Fant#}=Bxr2@QsbzAf>*hUSj7^~TV+CQ;0nXM1Lqa$?g9WqupjSk?S2~mLxeA0G zm`=~zfKV}U`Zv_V2)RruRc+A%a=Ym>*R+0oa+B&Duh@wQe5g9Qto$h zf)jFNfK7mwDd){B9J=bG%RS?PD!s6<7{on79vc>MRj_QIF%ormcb{hi9c+(SefElY zC6@f!X}m(Zob#_W_18rtHUt7c>uYG3lL!ol&I%`>%=m9Hp5;9BHh63`XQnpTg8;;n zpEk}c#CtWo4}M3@+-*s znj90K&|myx>pKsy=TJW+s|VkW4gWp(nk&gf+4m1hBX{GPXy-)U0V#edgd14H>VCr) z){WX9=<_T1K8!bWPpeUt@3&ulGn>b}UF5X^cyDLs6UK>|BOC;Dmp;PNkbvLq?8R** zf43`Mhx`NZOj@9{1pHzW#%nZ#7sGhl>A&<0Fy#keV600jz?JQR*lC#X7O!w2z294n zjoymTM+XeN8vuTC?#>R$?g0)UnnB#V0_t19mZDf`0?QC=@rMr|_p1mloWcS*x&DEN zuYDY)0OXl9N@N$F1pWnzQs)USVv&^v0EZJ#p2%uNFmPtB%obPx87v+*`4*^;c;mcN z!pRE$LkM#Wob@*&y}9{waxxdftDzQ3Uj~kWn(s2!&w4XjH%XISAysAm$lF&;zpW-J zdi_=rKuLP;OVOs)u#*0CQEVn|9r85g4j=&I{~L!q)xQ8+b8`vUV>GbV8XHRhw;|9o zyka=iOoDwoP)I=OJrGh(za}OYbknt^W9;@fpTMQi%xsc_s}f}rDD4MOrO(d6uV1&4 zZ~v&v1cjVwNf3E>P?Q>RkHBO)S*7}_|%>uOyl zhBh-^p_ZOyUKJHA$e;GyZ=Xm};ms!&dJV>bh$j$Ay-doU3-0O2fwk6NXJ?M%bH#@i z%!x#Ad@4&PFi^8shz1lD2DNNFe^Rn?E*V(SXWDx^z!XY?`^F65N%g9ymITA^dPu@C zUu@X_a7hjpqXB~EGRU9V`yZSLvb6Z9Fa!kB5i-|ypUzju`irz){(t0E{dA0`CG~5W ztw1qM_W^(7Ch!2gJ_p zG5HQVB>5H@=KEV{_00KJ-PBJ!(-lTiPttfGUM09m6QgDC0}Z+kUfZ?>^rSPm}# zr*ZR}A_%+iPwedvfcqt1{fbCQgyfXP^$*8Iki6RIMk|HyyQ5l6Ank>a7lT^<)X3bI zRQc|eqd%t`Q#>WxUhw%rN)OSeATxv(K9PFbm$;SK>9pae?<|ki^p-Iw4~a6zUZf6e zp@LV8GyhTVAG7l|=Dp>yzFn1!(;Sdx^%cXmQ-#xa{exc~tG`~_QP^w(`D3({_PcPc zzt%6g+|!9qMAB!@TQxOZk${*6;y+j(gQN_v(qHXli=6X521>J<>ultS@r4H}-}uk} z0wAzmR_#BH1$pBWVz<>PzYG>ER}NT;XtImPOY~iU1YP7a5|5UEq>X=Hbi7}n+;SSA z^HL6S7f6Em%wHhC_8Z0@ng0GWD$Cz(t&c%UX%m0&{(NPh{_Q3QW10{ z0Hw}>I{=SIwkJnc%APmWbajPuO>J)4boO?zLIveK_9;TBZ#LiYfmD7j^__cr;#l?X z-@hZLHyd*DYn(RHj@jGW6Ur$8v;;dS`iFvz&BDnm;Cjgsznau!?vUa8B~TV(W#-Rr z(WcjN%waW*#U!4!gx_(cv4OYs-2FvD&t|>)j7aN)P&MYt;a+$0t-Q<|Sk6EkCpOFx)pR1jJRWYsT@MGhPmbg0O zz5d!{nTk^hs5`QcfBZyzccAasiem7Yp@epv-*jH;^6CN)c$xeYzKXga+6huHHcsy|r?-?6Ce$;Fox~|06GdDxNt{94)Ze$&h9Q5?~j2 z_sqbxCSp0l-ueUQ#G@EM#)2BYTPt=Ecfn$OrQJ_i_JU#Vtc6#5T-UBgs!3iavyAr` z2QQ9^uJ8C-&FxX>Be~nQ^6}?+_vn4j3J4T67E9|=yB{azY6w$OI)E{W#`)D-#ft#a z{Tn>(4SGYtLdScFKBM@45VhOHveZRIm3DU~69#R2KGK4viS%XbC~Srxz1g7G9Myfn z816T2jNk1Bws{``0W(%0J&$dlQp2SKXQ3xQoQJBJy7wYjP0gOR-51b`> zolw?JgQL0|p;CM4=mXH2Lu=T6zrKF5Vt@A5I<(Gvy_%{(^jR7Ul`W{*U98%+07(q= zIT$Mtj}Gh|hz#^&I%-9JSXf#B)LJ`?&97a|=5FNCXR7bsmgjOLGLN%%xG>uV2HX@RTJTuU@$V;<3=*geL(&T*qp{3MdDpfBot+%YR>;x`G1GE&V*TZgExIbOfsE zJHzH$dn;&TxFB$w#M&e#RXBkbl4@T2?OPXenA>J7f{(@U=De8t;S#3IzZztB{dR-78@)#@#)|`fyqN{;J2Et+zSo#+qFrFIA{-Pw z$3$XwcH6MNi^bxumsH#rsR~m}TH~F~%}oTYk*Lrcb^PckrNBCG22Om~-`{_0-DcaH zGFr?S#oG(sj1agbp`aiZw6P%)RVG0!K@#sv;7ftw1-m_D*kC&9~`a5fz>CAw{&_0QYw!snpWa(?OQe_F`V%Mf-{3 z3~z0BcNVt>5N7#sl&SNx!`BgDy%oLZE~^JTXSdvpwgKLq;CRd#e)+N+ce0nH@8eyz6AF4)=eaeU3K2hxf1`y|SPjPBgI!?u@R zTwFXAy;I@3o4XCT?lpHlj+{L<_#I#oBmyYcSiZlFaLzX{vJgTQIujy|q=~gCSN2bZ zh4ugAtNt=H4CWpf95js;yV9JQUgP{|m&dhL+um8>oLOU5@v8H<(HgBXH#e7)tW8L} zVKktsa{X&oR@PK}+ph56R>o&7e3`i>pLucUjRYbLfj|(=?b;&YnJ#d}CrV&fxt+nO z7lMJj+>P%B{ycTcmDD>h(2%F&vpylH0eWFdUndhCL`1Ysa|y4FRpr>swnhMqVd+8Y zB`EQe$OYVw!VF8z`vjNr>guaO?~-B$i*L%wEev^n09dvrdzLdfX6&$o^1Q7F-WgZ$ zKwG0|>ugf;2<2^Cbq%lB%KiOVM*&hcP9YhiBbDKFrGE7o2d|Wa zlT%kmNA(YoEf7ca**=r!09^9xhP6hr>u-WNLFYO z4!RQ-&zA!>)JN88I=`J^K|PATuf}i4$ccYdP22 zgV%L|bRgpNQ)K+Q6TKI-#C3GuQVvIZ^%E8A%FB1LbsGg2F0>^oBqc`scMr$&^6nMn zg6x$L8kmu&}iB{e}=UmDbpjx4Je_y9aE5vCMCKFQVtXNeV+FBauRKTS>%9 zGzl#)`FO_?vjtzUN--IRY_P+lge(Bu0rOGlw~ zMeDBm)t7uG!a*G!*e8Q=+3MRga4Y^#L4h zN48f`IY3cNMMYLtR!VA(h?yB*T4YSY(Du|sAB|Gb*O~~UHzt;m9veIcx>po*K8%em zFs&uC&~7YO4E@>mjm0896R-to+R@#uG=4glMx!mICV^xQvmx9~pZONjEeR(8CnVK-$NbNBIPHsdpxiOy&P98Nu|kl&@>$VGpeT z6nIxXD*7k^%*mUs#kvA4s{}EO=SDq~?6kBcUO+N7-)jBacqG@N{}m3|G7McN6zo$+ zEi5W*hv`4w1kAJ&wzfDf)@%*XymNY6-`CrFB&u7bM8_jGUh=y-KJk!8%d0TYst{o3 zQ@J3(+TpgMg>teIoNB|COR+$02s_qb3i(<5)j>w>Us|WBcI(jJ5^( zPjBzxuMwmOzV$|})5}keLKS~-T~a|?v0F|hg3>su|Eq6G9{YX0WEOsGer)X?v}mtu z)1OPge3|{25xa1%dGXW9AAA{2cU{IS^<4X;1`8l>(h%xyc)d4oY8Zdl9lj-zNYk;M zKHhylzaGvHyB<{NepsEDc)7MeAH4t8{MFr+K?OO<+OO6A zy{Rdk7eTylzlb~(-Z(ucax$6kmt2LGtClDDE;`@NH2#V>=0>|BmigeLs?ALOz))#v z2alM%iwVx5Wq^x#5LzC_&C7MkcV%I;G{6~`b3O_*(cJpLCwV^~H#-ui5A|EN16`!@ zEMgPmrP89_@5+t5(eORdt zqXltC3aFPlEEL04%8~fNxA#wS3aS?uA|HWRovt^v|I30(x$9IV+8Ol9>vVA6+-wSo zx*@2nDyASUEc_{Zt2uQFXOwT^&oH@@bGJK*&H(d&QM^>J*&Cghk1@%~0p#4UVo#4K z0rj0N=%PT5qJOd4_x7&KioW*@3gYu!6lzI3qgwC(u##@VgI`DNK zFWwwttKhKyDzg5TPtJC7Xl1DdJW{`AWODH-e|}a!vy|$`XrI-TtQg-+6g;D@Ow8{g zYqEt{*}<$RzU|72HMlf`r1ka{$JVN)s7rD_OS^fVb}+)~0+4AHQ)ncRD>%ET$bja@ zj~`!skoZ`}&CS%*-)13HmwzPBye?fUape6g6xCaSDz&=3%J9?Tgeu#uhX3988Kk~6 zg>dGY*LhJ=;ZrcoFTY6eT^taHeEwZjj=JjT+R^hpRIR(KBT?1HzrcdePWhkrwQF~2 z!04B;)-Un&uuDZ+vVU54UDW&D-3_x_?P_jT!24XJt{4wxA{1QP;@-WxNou^$c1CEx zJUT8lH7<2J(-mLIZR(-~lBWkc3s#KH2e#rjHr{_>1Dipw%H&!jj(U{H+NNR?<1T7k zTZ4Nw+=>61L0ye~e-@>@UBiK89rB0~u(zziV8|BdshUke+vVmKxW~cpVHjJDUz#i! z8D9dLMf2i|{t4D=DH5D;26*0TzjYlO|RQ7QG-5)bP=^%e|?%46n?vEEV z#!675bHN31@$ojcHo6J^E}Ji2^1?k9=J9@&pbt%noIX}>U9%0GNtA}x4WxrF(mYe1 z&@ebk^LD%&e%Z`i=BA`%UUqi&0#@hbX&r6ttnBQ`Do+%zx|O~CiZKFdU~6Qwy^-YA zQ@WTrWpA3v>4HW#>?ACSUAfYny1Q;XS%KKhk?ti_TIONq|9Ig&A)Cwn_oe$@qP4%w zoc<_(ShJR#TwOhJqM)wElRi?pzyGP}u3mz&NR8aF^bEi%3eqF|IQ;-R(IHM6UKL=! zwy8yCKC`kKFo=Tr@AowrthIhDn&*P5@6U1IVg9A6;wpBFe!LfVr4n!2ceGL+LBzg# zvU*lT3##tr){r9|E2xw_Ek2)oeelSpvzh2p!y&=;co((Vc3s|C^a{VguaK*T&ix(e zS>wASFJ8VPtxn4?*?`GFhi~tLJi|CCi%R<@(6V9z5E|bS{9Q~8YPKbwwcC#v8D+W4 zEpKg!Yzv{(rSUUcIr-w(B$U0}ScCeiiSHA<0srl;5TtM2%32QsSqM5ht9`Qooyjqh zQlYwV@vF;-DIhobIY6Wd7}?|EA|WcGt?~d!WCko5%*_c^S6n*C1kD&g+EHgGB6)l5 zi~{Bw*r(-<_oUH$vQxKSKojK|PPvRr5c)Rd@Qru6N9Jo}o3}%WplTr4uYlzlCRpph zClMq3Vaz%DzSBfu{xCabM$3s-wPa^&GYsnFb~~Uxl*!b09~A?dzX95ea-=ZEtG;?K z&O~04+nsrNSb(Q_JQ<%2@5;SCXd8F>((S{^C#bzOkA>^(g?iSnFK9gHv$j-))UU*V z!CSuVh1`vf1vRDK+pQ+EKzI!fq9XVdW*?BX4W1{e(8nhd6UPd=52U+mS4Ifnk2W@T zP)TXZmMw|2x~R(Xa_VU*diw?AyBSRK^zii9z8fion;DMB6*jD`C0mNz1<-=jM`BH~ zCy;%HhQps;x#C`ctV8tBGAK(K7LS)hJTAo$Q^$MNya)4;>3bcQ{!;cDd<|oUEPOpf z0?iBe$m8BS&;9iD$gO8cR!M3e`w#!Lq;%!x7K?-s$i3fg&7b4p*;|{YM)FoJ@SgAS zW3Iqekj<$^0-!{i2K=282fxnFFQB_B=NeIAFW3&|ONZC`+nhgtzPwg-0}iVcv^Tb- ze9p~X<8A~jELVQ-8t9^J3{=4M0dG7fpHNtkvc>k!%8h?b&>BT$>A=pxA=?`I($6y$w>d(Pl`VN4B~bgUpTx{~C3LocL+_&5 zJ*n_x){qynX|6;ja2UYM5<8=#!-n6BN5-{XyiZgwtd^EePH?%lfwI@CL{TMoa?pj0lg?NXfe{FJ|eUN-Xjk|MI= zf3sDHtlyB3_)Yj|E;O-XFY1v7=yz;B`7#it$$lcZ);h-KKi|cPavKBCvcw0JxlukZ zHVSKM0olAhRYEekL%;tpg(fnx)GheUzRYU~2pZgYX^+rk3ZbHPAm<}MicCI_F7OEU z#qpU?xGk4|h0K(8bo87O7Lb&7^gih7-zo-5YVgprHe;vmsUBa(caZTo;V4}SCgH-M+t1>;Fm2f1_$Qt?Hq3>rQ+dRU*C}6svn#rd4QKvgJ6 z|9&y+72&;4#@CECt2a?-#^AaUDAoc1X-;CQ4)&8H4PbeKH{Q~lkA4z0B$5lQyFfh=JA1PQVuAY#mgTnn! zNoP$7Eml^d02p%Lgda#HCVvpnc&??Gu`$2KJsll?6qZ%AZKfU( z8s<911IY19n;yHM$>EK!>&{TK%X0pcU@^*0`|UsiG|PwH4KNS*mCHqIV)*@O`HP%B zHH#~QS%J&@57!zW`L=bW2u=$QWp(@P?p)x=J{iv$aiTc5_Q=2jI#}O_REuQ1Y4J&0 z*Zw*sxct|ka-bVw4RjNNvkTw4ejTDljn(FbKx)FQ@P`x3q42P<`}e}7Djvj*d$H5ka9kg@ zIhIv1xS1#%lqrPS@hZ(Qp!aQl@>Nd$Iy?1qZH7iZ`#?5>m7V0gTgy8uBYdFL{yaPfw+{ISV3k!G`#!D zYF1v0R6&@e=%579QEIiuI4bBVBOx_g#t`39ix6e9&YQeuM;Hl( zzcl%4NI^=9JY>8lQ1I=|VL0f!ue`e(_S$26OOySA*b|@3SFPdLOByC69)3vjz@@=V zR~E1q=G$&qBp*8E9!NIkF|e`UQ0)-4qnay{&}LRg4MD$)~KY9@5Z{j zeP(ycfV0v#eW&Se_++{Fc3Oj`COc62D_dH*pXZ*l3#+JP4hy&Ue0RnjPjN7{<8pCv zL6dmkdKT=nCN2HsWEgSN*Ska}8E&q@4%u*-s6c{Acfb?aN*e%GJ|UdYegoIDxabV6 zI1;CDvZA|c(8DpDerKblh@L-XaW48Lh2gm7{QuMtXcjw*%L^f+#fg7EOO zUs{u^ZGoa3EAD90igbB0EiUo}v-yI%v91<}o8$_lUszh=9U1xyJ4dz`o)xddV1=G7|M6@tMT_yCQfY829JT^=TGOe|4Sk1NHfT|J?x~b zHn+6_6*RJY&1;u&5ZRWK6g#{2I|vNjKhfYAOT~cuOu&_V}1R(Lubs|nIsILOSa_6}U#E|G!(OBRZtt79A;ViD-y1p_X zp5HBfEj%i!x2vmq=5wcq=Qc29M!najEt~}Kz)y@!x~U{5DG8jZZ~FMo{7U&Fw<_Diu}$jGadd1G2ouss zZZ;(}qXW1Rmq7hjC(Lf5%c52WV1t0|#q<-@y=i{Vqa#Wpv-hGR5`g%=Q-BBQlHRi! zgSK5AoznO8^zNaUKFWcVHo-06&~>CbMY zmF3W=(mlP>jCx(DlT^TuPuLXy_4SzXB5Skp_f1uP2Qislz?r_A>joMi9X}asYqwOI zhX?E>-1NF)Vm+9{A`~7l)FOm(MgwEF{?82SR$T#E7pqQKZP83@oW8My*(C0pJ`vp# zllcG(yfII|z`&{d(mnYU2l)^2@x%g*yQXH~+MZj~uO>jhTmvA|T4kuUS?P0du2p`1 zcLHf;*~GHa9ACdr2j z$qK88EzNc2J4i7Wj>Gcv@>bStRnRor{3DYJf6xXB=nkOHfGI;>)LNsCE-o$b+S=N{ zy;fqogTe6#Dn7sG;o*Vw&oy8}HdV`MzK+ZxW>Os<}n6IY={sR7kk>A|@YpSDho{6%@kB{6Mnwm(l{k5?=Dwih~Dral%Vu9W( z&~kKe3YZ7eiz@e~iDR#H2zdw~xcBs#E?Yw@!L{_}V7KMI zmxkhT>(galROkQ@zUkWI2@d28z!=gBkw+MVu6IlSR(Fzo^Wv-9j!sU=hm(Uq01C-? z`Rch?XlQ5vzq%HO%rh@49iF(IaxRI#*uIGd234e9KDmuZL@oCnYaK*q_Q0V6I!_C5i35-*{xMFXH zh>@Y;!46N9?#J6Uz~BMqEVwSQ61|>%;XWJZ<$-P?(oln%*K$2Trmm*Q))p2b4cJ3C z$%rzm6@Z#l`~CZg{0#krx`%JtIy%+!`TDQ9(bPWuoSba0dtT3;J(~_72ntJ)E27lB za#5Z2P4tbO*yQA`1{Jc-y?X)V1hEPDH_{sI4Lop47eG2S%9v?j_zC(e=9%+wK)CPx zG^+)2zP+=!)4g28GdDM1;Y#?u_HU`=I^aylynE*h6wI^EF8Z5e>mH{-f;vt@QgXfV ze*RdEeN)3BJrW9wOO7@*mzhbn&E8-xR8@PmGgD@e-&N% z@(z!V0y|bbsIobzIX%7k^=q0)2p7Oqp7l45CQj6b^45?0&@L z0S7So+WzBBucH8JQRLZH4nD)jPq~qL;FwB-T!x`W=zbl8g@zk8t>zdzC-(t-aqp-p8oyc02#h%6951J literal 0 HcmV?d00001 diff --git a/docs/social/v6-launch/assets/02-lockfile-workflow.png b/docs/social/v6-launch/assets/02-lockfile-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..985cf8c5415c9bff3c11f35959868f009d9d0133 GIT binary patch literal 97866 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 wI{#xjs(B^Dmvl>acb?hk@Aseo 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

WILs?DBFB61n1B^@I`o3SlQ0--OfS@NufYXg zQdg(>@#9Agv5ukU;(}mvdeQgqo4clBFb~g$D7w*HNl)Zt2UCB)9N!u*5L#bePD{;& zUXJGj%RfA1y#onswgBE|pjpkg=WATDAl8^3;c|0xljr^rO+7z9#}Z;?W0Ow23dBL` z?diEZ9nGeiXBZnEwy|+=$Hk?7XHLNB>J7xGWN7&AT~n>2m7#$_JoJQ^ZxWzwK^Yla zR8-|=(GPru1qGa(oCGX3X~Dt$e?Eqt?p^-0=!7_r#fMfsmi4D1dIvG?Zc^{-=- z?vD8kB_j)qyzF!lt``Jvtg+NL)*6 z7AOPw9S>0a0^&%s*B3Z0^oQmtd9$H6NhPfiM-i-!p7 zS?jOwlcO`&dS`5nDGReBAd}9CLKN~0Eh*d`rhzp*;3S}@yTZuMS7%t2d=H5$ z%7GAKQ&j$Dv+C<(-;G&ILgFd8_xPu7-xorDKYwB+%xxmY6lh7Ava8$MkHv9W#ae|p z-NZ9wCMGtdq`V@hyc%I~1NM`b!py;jlh@~$+<<_3E;b9wF;Tiv^hDftgL-ulkQ_9V-()5;vbWL2+PIt8#B_)HJfl21xvYJ)wX+M2OfPh-o?rX)J|)5nkgn6DTZ z>MbvybyJ9c{P>2JHZmfDLA9!La4__AL%YFs(PQx;`3GTPFU((YaUGmBY)njr#l^+W zAAUrXR#ZgVHk@p4(*r$9p-VNxe&BDSBK%Gj`qy11Tpc++Sp8x(hPLY+ioP|D%p3yE zHL|Ah{z1em?dd!-ZGz~i9RAf(Qp%En{DZP`g{dT&%0#lTFGs#{hfh9JNM1ZWd0I|R zz^%EgtSmAr`p#HwrN(>%Flu0vUskhob9r5kE1SLQ^DQliiHS*wiBay*{o>-l?rePz zHx+k+wBy!v6y~8f^px(wGdj=1Lz^!u1W~aU%Pc-an@9x8X(f^RxTOHWUR+$Pe)&Y8 zMxe}ML+V{Fm!Y<0rWA)I{Qu?Ke&pZ200R~E!IVGM3I8A^)i+@EI!H7y5Q=?8`Id_- zv!vwLn1azwB`S!rQx1jM1?1jkX5JH1rN$|#DP~({{CpQdBwV|L14xn*5^qaEG}WqG zC&RS43IoX*Kmk$0_TkHFytT%!#YKnClHf3sJ@&X4(L`>{R0GbP?(B6*7qN3*P zOh8V_&wt&?Lde0<2{&CN2C?X@V*szTx;JCzgAkagD zo5$ls(L`MKli~-Pzi}9Q^KJFcBv?1cn})Zof_q6^j*($ukG#mgKLEO?`uLUn zcMG-a6SiMSq{Q_rVVnM2Y$WIDiY@w&9fspwI z=;rZMR+h<&mk4Er^-u??*hw22zm}F)P$ayYOvV#9{AOvL>1vsnOHaaNolWtvYu8y4 zie%BQ3jNi9H-5$lbb7Q>!)|$`2Pb@1`?PPEIaEM@tI;hs)cyRkctcBJ1{|!^6W@uM$tUH&_Ak;IJ=W8%V;#!R_wq z%FfQ!P*cOf!KwH2Te!edm$hE$UO8BzIo=aoaI>+IAHHoR-X$dku(OzDNKH)*_)K=f zzRu20t95{2fQW(bJz8>dI;QaU{_ay^xi*^9TC!|l46qdRWKTy{HZ(4d?q;J^Baam% zu3M`?Zxk8{xgd4^{#^htJViw%A|wP5q_>YDK0aZ-&e?YDB!4`yGA)ggle2w%95TAj z;yw6xY5t?6+$A3XBPOYXk z8EJ^<+$T38S#ozH4s{w{cM))DaO09hXeyT+{LfA_51em!8t z*{LcuY@|gbFwUyZ0dA%@;#BtI$3&qv+}hgubRV21-PnYLDVdoQ>5?k_`r5TFN&pVE zw~x=xw$9F`Iu8eJO*rceY^fB|_c8zt{zzgzSo1;xQA2eaAQynw!7+6>F+N_>=bBbn zXk`S^R#CwtBpm*`bL25eJ&^c4CMJ#uAD>aZF3ohQAc42LyZiBL4`GVbC#bk3mhpnO z(-{*Oq%$7Yx9+()KQNyY5kaqE9F57sAo6Q!%}xe0?U!jz6lik{at#iS#6mpSwE6J(Li!A<@m(JEp!ubH05EXVLyKsr=)xaxr@8| z91ya0qxd73vzF3yHh0Re~kn-lN?a{5T<((W?dp7`Dg2UlJQ-1{ao(qCh2nEGCHavWN zb9|!AT*VLvhcHN4UNb&6mJl2JXm?hlSy~GuNXwl}kLv33@-4wAK}Z6oD){tiNqM<` z&(z?cHGp*d(3-bz->$E3vf}?JDH-&cQwgju54mzmclNZ6aM1Gasn|);`hp{y)Rr7 zb6IW(2v{}lJ21HUgzOz{WdVSy1f2>!P!ptf3BdUTz5`#g%Y1D#9oCToEsvR6)FHZX zS}RwF{C~+T1k6XrO(_eTFzDhpX9lC5-rgEV!Tt9Ot!1NSbywd&D!{-X#lXM-BJul2 zNL42reY*R!bBtO%d$9BCO4P{TO%L8Zgzs$C+-4>@ud%SOaB{K=sok+FfOQZ?2u#S! z+n$@{-LTVk8#z2YI^CZ2*p2tl*VjMViHT7Ir<~jnjr5fzaAA7avE;(8PQ=D%%#FDd zkeLQIytZcuzuJeAeN$3|L`0}U_}1N@Ana_dTQ#O&-sxrkdlRORgRRlP_Gp*4n9o8c zIq5ZG0=I1 z-CEk&giV*kegFEk;oCPM5Sc(6Ff+S|tEvhOEkgQ=K}VMh%N;+4!x7PsZ8kOx%#6%T zbbqI%iD!-gtLy3RmX{a!AS&W37=rxl89;oPhaW_Je7q2$0G2=ur$GHqLqttYLLvub z%)Gob+~;n80;4dzNE@Me^A3)%jBb-j6@2>X}fm9_xNv+SIl3;NhT zv4PCj8c(G8FTJglNn%;M@p?CI zZcNh=L^N(wYZ2Mh^m~Wb-A_i`V#kn(h=4(>#$>c}ad>!`uLLMPq0#zaaFK$WyZUcl z;at5IF2mJ$>nuQl2mLV#3APu#)jA%R!k$Q4gh8u2{3bUuQ+22@RE)bjR$?Jq)h_uB ziStdqPG)K%A}dn8k`JCvO*^VuSZE$G6l(jJnwu6Ig8Iw)XgU%32RXULs8%FI7xV=_ zMQ!c5am!jpordn1(d@9UoQNLRI;5`d?n7H8!;o_mo6%cTvG?v*Cztef8jjC$j3_uOCJm{oFcpj*DUOM1%+|M7i3m^Vp3 zlgUG9B6C#=QHkqcd0!P7lNDyF?Y)0UtRNv_)_TG5AgaF{UzLEl>F6Xs7rQ;ga_k_} zjh|}2Isag(eLq+mO9(iyOqsZg^~L&Z1#16|WFe`Y2@1i>B*EE%RI5NeWFf!A#NCqg zK(d)e5pF{a3{FnvN{BZ1$t9M13IK_~;d&vt*V!)xczM-}@0R78tCgjtr-zVT2C=$` zAP8U23X*_ckAz`yfL-oiIH23TBO=lUEMcjT^KKQo%7J>a zph`}cX6zO8B99r#OIqnc9JW>s1@_XpvGr3uWD@W<*LsX^rb>-w zs&JdQ3vxu1l_MYE4fMscNOkgBj;KRW3H|H+<=gCP+Q%gzgunrscMqcDVzl3Sz$QDz zi)IPX+L?SYj@KwYS3!1i`r^jf@X@}?9AA$InJX7!o=H!aMNYT;{`x3GCa#-zU>1rI zd&}cK6K%CNfVG;&PH4Heo1j(e@H5ot=p0log9D*G)%8|7n+TEl`M@DOT{{^pGXAFJ zIZ5c{GzS4SfG^X51G?*>*LTvALu%JMuubP38i*pMFwOf&-G$#LNuY786i; zNhf>B@vb#p@l$NyT_cUus&o^ZI!s5@ak&YDPFf3g>W)5$bQl;Jaa@}jm{jdt_O&Fb z1F?hH`)klbz)^4DwZQtPPe0x~@|an5#6ZEJ^rWh2e_2sE4e-3JZT8yZV^Y4*q|U0s z5U!Pz(X!(;ET(-LqPu0;z>ciT0hQh|=w)~#?>AK#OG!PYoC)R9*MVvAVW9Xm!x-`n>=TWq=lvN_uI;cN+@49Hwru!dQoHvdGS21AaycCC?N zqxzkWzc}{+RO3_5T2MfPjg%P$W zK*%(tqJm@(4Y9N&r6eaW_Qh4s$fF;_pYU3^h_;XKIXayH+NpA5E_Kb@Uxy#rwUeST zI5@bzo}_YgXS!lPx_R>=NF$6|rnJ-%e2!pY(bs%nKypm$)VH+-`@-C<{@JrxtAyY4*JogI!< z<@x$txx0@LFLr0jx%er(G~9t+M;d0sz4BqXk<*e#YF`1V&=Eo;9Ft#Au)AH2n%eQn zZgT@xZO(-%S=&IWZM(*RhKBan!2nEDf$>qtpAiclALD_R^LWI-X5C{uhrhk&SI&=b zx2yshS^Um-+Vx)~&xhiQVqILIt#V>sK98!xzti`-4j+VZv5N~AKKas;5)qrox;nmQ zMo&QeG65OgEKU0VNlS~3jcsX3$s|u6$rzZs9U0&|DJjlKjHpWz(}CO`6&4mIad`~Y zod+g97G$8MEy&LHml5Z)-Y=SXH}Cz2vRexgZQnwvvILjm8iG}sw!KZ9L{7nJF>^?N zD7aCJ8>#r7#mb zV7Z#gY00^xos*)Zs7Oqf)Kop&mye;r+}1Vp{{7d_-;tWzF#_^|fQ2~(1jqw=1O-8` zWx=n*t=)&GL!{+~So}YJJPSj=6SdCE$3+72iVGYr>1BDJD2*4#b^I|?U>Br3cuZQ_ z)n=CV_8i8;H%acnP6xlHgMEAu!>1c#d19s+w>T{t+?R0IPI`Oux)d@Z!oy{EIqbVB z<&;8;fBy6p)9Job5lUEt87Z-;yv}@)!!+0#TmCVV_1=tU(ORc*KsYSi~ zDLFal26Jj{&*x*ky6H%o`NhsY%FP9;hc3?W%--9-ZFCS4d1P|HMO>aJoJuXQJk2Qg zK|fk@$kGWWmXeTItvH8zjxFXHeOm=vR8V#;0H2&FPGCJHp>Xtx%p_-J5W$ilmdbeth2#Iol6&|>zj^))hQ!)HpilY zBDK;rt84cTe{7F=4@~@|P*qvkvyNiyI#f!2im)EGMl&c!TrlO29>Q-HsmO00sp8;7 z$UT(8d!5)m$Y@nbr&2IBF`+)I-LogKfN%!xcKnM?lQQ6KP!@XArjuBXge*yqUwZz4>-~ zVV`SYIMpL7BQw#`ay47)v=~^RBe?0#{)zgicj~C_6#c1-qPlu)LRehP&zQuY-~fNS zToMuzjy5Q$Cj3nu_NF>gACXA9xm^QKnaF#IVYn$PI8V`dGuKc)GY(*QB%_8BD5+M| zmz02JyRcI^HRtmBMFI% z^)3Clz;pb zx~5MGCP055aFJydmw9AdwJf!ApW(oUHQB1Gok6-99$4NZ`y?kmJHx;T<=HdKMV6Af zSFE(K^h`G6U#a>Si;q;<3G;pV;e>i1I570fDyyj(T5e7LRa>{KnLv=~PW$!ic{f&g zxJ-0c*WR1Vg^jscX<^~|qM|Gk^Xh!CGK3Ye+lz_qC6mnGK?pg-B6bcAms1;O!j_wj zoV2v{MQIYJw&R_zt9vXoR1>zgyv z*SD?WkH`?e#0kTa#W3c2V#@6qD$9Xq2;4V8M7-d4nLM@mvOAj_RbEcDx0n^5{nwO} zLy0^Vdc5%G*hv3ag={1!As zD5$Bq7~kPFx$Egb*l!a;*h&oukRZ*brR{!&qWdQIwXLMt4&Q;=)RgOt;**t9+?A08 zmZ<8av$~>h-yU}FXz@5cZ(~r4~w>5fuC|LGrvAb)t1qE zQXQ&8%$c<7o*Oy7dGiJet(~jaBqkw=Cx)7sn;$h=>FW#Evd0C}&~Hzb6=qsP_NFHy zaGEwHIUXn*8Y<<^QGbS@?VLH}78W+TuE2h5=zO6*KSR@Q)I*(CJf0aRtFt{7*lSd{ zn*;(0VBW}9miJ>v+b26;)6l4#l}6(efq9JO@c;u}S;1j2%FWMRxsB$j;hEXx=jV`H z(BQ;uQ+MK-Nz#&(?D;T;XlGwtpm`!d_5F6K&SQYXHdh(ZB2XQo0HDRW=HKYLArtn~ z21u${2tK>DXHHIzuCbMcL4{=LhEr8gn(f|}!@`0dKuaLe?H~2SW2)*?W<&`}cKdHx z0p>?jGrqN@C9a~gyZhucP5TwX64D(qT0r#$asJ*&(8Ey$v4mWXi`I%gd6GaX)z|x} zI=#Yd^*6w~?j;;$MnZ<^6){H|T2e}9UY&H-S`;NI@&;PZ6~n7fL+IYD+`i>o{i-Z4 zZ#EA`UYFW5gNDCQt#?h>&tjfG*2xl-;1ny>5vC&>8Xaz6)P1A3vOXycveI%HCZ2@P z=P+EFP_y~=!3L|!tgQ7j?+@LVgqvJx&Iq{xPIP}M{Qg}egj7&;>8>5elZk*tWbnAD zH8n~K1IoK7qi3!!e7?}}97N*VD8FLzJ>*v| zj25(cBb4&}92IRag3HW4+y9)f(Ez+Z#PX|0qy5sn2MM--?t8UocT4=aA-jaSI;^cN zX6vzP%abBl4NKYObl?2#^OY0w2Cq1eLo|ZF!ZACW%jzX{VUvqWr$@} z(?z_x8g8ooRZ`dOvc|?O-iTGB+}joS4U@fkPIeOa;Mn~2}Nnp?&1&1 zQdN2b6i-KaF2L90fsvCb_l2zX95ura#&4X!XSVS_PkvqVe1XTuuVedCF{U~go1THe z@@_#yw2_m`4vOpcVp()uL2Vag07>xl{)ImqTGguVGEf6!kf>V_w=j~+Hk&TqdcG|h>4l` zRpYSHa{I-}Kzg8ay=m`v>?WbWT^ZkgOZlKvR!fTn7nk&e{tCX8)tR-vIuh_@OS6@` zLXxj9L%6%AM^f5-zMKv!$;p|bovRpq;PuxO?bpJ$+jRHq8SYAq1Nc;(A#YgMF`VR6 z^-?;*r};ZZ6~PlhnJwFNV{fj_am(m^3~ZtgfB?|L!TXR{4U`N|v0<~dr_A2T7Hh8#s z>RjQlj<}j6tEQD)lhC`7A|UI!{q3DX)!-~#i>!f8ocQ@gIXmZ*de*p%*^shf(@;{Q zH2z86PtpJE0^jVao*f-kl#}~9{V2@|a40Iu%5wc0pmrDxn!(?GUcbyIa;rniG&V3W zGRQCnfA0Poq}{#doK<%brCwR0B2O#SAOm17HZ~H94?JMugVEASP@Mxjqy0i9#_g>3 z1=Ph_GM3-5SvZm8ISx+N8ihV9(RBKhog%s30JThFlT1IrnR?WBxHI(e*x1-a;e0In z&(HMLNl8oz(i0gMR__fA6m1TnSN8X|`wn3X`v&ika=vD}czx5^eT z_823i0fbO+E|1{PmhP|Vw@aJx^o(RChbO!Q%^pdxxD=jOJqO|^|!z-knyB~|eo6LNs5;bV@GZ0U-L}lZm0ue9VQ~T zJAvTq{`QwBz3c6v_qgo4)5dZm$#|;vQf_042E~M3-9FejPZZ2AjOTs^eB1Tq=~D6DW<*aF6+beX z+0E8i?nE^@Ivexg{OJ-#-O?98pH)^=q z)Ip%xSy>i$lt|8xA9hdR%p*#Za*VL zi3$xJopyy~*4>ic6C1AFm`$I7aa9=gAM2D30F+cj6=7KZ!airj z*E@LKzGhFJoY&Vn_DA2~RJw&+T|f;DBfJ&ulyD~KKs#h9KI6;A-<~$L@$oYaWR40B zxy5DM4hJo!5G~Mx@lD1bMxvm)llzv^u z%w5x4X=I@$og5db_4%eRMt1l|K=%Q;t1w-L5ORQ)1Q~U8b&w{Fj4Undc-(Q>m5)I8 zNEaYOw5-hXUdPDqXa~NK#VLW|@9~A*U<%{xY%N z`vz3%FPRn2Jr(^4pZKboLa5RX4+9A1d$Dxiw{j|}s8m{ZV05?(wlH{sR0$Z2D=7m5 z|MjWh&5Okq{tzcDOl!l@EUXz;G_qAL*J!dNF@XCUMBvuZIYYe)pESxL?WR`W5aj~ZZicb( z_KS5ZUk&Id60IEv3(jA%Ij=yz9uXUB^!alyMM&rpQriqZ<)0_FlHrmKCDpcTiOY7= z_ifuIj_Y4V@{^PG#^bG=3%^noff`JgLS|cg`^SZ#dC+7A;$90`CfI7z7mNNX1ZFW) z$H2j$b+!b0Kj_aPPbxod$s`G!?roH&)U1w~bJn@wyfMYOzTjw#GSL0abXY1T(oyGn zu3px`&c$XvZ#1%-4#O4FP!D9LWZynA0|4M6D2@*?p0gU?^T6v~*0;V0xGEqNu^IRA zGHg;k6m%6QVS|)(l1+Xv*%*!hNC4G2l!Vt&(1n=((43BuF_FbqT28K*8A*>d#(W&| zNql+i*6`Y=4|t;&H{U8PX20y#H9j74JRY5Cm(qCiD3zMJ z9gs#l(-yFLupmyKdI28v6-s|VDU0|wplI9<#8tc(e9q55-H&fU5Lx#C^nO>G^<9Wa zMxvgtPgA~J2p9;(;#+n7`52&tCF)Q90ne?^*{H*+jrVR+8_BFvd!VO`?pJ@ZK>+!- zGdDR|WiwWTdK2YjoLgvh=Ft2r34>&DXx66^ums?uWW4S|tmfx4&bOc(=x#$;CY41+ zPwzS~cbyMQ2ih8oh11+z&|GoDUkJ@)XyIv;nx4vA2Aci-d2zU6{*yk1b`=B!#W%VTuFWl?eU*FK@;AyuRR&b#s=sqq3;vBaSVr$O4Gc!l{1xyR)cV(sEH7#4=?S@A zT9Rm_D>z+2F2ZbelLE$OI?@Ar;I_87ggldj0j>;=V_pI5>Xm_!$X}ljVmuP;X&83B z(}7v%pxlG!d=Ino@+|sbL06+z)94Poc4rew&xrq)Zb^Z3Mn%V?brb7+83o?*ZK)&3 zbl!*pC7o7%gMh$vLsLwr;%$@cXCmQRRCmH(5fOb9kJ>Trn?H-*BLp&m79k=oOMAc- z1Gy@r7t%2mA|qF^LRwxl>ZJ+`wFsnY6y)d6mN`$q+)D=fUp9^aJsE%JgGrCpxz+(g z`MIj@+qV`#M9IYPBn)t;DJYCM?84Zri{?Sgmxg`HL?MOmSx`Kuo5TJHru#!|&{zu? zV`6R>S6A0>-YN$Xxf8~HiAjk+n|XWcE8FRWuU%;e=+Z;!J7iB#k!-Lz(} zzu(agf6_Bcy}aC_7!yDx7m#=>D=X<~X*s#(w6t_!zv9U7@O+(rpq~@L!Qb=`41zTH zAX>@{xVyPjtJ<-F-WPd5uS7(E$`S~#Qj#(u0RhgqH&@MGzE^*$Vc-1y4;J1(N=P8- z>-z+_pBFD)fc8!a(C{lEG1qvzzd5$GzlJrC$d707D`6F+#)!|h_m-DUEDf`*eix?X z(Nnbn^>+4mNlAPPa5^|__8QPN<>mzAY7p>3LO(1iEeDmrUr{PqIR)JVJu)B9_c!gA zK?Q{ZBrFZ<>Sy>VLwtM}C#T2O8yf(Y`xeN`75L>a!h zcEOd+Pbgfg+6aMPIhVc(bDz9k0tBTnfUB#K4taP4rf*)~vBa1(!b|;mcqmq>a)e}L zxc9sCF=-HmH_uCTL0eOQ8tClNcH?uxV18Wu{=Rz^hWb!7p4l4{aAbKt=tL3(^{-q% zh1_i=LfALFZ*YC*3PfLNp+3M+-uC3_y^~#qo#cKsgNlDP7;3a>* zOc(yV!va_Ei~n97Qxaga>035j0@~BEGjo^5C+tC~8WhbID|$c$4@_Ln?(S{~@&AmL zpQ}<}x?#T8sQUhvvMrcG;6p>^JDS_Z{fUwTo$vmABb@vR+ zUoOeKX1~86i+spt+d|YiRItQ`J45vRWl<< zPI5tVUfu`fH*|CZOt1X{p_hN#a*4RCKw6p-e*c}b_y1!%R}o8P+5eJMi#rho4eK`F z&-MNb|BwA1!`D}L*AHd)y*az=56Ycjx(r;i<8(O5<$_RnZ^LQ?7&&W%aW}f*8r$0> zaaLX8l3KN{$tI2)%$$&Euum~Zf2J@LUIpoqmNcLCcKkBUSq)INUfny{J?0t}4n?vEe5Q!QJo{$OiIAqIb9u)#HvBR!Mu!K6v#GVPDxV$`9Vrtsi zA|kZkTQt$15EfHWk-T$(}Z*k4`0_Kg2{nx?kT^2tIBC>E2{1ba4)KfTWea_fxJGj z<8)n6Tumeb)8@KcqyS^lHA!S4hsGOhOTWH3br$Muv%S@>c9PZ-ww=r>u9$_In3#bs zVM?0z`6`>c4dKnP^$2jrL_`#@!aWTR4oJ&PM_fQJhG9=}0RzH2G2P*6)U7rkpy}fe zz*Z$yEJJ@r7+wRIKHkySI+cD3@4<8C19?lO$oycIX<$H(*(qu8Ec7iU$ysrQ6k}%&Z;(xNj*oEdlW-1?wI2EI zaT%ngJDhPgt?kggrY(78*9W?qbF*`&r+6=(5tUm_jQ==h?_WYyeiL8pwPMZ*KIHC{ zRA<~_q(^;@O~k%0W2c=uA=YCiJ1fUw zb9ii|2YS0}$>9EBWW#P=j{=1pSOWNAjO1R5E49bEGucNqeY`Is!qpl#H#fGxNrVqk zFa5*^XS_i~A$bnMK@zqt+X&b$=2CSkB8PxrM=7Oq4O%H-yY!ocv4JXiU^EO2Z@A$T zdq0_Um{Cfh7#)R1cYE$%!MQ{bmui)^;OIfopH|CzZr-2ny}-jU+uA%wC)*kF_#F{6 zyZvOIWTv+CoDpP^T><3|C&AvK6HF8koyPcI@v15+h54z|(|vB8MRJLc>K`%2FY--P zebg~DN=xE7fC^n{s1ZzoUnanAj7`qTIhpN-Z$&bJjCW_!(sO>=n6;F3m_nz~&)+p7 zF;ZPw9X2`nJ11kV-go3rp^=H{7QIfb^UB|9i+Z`o1urV_`y6w}K`$OvUEp-3Ii2xB ziIPM>;OA5wpw5%zr@CN28~594Ore%Uf%9eU$2D#bh+(I~BU|f2uDD`kr) z3K;}(cAr^eqOJ$PM`&s3Ln9-H28V(6@+#xRD9CnlD&u@Bf*Hw|VTK+MXLWnr=A6W! z@bJ-LB_dE=xaGU(ndV{vSy4ib9SNIWKuStVQ=hhH2!w@8{BG|eEU2X95HxNXf4Yrr z4!v`gcFd;PZ}RY3MT4&4Yi?IRb)cxP^}NrQ=1Vwzd>I07MbZNt|toxK~Ip1qfBOEJp+CI(tLv{tj+c}*B1HFT>jQ={8_yz z)JPPTew3N?osXroD2-1Abjo4OTfKe*e#u~Td~~MKHZ>!|<)l*54t@+gimUaSQ3vFa z>zq4SU7P9iB|93bp=8Gk(o$0JtG1r?awLNTmvty)7iglPnj<|=Hd?z5B+4q zxT%t))S?8xcTrO62)1#uaa4*+_*o?`FAw{U#cgaX`Sw+!I$T;xc{)ZqLH<~snFxu0 zksI0w>zMi_ukedZux@XIW752+FzfFVlHcgOwa4V%-oA)jZZl)!E)WU{F0IZj+V27>|KhVucrB@xtuS9Fg5A}8{Z50eh~ZLXnX6Z zDBHL17sUVpK@kuTxluZ$kyI2A5m4y{DQS_Cno&Ve5a}3FT3WgrX&Aa;lPA}M@FiI zKf*JPb}KJ?``_l`;JCY4&6pW4XoG3s6En$>I{0NfQ`>~V{8&DZS$nGbu+XjpV&19zVX|CagiOG?U&9{cu;Sz>?^Z=HWqpK%AouML$m5=k+cq^KN2Z*D6x$N=QC& zRF!`FN;FPp%J#_WMC|OI-L!tJso6Nv8B4NxXe?x*%A&~&rc=g6GH`=FQc`BvEiE>n z@?&IUlEF&@G)U$J7a?IFvOIg&iC})A77P5lav1+3d3vn1};6xSOo{xaB1a7I!D+@CncTBBYZD*TwKx9z6l_Y0we>o1(W|XtVnEASjeC*J*Z$wx}TJ0IU_ zIJNp+x#E-A)GW&RCx0y3lEaFIh$zd1cld9Cx_`bJVF_OUvYBWw}x90Zb1q4=$FR6fxF_$cYLjWMd)|4g-kajdF~HIG?RA$`cq9~t-b@=!rEg6yWYNfv-$Ft(&`6Vf62wLR)3|nNES7U><{Z#nv%9isH?3spQ z2Tj%Pc3X?daAgqMsb0Q(-}wNe7&|5U`Ce$9{ykV@G1O|82sa@z)+@2^58Gi|T3USU zFqqpN2zEM%{IlJU_%Hrczk7vr;+L&7^1^@aM!VqK#Rgg@8=Xhgv#CVh-r^^pik#X# zTU-vkz^Rrwql!-lPI5KQ*h&OS&Bz?0CC`AmkH-+HR&dEiAb(>d|dpf z2`S>ac4@sugz8_G#f$WGR>8D!#a=N-z{U31B^Z9hFh@j6KIbe6Zyl!{4B-R5U zK!I$hyeQk$f)JKgUx)1Hr=VmPIvtINJqblg$vek+Z(+=#wLpW(|AaNY+=K@JA^u*3 z)HBmPT8B=kvNBB?9WmZ5Yfr;N#}5$x;IDUHNBe;><#e#XsLSiXrXDRBD@x!DW@Ah9 ziH`QVo{^&RZ`rY5zqUh2AjrozF&#k^@T+Sm$=gs-vN>xh{NNyje3|`x2B}V$#&3V? z4Z$b#0r$R$K#uf&`l;g4o4Hwj$$g&?vB%w@T{H>2#WSIEp4=AT>k_0W0t4fcm(_tqcbnZ4c@!v7X><48?I zTqf-v%FmNzbD==w4n}IaI43Q+qpX(c;fHAA7HP&9W`Fi)$wsCo7bLFGdtMML*<$C5 zAerPJ8cg<&!n27c`vJv~`9FQZ$Ac&7RoR@P+bmiNwbs>HOD|w6eqx;@g<43jIz6yzfU&2h~Lbu~Ix6 z2i+Wh13MS}jfAA6A#{DEtCJRd+p9N2ikv$yHv^YQp2l(?rRCoWzTQ+W3D zdJ83VsxA}lE*fCQTl1odz7_f8<%NVO!~bz~Q~>ocC?{wyi6Qnls|;_ffwT#v>_bk) zO3$A&v$Okr^{KL(o0wr6+&`em014gq577FGdDiiah=}m76TwAR)(l(|Pg}jAJq#75 z+FH8v*r-UUM~}t_n@0N!i;V>daBqaKWRSF*eSm;JdT0|_yZyYj^C>v-Aj%Qlo(Xp_!bYN4|Lc;TPe`HuxV7LDPn$K~x zFF%Q_lu9VJjZ{Be_0QZcWls;5;l-`^;tY|Qz)xu*vkJGwEX_^gle4xuDx_FiWb3%t zYk~kQ#j)c72cy~^0$m@wyRh^S&-sK0BE9I7QmOBwHcKuye#bCO`}GYXm*wxa*@f)^ zXrwr|yJ+|7?zc`5O-mx!PJ>3*&$7sg@)f~X1?iDxnVGjnH4&a9@*FD@*0((aT#Ieq zq->`B%3s&pdDS>4Q@l@24@|R*-25xTHl3M&>b=1a_$CFUQt&}ZNi{O+#N-*!v6N`| z3W=RUzkkp6G3J|eqBH2hC7g=DYipVgf;#y4^r_Sz{hMfMumM_LEAzRaUg#g(Ix3QI zom~T)PV}f=rOz#aSI>OQQ&SmVT4N8o0>xbSlo%^rC{wbMe--5d-$^Ol+LHu!Pra+O zH|P1kvw&&Zbp4;4T91l>Ox-Gn(d@SH($0wWYTg zEbRZoAJVq3s%@OMI3}vE(r>&PI@nRI>xKEZCd?{YP{$V$usc4#d5!30qyL>QUC6btsaFIE; zD4T~H$%uo)H#lDVh2*7K!?ebXvENM|@<8_lv@ zHZq>^BBXU6##(MAbx$$n>;CL0a6dZiU&x=!uz0O-Xg({!gfJEPo*j!2WQ%GdUbBmB zOT>PsR>O_tYMLm<;5axCNj{lRO$8zol=r}Fn`^oj-l2LF6db-swcMuo!YC>Ax@1VG z3ZdUu-k#o(*MFBU!RFTD(h^u-oi3+(@2&B{=Fr&Lktk8@L7>gj0e+p^_kTJ;x2w60 zja|EJ@rWqn!neCWoe%f_G^F*exC&_u4^iHvB2C}$s2f9Q4H{ZtG$bdUfJP6P1F*aJ zjt5%n68tQ5daj}pbcfiRHnBshLW@FDaIG{FOC?n+AAvQtW24U(KAXbz=C;L}!9o8AP)tI! zfc$nOM+UJgfh+@=6%{Q__0G0^IET*h?^6!JLGi4zIx{^*e783i$0gjB@gxe+x$I4q zci�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 literal 0 HcmV?d00001 diff --git a/docs/social/v6-launch/assets/05-context-ci.png b/docs/social/v6-launch/assets/05-context-ci.png new file mode 100644 index 0000000000000000000000000000000000000000..6c0b8ba03e40c5a288eba0c026a5417b4fdcd9d2 GIT binary patch literal 93388 zcmeFZcTiOA*DZ(&NEDDHARq!FlCxwb3ATWO(8MO^Bp^8|4N4NpN)(VBnjD)3k(_hR zIp-Yb;q~?VeN!`k+*`M5YUUSXlQa$&)+(au1^@b_si1W-X7T)oS2yK?UhJ+8ZpcMsR|sl z_m8IE4bN;^lRhTNdJSFOEImW24Uetiuvm@Q)ogttH{<5{-p-J8;>4Zww92mpkyS8^TR_! z57tJ~Rbme@Wg6`Y?J6opGF#+062$OasMMgE5G-4pnG*dAeu?G?F3DXx`{BJ#&B99g zsxP$S$gy&BE|V4%byd51`A5PqLfR_l!+BRt%`&SR-4Tt!5IoG3WTXfWz3BeMn418C zjEpRwX>)zZestZpeIX_$CM;}rzdu5ec2cy`t172hYF-}$!A57;Sw{-)x!o#e?OYQ! z`*1MC$1j+Y-`rhK?^iw1t#@Dk-G$!yoHy5KL95*^MYxP--)p+PFft-FqoDA(MUNP? zBF|NuYE6&-=IiEKV$80lreR@fzN7dm=`{%nDO-*u<{j#at!`#2;oC6g)YMcyUfy`^ zi5FjD&zE-g*fdMbzUupCvHiPspQY4c<=8~1ydAP0Nl8jl|C;D@I3L=5^lM>ZK|@0b zG$D7iI6F6!DE%EXGqXTQ6#Q#@5W@8olTD-4_5Bt9P=tZsK06Cbs#2!LsL-SsO7caJ z@>`{Zn)e+!Eh*+%*(1umEBkcS!Vm}~JJVuVQ0R#2>3ILReow#wl`0#~)$wyMG&vin z_}IgZ@p>&WuZyJO;{6%%LlLAKG1J|Do5}k$sP@!&|CpJQGKP_{frYHo{c`^K8$CUF z2ZzR?;v<_|SHneYPq!nV`i==bWq!g;KEEW2@`@$wojp5#1Y3UZ>ZrPyYZ0w*U+fuH zPw$|ut;H`sBYAmw1;@c`laT1nL^5g$nN+3p4w!7JQUkN<@aSJS<$Z#lk3}b?E;-*5nFH*S>B}&lONnq1;TC@E$GDL4_#)+e#h}~6GSJw8J-KK>TQfqrS zDcaZukXDrbh05R?H&`XGcJ>dGdQ9;!=LYtef|XFw1au4!S$XN$(~vo@R8;`CX4~%T*yb0w)Zi#mGMA`Pgt96w(Ab| z@$rI!u<2$JC05?MzO83^xb5bWN0ZR*3oloD-pjXk=8FJ{Re?UUaRlP;o}L zwYAC+tT0N1?&9FwQDBD?F2a}LUn73jgI#4rIzR@?^}2WWl<=i>1WMsFw!D;2=J6p+&P{1U*)7%+ z`M5fcml&~~y%h54ta&VSp@S__twAh-N=sc_S}IWGZW2%*8P3egv}OC5Rw=}NK9|M^ z$$G+KwSK?yJ^B0XXul|ax}V-wIufKT8vmJlQWzZr{42ctp2X)o)Q7M_J2N@##0V7? zm39mqUnLu2`)A4rN9gUmn+Y&D;Vt^PHm8IEh+@)f5fM#MH}}LLlwD!b=6E@`?(*jk zk}t$OoS|RIvE@5hvFQAF&c)Q5v(>mP{*sMuS+5kyfdp45`vi&l4BH!DXRhv!a%eHI>cB zY6#HzZxcZTR=Qq!F*BxF@o2Fmq3va_>?+b9HFjJr^`v_(bCcqtQ;R2rmx5jr9(!vi&4 z-br0F6DHdUKeaVvjK}9G;9uj`a|pz7bZyyG&;PSvF#*IZA`HC1S~N3Tvz&DK;V^di zvbB|)yYP`Qnbnw+v7#ze^X$CkmPE6S!6V1RwalEHhiq(CdPYU=9b}{`C9MGg0vw5j zcX`qyPLD6Gs+|ex7@kfu(n-N!zj{W3y&9~i%3on|aq}+-p#{jKfTtWgt`|BSB_4iZ z2Uy@$vjs-?Y-Y!fZ0teFU#4dI?%sz3`RAUKqYHb{h>0u{-Ev@o4&}iGjgd9#;t7Jb z!@Z+}t&P^e_VgKZ80I1}^DaGxj0Z_H03?H^!@o{@L*uFfzu<8^VSTHjY%w!%s%(mt z7{JK%NXpOa{d>nXfp==M@6aqnBVXnUD62@joO}?~Jc(}1R@1W(HkrYh`l3DD_bP$Q zW;e*CeZltkStJSh0E?8oe7wCmTbk$?fBx;uzW_I^hdwACMohf;irRj&zo-0LmyuB_ zA0OX{I)x(5q&BDhY$UFUTFa9stx)zDhx6{sVU8YB(glZ-62TF5U@$eGTJ(<94&@lO zhXQbS*qXwy-3Pujbl(|;zQ|A!@0qJ2~a|J;_u zGWN&&!;cFdyuY3aiRbqq=zm!9XRM@a;!8+TrzY_WigkT+sSnGf;Lo&^|05rwe@OYU z!!>F5q{M5ui!SpIxyHKDbA4H@4Y@qQpIe`MVuODiQ%nBK%e|*quWwdk_LsD83p0ZE z(?|IKZ;aj(&Fju}%gzUP?Emn3?o?mqZ`x&fQp zO^V>t+AX@fH~%Lb11;Uz>ps-l(1+dnpSTQMg7$xRSpZ+V{^vP~L8GGa)lUD;@8E*y z;MlUlt8%-O-p1j!)VAnhulpjVoTudAdz6II>eBeR*O$CjOz|wQge?bX-|{P1_01dR z)4i7s-cEGk805l=R2399yTl37(th$b*(>Ty=?<=stXo)5ASv$Md*G?hD~9&0Ncmf$ zkBsgg7sfm7H`DuuglFxXWQpCRZa2AptGP=+*ReS%ud%THli)uKC8n7m1^V#k{QmFd zNGxW-3r<%?iI=*q&BvAQBT9=k$H(QEukg^&y505A|F~kjK?iGt$-t}o!S!eKyGh{G zZ~2VR4T)e3B#y5K8ap(lokL#_KUaxn*QpDHZ@2Mqa+q{rveB2BRUTIy>G; z`S|f>KN;GO=l{-OMlF-+cb$?dg9y3Jb`9r?Xiq-Y?b`*z^kr6H~E>2Q^;IkE~d;6Px(K2U;ZY7bCk*TQ*CD~9(iAlb#C3HQ? zBp0I6w#Ou^89fG;s6=tfe-7|)g3T#|yn>>lt$`{5ItF(B!^!HZk&zMb@ujHi@W{y3 z;n?SDx1;{S!GPBvN>M27Dn|pIl-%oMqONbR-hYny{*o2_02$gdrAq^ef40ms`~E6L z9enwYfZbh-p*)Y1U3D3m#v-FO>xuKH%B5S~zd*-+>58}>b27|p11v5mkel+nc>n&r zAO4lqQC>X2=Jge~gVhbtM_tZIq$l;=U3PJC9R&piZS9F)zY4OlvS2fllexW0$~NQW zp^=f9d3lp5FBFB{&L%xh>l+$K$@u5U3(;-hU5P2t9A{*=w5yGCgo_VIj%CL#}NslZg(Y6p7P=jtA^Uz)N~9?OiSzEdF&TE z`+9rLXI3cglQ2kNm}gl$1V`O(C1qvE%a^9SX4Km8))STLYHD|AFUP)Yi~)vE4EDt{ ziD?%2H7azUgXahe3Eh>*)2^ZJWQc_Ux$pb>jfc{4b>ONOfQv-wA+8U6N@%Zq7Zfmtk zb$@@Kl#~>k&c?@QWQd%M%=2W|mr&o#s0B6I(-R8z5E&UJ1_q8&ct%F^?ylY8v)c3! zKz*agqB_c4e68S%(!=av%=HtVXi-qb5=xkxn}>ykVbPKB%eBbC3F+zS0n)r)dIgB5 zqa#0^l(u%Y+4WAO+s2{0o(bOTdl^JZawzI)~UA=5kK*40(>&XZ9d9-jNu z)O>uGd{$8jc{Fqkg3SKEbg`7e+uPe+EeZ>{vFRwsjpxkS;Z|@zK7&P8NlD2|Gck8( zuajQJU&;Y}M*i5??yXQIrH61?2*hT%+~49R@KmLxr4I%BF%aHKp>J5WRMXPZo@8Zl zb91l9u3ii~19J715G(K2b@POh7WK&mqhH$>1ja#%D~74uF`X9s-1wS;-o6*Ao+Rn# zF64$2c2;Dou^1T|jX+ylTkc9cdGZ832m9>k7)7e7Esqs?;Z)EOm>=AY#2PaKF86uB z*%3>&R>7hLdDhKb5BD_1#Gbl7Wr$`hk5+?4+*_Zaf0pXxH3LEGAmBlN@SDi?hf?N& z4~B|}0dafeK{B>VqzatS#l_`@MID9u*T_&hc>j5o8tm40Lk8|nMoW6$9PvBrHro*o z-&5em!atJ@gb;r2%leExGPayQnD5-IinSxnAn9! z!8yffn2tawVzqR&8R&eEjFiUW;^Rrd;#Bn|OioXS+5~^eW2a-_xYDs<jD_iwl$JJ_rDE~ie0F;J$B%7AwU;knwss5z7Y)xQKa}|F@6UYJ zN|umtPA|1!WCSPF*4BP*{_w5-C0L}3(zWcwukGyYJUvlhp9E&JEUDu7CMSdIFur|g z258~h_tmA$oUwB(^Wh)FBCYcpDe!39))T+P)${cHkX;o$t*mi+c1A6@|LFnqZ31ed zd-u+XHK#kW)6>!(#jV*)R`Pf>#$DA35}wk@YC;0-FTNKoMYC%j=%9oKbF~Ha&eb{( zfI&U{ay-tB=45P~2F&hCcanDXK|lZwc=`EZPQut;1fK^Ja$9tMv>3AHHJVV()#5kW zMQ10dT_ELm?8J}6SQT_Q-~P4}j`50l7pBUtQ)#=WdP6w?8U4!#Q>W5ht~MgL=Ns5+ zp`kOos;v2{Sy1eXi0Wf4j#4(R9)T7 z(sDfAM*JUUvb)m9bQorDXD1;sSz@^|knLo{=THLRmUMopt)(S1Gka`ojGTl7Nr0`V z$ic!QVB9`TC6H%gWCT7sJ39mN*C05~mh~hgBrIrYA&|C1Y9a7#V5l75yfKvY)7 z3|WrDzt;bhf(i(blMgLtWOOBp4-M?N3BSsyKgS-!>In4Ke)Is-$98Koo{0VhK8;9y zef|9Jv!j!f69CI#2@ekPvx$hNBq!61*DzUPe3MKC;CgZ4hK`P8W?|{;?tW+QbaY?^ zRZ(HI!-HIFA+lKL`BF(qNt@HUT+7#lsxx~a~4yn)eM@e#L z#!5Rvf8UObAi`lXeU*sK?eW;G|b}uTz_a=c#=QWfs%Rk-^a}7_W5c zdp7k>WhqZ^HdXgL3)r;05zg}$}^#Ii1=Ha>S-g)KOiNlp@ z!BSV;{rKYI5*KQNcR^b{Z{S z$ys1hq!D*HS4(D>yixV)U1(@%na#xNNOp9HA{A{S|3Rsp!b?V3jNZOJaX-JximJ0x zi>0y6#6to+yzag}9)U8#lWpJJKf4|xWi@t;MO16<1Hv2Uh7%W+d9dob`eD<{kBp|l zk4*7-c$9yoK!IPpx5Tj=eMOR|mxBogZ;rCj{A)LJ}If0G3^~^W}I;=H=Jg%F0S*CdFdQm4(gCyp(K6O3%xe0R{$hfcqvKZDHqs13qV0 zf}nxTR(D;IZ)j*iar(NCaP5Ps6<%Z29I?{z+H~bC!+T7N zM@L6#)9SZbK+_{4BbT~jMXlFODdll;dm?h_I5?&z5ZTi!V59atzqYVw?hm{fA7Wsf zkkM@ZvYEQzG@?pWHDyOL)hEF*0%igd&EDVJFJ-~&VewQ@2#c@U`YrF|&_7pB-@d`x zQ)1Sq@dJ$vn9672MaB8U6$ZGYGbSZ|zP^G8c^8)xi$QDWom~|)JZ+`}XY~6%|Dia9b~xfl+m~(kOAA=+Jcf)&{6CI0|fcz-(L} zmxQ%<<3Cl!CMVy#GIQcO$3dGG|J>D7lThQ#NEbPtZ`8Vb#`)GTv$}X#n}yg{TlFgz~8`?fdOCcU}3rL?yI|0 zNZkiU*R}>#JyvXHWnh(>me#1tiGzzvd^cK z1_m0lTwij*w&T1u2JCm#eQ;v!Ni7o8-uB;^(M?a4{Cz%xoxh? z<*8%-Aq2l&L7a&d##>XR1HB>M2UF5;J=ra(K0DmYdeRmPRRk`|)1fJ(gUM--pjJ_H zON(~pI}nzRgnozS!4idShPR1d zD~a}FaY=bQ%6)PDB(+VI>(>3YXpYT^?Ar(;AS;62^IMG`vd>rNyV)QU7UpMWO7%zX z+H6H3?}FaD9nn~h7xOXl1rrupZ?t01HQ8lK%K2BPxXo!t=4!Zf#0XZ$+fa$&cSd~w z?y!08D}Lo91;6c#<2$=FBg>rKIJTa4e)z$QyzA55=DN){q zsln3tYxNjDK76Zl^K05J4%PF#L-_$4L5LGzq2(`;^e%oOz<&+bFE!O@hKOjk-*7d; zzbj#UYb-t5yNd@-XvCOmYw)7lb!Ql%8SQ69hT~gkv!x)`lbx=Z$e~sa_u4maUnWva z9H-)TesE=CAo2O*$Maz>dL0orUc373L_5m;m5IHc6k!k7qj}m_JC-xH2dz`ts_fx_ zX4WQv09;!XJJR#uVd64rk-gjg^5yc(#O1}=W!#Gwd?n%pm!2oH6^9$6mz=KBSUr7x z@!~dz;Y~-!T9I0ULZeevZga~sJ|Cq3>K`6Do*ix?ot7{Yd2}8tDJii)S*sln>Ihi6 zGnGG`9a-O@=FVUiPS!(okB(NV+mpRjRo#8bXCO$rX6o+QJg~h8^>ruJF zp5L#W7*?(SL7i=&R5E5vm(gjZa3a%wB`am-YTACEy_l%_S}9c7JfMcM+-W6+7#SK$ zHD@O$+wC_e-ooTH&MEE6rZ}zchQRN3D|b^nks#|92Yk@efvb^ zN1M)@H+oknZ61?XRwAH!E-q`<1k*Vo0TxMf?||5e z)-l?;+uLB@C?k_>l-^_Nb$@uQz`*UfKDvb};zy6^!!6T`N)<>nD@n>+^Dps3hm~=; z;mt{;S#?Z|M#`Z?3M`39G2Ufomk)uow$3wX44T(47M?0a+HDM1K;h6UhVY;NLZ7D) zdOn%$7a1#1J^hjR)Zw0pDcaD88l?{km0(J7cDT}T#Ti>@(iB8PxBCMxRP&h{ z@V1x~@Avfg6Q&aa*cPoSv%d(q*)}gX*APU+*%8O3GH++x71IOg0u}|Z7sefNgBjF4 z8PLZ*zrNMzawTfk&r0td?7v@&|Bwx3TZ$Ar-lzf~vTJd!LvQBfc0G4!a^7fBgw72K zqo;Nh@BzQEY+t~ch>{h&`78!`rKNo_1qr>p#Bb=(&NYA$-cGuOY|JGgA-Uw&x0I22 zlz3MwE}pDCk^ZuPRlBgear9+fS6ndF;I{uIuX@+&@-nMtrP?k>G5(sW{Y98}elaiK zP|hO7*7l)wh5kvHU)Ek>YT#(u5h-2D(;`!Vs%VM*^XH)1 zNR;AM0-(L)3RIbFu>#wIxAyjM57#HACTc=_!awC!L(h1Ju2^GzJs9ME&8akb3mo4%nlba4 znYy04%yB8(8aK%G_YV#nahje@WijcB zo2Lv~?$7ke&6N-L)wpz8ULLd(R{PKld`V!J#63>OfwclcQ)GDfT#Uu`j~kk$oAYr* zIW4ZL05~6SwFH4ZX55+3MdJsNlNWZ{tZN8_0;?&ccRu{6s&%m=zQID-*m$tHXHMMf zvQA^~z@l*=Tflk}S?w}+I^{{#`rY?sszNNk%jL&Y`dpb{%3mhalOPIA&aR>H`t@;_ z+&y9{Vq&-5ex0?!JQ}eeHy*Gj+7tLZfW=RyK0c}8$knL+a$to5?GU)}!RF@8Yj417 z(h^p2pZfkVM;V~J^x-y5Mn+~Q=M+cftLGRHc39;@I_UClq(yagwKM*k@p8S5Snp@j z(y1jDs@qu`)oujr+NjnFRFa0|GX$(gZ{rJLq4@%L9zroH8ag~IC=mGX-jVu+#X9pY z_?elR`Cy=V$qd&G)z|r-Z{*NSRCHBVU)3glK>FxcIc_Z+Ci)?DU=O=BnQ9S1JHb{OpoeIB;k#C}Jcg8+*0Z~QEKKMQt(oDg7j!D64yf|`= zv+_0pt>X7qp5x@4obfV6MB;Ffr>AxWrpouUSMd!Fgz8pS8!;tRU5Pcryd4&nhW&Ze zN6eK#DE7NU+dxyTpKUl%NSgh-uA(MxZEFjJw4s!L~(dGrSvPu36#IPhm zAQ^|S%PJlMX#g}(D3o}n7NJ#*GTq@;-4B@96s`G$ysBjZ$wJQ!-b*RNk{TKs_7*u7 zg~}rd^>u&Ln9d-rGzE4kC!)f`iws9vbymD6uq(!{wN^A)N&x)C^>b7o4<;YZQ`Q36 zfB+Yl+^S}d>D9_$^-;ZC-(c?4``LOO!0>|ogFz@p+-@H|Q40gZ*K9?n!W!uRq)C(z zGLGeI4w}0rV2N_vXe7XWqolMxUO_)3zcuwKLD=a7v=LZl?JBP&nxD&)x!7VazC}bJ z&GsC{uoFZ)8q+a^-kTl~yOk<8-9f&rdbhJX$E0|&Zhhg`0irST?>r7RC&HoPm$uul z-Q8~@f`E5>`|_A}NFMNs_{$5yI`(+sT}p{#u$DjiLQZOysvIX8GahdyR)&X%Q;AuA z&VQl(`gOV8fRGsW9a_Ooi*P?bSDzz^KAj}Q6#9K}+kl}#z=j<+>h@TI_sH2hx;Ty_ zFQY@h{=2Gv{$hdGVdHp$HS#pE-rd9F3(eW#d*Ih@&1^P)7hssLHYL_2l6d(N0$f}d zQU1L*8cKBz)xgWjm&T{&{@ist_wwnn_+=NARSXa;kLP}bcB}gomo6NzN~HdYerN02 z%F5`ln!uqZyy;6~PFB`z;$oNNi?gF8F<;`Lm4KKWlj>@X-6sLiFXnXiBP(+(ydv( zXkrLhmVje(oO{Hq4Z=h(2rgaJGEz{k8?M+PlZL0;bP+?3q@^1$w|o=re61%7e-D+h z4IK%cNTDu;JPt>S$ZLkLxWnF+-M(HzU!P&=Vl#1Yi1V{2>@l~EwFSzA>o=w&ks=jh zml&8B0_vhACB;GxtKBtTv~F&~dDyGfZx19p6~2g`UpQM;gUJS@6oa)jd~E;l6+-9s zD=r@&qeCFLo$`Pe#l%noZ(n|@2*f~; zi}y~Cca-(@dkK!*)&}Dn@94gHOdCb2G{cs;xUvQ!oumLrBQ1y#EqP#V(NF4^SS}3 zjT9|Sp&TNI%H#zZ85pdG%OlU1_>TYZ#%J7sPZ!tL>UN?!%-&DEZ#PiEt2+4Q-=V=k@&B!6aB)@4Kj;D8In)`a`z`g0v&=pDq5iiPWY<eQDA=z(ksRr3nTs)G<1Cl2pXaH^)vv2M zFM+$x|E(7q)-afsJ2EoWsQLhG8lZ@Xafnel1Cs1D6zK)r0F7iuika;dVR^x zLB7#cgFR0eN-NyO94iUn?qYw;{)7y9U#u^Wg_#)}rtn>NNk!YL4?p>&0%~e!*IJ1m zTWT{=&(yI?n!UE_dGSX2uG_zDW(MLI(Ys(7IS9nf#bq}R4YH0#7Wq=U#(F@9DJ0-Z zL=wwvyGa~ScZ|KIOHPVl8H=CT>XZ(yj~=#HX&5aSx!<`;-)9~A@r2mt7vWVoC3@mX zGX?$;dS^OwD+?SeJaX?#CN^JztGxV%Vudc_3C_igprGr1v(CA=aSQ5?{W~YQ_kl40 z=s_tmmyH!DE2>0(E03o`(6?{hN!%)<94w&0RKi(Fcb;$O`%cT8^RLgh)acL6p8U)N z835VY;pXt~=@?he-%aNi7SLZYx1Gi6XzBP`d`w_tnG z)-UzCSz>3UuTVndeQAt@-w{u;;m#9?yu2vcutZN^N(#z6^^%WXF*Cn0#htg8cf!+a zR=v2wyvl&!GI(-$F}UB)P>cycmzPn}fM-zxC>|O<*!1~QM70J_RS>XCtt(xc-AkWu z#JUb^qw2Lw6qr7tadCEYiyH$L{O{K$V~6_Z9@e~7($uWdn&=?2G}iW5+lSM8tEnF)e5(5!P3oA9 zCOMq#Aniqb0fD~Gq;GC6F`fED9|MQD+9EcrH>Ap~=}_L?*wJE;Vd-Dwc*A)ULLw+A zh>h(JIP$?D6_xFkYxK7*0;SA;5Q^WEd#$ccL9);P_;{l!L@%+fZX|^Pd3ne_3Sq>< zG}t_E7(z?|G@$^BjLAoZc%kAwtFzq!3o&1k=!kdtnANTq#>X}W45fWQYeRpPnVZ^T zq1;m=NhLp67}q z1Doy(tw3W_dgL?c_tL|t4yrVT*n_}}rH6uleM}#;D4+*T+F|B96Y+S1SnMq=Dq1LE=HXdO-?vm%B||*#kKvwc?jbfpiW8(~)Ou*pVoEMYzdXFSY}z4C zM~TjQc06@FCmAwybS(YtcV|&q!C4ADqzMXQ#?&kM65sw@}6-Mu+_>X1E&SzYP6uyw0u z3sz}3lM!0uus%H5I2v$)d;?q2M(@9=TT{*z3)po zxs8cx$!&^}Z~RtTAoX;Q<)Z5$-M{mM4Zofz^gFt~$g9`N%JiKmODn7LypS)K=j$W5 zViX`Z6_GBimwtecg*94WPjD7<%j+BgWDSd1U)-hL?+uScM8aNJrH+=_Ftx;sId^;0 zrf~@f*gM+Ilagl$aOSqSMk%C!^7Y-z;zXF|10BT1K!77&;i{g#KRY#Zr0(~{C&prn zp~2c`Q`xB|HJ%>Eo!=^r_D=iKzleI+T_Kd4hL3g^+-xwQ% z^s>SS%nj~dUkU3h<{>R1iyDUqR=?NUblzsY)1heVXv;23D=&Ax`XFBMXmGGMM$mu~ zk$m%}kF)#}5r(9yWL|NPdO zrl$I?B9B9>6f9QE6YtDl^law$3s`DL0$=>qCfKYMo{mMoM7?$bhSGNCyg1Lo0t0yv zPKZ^}lRa#7R(0g`C;Ndu)8c__XV0AJ#a!XLb|JHSlpI$CH~B9}SEqHwuYE_&vaMl{ zonBIyrto`H0U*CNS_D6Og#GUbN0Q3JS9w&FT7vJthJc3t{zS0r5||aNxHjcSuuyV<*<>gxKT_nLhO;`B zK7=-TE9d9WpN^JOKY>q(KGY8+2r)U=_n0Gtdj)t{mu^8r%BzhaYLT| zQOWJ?>|HkA540LRdej))PbvROf9vp?lcR}K-&9M+#ltz(i)n3bB}k%e7$;gm2m3i1QsCe zRbP*;rN+|l7I+XC%yVioUR%h?JjUV)BjdrqngFtt=5+7b*&!-!jhUnsh@KVJ58-e> z&wwwN?WnY$#SvYf6KF&$X-}tUwR|veaCU`Dt!M-sNf5}}S0e2el!!Fwn_oqb78i}r z_xKk`E8qRPf9+j>6y!BBb`4b^=)QehY}|nfQ&D>RcDTyq_Labm2D9KahJrtf#yjy2 z2nAwu7q4D?dd?@&OVmH#U7JYWKm5o3!v9aZ*r;jB`Rw*-u zSWZ>?L-{}VF? zgdF^a9s%WW>S$BQVOKV~Gk*Wzz|hbzC^$$agmMSm!qdY|V8N)wq|0-%Yi8F(G4bhf z6Y6loqlA~wj5nq57{Kv|?~*UVZ&f`WK3_o%mTl;Y$z`0Q@wZKM+VH68O)6RF_)9 zbU4m?451mHK8^J=hdVEv?szvfn5RAx%{#Dm~x>3srLBc6+hIW5}v zLwT@~GVy4RyMz7xmczvdAVPu+IM{x-xBZSd|4ycv*{6{EHm!M3W#w2dkJX?RWsFy} zWHh!rvkQrnMZklk5!83iR)rz&zTfN*9cns=xn8A1c@xW1iAyZOAds`(SC#&Qjh4)F z>r%4wpu)ukgt_L3-vPz?o45^sqW||*!2IGxot~?xM9z=@0RENT-Y$@U1qE7~o6k{B zFuV4DGKJkm! zK+#R3SS&T~@Qdi@-Dv|(Rt%359pa?9E57R8;rJB3$`T_4>gVSfR!r636!KBErS@6P z3Zi?VjZ9PR+nx}VoDBxsI`g5R_^w&DF!~xZcUSjfqs%%@Z{n6$~M1OH=8`M9)X&i~fCQjeQ!Q{)StE;n} zV*>d|0V76`=-hzdIe{<64Xu1-)>EW4brwTbm9ZZD;4r^143231Q)|zz3`%v%rLD2~bc`$j5PhSxW-~|1ZfGa9`iR`$@wn zgQKM1O)+T*AkTclqXs!|Y;W^`?4Iy+CtB)Yy~IL5H5bOzPi&`Pz1gjoLTUIm!W-r8 zPr+?DKZKwFQJ}sRpas^vKY4OxSW@E9XVQM+arHd(mOV(DDOzNG>bed$oczJAh13G+ zm$EN!S<}TfR!KxgMt~Sp<67YD>sc$cUQ$_{ZD>1r#ro8~kr(91Hkt;fo!dx<{k0vq zH`Qh_`IP#c#RjgnF(i}L#kZFds?RWjgy-kygD6F3#w&2)U!e%F3ay%_Kj5oXgIb&& z*Q_``i;|tW4uCk+(rIvdL?BW;?O%M9!4Oo<6 z)n|8Pb-NNo9E^J-DBO*?OvouuGffbevmy0Fs_*wrt`aWHfi~9OA2#MMS*KqaCG(KW1TO)8dR)^o1fux(5(L zz~p0`=o>tLK67=4+G+^37GHG~i>d;NG`H_iqTCx|)-4kx3+~}HUfd3;JUys%UJ0l_ zT)#LY03L$v#i_hl*B&sm*@HP-V_x~q^hxy*(b3|zy~RZIO*qF~@Q8^14$V@hl|i1T z$MLU)uT`&*gp0KhwxW7JeTUKs1^ zD}fvmkP(6Ma05v@1|ZQSFHa%8uc**o%mc@5dwT~&1{ju#Tmk=?sC3-f-_I{C>>nCZ ze*OAq-&#OGAjl=VOB^mKDUR|WzkB~&p}56o*v!JrVWqb~8kgXhJ5@FS@#K6^l zAU_n8*A0^0#y75Tb2j3>BGgBg3FPXklT|&ktGcabYJXXImYnS!&K>ad}sw zxwXMwIqdGRzzP+m)tLQPLc95C6tpXm7t!~umW&?Wu907yS_Yi|#bZ(lqRIq0P@}f3 zLyk=cWsj@2UHDk(XS{Xk6Q?!K%UgoGyLWe1AJpl_gvB+#1m(MaAv9Y-J0f0r?pUJrTJcP^@ACPGt+ z){qU?6%gOWfpSn{-PhTdJ+QF`bv6R!^yDzGxqA41=;Y z7)M}G&U$@jk!Hz`k&c%ndR~H`%~AAyTr-bXQhYAWJGx6@M)j3~6cO;fVMckPKc~S(N?BYwNPA zGzX#xxlq4-6K%Wg8CoDMND~1;;4f6dFVB-fX5i80h@Oc_)paV5S2ox{-d7I>B@1(M zwB|OXwI%Hj>x{tD8ld&8xY%ulLU%k$|X%kZ(0zFQ?gAM##L=vd|d1UoD;_-fKK2-cWi-mdCEtsexL|(ndp$wJu<|x5Ku!#=m4GShcz34_?(-HXfgFYqY zmjQt*`$8&w4&-HIzh#2^z+%X^>_{F_e)^)9uj2zK=@hErNWykb>iKzReX8$44@*?0 z@*{T5NN6tJ=J4X zWqBb1SS%bIh|J8(m;~2@*$TckP;|dwHvt7z&VvUm^uNWy;s9y);-2r8`g_E&=_*}M zH-sEceBE^B$TOEBTdigIjEAf$?*6R@Hz0L9mUMdbx9mzR_g99Oem3+^<--tsbSMM5V-UW*J{+k zP-kl@n}hD>1M#i%mAN>KwDeSz^Xca`6hOJRZ`Ep1iwA+}z8DyA!o<=IubD~miUv=L zhfdXB@+J!;Z?DS3I(0cWr%;_*QBhI0?;IJyBHfM>BqH_2k9--7h06%furLL`%fR1= zO+k9;Us0>>8BPsQhT|53&`!YMwExDfQ+}lxi@}`hJZTxsN9xyG$>wsn$YUnJq480g zOk7L7WsK9Ozxc#afQZt{;xeO@WX$V|s4=-;)87cBoRQFpa_ z1R-f6F2-Eq@ScaKw;?mKBsU)XPC?Y5V~oZqhOrmn{QLgij;3`K0r$L`!wim{^AoLowT%6Aeiu#mH_qo zHX&!;_wQS^vC-uC?MGX>G92Nwxuve9FZPZjg1(!rO@R9EHK{s8?;1@|`(hV;>Komw z`<|H*Lri;w&ZiZFXHMC4R(w8qzQ<)Bc5U%!n*3RZHye#Ve}%)3AhW*mb6ukyx;aGe zShUKFzCNfrB4_evXa8Wumu=J|IhHQADpuy}%1D4^Y;9~O3ky?IjfQuIpaTAZU-^B0 zsgJ1A2}?pkVs>cl)e=w$yN2PEYQ7~V#sDIZJjp?94~P29eZj@QD}01S$OuW5O{7xj zMCw4$9OqN_`{UD5qRL`n=8>(Mp`qt5Miu3?+cg8j!|{tgv0j{rCFDa-tA`b$hk&zG zFvuh_n+2QJln$g8oBLYL>2F8XY*Fa6&T z_M?giVYD^;N<)Loel!_)VweiDX6nPu@-v^`o%5uq$hi^TrkI37e;;4aJA2*1`YxEX z+`sMXE6Pa2#N}D~69}g-VlUy0{P}d;jG5cUwPaHR(jtj_&U6xgfp_US`rN+uAk1 zb{v(Fu~P1^o;{IMDp&oCNxMoo`hq0o#<<1+mO1zD6X-M?m8fFFUAuMYR|@_qJjX}J#n$(PdpX!W1EyIuK4!(aLLOGK z_Cu>F>$};~iurKS`p;YP=x5IOIz0*mx2}=>Ofsb3+qK!+iY-6H?8aR*1$-WyrbIqm zFZ2!+eM(*o>u@6rAF}lU3^KshM8y67L_L+49O@sJpH+wSm$^x-^o{28J^yxyG8XB| z_YR+4?12h-c{V2K)WC7KT)rkMx@P_Tyy|>%q?oKOOfroPx-@@g|E!H8->eM&x=mEP zHdr{{zgoU7gfcQP*gB%z$VqSqVMd7+uk)I)vN9*{h2S&S)C}qTBP+QiXOncY{1y?1 zteR+HQEIBcEcl)5t&a)Ol4TVnzuVa8${Z=8KxtOnknysMm*2vt>B+bDnBHt1Z?K51OF{6+Bcg#6q_3kq>0;>_U_B ze?TDfj^qiIYHRB#peRz%`9oeF9b)YeYyG2Q@Vj;~^;fE$Db8{?JzndXJ|x;! z3k>gl-c0^TPa}h5;!bQ~f!)@&jgFx6Xayq+6c^rNNxN%85!m;j%BA8BKGz2ODy6<& zuzFoLHK}>_D4Dt zTCbFqz(B!nX-){xsk)CYkW_0cS@vGJ^nOlORLQS2Fy05FW`Be_>V3obxU7ao^fEPQ zDre>_yFQOq81fB$?7v8A#;XInk{`xu!8=k2WJJ(by-m#f8j9mq4y?8DGP~8_2xr*a& zZ;NnR&;IHl``ck+c*sZj`N#PAhl;7G8im}p0?l``PLM{EIYH9OmbyA>uU?fnG^LvP zGttBeAzvR3w}DLj^xExZE|UlJo8I+qt!f1)o-#qPp^mHFhv1Z?sybvbWcR+%b!I7r zB|eFe&gVVKG8gh}MAdaOOY`%A1~);4Lms-<+rxj_{+!@{Ul!dM$Q9{RQgRhIw&7&L zF<0j3GP9eT)nmiNgkxuP6(~R0HOORY?ii_dUM^!OC;Fc7obO`ynBS*jzvSatPLwT^ zoBI~vR1TrtdG9lZsmc_S0J2%WVoZn?~r&G3Xwg>)Sq_=&P<0s zMnZCJW54@SNfDH@r^E!Vr@zq)-Kyyt7-{&-|0ME2ZCh;dM_owsKU=mj?$& z4bkBpC3k4DGcx#djH6eP;;^tRS62FZIljGG8rbQDVwNBIE@0q`*rjZppDx~OeGXq! z3jLri($=;zk=OvMHR%#RJ1H-pp%OF6bFzByvNA9<*xue2L}HZMod#Fvk|HTkqa`+E zd~8YP0prxvMw&u(gOAj%QmR9!KrK1l?OfbJxIJ{+J&|n68e4rB!%?l%IFFNCV7bXa!MvXr^P`NiaKZ2bE8 zM|#5j2u^EtE~j3MtmyW0q-oc*p^S2fxe8Ok&aB{lQ9z69>*~5L5FEd@;k6Omc7WGp zs`uTS+Q%#HRslMycHwhaS`xDFW*2TgA;1}$(7tLbV1|x%Zul?!=7r|sE;)LxXZUOT z*nM+z(}eWmma*QddrAR+K+A#9hJ{25Xh$n3_H+uu-*nnO_{Ui2^aAUk1(>7FJ{s%UobNGDdUB@_${7(D1;!N-S(W&EUJa zS?BYMZ(O{D(8Y9-))-N^@tFz=UOVuEXzUef0c!$CTddXhS>hl>d@uCVu-X&ekqGvF!W-QvU!F4q-*bE14Im^Tq4YqpLY* zcZpAmE+pUmf|bsnUsC%~_x(r{LPQEDymKxbtuP%scK86j%LlCQzUHwCT4DV2O|*?G z7`mrP6&2*n%n<|q@)T|%VPSYht#JY;plMplOzuhsp~YCG`N;b-WarAiUqU+}gJdN< zTYJ9nS7)d0R`LzuP-^h5(LE#9)-X3;wwfsQ?F z*s#V%H`MJGdV1~V%gY1SP*Zfx{V%@_d+<4*?Uw;%LO*+8M)*G*!Bpst8DeV;AgZUS zEv;rsti8Ck7cW<@Pt@u22i}S^js8H%{Zpm{(9+M``m{6NO2hyd65Pu&EhsDi=E_Kt zxPzdxx0i33!}=w4BKU4pI7QQ)!D034+jrDTbQ_r5a`+r9x3=~SbV4E`_>FpJ<28N= zosEJ`%wt&@e)W>uM1sw=h_rQf}q^)=m&RzY0o zPhnvnf!;IhiI(Hi?Al|qtj1HttIfBJZ1ZchKCPi z2R`K7DA0N~C6iK9Ib8-Pf#Bxz@~mDQK0^B2UohIRJ>#m@8l>Is3Kv)mCbgRClU7(X$x)7e7kM$N5 zIBw%7dB7d`$`i$|M@^V;*xfS#x>g#L=E3pO{KA7;w)VJEj7(SqLip5g=d+56?CXAh z10gbpMK16S6;s>c+6ZG_JTgyl!1l&~5yET&2mGKT$P416q+7)N39HZd$Hq>}I3+$n zmpDmW4g)jb>Bwa$K(gD~+f%Kp0O}DtHqr>lpT%0ca{acE?U5--bc(26` z%yrtqipoSAP9P05>)o@9J*l$lCAwKq_Hl#UK=eW|LrY7LdEpYayR$lgsI4191(Lao zo12@Sa@u%>gj7~kxY*mbM-MzRmerZ$aM94#KC4YyMg=B`%bwaT#S|6wH_M9%XgDn_ zn9R@3ii*4OIPAUF)V%DB2eC^K>1@By+27jw{FyvhTCr18uWi<+1&|1&^pv{jed6fA zhWh$_Nof-w9b2kg+a~+&$hO}Ra6aNG=QcGn z>oigD_WtFt&R=4;P2yb8(B3|`(RI4Z%Baoiuo+ysVt(z;gP@SuV?`&$K|H*rjl-Ox zqR~QQpQtD^DVwDVM`<e5woSYs!STHp;{oVW<7eD-G6V=tLS0_qOzkdJzdD%ZXCB=Dv6XdD`qoc3n z<#XXQxu9n?KWHqc<8rX!Et|$Afrl1o0Q(G@doB0D{1iw!vb8D`^_%v{zr0jXFEbyg z!l5}2POrAT*#ECCjh5CY|I+`~YaPP>fPmo6L(UwHVp+ue6Ui4Rwehu27~1w%ClV49 zTTi+=n`_`b_|ps7PbVM{8(Yp99YL7ipZ?9)uoHyTPxfU}FtRyp(=DMdt1SNS+!#4so2<(*ym9uupccC-hmqwU;E zmy;trL+l(J6%_)Ww@EABO@Wf>i_?wX-dFo;BSw0r?XHHPpjI1E-Cdihw%uHM|6X@9 zAJl0gXwr{1H*X|0zIgN2o>0j3g+sL!6z?Brk3c&!fzPN@>XiBQE4JmuCN9Kox>W-G z%87jvUoS6!HI{ozPj?7#`Z#*Itkw98cD{h?P+WC)mx)GEW=BigNG@`{sdEDm5p$vz z?~q0~f!uBh=^jpNE#uc_;D*&6b9UU{Rt~KHqiaX7M~vpD#g~`2Y~9CHd7`0`J=^M= zVQ+b=Dn!C#U(??orNS{frWLX2MKrL!GJME~FtoGVt-mgJ4=324m{0e$8Nb28`)b)( z;||dj1x_pV)jz9}7&mUcbDpXTWzuu^NF0Os= zA(0!AU==74DmT9MP^+s(u|4n&p=sxLIe^71CnlyYEFHoli=3Q%OkY?CAgvd4!2o@a zNYce3pM=)dT)TEmyv|b$u+%KG-!+15G4BuNEx%h%dpqU!t9aSIV<)`#XYpGjDc5-%}S$h(4~kjmu@b{TDdV?xKD=ScRmWXGX(4c97uqjGhVqJXpVf|d>QQ?FvAj* zl$8bD&bEMW<5%o+cIDH}Xv6wO1|m+YXX~)A+07lSgmeYZa`{WnO}4(gg{GiZncXZ- z4Y2uiaxJtfC9@Z88$GJCb6i*YGjX=LB4HKuwYW|nELyq7-XI$*bHL+yPenn|ljy-m zMmZ_NjKCwB`zbbI%#~Q-e4L8Ol%Se;x&TS-Q#=1ZOhsRJiFt1crY zB_-!_6;7sysGti4MZJfQ5nK2};?>)?b|C6U%Okw)i)xtO90LTqjo-f1lXg8mG1+7{ zUI9FG@~!G`0-I7sqyI~2nCNpcw?ks0hr5TT$1k6Ppt7iFEX5RPD*yP!dn9k%+s@6MN!m}_VRORJAl)lu~?#eipEx^M& z+(=0=1%=nN#}DN3uENVeonpO)-d_kHo<(Vu-?008e1tq^57?aUv&-paImQGZqzgn6kJH;TInhHV~ zF=Xx2KHbYswQ)L{ZRnw4YHfW1>)>JR%9z0Dt=qfcH%22z0A$W4p3N8&HMFO}@?96D z7TP^w9l3BsN?g_*vScum0}<0~aLe!C5sDQ=4;BzIHJb4u(KK6(!NCd<`P>B24>05C z1y<=1wcXvq!R4RYzlN;i_;KlC`nVj>(wgqC3y`D0ziEA_Cma>%dg=`P^Q=<#e|PBc ztSoIpRf_K>s-UnjG1;E2u{o^q4^~;OZzSl4GiqxotBYX}@LK5B8(l*Ch59@1 z;eGO({WqEC<%FTrOLH$UyuH0=T*h(8zdkj7F5ZMK924`baPh zPlXTMn1F@^ zJQ{dh!d6H2jf@QL3ga=w8k?ju-7wz5ik2?OM~^yQl~xyvD)kmFxyr?7xA>@+Zfwg z<>nv}e5Ocxpg+&qVLN9HM!cgj7Qb=@2~t2lz7dGTAmbDE3d+^1KC4v8Qjhr(vBkpf zi*T^z9UB=@6jvD;9en~iOD?YL?_Gk7(Bcu&)g=Yc(b$-X;I5LUW~(my3rz5ifSb6u zw1kU?r&Vq5Q^-m~Qw()LPmh+gw4$UWE%(C1fuzoXf!*~kKkTi^vl%#ObRm~>lChl~ z+x&dQ8pPq3ZB&pd28*SSs90KpK=GT0N94C}xsal(FAaSDEcNhVX4R<^gC;vPDC8v7 zythB4W+k{DG`qst(9+U=$1N->QU-^<)>ebMpDbGCcJOpn*)c6l%vWHjp-}=Wfe=9^ z#6^@@i`p#vyX{O5b}8ae`w!(?(;q|k?<1tM%1YiuQQyFvw8(a~eJmQhyTk$r1f5#n z>}Bf3lXF@QlAV#Q3?aV)vfbQyDHBBBNL%3NH5bI*-v`1y0J z$}V7F4fxkkbyJ&~4nqPxIDkdWOisgBe5rhHdBAt3Nfu~wjpMa@y^Hl3yKHGp7??iT zX%|nI{d~K&#nj^3;-cW2mlF^ywX0kx+BeVs$>b_S+uQw_bk1>Vjt*EX_F6^Bx&GZa z2G)Gmr4QU>3I3^#!=yj3-$R;2-=N1ha#Wuys<5S{n)y< zc>avnZq3}Ov8EOY2CVOpW-tGSfFYI#zJANavD~{tzy(ZcnQ!{p$U@V2q;}Pm5#qf` ze{nY0F#W?H830DF9CowV@AQju` zxXpXgnLFdAI--h>Ua3*>hD!Dxnu%C3)BCxG&OzT&>|-8cSc;OP7pTqCmu5?5sKBi} z8}JFocjxbfodeK_zP7L^G1=6-=^>oP2H|!{ z)2v-^vEkmB&XKixiE4iy2$8+i+WkW}J0YydK`^PYLLm$#n zD4$ibM=RXc<=MX5mlwG%@Ig+lgH|PcQBl>1D!O`L!yn#1tP*a%5mNFWVDJ6^+nk{P zf9$}Gou>G5ohsKiOFMdhFXhQ|cJ_-ad~xtUS=m`1uqIb~dPZl(-68t|26mkng?ITw zBAg}~d=FvMo}#{H`Fha9V1QGu2p*&Ahep&K=6`vb-}o~>;JDd+*xh~3UqM8;1n>QY zMTd<53VbHbKds zhUr^d14>27#}^%$pPHOzT;cezIZhN7r<>>A;^H!^8&onJEF5Cebxdf8zXtMf9ukQ+ zaGHR%3Wy+sX3jLE4?ymMTSzMOsV%aQ8!`?ugW(DcK=R362OWyf=dk48EA)mj)J?@9vu_vwl`gKoiVaS|2gE!3odb6TU(kzc; z&wupDzdu_c+dkeEGolte>`-A}5+mAXlBEn_A-Ccug9WKHRRbzAW7A@x@ zFpW#4OlyxWW~bp(iNOmD3tJm&s)j5Efl!3aCOEhoh_oH?`tbtD&8d1C-q`U+*U6z8 zO0(_&_Ha~WY47UdFLh_K1%r7bKn;O(@tqrq%F1Qh}I)Rd6x z@x9e?syZ#(f@g>R@pI4GXtPadMo`09mbzesANWF(_`ke6g-4|e}$kkVct z0;XH4b2B%$y9^g{K8%&wMe!L+zJAT>EJa0?!e$)M-vTVq1YisNS>>@fm~6mQp`=QA zvnDJnYyYeJFt*%QSI5-YSl`&VC&_bS%Mkh_+pel||2t?S5tF2>s5n+`9qp0AWA68t zCl^)dr?f73CXJsBZhUy>Pa$mEuMM{f-t~o#i;L5Wi;V-c$HJL3G?djFtK-7L=8pH) zU&_lHotc;z=)&9LHM?ou3*{(S=XVH41F*NY8lu_K&SfPefFJttBvHQ;Fc7DdH>I!7!6RdM_|t38Lfar-Zfc?1FC-} zA3UO^mLUlb4n8^_cfWgA9zt|1Z*jb!eq!0DBYLgJLob;!?HW2*tnVRT zzqZlSyBjMz(D`!T>JJa{h!Q|E0I|+EU0k3Rc0PPXXE>AEr#%kkOU?UYd`8W~Evll_ zGO>xL*@*c&^`Eeo#?qR+XVMN;0BJ{V_ZLFN3^j%ie&&(h=)5OLcufG+(q#ri@$HSN zp3xY7&;&kwXsN-s%&5g{^H7><<-`9o*3`5fZbWF=Qnc$>>d05Le)@n=8~k@H^?BZQ zKLDnQGNFS5zR}K7<1Syh{aL%F8l3J%ZOBhlGGO`<5rkL-ypynk-+r%m+uNfWu9QZV zqcGGcUk>eqoy5Kb9-lJ*SaTn$h3t$(V}1*s=SR<4L4$ZRNp3F+Y!wEldZTVy#Lr zdoQ&(ybQT{oWLoVvF~;$%9su{-^E!r>}YQ-^z> zWz;$U`w!9a9*IGwoU9a&>q>T-TpS-S&qlVM#zg;ee>Obhu0+InHVsGD2wwDNRbr9N z!hZM{1Ok~69WAY2fLw+1JlVjLIuZ%4YDQ&ca4ZBED`zh_IHt_9#mba0Gg`-3M~4(2 zpQitqJErW=j;@(0g3X!5oa9Hd*8=)>*liNl_n}4yUSz01h!|InvHDs_h=|-^|Iw~I zJ>FaPK*Ku;x7JA6$~;c z{jZ;Mw??wi(*9{*J$8{=>n@!6Yy=C14bMWm>!q4ipN_w)#)J#+1|Zva36H$7rxzEkjEw54fWK@%xbdvj zaIW_9$rg+*8vrpXD{{_4k!}0nfV-eEdjNky2a*b<1y8x%{?0|;fCN3*m2z@(0qfW` zdT4KBzp=kQw_uX?;|B%Mv)84UZf@DE2rVs`u#sZIrmdz(vGa8jItcAL%sx^nsEXqp zquta`QRfk|#{U~=BaOHBH2u}**vi{5Rg3>K+d^1eTu@|CN?P{vq;6AM;NalF!NGIE z8?9|JfOen)$B`!h+Ruk5Ogv=*gGXb&i+d{kpL_Z`mfOA&dX!R9X7g)p$8P630O^6Q zeD6+CPnsMg+fa5uxueHEl5_?8=4Dk%9v;)9FE?VA{d{G@vNh{9ZH#H6aJGSIPI{7q3VV)_bFHH_hFh#QKY&SYC zp{rO@;oiM_9+?rKVyhF)k8HW)zX!RZsp;ZvyIz`rc(r0ZkC>RzR0eY>bjit+s$Km3 z{Etq~kdFtRY1ff>ffG66-Q{d1G#FWske2-;DYGFhu%nCRWIyqHD&6Gf@88XnuRPCJ zR;5wS;TR4#y7DAaA<%2_?YHSLOM}B>eWRNU60upQbX&#_w#==qn=v0YbYMW&MWU6Q zKE0=^bb6Y!1vfBb9{~Zg(dF_jOdoEyHJewx^NDrjbJ$nFiuV{R8xfY2eqeb=_b!QD z^8XQaB3$Zl?ue^Q&PaF>!96@UC?PKybZGeW@7$+vA@l9Al~2>yfM->@p2YJ`pio&^ z>8|kX{ewz(5ac|bocb5!nlZRGT2%r8rQ~lwVet7`2Aj_F=R1L9r(*(|g$3+DKbx7k zm#tlTxH8mId0cc?cnkC9n`?D$m;OnUga2ogYJyr97OlJI4h0J3Dc&AgSTa6eFj(!= zl$EhEGLV6bi;80a*^t#pzX0Goz-!Sec$Wo)r;H&*hxOr!m)FmBe)*)yX-7mxa`O)J z@eY+cmk4l#cFXPmlCg z&gIdncVqtvkvu*>rCvx37ujLWJ3+o9Ea9R_-v0D}sfKdxBKZye@6c65shEn2IN;F0 zGasjD52yvHs$O#zf87NS<9&)~Hy#fe{zHF71?$-{EO9-T_Ra``+FFmX9vB!|$!lrFMsDuz z{=kR%6{@sAR2@DlLfG2$_jk#^eEEc)zNPhmaBp#Dd4Nf+-keAN+bb0=hwI`r2u$hw zhW8!OJ-}QqFE0<6j?G>hUu$ZjqTJ3X7e=z`H|{2>3aP8BKjgRd#lA;MT5NudCn(P1 zHg%8QoJhEN>il$*Wk;kkb3D_f(Ki|z69D;fTjPOeZYZ*Ei^|clRK~Gc$iUE&O}}3g zVw`ZZ=RR3e0LeX_7)MOY)s-7$ z&JLCV-iPGxblBgW+w`Mii~MCZCiaSo_SF9#GmL79jEoGL(gRDujK@s#79Y@k!qwE( z!L;c~1Yd|)QlaTcd)t`EM9tG@&vL;4i-CiRa&~p(>(ik52HXk{4*^uapryDU!G3*+ z+sV&gaSXs6#cz*?OrQ3cTCYR9)*5{}X3Af-UC`2{jo}GUgP~y@at|j?&=nV=yP~3b z{hTE#u({V;>tO#R$HMPaWLj(p{k^NpQuLB1s3*3*^jusy; z4Cj*#*SDL+P0mz?e`I6JO3Iu~OilaxdsEZW(9x@)-=(;|*D&vtTkNo5_D5gO6wD>X zFlb?>ik!61=UZ6tc|%ec>NhB9r*&)-V<{hzjS6T2jCg+PM&1D4MA-LmaGJ_kq*^4{ z@E@b<)FjdvAC}<7#m0t2MHyLG^g=uL{EVNjj(_dNNb!1MadBVIfL4XA_KO!5PEKO_ z?4nPfZuk*7xDv5E2lFjiS^v{*w>lDx*mf^}|F;efZ*A-YLqjti1PBS2mKT@r36oPK zHGF#mv*wyQZ&kJOy0VBHRmb! zwQHXc^GvU=NdfsfBg3+;PB5>i$b2IAyrwoU@7y<2N&e!Mn_IZNH1D=`5X2N;dNOQa zWF+X?jSI8o_Clf60t*;4V2oL7W6nFg?{syXqDm(6ZeSh%^nE%s#P{Y}&dSPaBqmfV zjnve%zkaP~fIkeFTVs&v^z;lSsRX}iR_^CyGj22V*LEe{y5NIc{-pjGS884Gw9Ib( zS&G6?651VqS$IF>v*WRSKK!QhsJB?@6^SYnWlR}=BBa1p4fVPZ&sHf_7QWxy)z2GQJpO z(Cv)DimW4Po)MQD8`A>W^QUvpg<0?X74Ig$^SyAgJv_WN=nQH&6}}vJ8P9832QUIR z4$Sz8)`&nJJ@8k22$rQxLF-!Nqf~^ZgqKae z(KTmY5@|gXNYa;(W>4r<`x#99mQ_-+n_F>&YY`*Iw2jA@wf|KkpscJhnYL$01daT9 zPF2%)V(wyA&l}7`gM)8T#l(^KF^+dSDAFm3^9ubK=$-Cwtz}Mj(F-@Hv&@w5FEp4l zH8xTs<`|&F!%1t4&T|9aAkdP^Y~SYw~A1OJm^zP7R5vse(?US2^r2& z@C^g`NLw}=*=$?%qs z4}H3?0IX3`Vq;@H6LjEZVUdUFVd5&q;CP5VJv%!+k?K39veXlzM^}4&^X0NPd5DjF3);c`w3rvl2bVL^ssV`dP zeOI(Yj#^k)7#<;usqf8;O~LrmRT9%EZZ8)B_viCmP{#^mu;PR~rjT(oE~hnaGHiAvLxA zwed6Jhib~o&~KRf)AwD&!Ohf^!17_NcIB~lmF))=GNBcp)D@lTH33z*0iEhp5Lwd9 zNyDL*g42ahw1&fZ-0$CXsK85CuBTDbG&J;|D{%XXDMIPa{NR!`Xu1#iXO>k62ndKY zjxV`iGdDB4E3BzGW@ihnk$l2z4^eK^*BY+zOm#Mg{mC;et3HzkO^ll-#-oMJ#_L#r z5LHZB@cW+v$ntLX=F|lk*cH zwYoq>H~{0AQl8SNs3<7J%x6aYVJ4U%a za(QG8uCmMTfv&Dyt3UO(en69hVh1VV>Pq5X`%*!V}0Egamguro8UiOn_CNO)qti+#io!C$F%M8uUm4}YS5!OPzdVEMo zxl>hfcwUH6L>+GbWz_?N5oR9JB15B3!lQR4HHJQdnv81M3qyk3V0AR}9jpkf2 z2_zZKKYj|kaA3j}Zu16^&UkJUpS2V--CeubQJ5hf zARbE1EidPrwnRD6S5^qijg!GF_4e)NaUj4{t`YoppF;9|fR(3Gy%x?GV{8Rkf#ID`bPTjZrIrZO zMWK2TcxLopSN;6yBL7Muuh`)c3fN%V0dpAS{3{fQpQzYak(y|gjNJ^H#8%&10!Soe zv0$oocE{g6iH$57LIn?xr0|`g{&v@4-=WrpzLCkV)v_cwX2H}D%v(L+mJ98z8=j^` zhs452ptj`Xp9J}H_k@QJimDyA%S;q8I1JBOM44`FzcmKy64Hd6auO$t|9*z6>pioI+3> z(pj$D6#Q^`qiIrUidfl-C<*M=TvJF;4P*TxBMHFKx|@r=ASZ_sWwN}0LLR+4aC6J? z=b9ZGfo&X|_i==8`S~7p$mkndwrRfG+W~cRvDz{w=FN|n$0>g{WNH@&Nu{u^JChsV z4V=V}ZKk;)5hWfF_sLWA3^&Xs*c1>uUaZprtVKYx=^i(S1Df5? zDCD%WQhVA&E;rXqpmsb{GX*m_c2`I0+s2f{#eu#FiWzob*s!wlK3*6*4tyCizoAow z^nSB`Z;Fv@%TJUwQzO5jTAT|S+gC&cz=auFX@C{T#qnF)U%w2-_g4>hSiT@I+&w%} z5`yl64mM}Xpv%mtb5cH@>vBj8L*y7J zC`3{ez>);!xW2pIoE(7()k91|76ih`9%}D+QEXwYzXeg`h4bA33(RnWO{>ZO4E)e^ zVxor&caLk`j^fGd1aIt|4*>o8@Mql79tqtU84WcxymbzaKR>Rn#Bh1^myzRxpQT;# zMrmUUxJ#~s5i$3sarRfvuF$Ye?)AOgXS}<1Z+cXfQU(~m-$IP#VsWRHYE`l?1B`MB z!~vxDNb#FWLH)FM%%n;Rf$LoZt3oi0ZDhD`?U8vA5^~RR^`meC&`+0PSSkU5hPqn* zoHD+fKjj>oo~UCf*wbdlUNQHD>3&fC=nI|!jLo75C{ONXRsRX&4!ugD0|eGk`*;Fk zz^ZjY$>4cO4kVcH2;v~75Vp7jk<~ZIuDee3JV<*vxU5{TX5 za#oz1JLAj!+$EkWGp^Owx;`q|(BR^p3PMa>zmyR+zI$0!dvu)CA}~LEIrC|Ztb>jH zsdC?YF3s!WKuf(|;nq0&;G-JIypHVSqBfc5Cn=8We-Ny$$Xw;-t{Hkr>ORN2CFz6%ozXuo1!%^|!u zPk}@Be4^%kX(xo~XLF=1%*+}4w*b2yPE09INeKmugQB84evK&uk8jJn@y3!65KIkq zgJcY>zqmO#V2I~yv(&F&pH`vg+*8A9%rMO%j*YoN)~BSDffac=DqfZ4UV zmnS8$4M5t6o3phdo{;f9Pp_c+P1owt9ULrXxk|mPBPvQYC;XPBI`We$lM*f6+r?T) z*|SO?+&bESkD0Qmt{NkPar0JAP60XUom1g!ftvi=)i+JjF~iO;mXM0Pk|E=l4J(%R zFw?+`YvC=2b0abF<3w?y<83aS(Oio2Xo&Wqg}0A^)}j?FTLvXJE!`8BH|J|D_#K1# z3Lr6^WcDceyI2UZ&0p(Ys&pgewQg4^xDaVzczvcedAh^PC`YX@F)wyE@YYD$AJ2dX ze4KdpqcGy^?71&Y}? z)JWD{6eHK+&FiWKT)aJbn>&Y=Zzjjb_#&+DI5`&E*uTBM_C4@O+f8aFj#;L^8kf#v zcd~_xAXMqLRY&V>PLX5`poEfDU^%w>d}A$d1V$v;>X-DV$PWrF6lv%RH|%|gdUj$BNL%eU{}ZWHW{Eac8K zv~G#~v)5g$0<<;|GI8+sKXuPHmaTN$RoL(iQ|`A!j^d>8g5A|fQD?QFI& zCieR!a3`bs*`x+kay2!uduDrZOPZcu7-M<2rlU)~)gdUNN0*0(k1akA1`1Qo2D)D! zk2zbu>R$T}fU#|cxG4&;hK9xs!j_uMma5xpFBKH5DsYl$kHZOEC@u8aOB7D43KJ_5 zgP3k6Xux6sE&9O@OK*NkcwXM;%vdDA2&En#MgAZ)rejSUHy9_6uk;&U{9`ylZLM%7 z_|7jRIL}68%q41Iu~*{3EwKg9z)mbO);xfP>;X#)3sY{SPR)3b9`3L_`L$*tUE*yX z`>Y{Vx8&u{_skm1a5dQJd~3{Xc_!w~^s3BgxS7_iv$-3Z8rH^hIk+D))6?gVmt5(e zWyO_px1&Nl2`wn_4K4KZNV$*T+==LjkJPAkIcz1y)ipPkOHp_js~Hh6y|VrhHjFzr zUFtKY+Ll!y8^RznGh4cH9dpxHsw* zl0Xf-u4+~>(ca@+R`p}#J}Zu#lM0xux|*YIAY>zWE=Esz9-NT zpDn^z7UGAo5$?}mOti%c{@ibvmHlOwQrN4o(67)h6J$|S2jmebVjBpjhlsSu7C=M+ zzrC6v=A!uoQQO}BEVStX4xmP`Yr16oJ$WLc?M(3s^+TAehLF)WGHQ0&D!IcrLMujQYlWwd#3+f zkJ?P_@*o0!4p!EzVu%Dw@I2NZJ46c6xmhdS&12{80wxi>-p^gWlp(hN2Vv`~O>#k% zbglbIt7#m`!pb>RxsJAd=(&r(HN3u!tuZwC2H6?Qt6$W*Z=EjPaJo$;>CnsA41o?_Q&lCYTh zX6P!OfTS8cm#~FR*oOh`;h`C^x3PI^hoC{hATS%Tr%O|P_>grakP1h{Gbk!35OV3= zo4*SWw_hx?cWF#q*dB*KraaTlyXvZ~A~5CA+WpE65SM?4olsA#4RCUsb|uQKA$p7; zzEe2+R`Zt{;%R`F#yB2h5oi4PF~HtLZknd(?&E*9_gN=f5Lqhr5dvK#W@%|Dxv}XR zSTq+G33d%wBmS~!6J?IErI0>WzwR66v>f^N!yM{bM|5;W#eBijYfseke0c)NczNk~ zc)TOISy(>oG7H(CQ0n6-0^-8MzwdAnA`C;fjFvovcq-)*Hk=Fk-%hg|V=+67m}yd|70RlsQ_ctpvf!S<2=TpbQhA zKYwnTNW11>|5mHae8PHF@Nd{4d5oSxx8e3U1@Vua5mNtELzI%ps?Z2{Zcf3lj`l`cXyWlL&Z^|_woMt z*oYAx9>`}<*jGf7z-;`DjQz}!(z9W47xDtoc?1S+a`5o{>h1OA!DfOXsw`v)mzY#* z$te;Yj_R-P6UW3v;z;w9muwvtQ6Hx*6E6O}XsQGRI;28QorM|>u&elG0w_9Q00r{z z1HsiV7;1#>CNwuL*5uRt_jgrgW}!xcN0eeX=bL&nn5Qgc+u zJR+p(d`Dz%2Ed)xG?SYitTsEU$_swg)g7^=h+`uV0S*A0Rgi>#gKr+wB<9_&D9%0; z2+?deYVy+pN@Xj7=nS0SlWHLnfsz3Oe2*N4Cud|=(NEZBKQC|4zirok=GC(ZZLRD3 z>oCx0I*Ns!etR)Qd?LFus!z7blrE7_5Wr)q!S(UV6_=61V#FK3kw8`kha&UB3+vq}9Xa`njjVat??$WP zssMK51{PCt8ajM@&UUviX2X8|ytT8lo5==4l@Rydz7p(D77$db#xm)-Ce?Uqfu zCd9*}#Z8L)pflAk+avV;_AJn~!9)N|C~w`lsVh58Z4}n{XzQOu`q9+m-*jds=ny)x zjI#v=ocF0feQ*D#cE2B0T{_yOe6CrjpT|RW@5&uju+JMKPToUQ9A7 zD^q{=thS~zU1OgF28$=Ye2fYNC=|$@8qm6Ucj^#^0re0qAS?g^*L#7m?o z9DK=n(?u*w)ll#0KhW2gD3GA`j|vOerGSmA<=KuOV$zTblsc~07A7^FKY%Vp46z{o zosIa^uaDNJrlc?&N$*8P1pcf7i>B$5QfU-64i3e2m{3Y}aA;?>IU83=E7a#4(s~D^>11^#HmEI{=7Thi0A`OJDZ!n7Gc>nbHJHSTus?x@%C%x)y-tr9TjhX&r9 z-b{#%ZJSCuUe44!aobztt@^fndgUO5-BQ6?(P3X9>7xj3K}orFGw0v~eP6%TCQZG@ z#-jCG1gyIHS3Z?1eie%?d+D%0yWiyT#2k7_rbNHzPp1P$5WCHlJAwlHF#`jZF38w- zzgr0~r9VsmVPb*a^)JQ7fSV*%#>Pn?aZps$P*;eGiE&z-4oy#YzWm{9(nEpkC2}zj zIBQyZYTkEDr9%rkp8xG!ynY%mC@8sr78=cJH=QnDZ(*7FKNx%Ks4Ca4?Hdyn0TBg} zQj{)fX^;gdAdNIgBPrdW8|jh;X%La_jwJ%pAV{Zlv#3SKH_`jPpL=}oc*pxN_+yW~ z*|4tbI$Ci|+LV8R>hwNt0t{JB(`jb-ef|OAq*>1{j>(=4np5bAu?~Mh@+QSh^ z+V6-jM-246!Pg!yi1MB9(9+d6u6W%;A|u0PXNLwIDe+*#-a5C6k`m>@jP$&^)_lf? zt%8!0*Tut#i1>KAN={DBMAdujG!F!rX@ispWI`2gGxI;wNW$NU1Z_rS{#?9o9PV(3+1OR4V6$boz{&P$%b$@UEi^Gb^3J+2m6SLZU(gJi7hVCT= z?B(!XRCXun;%ZZLViJeTeLT%tYduurB_bkKJ~D@&zrS&qzEV?(F&{px_n$MpPaO9) z?p+wxb)r)1epafHX9)1GuvzH5iA`F&J~zn5Ry^lA*7~-+eK$gu6NrM2XCiL3vm?+2 zH>~fPc(uHqUw0T59K5UT6OwN0RP+qP;4i)}M2;W!gqoL&?|6NjH#9bO7%-fR@85L~ z;@+P{I-`MZnPF5H)Od0>Jn*X0o0)}`_4s#Mxf7oSkeytk?$?lZ;xu=zUb#|p+_s$F zPGDa&Gk6nDE6xu&vyqsh+&#vkUnO1r z@N6nC;T#21QIiMtor#&*?DR6bp;SR%ouV1%N<+v5&dn|AROq&n@Hy_Ep7ce{6R_F* z`uI@}p6Mq(gYR9WE{M_WENg+&9ez_{`V`p;hwk?t!3h8maj|j5Az$w{`sviwX<62l zPUXHt+3mV;`fRrvp`s(B%*VIvq--@rL_EWb8~h_BOG`=+qx*->EIrv^d*Hfxz$K*% zJoPXeA=K>MPwlEpgZkqu+1y<;n7Q8xlw0?+0lYcsdgA8lN)g>oOv(zQHtrs}o`eWG zIV^=OfL>tE>CZzc2)Lc)a;IG0<4)^s>Kno8YB7>|*kt^=jV&o)c_DaKgSCc#i1}9@ za(H+*z09KL``xwMfJC2i+h?VuY_2&>JmFy5+(i3V5L0%m5-`SQWM)3Rb7OLB$Ksjm z?QqAX-hRMXliY_-^&^L%P3^nb+my}guxcO=Z9sUVfBj;UNqkCg7yTlf`bkfAg9q98 zE_yF@XEi6D6nSdD`P~3l#$j_!q~QmUYxq6zNJNcVTf0tH!oNDlKbaL_+ zmOjC9-fLvX^^?YrTE> z;)S?Qdn>yz4c>36_aR;B2-d~GFUcT4DXVNXq-NT@`ufN~#Ygt*@ic4n#m!~gyDI?F;sas1` zRk?vLCXl&~P5KfM6cp6)q;(oWTKcTn%hp;9Jck&Q+$iB!UA{O~f5|7-03gx#m)!go z=YvK&Dg+q_0-AIShdTs!$9d%tKm*YjtzFvr2fw-dNe_J}TShmOt?+wde!g}hb6_3Y zD&nV%kQEUTvEAXP*xEZE4@aO4k!7JXsfmFt_HOxlWIvEEJ#u?MLHhosaGbnQzQTT^QMv!>WG3O^2B)9Z+ zG>(s#hI@h*HY3BxzUX~ILQoc+k1v%Bk)TuCzH}Ko8&_wi+dG%b5vsO*{H^L7R6Lye z9W+Kp;+%1e?n(A5R@4oQ%neKurVIHlZf+L;kBAiS$c;*3aFR*P3k?R!?!+;ldgSHRSWpYz3Xw$gR z!iUAOva*jW%N`&%TImWkd3Wpf>eczkP-!v~nc2AkGS91$;y*>ikPs0u+SS-#wfkIZ zglA$uw-2v^RET%5Ax1|xGrUeLoUE&}55N&1AxTtOraa(aE-Q12^8%%^EX~}oyo#a} zLW4;e{zGcbv-xIC2TP}6dpYUC!cA@0I`flkW+Gx@w~Z;oO(h?k(ZZnXBukc9=qCecdOb1z1NkH5UVecltVr#+8) znplFMblChJ2@NUmA98W5aB{3VI6MHGRIAD{rEdOTKvh}%&Z?^NVRL$8d*Ax@8#BkJ zZ|{as*XqaIHeF;Vq55Q>`$#EL377r~Y0mG~=1BYEul&wsa0qNWs8|_bWZq_y0N?SI zVi{zZRC#gn!_=J;kE5vNrR7_pnVFlz+s&WJ+M1e{meFj8ozeA4kNV4A8wg>Hl@~<^ z3Ah~{oqmfa4yQ1uOGtI(md_*Z?7jAUv$s}uk5coILt$ao+OCmx0v={Vj<~oo{BHay zAG7G_nKhoeptmR~E4L;xSu^K;y+}b5`{$knOXNhOB4`ydLgJqI`JVE)E*=lFNetm6 zCASMP{a(`7)rAU|BqBp5Av}I~d;)f5t<-_M)YM*!yEY~E{-A%k!p4T*T534|MaFmu z>XqP$7XQ@B+t>T%^^xP@Cy|bSJ!U8d>QEX73%U?S!(mm2{+4Y;;Z>+K{}2;I7EQm z%{zi?GM74@T`STnRA~?o)F@o`%0uZI8}A&(opI4QmV_1-0{8-7@DH<=6B3Sd4+JSQ zPpA)ZzOTKDyMIWj#L@4=7^@OyDjq^aX_x=$laGQa(Y^a6>T^>|RF!U8T99Pl#XHz{ ze36IV-j*}_qV`EW=8E0Hk3>`yWLM<;&j0xCySkB~1Q!^Ym~^fRli%fwC*rELx%mDG zEv=U?A7+K*u4-|?6E+UEhp8VvJa%HL$jqdrIwZrxCL{Sa^&8c;p}&pZwm8dbHFP?< z`2bA5*{L)rM`xtH)wSMN)4+nwz>|Xwy)>H(;g{rg*zc>OBY(yco;ra{YCHB_SKeq8 z#=z45oSR#`8B{*ctdTmLAVd76GbTOl*J<~6Fi~#vfU7q6dP05jud7aKnw6sn*BSwrhzR+>4t8858ygSAASiV5CdEiPsisL~!zT3Yb|0@=^&Uev% zztbc56k6BdY^@54dOqa|ULLxn)0b1FX9&VH))JAq%A2zn6Rm@SUMlBn;1aQ!>~B2G z&(Yp)PI&~R5eOF^>irYVq^_c&Xhye|hJ-S3#n5GD%kIq?5jeZZkO*qZ$t_J!?@UW} zXWBhU?w#Pr{1HT)mYIG4>A3|so^Gf+_|iOS@i^b_KRnJA`OpC;%COrg7o4}a*w}D* z14`50K$H^SDm+O*+hdeV9rpR4z`)jSX0UlRHN{s^`y`XZVgR2DVLQL$)LIKc&t&%N z)ahv*o6$=SE-qd$6+M}anE#Vg{{D>zn5V$Tk#O=gQynXGpFiNL*7+%bd zt&~egu|4{+-9#9rxELGkM~0)gT};97KZ5U8tbm?BP3`B;J8PZfr#tQC@_UEt)k$>+ z_Vm&1n!6p};X3ti)3?zJOct%dP8vE^my>gRHgWhnynEu;;GoN1EtlvLh+V4f*WK(7 zZZ8d%xn<8P`&_!}_(Ttb4U&(+x_z~3bNkhy?E^yc%q(jykD0rhJF#p8QFo%-6f_tp z)YVPZ)mJLF4JGn|e0@(hJ$N7gx^l5zJ#NBfrW0LX|L7|2brQbEvaaS55+j=)(ta60 zU79)1jCUiC!IZ@s^p28IU4+`iF3hKCxMg&ocaewIE_!-1kdr^o_wN}Q@rI;iG9S6B zRj0e8JSuQkCWj{9(dJk6ba+zR#(!?CRHxJr?_jM;6V>V+*uBnNwoj;Q>4}5}AxEtp z8c`&7-;fR+OrLuzK z!|HHAG_&T)*KB1#CVAroc~;$Qk3YyVGvkVgT;hyNNJwy5o*jPVK^{#aUzMD^F>H{X zAszSBy6*`L&4hRa3i*=09h(KF1a3F22e)V*^Im-a8+5;&Bh#s2;A*%wZc{K$&S2p9=cscW zAuEll-EQ5#o+9FXIaWQ!#Ml@zKq~5Vjf%Gie(l%Z)i6iWTwLTxWyZh!?1IE4Sg9D( zP+{;mnJd@!ICyD&9+gSgBE!PUme9Kixp17|9ZpY9e!CKtKT2t6Xy{N9pg)+EC+REW zOnsV`NCU1ttMKiKiPK(SxmvqFU&)|prmYqzlCqU^!xYzNeHrx-X~gn_}fj#9W)^UdpD0jWJvB4!_Z=9$XmXQhZ1*g?*GQQ_hzSVZyV!u4%-kXg?cI%Zp*jj6C_wpDL ze1<|QDe`y->I#~c<@_UNpO-5~P!=q0sv24o0`N(Ti^~Up{>*_POE08(Y!3B-i*>*% zTUnDWTUpgzSvxdn`Q0BBM?ykEeE+_d<{pJl19;wi2+2>1t*rF+Hgt14@f?fy_2qT= zZfV!&RNpe>IJ6PU#AM+uCZ@quo|jivQ1Ij-)9xWU8yk%-y8A^pt}34B@_B(2<8r|) ztFHdWPHb@#wd6q0`InWw6)7>N`(SVqiu#OK)mm|OymFi1t5xOhE{^LZ&#fZX)=Sov z8uR_NrKKFx>!fm3xw+%T^hsdCa(hw*M$)#!=uTH=%SkJIDmSE?`h+LumXSo4O>CTc zj{4bsh4b;~ptgad9KYgektSV06O<;@7AvlsajGA8PL4PH8gF28+=(Gao|Vsxobu{RDKtc?Yd1dUr{k?&7=-A`1B$iyW^ojW@^lC)34 zAYF50igB@-{n|5H?lx?3#{k+*TSlzL-NVl z@MT>!%phS{^je6-CLXP2E=|kt);<_B+4K$UungIXhhs9cn_;D6?6u4PA1)0a|GF1e~a+||CR%6Ja& zF6UQ`TDYVP@3@PsRgT7A&xEJ&$#F*l5!9|(x5bSmnJwT!LTj`FWnDL?6VvH>QY*m0 zrKkry&O~&JlQcKSVhVMpd+4p8RMyR)&EYI%oFr(k-~Irj#0GsBYjI-A^^_fM0iV*( zODhj$Wb!xhsoC0rn_B2jlz#aF+zer|j;*ylHZj*kZ=0H^sKF8&y@2ysLR;Gn!}bm6 zDqY2qTPbrc+ZDs6(i!DWUqYw0-dYz2~#$ zAZ0-MSveEgotBe4NNViSTcz32yp`6_SWOld@qPZ_7RlLyv8_JB$thNrrmuIv-p(e8 z)u1Y|PQa((Iw_ZX_j*F@Plkj9%~!~hV88cbW3{yqbkz`2=2v zcS0{}Mi-U9@5ai-B@UTkPpcCwDG=|->!~L=n(;=g@l=mGle-Yz*vIv5fVUO$XD&;P zYJ0S`uzMXOHpKy>fvUyWH*fm2w2uxB4SlYt@EsN~8@nur!6Yb%+G)k7-3wn{S%DgI zjjQXApd_&F5kasSc6GIONl3m76(qFgtXVfaZv=on?64R^TKM=Z>AXpR)aMq!M@%&p>pVC~7~EpPA`MQ6`C^1y@8 zGUlwElyzC;RGzVJei_qfW`EG@1up6V!32aZ%(N^z{aB`a{IwBNR-YAfmB-c-kp5yk zrf=T(1^c&jJoh-N#f^0j&0AlWa`kD&DOO#rjnQ^LOesZADI!3_2tCn|;6RPNWm8ZD znQ^*|?8GLulUgV!HmvAgy&x2J^HIWi1Mi}W42O#gCYGcmMOIGEzT2c_n9e_N?yp6z z9qt!*51Z}&e%OF>X7zDcjONb7b!2PJ0LJ>DS4q;wdrof*Ux9PaHYcdtEoDxWw&&qO&_xBv7cu&vF% zV#wvfdtt=qjO^yeI2*fDn|BC>(BGEMO z?%wKSdUuy*?MOINg(0f0t}ZjS5>}mOT6lKcXquz{G$!rJdS&mg-oq>{GMCKt^~8>6 z5MBC&cl?ZxxU}s~0xP+PJN}8QZayM+zmJa}2|gdOp#x}^-*>lsT^%seSVx6h=nM+?P~tym8d*esKO~VzgX3zh*WY8$+GO zmfv`fJjttTD=WQdZpmtBM1&?9qJA5{Ha50IeGCol`b-=bGc+`UC+9xlIW|Vp>Iv@Z zI5)3ZzkSQj0a7K_`M00@u1E?KMJ#Bfr&HFd5{_3Xx(R6SsAYdFHZn3Amyrgp=@A9+ z=yLTBp)D7qChZ#%P)iv8$r?$Y5HtJu&@jjsRGm<05@o}n$@-s5=VlAT!-HO_ZHa-Q zSk=W#Dy+)cVI>pxz>=na33#TMx;cW4O-^7Z=4>Rq9azFn^{)S*Wu94CoNRe1to8M99-)q*8ajm8~^_3_B+$3z_+CK4&Q}eRn5irAf=s;am$N8rgrC1)dEw^2 zN7Jx>&dh9LP*ir{{HX;lx4i>>y^7x6gXo)oz}qVh5N2%7T!t-}Up zi%-4uU!K}rA8}sNRQ8rM$mYv>+En`xVuL%niGY0az2{Y2E1NyzJ+KNu!h7m!t6|d_86Ss?biE02gn1bTfCJ)3 zNl7&{JW5PNj4!AAtmZ2cqoKa%#ZFyBXsG*ITY64MM_8EdW;D#3RrZ?A=IZXJj#ksw z?q&dCH2rQQluRgi=$-|&+gVxJS=rgVeG7#iJnVn)@3HUO@8^DQ{6Iz*1mS%5xJ-fO zj#i~>=)n!M)9+1hGHKTiom+-2A~S|}x`+(u^WafY5L5K_^eh<@!!dl$i3IJm5~->= z-VnI5xNKh(yPj5xjmDPg#{UcBoIfNwS|&q+)zwu4tjixJtER|rJx2)CT>>5WMIN#` z{wIr5Svw_t`E^4SrTFiS%?Jr3^YDsXwl%E7*5pNJY*ba%9b9MY+Y>c~5pd+>1FNC( zysXMhTBcpHUueJfIp?GO&e(Dx=$}Dx&Jq0@V`TvQi+Xe6BaegqeQ>&3Sz79j=XXF^ zR^J)5i2VGo3n>y0zce(=J63C>zI-m>l|VmT9vz?;{}B*Vp9=>9(7W-Dbkx^xPVG`Q z$!IA2HQ0}x;-_OhQV%n6@H0lLf_`^!EqTxz64&C7p^1k>?T$y| zxX823L6paFe{XNrcoy^{K`aM}OW1*&x_ULCe>&9e_fA}5<{papR998fmyOfCC|*in zYkQ?(Rfuaj_3qmPvJmRZ3qB2-xYy*pn?s9ACoGKk=5&5s!o-GMAl*XG)U;VDSQxRi z^yYsq?cqC7gsmWVW=&2Yl=#qd^oij-yFuxZ=;+ZhHk1!!u4@A~F8>3c1uqorCpH#Y zq@GYxOiP=Z9@Sf^K{xS=xRDWDYj?hC_O9`Wof3zV(^h}l!tGjACarFmBU~{xZ+1cQ zyXzDTT8BBaPdXA4;gnW)-i4#NL1k|}_u>U^b-L6iR;8WR$ft7JFwv-Y;!V6&;a+MQ zMa-O6K(uw!{fy(avc0&MnzEwR;Ye6fd}JZb3gtybi9F`>>T#3!DE^eZJSLes=N%1rb2|Qsjjb#$ z4v1H1YPZjPma@^fnbuKM?XzHNSu;1Y0*zI`bHTNo+okJx;T5t)W2llX1A4jSE^~wV zS~_*(+grPC2a(ut2b~YkXCG)V4TAP=xS0OxA?A~XS{Le?!I6df$vv*VLHyA7@25(L ziedd9mHF+?!;8!WfpI@Xq(iID{Suei*z6SdyLM*i4cEnv^_Fwn2 z;hqZaI1UoFmZz?b&nZAhrd8pX+1CmE3(&sO+9?SOyMvA*D2VZw_?L>WG;EJVtczEa znL~((e*_{RK0Rl@7N7_!r7is|@orEpKD>2p$c)pcL3M8#rr5^Bg>Nr4qxQDa#l*(! z;CL;ddj}6d(tKz4pxIprUkhZl_Z-~kzz=4jJ3)tv)CNQc*7l*!7a(h-Z|O#r{!rD_ zMDJ;PFsYP$@D&TZ85~#RM2_ARsEbxFm!JH(aOG#!DkJH$|#Kf;(0lpoK3~=0w z@9PXEJCL-+YT16e{69+$H^<|o4ppuvern>hBj@)yFmNYVT_Eo(4a(SaBks(;GHm3; z|GXCBaja8qe8~60@A{_TX+eT&Sy54x(eFqyeq~9??S#>@-I>>gDg;qctlGJJ(ax{W zCh(g>;NbIOoMl(5V{a6RcNSH=O)t1Lm=w*FXyjb<{PwlW3tjO%#|tT17V%tp+6EIt zsthnqsvQo9cZMvE3jB6Y&!aw^`)xPBbGHV0J)43hWzfQYPhsJ_h!T2~gc& z$c`AR#V02mJy^$cu!Mje-7s~{>-*?bInM|K$K0t8s+N?Gr*T~GT}o&u3<`smu9cOX zv)c07hWddMt_s7e7gmLEY`q`7GQYk#v~8a%-d$?ho!1*S{VrM9RUpY%NlWWXZmxo= zYEOGK-JKgU$2L2=xp7c>vbEcL^5n^^btT-ZSfVAaeC>dckhOtGEU)iy_#$&(ng5y6 zutrK6o7O)#s2mXumYHKX$kxEB{v+nyqrKDJ`FRI!5_kbxXET4D-o_Gv4fFgxgIh<# zlp?#oka8&$&jHq!y|q0Yi_eQ+Z5>Y?=53vw@3VD%y2*p|)UTE%Qp?x1)aQoJaALKw zXR6GEOT;V0>Le!T}K0#Vg*Fcg$Cu9G6w?Fi>&zac+ib?YxB zV`X*SR7+)Y{MW(Jk^2EU1F^FunJ+3n!+Zf_oQ=+L|A_pU9FNh%(9Xo9$_z7ffndEd z`=2gVm0?z_%vLKJ>_2>fkkS6ts|ZCURligWj73bbK$62#%(&R|*(v|Rq80|I>PZ-mF_lB@;XU`?uq4z94wB z%RRurkl|5a!w1W13LeMb`LmxR@=z7KO@p$|7&1&_-+v1JF*WQhRAG>$UqPN7Dp*eo zVqiGlCc1zB2^JWM)4&)X$D+SKbp7%_sB%jYZVU{($|@e21kRr3!O@=|Cr3uWRMul| z3oVFqGCnlq8^|ZD$c^i9U}u(Eh6w_zgmaFteUT>NFp0^{E%p8)22S?SQaC6k>`thrxpl3nJf7Eb{u7}xUQenQ zy>*cdB`$~U&~F(5w`gC^+S9He;;B?y&bU(N&a7dZFU2ajJ}2}42g>$yUG{&^#er9e zu<+^Wsr&r=7wE{DXp}B5f7&StguZ9eQ}-{KnJ-L)V`J_yYw-xuv?O&efGw`L`1ok4 zO+JX{#qlRvKjKm5h;POsCED8v89(vrFFpVd=`UaA;e4CGyZ7Av9?gg-iGl=$ywSts z-wmCQ#If;ZoL27`eles9AneAyMq>Q>TYhe)U!ebR@zI`i8OkEP<)a%BU3zp}Te!t? ziC?~jiX_6u5C|`JjRND~jEp#FMp{|52Caawm;??ACglNUhiY^8Iz~UFU{VB2YD$ z*f<)+hUs2j!%?~9IVyEu3JWvSq`03BnIG9_2M2R*r+KAU!gplpT-zKoD=nldE_)}v z7R;9})xEzU2rZb2<6&a18YoWwvhciciLcCkGt}F=%J_&y&(jBoxWr}fG&m2@6-e`f z-(N*d&Fp0Qk$|@Lor}bLkADh&a~K~P1RK%A&lis1)j&+VI5_*<0iP zydkkfAk%_Ufj3ZKI>RK`~dn@Ki!@NU& zlT-i*Np}T@X9Rla&5UwcPDFVSQVym$)ZWBZN_Qg=7W^08H>p>w3hgZW*B=G(#;cqb ze%Ckbp)$(Y%VT2Wygvkf;_?`nrNy^jA9^&Rr4+dheOHjyUHAG9&8uUZRekVxjIA7o zmNUF*+i0}&b}qK1xwA}(o0F3$usq)$oPA`e54*qsg|~+yn0P&2+sbO{>Y_`4+jYbp z_dKGm+dn3zDy#(ewOA~G5CqSv#z%gbbd3=q?S8gY3*8+h_jlqf!*1RCSyAp7l zNv?-^-rg`1ZhUu5P_x=Ot+LV}8HqYXGc#!yDlSL1#Ny3miie_!wHTP_oKOiN`1mMb zCjyBDcZcT!piHdod~l#duXTHJYb)LKk++v$o6cytx}Wh$6&D3XDsOlDe{+oqW@h^O z`}N|M+m2)Y{%w|JC%4>Jf@NuL-nij-5ZNyo&8X;@Zp(i(o*SWMN_W!Trqm76Y4>gP z-sYyC29u?2OH04$tHo`!;OXpmx@01L=ha6Ij53IBWWo1|dTE+F>m!wW(CAC2G%zvA zf_@xRp0wVN%aUtDG{9Bmsdv_?mlwdJj?KRTWg>XB-cgT!ZpDuwT>W2weGcnG?T_Ks zy6?6|XOT!7tF&xPiGaKv8mXey@!U2KpR`PV|K2e^4pZ4wkBtG3)#2%af3L;o2EA_t zqzrW@qvWHSZ%s@N!FwC*Sq1GzJ_l>fi!_KSM=00S*ryo}CI1HtyxGHPS85kPkY`-3 z2k}I(S(<~Lz3!xo7($akofe)$8p4#2=~H%Ewg@7Q%Y#M&X?5~SM|diq7a8qLX>Ewe zTn>ef+3wcJpsA^8?6j^xe>{(QYIb(9pP!YSoE0LP;W@Bl0xk|IHtEl=I;Q-Q)h?%LM(`s+UlF{vUV}?W{i}+KL|2 zWNr{qdXpsj6Im$tr{m;iv0g)jP?VQHJaG_wk=NPQ2BuRx9v8_|()_;uIWl^bjH>iS zKepBIbvy+61d1)b#vMby?W+UNdBe&|T%Z~PZbMJuD$WjNY8;mZTUu{{$~jkP$aXg5 zfI^(}ASnQX^+~}L6Z3=BYFJOzMe#^4#>>7L7aQwgDr^Y$`4vk`vE`rL z@E?1KMP!i?H3uiYp160GJ88-ldjP9=EmQrySC&(O`-ZTJ_U)J%8SjT$}CjL_~LM~}OGrCTe$ zcF4c;XJ=m2gZ0{hHJTovtgfb3y=5`KJl|1c`8>EOJX%>+MONR$aC&{6E^%UL$QHfa zSy1rtnyTZD<2_X+{3LcmF)csw1d(NyZ5(;Rf9mAHxTS*4k@7Ne-*b=mM z;rcXbFZ};_$bw;p&C>hJd_6?~L)F!h;k`Jy$V9h1@l(fhl(H=eFFi|K?AT)lfp~ns z>4l_vb~JH8dioW%4pk|soDvB?B0vucBYV-S4%za~xtTkXKwyrfU%UK0W^w2vOImya z>9ASZe)5tgaxQjec9yT8xcE9YRwXH!6`&w`&DzmAgmZ%;{|UiJpMN2Y#Rcp}1gxx8 zch+IU)aN0zWhYj1cYmK5>sJ`6Q@sOtsE?Ny!~#sPIIhKSeH@HK1hNK-J2$!$D<9Mq z<|SGX<|k!;q2j2eFP1GFUWFL;iPhj4_2}2Przes9jeRkyU}zOFR#cGuoK@~LkVc*V zHb~WvV#g7BSK%nTYki56mD5#`R=y4S04Y25-|#Z@P6ffdP^q4|ks-Ce4nf zx&?z zKQ}fwJc*oY)80MvY$UE0dcfzg-dl4}>>YA1s|+1CKW}Jb!v>-rSj30Vs)Izq5U;ZM z#rDjE>yX**D)%p68YZTxxoFO^I6^7cqGzGrVsaBsqy`#OL~>=$ikuxoCWyw!SEn+v z={qAzXi1GXohoZ`Yg~Xk+P4R2)V!UW_M(R&9Asn`WQi7a?g9h^h8j!`{WjfT`1K-~ zf_jum<{=ST7KYoEzgYB6VGZU%$3LE)Zi5r8D=~tRkjuXqfA@mfiT##e1uQ=NP|z)W zOcCDsdIW=7+S4VKN6lj+BO3yVzyY&ggoulUWuU*GG8OFLUv!yRT3XUqN^Yic=Yqv9 zT2U6LUtAMS|(k_2So5xyPNK`y;GhN#tuPA@vRE(suzojHQ-RQYwY~QJ*y7 zsg+^7kv2FNuLcEK4)zb=^^7^O-K}m{5cT$<6Ve6(4>q)9)Z|(0g%n6MjedMwj~99% zB_Z*U0$%tqH!TK+ju_=&003Lv0BdLKWn1d$@YHL*irg?%Y8`yXjkValRel;UU;s3h--~U+u@xiG1<&FbGgE5fuT- zg)q~TW7ot8iKWu)<><#K0nWI&HMV!YfRe|&jl5azN^LPwPSonm?$oxV#Z-@R34Pe!M_|uxwJQV_Lu@BF5Aou(N*uyQ`LXy^xmd?jak~b&Hhwq zE0>m?9kHw>RR<%GFJ8p-&lu$$0uXYDnrJE9S&dgE&--ya}hAj@HRaDh)gClEg-)7vMQb{CrgUH=vnZGvmKlcEe^N;=R zI-ir7WPb3?GC2gs&_LD=a)@37EQi(OiN;yMNh>HZBrZKKU5#y`f5ilR^DCt}6?OHx zx;JjdD%bGFEAZTzsq#Ek8Ytfjea*_MTI$3`fLIKl%w2pr3etdJGHzjn&3xCsSv%$> z%tI5CH`Y%{V3roJ;g-(Z{en0sA}))-j!FwNvnuB~9z1Mvf!Rp3DZuYwQ1|j>5F`;t z!%?^h^0Ja*OH@68u@uf{C*_czjgQ~zMNYTHQLq)yoWo|9{j>XB%))qBjI)I!U3xJI9_9CD}boYzQ2SshS%G$z0E6A_Il$(sr&BLi@ zAiUNOH}wEMcNlm+eiIMbQqJYE|BHE2VjWQNgMl~{NQ~ZpiJJfMM_Wc3uBD)G^h>5% zOBLzu`*@-0{ARiH?|!u`vy40@d;1L|Bzv&i*FDhBPxENnw8L6e_28@)T~D1ASNPG3sYhlIZnnZC5@z$jJ~9! zT84iuoSe9kGbPpjJZL|281>+>TORAn#CLVAg$89`zf&nkDfkgyzy4xs%Hh$Y)VWqW z&^l$^W$ugU z-(n+vF8yxk*WY(CG_>dZ2TL5aUjGylNYYkUz$YcGb{P}^!d|VJ3hA#%h>2za(AAZ9~I{XjF zvx$shRc;yzC?hGRB>mlJFcP1PmY>-&Q(5e{q`<~1CMNbQCHd>u$I}*l|4|2M#6@aaHeB%LJSak%4j=ZerIkMnFJ9C&4M9KT-NxfoRzOeP`x zq0`XiXurzEaRij`#w%YzvIBpizn{OQ6PnFfNIRfHD%0Hf`7m!1@r-p%XsN4b61<=b>J14oE`T+uPfwXY{(0_yGs+Gy}mtzw^#LOKm}D zObkQ~)YM>3m0OHeIf>A?K3z@9jyoE$%Rk>t)g zX1ueL|LxCPE|{47{QMMPDAx%MA(n^h1D(V#b({Lp3=ZYTlaAZwro?f8Q*dcdzScA4 za{Ixc&U*y2X@S998O(#V)*cQ6jbzEB^Df1B)r>JjoDXi>p~9k9H+;y!jgww41O@)# zkrDptEp8E!N1KSdckePqw=Znh*0=!;vvaa*?u1KL!i>N%0(=X)H@@<=wzlveF&z)$ z`Q4TeOX(BhZ2?7CVl%R-)F^ZV^G@4%O^s&npvlsig`?INq-&;zhNs8N(SdRP4QhliAN(Th;+~4S_cqEo9FJ8iA!76XC^b7tsI~cdL z0(F^##7i|)Qt?GL&E3$U7;g*Zo3pgACMe)l-&$4kkDgkPFWOK zJAfS7yVj>h8l;PIJjx$N@iN*(lj;3W9Fdy{wqUT-^i#?)yxIc=X&^;p;6wz zdqfQAKxmN8P)i#|fgZgpi9g{}7z`E6hJ)wq>U~a&n)Jw0IIQ#i_-ARxiuwxkCvSZW~E)Z|TGzrMvvWxKe6hnNN6 zx9uthSS#7=oM({%>27w?;)PgD|v@_Pa zfQ*Pyt=Oiyr*CFRx z)2l`m9|IEyU*H#ovpN|b8{0aw2}V4yQ1#nM|E?hn+l%}KzP|8EXpWBo-}GgEyIUYQ z*#B$JS4chXUc3AkhI2UH((6r2jszyjSe%2&p*P}9$2n_Q?y;?8(snWr`O6RQ#t-|< zQ zOV~ZO(S#7z{}O<)B&|^pz5aYHGSIxIc#!&+Z&NuL+X^Bcc(EI;qc3pd*IOq(xzy@v zpQ*GOYRT3{Ls`0d8+zgr3X%hu`kV&W1F ztXGSQNwl5tmXC%cE2^sE5xRt^4*cp@FcXG>HqR4TSf_RF0Csokv?x?vGbST#Vqrl= z0X_GW6j}+S-8N70t;d@Q37%>AU}xxidssX{T&t*m+im~%AX6Tc)L zbfA26gZ9jYr6-KP_`g@lg&Z7c3JD~k)~AT>bDjdu+wASl&%j!!;=O=jY54GXKB%mW zv(*!P7AI@0Ub2q24tuHk))InE0|okGR(7^^QL(RY^9$+Ox6QY-(QojQut-F1(YW zqSB@2Y$^jh%mmNppO^rlx8vYcVo*hWP=8(977?u)-{p1@WNM+3Y8}2+kYp z)YL2uLBP?3+`u8aOY#f>tRnEHg?qa43hR>gpO@iNYqP3R+x(dY0t+b_fAKx~);W7_ zcZf-D8O!04mp>^4*PaOx-qzMG)(fIYa9L(vUX)bd&%V`xxi=D{btx&r%Rin?H9W-$ zxI^;I#P};p-&|ZXmWSf7i|K*!N1B0oKonZd0FVWoY;(=y(pwPb4IM3*s~IOf%F{w{g`V`t{dG8pN9)~>durDrSt{8@!hYi4ztu2RoUlacLacv+dWIObsQKvdC8S{Lup?s}co z+VU^e)n_SBpm**U{^eGvhtO+z-HRd3(0CL@fGC4#>5aSt;Ih8K{<1UHni?9gv%qr6 z%`r!i=3n%@I*EgfjEMPpkm-_gY|!%W(D~ep3=qKg!nn=-(lU}K)+-sXtwVNFwqmYt zY~09DpmIi_=6>2R)oX5M&dUQP?GZ|pAy>m;Rd{@o6gURXiaa*D95=3W7rhPS-J?|A zkd@@VvA#QmE~su1Oo5}>2Iaxp3Lvu4Xk0G+(PPn_hM3r76i(mz`Xa0lh*_?mXDyRH zro3d&vOVbO8DC1i1h4~Yo7UF$I%53PZ?uPMPu6|F4iK@kiHQ<${77F1e9KbTn!2;I zGx(EHP?*2boH+b^T%CCSVGi61O)8@k%%9nJRh^v#24V3@wW&J;G{t1m6es(f_5zrxacL#?a=-sRWX5q$h=7j zW*VVz&x}8$Wp0QVxr42}fXlpMb*Zbs*#Uk%C`vsqK$JS3!Bi)` z;xW^?$)>+A%g&_+zOhNIr!rIFDGkLbdh?hecTS9RGKiNKct=K8R*)eHet}^NEw1Ld zo|bi|L!G*8#absz$~_@G_wUyQ?_MG$CGC(xmzJVS+2hpJvD)cVdwWB?CYfmRg(8Jz z0CM!DVPn&K7tMv|nN)eExS2v9q;m{@zs z>ktq%sb2Hiw|X>OJuAh%PHKma>e05(4E44|dpu*upmdzBsqS%GU?#4FBz}>N^Wpui zwzftOSEC+RX5P^=1c9RBYNym%r&Ir6Rn+8)D81n%(SVSl^c5AQd|#<%2N z|9sH%QAM8U-aY>_$K4KEhwckFIKc?^Z|!l{KfLH?QnTef{!;5Xvw`=>ucf8MacVkU zelII4XRO*K<5`jF{|&e@pW@=;5EU1@d7m}npb+FrtnzIQdC3pXjw{*pM4ItJ!;7(g z#l7fF$6B~ShAlPV6y=g}Tpd;|Q|_LgmL`HYBRM(hYn`bezkngcIqg9#E{2i37rVF; zOT6K?xPgw_BcGk3O}S-4(zRu!=SPFgInGT$a+H_dmeY8(yMkOFD?BxLNrtMtJ~ME- z5#G_voS#Wr{l-SzG}dmCPSXIyp6+ZFh#gj8PUked5BMiF8M9cEQoyu(>)|oQ?AOHR-CV zsQE9X!}MDx%@Pt9<}WFp{!jn%SE#RpF+vXj1L~U+#I@sZuT}WFiq1)yPT7U2j#bgS zku=z%MDt5sg9B8lp2~R~0cc}37zOv++OMT^q^qg$aB6t2`s-7lpM{hfDVx zk(Og7W)@;vLM*7LkW=X~DswG{k1vx0*oxmiVtEnq^}AtyoPa3%fXc^gNfWKQ?=ny+ ziOkOxMP#g(q1@4(JszLez z(l_|jZNFnFoaWYx<@@)O%uoCqruzC6El2jVl08m*29Y+H7(YX}D{)>EY*`mOZ`Y7< z{(t1XbySsG|MrWz#VtsKNDD}pfPhE}3y}tqj-?=7N_QxYfOOZQTUu%%-Q6wS%_0_c zCgSsZ_w)YF`@HWTXPj}yID0ULFgC2U?)#qcopWBF>l%4~>6*yR4L&ZTsjaQT-dbB$ zm>pFb92;Kyapt2O)?Ro}#*$@u>4|ywL9oEtXSs^Vw@Lw-szgM0pYxsaPQ>kk=Mtn2hzU&<0V% z4C>BlD5PrpoS&O(d7`Ep;Cv+*;W&d#2w<*m?ujbpd|zSuW$s<&jZIYwjCq-Vob zrn_TC3)5O*-K@4Bmlrp<%))V%#e7v&r8msgUWtXNT^p$&PcN#7W003w{n-AkdkG#? zBex1JNGo8q(<}vkF^L8G3PR#K^NEf6K*)lPW9hDA(CYF!q+0E7JrhO_ei}$L`}f2? zwZH8w?3<_Dp>Gu`4Lb>8O}y0J`J@!elYPnU3t+>Y?^tnWqD*`)^U`p9UYKxYq`dqz z$sBApZOm&+wR$rX3;6raOqW3US5c?+ZuT7)bh~`|?ntq2lP9tjxOn*jXWzODB>Gz2 zr66&B_IGT>cuAg*?@)XiDPdqCjD$L8x~+f$5Z^a92f5z0RzGuR;%;I*3rhnkvbMwk zs%9g@1`T}}T%mh0Ve1ECVSyuiUCF{GPUFl(C0+H8AIF^?5V@T&gDCKX{oWjwKD!g2 za63Ms<@5~vxto@5>f!M%(JvsBvEh*6F%=gkUE6STZ~t5w)Rxg0e{p+6cl5w=Z>Bb4 zL3G^I);D;xz>4sRoWMkDfN#$FI`x}3&4bYBXRgR^^$=?T%Dv-Gl@hdoAI3QztUbLl zj||LzUV%G92){_lUU*61+cqJX`5NEPBJaOa|aK2dZ`=%jf<9w0(<``HSDuL+MZ9#{I_>h$i2lif&~#9 zE-n@f3<6hUYOQG$13D@+IruDMl>leWM8Nr{^7~DE`4ch^s&C?YdNd`!78gy;%|nuA zFD>lgu9rQm1=pMv*g2Hf2?c;R@Rg7OXR#pTJ@>lGhGb z*llON%E-_oAW#93(4HbLEcqw~nM!yK(uaqF>gD$1gwTrevUX?xZGBINR42D~5hiNt z6nXn!`@?v4R2{~~T_@+D=>;AfACy-(nH_z#JKl_{+L_1>lgh~v6#Pifd+ZV9{c2Ts zmWHxEhqPy10&m3mxNfGf)qE+vCIi^pHO`K+k7-DvNNLHKeUD?p(FzLGHTIk{vuK4l z2hGB(x7yf&z^M!&a#)+!FuwzJp6O^aT>egZ#-_FQ{pa}RaTF_aZuaH+PHIt1%(bQO zvVNyXtKpt~F&BY%LB{f#)I;Nsl{SHaLW$2^1lWtx%eqJFFVnNbqP)Cc*W#WY+(xtG z5`1aB;50eu0^e7oa=aMTQZQQE7gGA*DtSoa7#quI%8jEmG~|y9jeX&lnei|z#Nh>% zF=$y;v9VxCLK8xqxO+$owVHQ7>C`WYu^``wi+$s0`PdCadROH?7Ah=;iO4~d8s}4@MH49QgKE3M$9F{n{#tdeinug*RT-}eAngE1fUuT4S)NfWEfIuR@ zRc&c&2?=&f0BXo(`gvSR4=uEH@9tdkQcCtRu#UT2&M%GG+nMCf)a6vQw18nNLrX^j z*cMjf1hRC;E%$KukAkNYC@r(oolCs2p=+Tp32|c8oUoe14U5)zv)?>dr=;{&#JSd| zs@h>6PQiC2{IJ!ig9iI^Su^wpEGKmj6i0;pqJHXZx4ieD{%_C&;%$ zL-3I_~fT&y?VU`PpHhy5K z3t^HAfATXl*{Hed&zuLg!Ym*q#0#t;ekz)PcGs2L5KJd0RnX1Ks$6bi3>)N#zKbr} zsO>sTy0rnU&APjN3bZXM)+^8nMV)K?48Ilz521|gP1>1Uo!QIIsFn5*v(qJY(UoTpT&7(wkkx##l}1+XMi+IHqXxw$4?(Oeqfba)*VDEF&v&%wIJ zy%;w;FAp2d3pUFO%m;yGN_r2a@Adr~{P|iXil}~3(zIsLhts8}vE_wza$#IVL{VY^ zYSg6pt|^#7XKEfj3|P`JdI`BdUKwg(0;X3`Ez%+#&6Ohu+}JzY&7!D?LnNgVMmrJo zqS~?Q>gG?L1nnV+mbiYo(a8pAGb2i$xsYx7t%@89?0p%Fe#D8_DD(Gj685jz_U7n) z#0xZJ8X^7%{D+L?+0lCl@Y{a$>JvWt>}xSVY3a3iclWJBacQZbb7(a~V1Z4?xBO4mpLkl9B>#(t(U&IBtAR_>PZW*K^X!M1K* zVCA4A!vDLkv!LG*EcvFUn)a5kMZaWJHleGg-TGuQ&0o?&JCruKwPxyJc$Cz1a&pZS z1llXFBECMcUUl>Zjq`#SKQv@}B-PY`mx7G5WmFt0)j3)(xZj^CkXnP9^?e+)m2)=` z8yickRb$U8UY4q)6$2}(mT3kv@_TZoG-+bhCoBq}&G0KFGQ$#s)z|rXOmacX1y&{j zbwR$%oO*(!=H_NfzmC5+n{7Q-A*8B`ifKMPa6FgE%t6i#h(&sPgEtxc;+ClLr#c~UC9KPz(fcrxUAd&0XVwf;Lv_@>;*fq3A%8P0{0Vl1s%PkgDE9I2ozrq_>-E7uuo0#Y;4dEU9@_EyChXrNL43 z?pza-0lv7!R%q#7uD+{hZnBpy2a%?y>m7f6m^NdCg}9_G*JhWMu%#@vqyNg@|B#)R zYl8Rp+c8r`mkXQ0OaNNdnNQ(TkZOTQ)h5SKMo4rW1*hftS^>svL4&@9_S4bEmRMgn z@@y6133*F;i2X;MrFxO75HnP%xm3vrD1@$)$ZrWHb1P(KS7fMSVXYfsxyFXBk0#zB z$zIQA=in+dy4^E<)8iPw>v*y-`R!7gemk9Ji#}I9PwOH zG2&wMveh;A2`C*AOd+v$1*Ivx_@RV96_?rvCPtLsDj0!^g_DaC2J@HPBYLgGOA0T4 zh{LcOr}i*_YsT#{&M-H(c7WV!$5CN#O#9&&a&0ljTt@BhJ}rCXH9`(lOyaYKV{tL` zy-GwI>l_qj34veD!yYw7ImE5IfY}p_Yy4bXoPyAGRB1;eo3j1U)GpAvY%Gp;-xF(Y zKURs#-MgRaQUe^&$`F#8XBFM?^PwZ<+(G{S5g{pWxFY6r829+gb#n^oV#fF!JX}xT zz85S!+Y#1~`?@%FZ#h^{ZpL;o`otOyOyJTg*|v%=d}}J~>#^;4`hx??L3EqK`01K6 z*=F|%5@OAc)K+O3R_C*^{9Zwbb76ZqPcd4M8X_93llq%EMJh`u5rCQm=MKNq`(48R zte@+~2{!m|miW)5GKVVQ3fgxTg}hAJU|rv&$+?w76YRP$PQVxg2@gLIKHX4Qt^wl% zN24iw*dvZvtQmOHo5?=ck>rfXNGGBg2>$B)l$DH>cSa~wxyL!CO`3TuD7ZG^gU-(4 zUB_^KIRb|v9xl9)#Eg+JRYSXNA<{ReuSDjj!{6>HiBjCnG@n%&``!s7!j%={hqDcL z?7i<|F1W`Eod)x<`tw8Jivu1A3UX#{gU7E;UVH`Y1UwmyCE0C6MKY{wa$#Ud&-(P7 z@!_i|b11Ie{qbC?g|OwsvC|E0T=T0R4OL?71Sqm6^3`!UV%2_NTkZH|iN_o?ID@_T z%|%@c12ad{o5av03+sDH1l=g8nrNZhBg%IYNSg<@q-Ac? z1Pz)vc#zZdDvFVhi#0>iaMan;jZ_hkwHWt8CO-t!xf%FUgfb^BG#)oT}; z%9<$R{k62T90=Coa*0|xMutBg+b@3p6*AA)qNnF(ySf|pCYWO-9h71(1R8t$>mk7U zh_$taolGMQc{H}y61f~B>hoF~H#J}8u|bQTA!9_D&CcfZRev!!WSKz{4UY8MkI5R7 z5ZlHJTn&Uv92%~|w0qDG>Bkcp_xZPdvyyA(E6}4N12I086`wmyOTi9RT+e9)nKVw( zx1>LWM}*8xg)|D7=DFD$mC@Ih*xdS2;-&k^UAd`0aLhq1wQgd)! zL{PZJ@S6I@l|{fKmBp#iltxDK$1m%~sl73dt$9`sG$tnenV2kSXsm)DKI%t#li{C z|0ksBhr_g=C~QuAx&m5>ImTwXx~^&tZ_Kw7&KUZQh%A@Y%QJAJV#@Y&EeOAo6aCsu zD@<3?f>IAI-`A4T6VFCv^_9xj4#m1N)sA+`7N{+3>ce+qk?8WO7I67$ z;CwGaiP5w?t_+N+DPVj66KNe3?oS1HHk_N01|=EGFgrK+;Fx4(XOy)TEGxtAxGmyG zCHsOs?!RsXy{|o9PTg{hr48n3nzqUEsSYd(0Z_OwJ##_cS4pX>4P<@;+E>@RC~{m6 z=2`Cx{2r{q>ke^oCkFWQ5)yoYfh%ckc>J$JLzLv98>H^{HK*TzL%+YL=lb)hz)!;2 zH;wN1|B%GE(d1qKAa8u5wz~e_{mmaA|LY&ZiEpT{>+k;$-{O<}Z=9kpq_^$__&!4U zX*fBZ*5;MutYS|74UKGtg}g@m8$8*pb&iVciWBOb?iQ2Mi0jtJ>4&@cxSr3c;L`%n zpFba^Z{?p{r2CVb>q{0T(RPt4J>R3-!6XrUq_=+v%z^*uRu1@QM8kT7DK`_(as9m= zx5&iE@qvN;!$q*sQFZ&zy^#N2#s(h&=Dpq0K%fl#-#qFEEdaDal*a^re4Wu%R91jy5qaWBLcFh`F$vP%3pL@FttoXt$Dr^$tJPIH;$Sx) z*pgzT17X~oqEeefd9>^My7l~DJD79U|FGVlz|u*GQrTT+irYUxhcE!sSj~fZMk@8v zk7Ba61&jUOm?Y=znLD`s8Kbk6pQts%&CPTP@PRM>j)A#3@as!%QOYeSkdW*A;c##S zB(C7p_(k1o{Rer8(O!K`P4;^Or+{X37OVrBgcs{Gz$_dTU@u}e<+QXex+CE zZj-gMZEYX>=PNI7xdI{tpiB}H$HzN-AP9-lUX@)x+9zCUudb`xX-$H+E_{li0HS4plm$Oxx1OC5Mavc^qEEx6(9o2W zTHXXy+vuz+1&4mP{WWKmn|t7S|GkB|V?}AHbRzoT;NXShq`?uUEesz-B>c}Q3CCwX zs;}F!B61^(#<5znib_kP{|#j{py`lr$ijEOymv#c34)~MW{3b#fA2M~%s%z&?(R0| z)okl(L!ORq0dDqM5pH(8)0MNo@9$f!;PLVj*vit}QC(kO2gxQ>F!Yr|psMsA@OskK z-h+Wv=X5L!0xoRz^df{G|2jZ?K|L+ht_6y0`_2(8!Y(&u=P2#u%*->;{(;m1;0I>2 zmxBPwijC7iMV=Kvujcm&q^b`$nEyjaz#^yzL+0*L)B;sG2w1HfKN3C3=K~@Ediq~W zD#~nHFc7}t&5O|7`|<=k&|q?_*^7CGEas4Ts*xohg#lMh1xH33}qcdJ%% zhyBa{9HFqQxUaSNze5jA%*`V+arNlmzeW3l=_bEBAnc)p6&LSs&0da~EBzDmd$RYl zHHMQAXpdQ#yMQ_w4==3Qj)-07??I#0u9$=QwLhqz-8l&J03i%uFmXOh-~o=SKweF? z{R*K!^H0|A1tM^x0u3F_ZTi$jB?$Y!f(68=rD>YzYLOio<5v1@VaNXo@XH~umb#SO zl>EfNGF~iXwEq{aqs>Wg>LmQKLP5`9Y4Ze85kSc5WM9?k04(+}DPcf?4GuA*B!Gep z$P#4adifpZHx>6ua|;VKDr|Lu_8W(boBQHovj(ixj|yP}r+ueMu) z4Q6eWLmDuO{8tdbFSh>{1YoGA$1t%mF$|1XF(A+MO+QxO3Hl$zpWPnuHM)0qPw_CQ z59pzR55MU#JT@`WA=iZBB>E5Nw~%@R`gO+J0jnci4u4-Am@d#$z5+-)FbDR}5x={x zLj#OAC3C|zd;ghgKvq(0DN8EEGKx+RmkyjbA>cq&?jUuuX^&I-P;#+r%?g-|L!Qw- zQ%#f%Pw`Y>K)JxZnUfA_`1nYalrV8*5;h-S-@;(9Ud5h)gsVQkFG}t%I zmFppajm7Hs`e1?A#>PMtqOT%5il_m&;8RgZb5oOK_4nv{(c1)Xf{Q~kajUh#m1&Ig zaC7UxD8XQDX0#U4t9$qMd)b~l0A>W)6q9o}Jm#K438`NIG#|zs^G{&UzQ{WFrg;n3 zdH%7k9~d6onvc}v;@YF=jTfYN_z>1RO0l{FMvf<8&tH5<18IEn^!!fCBGuEtoDPY> zCKJPv5~i5-(Gd|Pil?ZnpOTy`Z)x`arGg4(Xngqom|0bv9kp(wI3ev4G1@*lfokwH zl^cz1`j7C)2jd{=<(mI-@(mHc2XbQKwm0Y#I z0nr2c49twQRIE|J@=8NNo6_ofvblaVST{wC|Q(M#T z^zO~h3Xce*9uwgLz<~T<;1LPQ)!C&G=%TrdxzXD9L4tW^FZtR9bM688QHkNP7)k0{ ze^ze-h%tBGkMFZW^|5JUUa=I@%*5+8XuK2OAJBZ2ytV3fQ)aG80XP3H z5j(zRfL0!?uwG*oC%!4h8g)kI=G;6y2fH7sVI`UA)^)K02E;hc%``RV11+|kAN}OU zM&pRdoAd4Y8KAX(u-6GDuA1>u-Zh*H0XR4+6I`!rpT=wyZQ#H0>()X?XQUi2hN`Fl zBQC?ND;O<4GM~>j|Al9Ti@$V zL18GcC4TR{TvS}Xz6}Rx2^|$6kSImJtSTJm0yhJ|8J15DG&QNJs6_e7CcU8Jb*rhZ zHB*tL!$$M38S8(>kkyvOHT}UCoLI(^ zpHvKUnfOw*k z%_F+KdJtKbZkDdkjyplyg+Dj1FGzG5WK;EgEuJ-Tr~}nxe=41?Z|`W-MCm6V*$Bw=3?wlzG<;mu?F7T7o!7LXXe=NeqyqZf^ zx&Z0p>{44+`V5?Hz)zgx7CrYs3O%T3kB-W@xs`zv0?5q)26lmg7{K+rbgnF_Q?e6? z>3!(|2wm&+33&YiVC!p)BJhgL&6N^y)&VMQ`R$kAKv)l*EOG0Sr4I%fc&=Kis!cjY zx9?ocI@sX_yatW?x*4m`v)9Musp3D|n^M~ornaY2y{g0TW+zHV-sc6M|C+%&d|-(?bbg=b{Y zf}Tz%7w@pyqOVW8Kvs&RRY)fC8kIYEozWF#mIkd?&k6q ztX!~&a3K)Vp!HvrFL}qYIy#x2l|7@A{#&bh`!1$W*zsexjYu=;XY%FOQ)ALTDE429 zs|2gjv$4D~dJ1$)*Q3Df*?Q*|So?q)^%4J*kGtQ5vn_UjR*8Wj(BFUW_?U}}ixvi= zPo9#IK5;48x@SNr&cxKY#+f0V#4dLJw}r*!ZYC7&vMIK_Lb!Qi(+e`Frl+)QcTOe3 zFXz`)fFpxmr#+z0G%Vm1dK>p*)nh@6sMtf;NIS~NY{?02IqF>yQ-umi(~8c3`+2pK zk0p4z2}<%>yICj2@R^~ZQj?V#gD5ry)8CD{RJSz|tgT-Is}Ceep>Jkye9`x`ABRG} zz5EHIfS12!?WF|@6D_UnRzM-b^61~}`JZe6A>-DGQ08JgUqIW)$i&Eq`ucZCP_+tO zTC@)CVxJ+RraM)bFN`NMuPW<1nP#RA3raxGPX{qCMEBc;44K z)iBl8=H94~pO+;qAtB&&G`}P@>bdXpE(!R7X?+clQ3d8Z)z!IGFA9HTEg}&bzhaH3LGYGx zd|yFICirh3mm;g0iHbTE>Trso?|_Jnn0PTUSF!y;{{t8XzK@$?$sMmiRY7+IAks|r z3W{W&mLGU^ey^J*;0_178C;;M2C-jT0{}^%b=w)-%p=9e0Wbde_x2{rJ~2D9^s-BZ z#nqa&^we&MsF_(l2>0+5d8wcv0iMXUMO3hOU1(+#_?twLXfJH=uP_>jumS(N+%3VD z{QvSM*Tqk9i?02TWzv$}vxohZVq{jY-3ME^@cdRIDvtG*!;`<=0)D`9GqDTH9}>e< z%8&8|=rQEgS8wh=xI&bF?ZU}F)fG*kt{x#9FEihKEw{L2#KaEv;u78E{swm(1^J~y z@B+{4`Y$g2>^NP2|3B^32~u8fy~(5TC$4*3SQ7MOP2bdL~F&GBvmb9RofopZ`2tTKO zH>YlsVr1b}dR|TWw0;h0M4v*U=y^gO^MhwxKgw(Z^$5z0)S7v=)0$|O(Ebwf3ja9T zOJ$|a+YUr2p)D4mY~Bg? z@2KiY(vp<*uGaP#uPEVm+$ke^F|m$?)-gMdj2bdfsE|#`=(vwg{&Z}%zhg>RR4c!{ zfL);aWIg{(#heD+OXO5T#VyAXNN>RX{&oMIiQdT^NlEE5hpu3KT1W8pFymZhcABmC z{d9cStgB7z3%S5k1*n`=)8kQL3ZE~n=63MZO23)OLfOI5Vf}s{10Pcp2j^s>ReL+Exeu71dPEq`(bo3U1O`P?`{qfXZ)+IWF zBQ3IS?!u&u?E3CDR@dW$x?B_DMSiakj~+gf47J$3<|HxKJEj+?V?ji7dwb<>>m;#@ zMp{`&*FQM-5)200AE{zkBCwg=;!pZ01dPs_ds+ltfB2Zpcx?M)kzRUzU-o!OLXH0nylB%DgCpGbhHz2Kx26BT=RM`1f2B zA5{49%eAozRwLORig&i&*BWhoAXnjH;JW(47VIw~#gX*6QNh7v`hyfFT>iCB@GP$t zFC3QBGxXYS!qY?78|-GN!)rJW!z?aCGHp`U&jfCEvco&GC<`K#5OG3$Q)7p_6-Q@A zcXv!LOeCWV`F#?2*@ZO%#335xNxl+o?{Rk^2KZ6RZl^O1J;!Dyc&3+|AGKWY0An^v z`oh+yu#k&&th2wTsZF>#E$>w#I?1!X5MT2t3Eq!S;w8XREkEC+ql2aPBg;#LbkL@< zEest$4O(pBN_Cp_X!}{18f#shKL(_;J5Fz~ zoOgU7nb;UaJTD1pH@dqu^Pt31ih5gM8NHY@Y9V?QC1g@zt?P4ymj}NJ$a1vTRH8Dr zb8cQwD6yvE-g^&Bm)4K>v(NZ<`k(^z^o7}G_;+z0CDn0WwH4T~u~3{@_}15d^&Kej z=ez&edV_my1h04{QA_SGuqCDQZ3B$!O1z8}R0Dz&ws{Bs8%Ty%n6@;qmW;?cxmTrp zZ9C%T?CABPQ~1MGiTgP_g*SW2!j&JE!#^xVG9E?K0_p7wVu-bzdY$)=v?*cenXIjx ztjSgD*1rD>{g+Z-=z6_?ZCgzPnhE-s5K+z4`Qq)C4~I?e^R-qFy>nB?SLeuCF*9DF zPOS5DJq)0MN46?%EiDhlIrwDy%fI$xaCqs83B&$U{;;=xB-+>c-kAR^&J%V>2!Dk{ zMdCMs<4s4Zwr>~Tf8FY3BkI;E(!sSXcXgXD3JzdR{M@X=J08O^DTNw`7Le;Nl^cj* z6Hg|+WO3cyAKaXdEDhjUJs~1l2S$)IN}(nJQn`GywXbwGwfq0(A`Pk$Kw^>KcQfmT zkgM1XPP8L1WWY08Q)^~e^D6S=4c;nFd28^#L=C(**$ZP~gF5Hj!}@#J*G&pvQo0>$ z-|C%XJ$6Wi4_82QPPW(!$N9Nh5vmunIrxs!60+ddN_ES%z@9|ltaRmZ;8e?Fp>T&ZCfJjTRi6dJ7dz=YlES2bVPdU ziKTFe&P4adGv))I=vI{&Gw5e|uT-eLPP>*Ts(>3{+Qw zXC>35#&1@{6`8r?hF54F$i;o#oNvi^NDidB{mj70uC)>Q^5yBN$^Fh{%ww{5R)^M4 z4lY#8U5PjoLqyEO6759TC-}b%|xX zc3wxq#p>hRL`S-5zVSH|*8N9BQyW_BLvcTrctf&)z~$Xoh2=qKFI4LKrB-;h&v!R` zO3LMkR*oU@&27RO;u;CS(@oCwSX~w}66sIGscQX!z|SJDv}`yc&2w(8e}wk61ltoT z!h4)jR&YuvA0u~eWhIy3sYi85Wh_`2*NNgIddvo{(9{yE;TrpBOsv{+Phce~^A=MQ zl(0{!wce=D+uatckox*lE_g;)_i#e8Ls)Sll!iK{s(u-{-|RhJsid zy2qvK$k8DeJzFD+EL0%U%P~@)AZdlU3OQp*>{FYbST)D?K0}^g81f{HKAC&O0 zbE$ByIJnKpKObw*8f%Mfv;G1YI7g~MAYg(w#wGKR3ABl+OHE57Z2KP{^{3)oNB)Op z8FwNHNK?ze$Kbq<&XpWT zY^swAmc4KuO&JJr`LI|clPK$7yHQ;LPgx6~kS!~_|7>VjTSFkEQ6c2OUB!Y14<|VH zh0FO*+uUV266VXRaMOJBMAVzJXnq3BB;R+Jp>?0SJ&ULX%APrBas|}|Pfu=Sa&dDp z9ci-Un{`RQPerW;)k#WbYW@1VtcL<*ffhpA`&~6ScWO65DM`F;%wLd`AJM;V(DK(Q zFLr-AiNroMnBQPcM>{rF!$K?rN8wviV@`AZGOc3{DFOAJgc!U#mpc*JG zZHS)=jc6HoguJ7^W5%Tv6c=`SMq-eaopbp9exu@stK&c9*%;9nvIb|Am}EUVGrzTZ!_6lK`VUQ>PJpu92%GSC%}gp$CC6joGE>YZh*O+nj5Y!#|1lCXNutPdtyyU+eC^yJclXQG$pCN2ksc<2tma>374`nBus zNTwS{r_wMY$@!pnStY|L%WCwd0FOSLsLH5yo6#(L9_@?&+-T6F&Z72W-5OJTso9{_ zKa&l5C8c&+ml_XXJuqlQ@Ve!chD2}EEN-42RGkx2uc%c;M?sIYJ^|i^XE+IaUVySm zBV1cqp?awr4@{g;N}BS6pJm`frDwFn@NpS#4?U(WDz3Ub(<0=~PsrP?xno_BUCAYo zJ2qY)4qA2zWG$pfO`5RI7HZ$_5XYZT)iZMUg8XKCQ7*vq%z>@8%-|?oxb7CW;|pT0 zvcMw0%6q^gs)a}4*P%B1ecm`h!DlpGz0LJ+<-}7{d*v8&)<@uFt#Y0Y|Z)s>KY9+1kfP@K5#HUoOb< zyD)|va%>PXM7%Vh<3QmtfZJFy)#}^%zY!83UG#mhEFBQ1dyvEPmISY6r7Rb)ScLz9 zaBj?helJ~&R^I7KLl790o*3KyMB7b_{Fj%FfdRO7}C#+gi3esKcH`6`Ye+y9( zAA-4HbYNa=rnAdIURhncQNKisv^%ngC?hkqe`)}^vR5tXdNIE+XeVZ>vpuPSnK}a& zvB+CD^=;xq_1GHrMuCy>4k-}`B_1dce(5dLJbrtr-?`}#+ z@csXz0+;_6G&KJ|dW(hRn*f(Yc|pu0pij0bD;`o-F(^`nSnqa}L1mMaHr3#&WmBC! z+?0F<(^szBhH-LJyHQ--;xzB4Bv|rH@qoN33-DF(5 z;{wqh>Bb5mQVfz)yA>1|atqqonCe2J?YUS}s^H{Hsa+BCW){b%9R_?tLwQ(2**S`; z0+`_9hh>dNZwCH#(yjTsODJMq9JA<#>k#i8lf zGz>-BKN$52@Tt^!1-~}y2+*@!9R5lo@)Bdo&v&tBpD#?_VbOltG`*Ew8%6im31>gk zswkuB5&h1sgI7V{x!7MBCBI3&27y3J7iMtHzXB@K<@Dp8i*TXB>DS$ChDK&(+}y-~ zE7Oz5_J4iKw50uNc}ylwOepdE7nu@f=E{p-(fYU1R8wGUXj++(f0T6YbX12++zWNMCs(kLJ}Ug=dP0BiLp^h zu~BZDBU{)M7U8&zV(}?Km?iRW75qBhkZ)wj^)K#~lkpx+d4Br)9fCk6@dX~eM0e-a z#s08{M0=*7GvU9zxU`g(i|g)dsty*0i@imnb_}!*rX%f|^S_qb#s_rX$h%i0BzOeb z#tDB@QMP3f+}k0kAO^no3}|NpmkJ-#WFFhYCf$S#S*UcKT|R4SZ40&WeWIHO>gU~$ z8=`w^ZjOfa%x3 zXFsMUyjzCO&jZ+t2z9o>3eJ`!c=vFu<|8?dz*YD05*OFOD-4Rob>pnu!Kr~zAlYAO zNViQ&;nh%gu2?>`y{9ImI{{>{5hB764r+66A#!=I}73i~BJu zkaC_S`YtkiD!+Plt4G!~=t$og?h#Z@?4vl?_f0__KQZ3<1yxRVy4ZT`t390?>M% z?jF>r_7jgtO!j}2VFacF$1Mj36`ciL4vzF0OpeWgRPyjh`2GT$fZe%Ep~cgYK>^pZ z?Q-hY7qgZd{szvZo2i4G+?U0QiINH`ihM^i`cxA(+YRu5sOvWlCZ1bae3zE1p{x}a zfA;IwunEy!uVR6%Gx7AFgMVzd1-WpVU2g+yHAk4yxVopjv@t&HRr$*<8lwbT-9YyAM zq6+m19)22rdq*oiDeh^{l>4>Zn9cd@%PK}bK*|BM;#z9DCrsCRn)<2~T{JI=y?e@i zc4%OKX66pib(}JZ-8b5^=Nln&P@X1qv z%^p8w(>z5~0M`(O4rK&WtItGCEO1N*WVx1arHZmvYRBB8jrA95(f6F3Brdd-fPJJj z7}O{QXUb_?){TuZ$lNxJ4Rm1jAdgm4xjg=Op$^N9`|Khez0)|S4tZv1s;@7qSdv;f zUfjp7&Y##N=j2Xz_s_Tv>=@QejKHEs$!7FQSYTwdb*3xa7l`^xR~l$&!A!6i(CC(% zljV8hh-G7UP+I2ab~y5+K&J0#qLT~Tyo^WDv4CVmBeT98xF11M@Q2|VA`#c5wF1$H^f zbo$Ky4UxKp9+pzpg+-oSzl7%106Mc&SGyi=VM{Y%c!b;W{DF&V8?awtlTCy`00c3u z&@1kxWT-d@#NUylL%0fxQk_K_6(n(S&^WHfDR-fs*&WprGTvO*EFV4`Ex!Ol0aZYV z0Dgc24ZRogN}~1&k*&i(vz|U4PF%NbQSn!a-c>_RI}#=;W4ymZ$+=WccUrNbN&c}D zqpsr|h+>5dUlyKd4KX*@|sC@#0}WL}^79MZ_JMiHR^@RUSUIrs=c3j?{BqAG?`n7irN}-buXCw5s@oak!NrTYtAU3X!wGAd1E;56bh8G6XF7f$R30bW2m)qt zT_Zz!cq(v#IQf}UyiR$2npg{H4va~vh`qz!N4Y-EOiQbRC;B$kQJn(=h84lnca3>#FnoZaQAu`p z?ihYxBH9+`gkP$-k(u!{dw>snfDF`jnz(aF@W+>4QKwPG?jo?idEoOke@8PL0I<>k zMn;)K#8e)0`u5EBQj%{+j!E=g7MsMb)9>u;`peC6*uR7*f7XSu$ecP}Q?H7QCL4n1 z7r#IkCtF=SS?Dy8Mj$qbNdSi-eC|X~Q;1Kq@?MwhMc*h$0Z^4wSx~T-^}H{9NDDf% zm&Yy6RXNjF8H?92Czt^eNa^bGG!GH!*EJ!=(Gge^o-MZt)yi8R4@??BK^SUh8`=^1 zFGF*{S55{-&*bM2qIp%)q=PQ0>s$*=1T1J~-8N4)z*L6?I`c{1Cgrv{3?(wi+dIsQ z7mO6Ve%!hv0Ci#5b(LnLZ=+}4oVPjZ8zfIIyg6j;i&`fp@e-j7Xr9luJSJ_*g7amp|AohTU^zk|-mh)lCDv#$XhBX&Qhp#OxrLyl{&msA{K*HU(NZMFSNEnQt5S#x7;*Eic=R!a|q zs&LxBO9^2|MF=!acW)`6boTapH0vmhj*_ezPR2%mARt%+nz)O5F*_IpHbS;0x9iCr zuN%V6A`%%YPoI~SzhGhl7-E1^7JU7YR&cZ%0Z)x;Y>9lhe$spLnVfuR?GKtM&E}~l zJ(dN}&K6(!wBaYIp#GZ!jr?~Gl==?`iagq{no+k8)+aYLju_aCL$2!fI;6hZEh`HE zxocWAQ+x*Dv5Nhv!U?&`AnRoq8W?c3YBw@alnRU(xE%QPbrhHJ&senuKQ6^CZar>f zy+Gk?c#M}0OpIRiwTJlHCe@t)&gily2+TXurc(6y{=LU^R~M>k8l#8+{CD$0tI$6x z3tgkrQ{W~6ut+e;G_YDfF*0;LDeh2G+FDeq3#%-06d6txLgZ$5?2}{!dABUzJ&2Yw z0u^ZmA@EeJOX7?1ml|gj<1HFD)z7E{CL|a_JBB-;b2sc}j4dDKjV;xoY;WFr*?!HIRD%iLCXz9yu59zTn0-wkYLxTdVNl6TJO*i$;*38Ye z%q)P-#R~9YAmJ{TdHjvkPOcnGI@u1VH!vq~47it`4nRLkDajrPB%hdKd1vu(rHrKO z_{(@RmU!ozp^GsC3gtWWjc&&D*K%BUI6=hG$A)ZS!ps6w=;&BmO-AhA=^LJR*HoAj zCn0Y$jdV?WN7f|u=MvRCp5-2nk-_|e!mD?)9smU;ltS01YM@Jh6CPGnzc6K6S|)@}6jYSRq|{_r``0O)$Em(Kye@AT=y0kUu5 z{Oa1mDdPc}bXyM`kcGWU2=#P&I;Eb**`xH9&{qx^t0@N~H=JnXZ4D`aaVcrl7G!uw z)skub7&6Zf{-U)~4OR`n=w)e^wqglATi3{DG|DH~+2O=@Na?DkA|^8Uj6J?EzgbbyWK(3Pr(m-IAE)Ge zJMn@CH!LyljER*K@ZmGlEsU9Ip1#`|Y1sV$r~(%T*8Qx?k%zN5Q)lb0n~`+2U@a?( z^*azpP+3XkxOI2~@T6;s;I3h6_Ik*- zB)Yo1g*l^)V)qFE?pl%6%IfY;+bhmrt)zt<{?sbTA&h|sJel!DCImcv3y zh-8;**~apd zt0)ckPnkBK^g*F&8}IZP;TM&w(OnHxRO-06=hCZ>0IBzzf}YFe%=9^N#8a?;W2vbh z31clxFXQ4pzJ(LGhale(0yS#@O+Na|55`E~7U6g8aYDhWwYc%Fuzlgv+qVyFtWm2g z;oK%I@KK(xhy$G2=GQ6)gHya9X$E+K6=wFb`+*f+CxwqxPL92?@eXtBXusj1R!xp} zE5F~LCtd2lc5L7`Rz;QYI|P`zX$;IM_g35Bl%~U zA|0NBtJ>+BFFkLrHdJaON=4hzeEx?pp#kuX!C;Nb%+R;cM*{0N(dlX5Rn50w&#Mnf zBzP-9anAhE#67`G+VPc?2@?)jOY_sSAc`ueVXzL#{>(xbd!gHhBqyHN8l>bMumKG( z(mnQ$85DPPK&`C$tFnsU_N>Bf^0>W3iWvig@ULJ^Z2mXSX24R-zz37*2<`X};2Lpd zu_L%Jm4jImOc6mO!5R80b*(ly(|&65#{%k@wKTiuH_uXogK_@xY5w+%<8E`@&`td) z&nKAeBJS9aZ#@`m;cg*Y5Uf3($<4^(X9Ib@`lh+kmAY5(!e_1GD#wXd+hRzo?aCZC z_!ar+zWC)uCYcKbOF1HU^!V%7;ORPj#Bfl9{@JQFf0-mAUz{BCJ|;0S(P=+ATjh*6 z_fymB?*vZA>2Rs2E>AC=Tn`(hE;om}tUDTp!joK<70tbRxN2zl+)ftY_p!>8l;yS@ zIH_4_1^Lel&LixW3aumUj*i`~P6@A8(36r5wd7on{O;l{cP!D;RFQY4$4xz-BPDxv~{-WsdjFb$ro#la+NmQ5nk^PUnn+v>P6p8^$n$eRxz-h5c>X@6Mo zLPf32X~*?yc7A^*I8{<{Ka+wVkx>+ynzu{( z5{ksL7JiIOVr7cbPa>$2uG?R6j+d~iRs5(+{S(YW-@HH;CIx&qsxFDYOm7e7mEErY zsxU4o4xcDx&=8d+vSWEfl#q@5x!b3X zQPUS13J5v5tINx>+!8!I5rkuzB$p9a_4MUooYQfVfLp8o68alODjCWNclY{`kmZ8y zP;c)+y`>eV+=K|BiVN;F?eBEZ)3YYJ3xeTcp^~egnHH1fpI&M!XkE<8#qT>5>gOqb z$g=ymihgwwcWZmB+Z(o$JfPgSaNjs=02uP=Zj(|!_cS?6RsDOY7DlI83ox{+L zNas*PBQXr!&3(Xgf9sxg|2VhKTKA8`nm=6QJJ0(*&%1kn_TI;o_2bT+$Hr7tCVoB* zhL!3%JK)l8oMu^v6alAM!#CEGFKC91AKo{^#uhq0mXD0AaXb9oqCXT^ut9(4wCjm4 zob{fOy@$o;FTA z20O3B!E_c~vVAg~N1?|4j<~FRYgnSyfuKA*g`f6I?JE{fk z6yH8Wck7a)s2@sL{Qvyh*YLZ78Xj9KTM^A^X*_s|*R?6HQGh#Q=`Z@P?Agy6z=CG` z`|Ih%UiWtB?ztljC_VSD2@5^8_BYfl@MuJCzS+)J;X&kh%o4-h%w z&yZig)LvL$;UXKpMN4PIX1G}V+%{L>JYe7Ck?3E#cOXv1Tx92{85w=tP{j+_5GPSCMF9_b zzCG1Hy)h{kz_9hlG+F&?xVEy|MaJ~$x`ngPX?t6Yab|V&P&wRpF{VBh%yxK3digXB z-DcJ{JqQMG^^Sb7?Ax%*2b(e3{f@F#c|;bPn0Rp>6O*fj`jtOCHXczZvh#2Wvmvto zdnLij12mSZfL`)e1zJ2H&ak-)7Ni!I_{h>Ku8#OPW_mpnehus0g?bAp$DPR}wc(L^ zGVbAF4sud=eXkCOpAIhdptfjitqcqZh{c}PH3MtCi*GzWs+{)NH9$07xXqCk_{w?V z8^FX{w!1z*KxcEBIL7uveyW1`wn#SXEGg-OBtd>5QPC~Gy0hhG%;Hj2wDt+JKiJBM z#O2ApYe&P!#ZGr9C-J*+{KoXvqraaw9K)yG7RRdgU8q4?NrwOO{k)5B`qq@1uXhr? z>tSHg(JQ*c3~fb>a9FG?!}nD8DT z*}d0Na8qHj1WFOTs>=PUfLt|;uR!cIE_EfE9we0Xa+cuf(7y;T2~biC?#k z>)D8Yel!zUjr*Y6ACzxnHHd$MLZOY%VL@l6z110Nu%O80pXfsc(Cp8@!Xb(cTyjPG zGEC3B-E+>(tDk7-A?Zw=Xv3{8HOZ{hcPAF_%b<{TZ>? zmb$0yw3FBJwxK*a_&B_v(yD_BMPjRib484qRC5{QXX^G%x&O8#Ni>V<_#~dqMAYK&r)W z`k>`vUHW2~^&%_FS5IB*Yc5N5@5CVHdC`o$Bj5AF4Fx!j^vbW$@4D$Ma zl7;^X!sY+5toqk-adDRfgJpM%hTl3g=<~|zs@p+>sHV~Sc!{;=&#{T|0k7TK7iBo_ z1OutA1p4LPOfJRhj0p*C-n7q>2rP)3At5I_=WW}wdh7=6=U0MrMw5uaBT%y98tv!> zMJSg3`Wyx9@K8KCu3eiqGNS0Tb9HqEUCBK? zbDL-FE~v8MY$lf9%q80SAGqdZvKpe8NK4pBs%l4E}F&D`k)p1@o6}OVJ zlJhATm(gD#TRGdDYU^gOq*0L2U41XBysWJ1x`Oh$0u#ftL;sdjUQ7UFW7X5K#jw32 ziGh?dYw!jbaahn3HrFIQIjK{y_oCZCt9;UDl5T3}I5&FMAUXc=qepI-d=xfsT={VH zy+GnBBrzV|r~}5Oc8Y_e&sTpMrHZK#6XxSi46irw_JXBawmUryP{>!EuHG?#iW@Yx zhNoUnWPkMdAwP={)1ybDhE(h8D=d$hSJu|H+zGQXOxZQcVR&1^G`=Hfr=1eV=B9f? z7I0&?ipuQbvUEEqr=i|!=(YDHFc7AK-$>|Nd`71RV>rFtx7VX1HL9Uxqm=DG>N{EeoYTxk! zknk>dT~5jA#P>nPlx~yU+g{I`2*$1ZH8H$xAlalBx+t>C6&MK`zt+(?=dOJI0U(1FB zeb%gV*b6q=kUiFrj?M=oZ4-s;^Qv=|()#abq%ZX7{ZP)KVAF8Xzd-d^h)nAEdT$A$ z;Y-BcJ1Lc#T5-~!@Jk$b9Cj#NT*_RX%A^;}(ci&gz=BE{64o8trMytZRLf-T?ei}a z3i)lusY$4K^RwP5W@}g5q_uK+?fWUwty!z)BFQY0k`Wwt@7hWI+C04xf`fDXBtc|w zY%E1J_x9}wN>rt=Qh){?M>8ouF3{JYy{1N7bbOV%TC> z>2{un65HF~1qgCsXuw z+XX+<|0qW=D<8wP-Ox>&eP1VSKpnFf=+UQR9SUJ&7ll4$bQtJ$7+njT7U}DsGASMV z7#IkSEhm@7ACj_I^y7!V7;y_?5j58xni|egc%)jOo7Ha?0D)%q0oK5Wf(tPgxu(WW z?kMI`MrLN?w{QRS347Aeth{{rGJ~cgj8;@#PmTM5(WsE<`BVzFwKW@GJQ$NyR+1|7 zsbSaSg@eU-B;l)G;y;pA6h{+=gC6JCE1*|qY!_DmEQJUU0{i?W)Ll_8Ls3Fff&dy9 zAD_VeGJWk87$ofv5z_hEsK0x}R`-qKVTt<3C%OW{TY4uaCl)z{u_ocM35@-9 zEX8aO&#EU0C;H_$v4}*j#~=2Nf!ue{3YeU=i;RhqX}?pDolQ+uImg#tHNHX;B7yfU zHj?WB_CPas<+lQf^Rm(1#Cj|n<%!FJBaTj5qPAzg$(${bu?Yj?;}a7@Zt#HA#QOC} zsSF4sFPjK2+u3-11}@IAw`U0PhY#$gxVQG4U8*M|^g4m52}#W@HJYoE@bkld@xrgM z(Zf;wFx_?|u1F!Q)xn+Vo8u95`fyM??cTjCIoinzb4z8Xu5y&?Ke!k`74r0AD{+;F zCS#ven6uGILuKk84{G*vY!kV(JUl&)wJ9u<$K^<1WeB+3(+we^aX{2BUUY+e)~wy3 z;9ZfYUun>qf8;}Cr;i9`B(JPlj+0OL1luEdO1a3~5t};<3>zz}%V;zZ)mE0)iHD^M zRs7wgEKwaxh{I=v{I8w>REkJ80|fFzH8%jF=6O8ZH=_>(!7EB0bbXktn@}tP$D*MQU$Nwg z`}U1Q3^zRx*WsQ{$fiFe2ty)+MEtT zdb=028z(L3Hqh%y;fbKp<)|Jr(V8u_{{)=_C7Tt$iN?peK>6Om5HTTguKf8(j&uYh;}A6e%p2qP1pjqy2%4ZQ2h zvl?LtJ@fWmikg~U{*R+--_Eqvyh$@t}}9YSb?-q$wfALoTZbeJ1lhwaE}o9 z@WjAU)GIAy6%;l{mzT%5HwwG-EcpW2G;3BT#s*8dQft=8#PT%|P(Jp?qa`idQ*Sdf zyJ2AoJQ6b6iIEYEXu}7;0EkPqtW?`u;k%}p0p1l9-N6*tcFi+aeiIjRU_x0(gWbQ+ z!r5Z)<;8TrNvU%g;wCiJXfEA2zpyh9aj5U+rmp!^Sd_CrLf&407N`JNP|;>k@Sp`a z*s_nH3V2C*Ev0+C##lx~wmT{@{^6v9^YIyJ=&ijQF+BvAf|N8O{A~JC4~%U)5=zT+ zIAth2YPy%|4*`?s2CVH%=)RWJQgnNTT&wtgC6<22OzD#`$T`}v#V|cLgOAq)ggo>% z(%07)7f(;N-Fhyekqv=m5olJJq3;K#@!!u%uZ$iVLB6V=S~6a!Q0e(zKjV-%9+z#= zTinmdoP&3>vd8KEblhWL?mXm|$9tozIxsMC-~Z8*+EYXHwhFM#E`<586B)J6KhH)+ z^5m;7X@*B8;wMP=O^bp8Cu^gcyj#W=2MExPq(`3rb`jeozq+M~U;e_vfPK^r7j6 zg-?J=%SB3xOERnEG`_zU-<>%^L&2&Uo)FIBZ)Rh`%Es()hG+EZ70fUkl3JBx`1a4I z8>PI|vL3&lqIGI(MMzzHXYIt>T5xXM2=tGYWQ`{2EJ799gQ+%@WMw|{6mZSSN#x#n zyHO9kKuar*G(wSwT2@(E##$Dc9%A5LXT;sdO!^=z{RS>3Ffh^-4@LDD-6=Y@NlRN$qTT$`;{QMh<^fP^Zpql0$ zbVf-n%*-^55z7e*cLrWVH@`m|+?Xma${i{rOqAmn5V)Hmr{uu4UEX>s2rSG`oGtfj zm)EVbc<<+3mSS>X$iN%yzY{L_#B;75^j9I%ekxXcdOAjI#izAcvl=@pfPPpNAN)L+ z*mf(rc~-!Fw|3$2&OB*2laG|VysNXyLR7Muu+Q#hRcJgRj*&}`7xQ(yl~psbv-99= zYfNgBG=|SgktM2AHP3-<`oEju(%H(3g&KwZX1{>+PZU@=mNzmo0-B-Lc!$rgzrsr5 zJe&08*+emVoebLYOIGV1W7-6MbMrlVw?m^IF)&XCI5Van<;j!V?0_*bQ4>I8Gd8Cw zz{TZoy6jodS!!R9B2C1uL2l$1u-{krebNmMak&3Hck^Upt@Lqqq0X#~18 zAywt`HnM>4;Yz&Tn-F766w+q_A5oWW&s_u@X|Aqb0ht4HA4n;Y>np2|YMh|9vvd9} z={-IB9ot;KE><`~66L^T-gAa0Cemq)RW26U!8LiGJ_Y((T~k{?NJvNx=U+UhiSO4h z{umf?745$}B6N9phX$w{XrrQ&D&LObb0*4T;$M_cRZWsv*jSs39#27k;oNonAAIMl z2mqGd{Gb^e7PPfxA9uY$Tl{Ynj=w^`RyT{_Hf;A`Z-5$Wk#YFamB)HV^Sx1DyUH*M z0#q}YdES2){MTRCwxYkQvqPiEELh9H{B{2`U$IbZefFyWz~!&HO)wjn{JclG`PrEu z;Q8inOwdL~C29eD_?L=-@&O-i9IOeBt2i0B+5bsM@Lz8B|C3yZx_M@gIhw z|BF!mi%_l@coGy*5n#s<5E}WFY*sK1zUFVtLK)OMC!##4GYYv@^K{y;1O-nqH>qI#z{u{nhWL z98S)kc`V$#N>|O0qqQ=3D*bylemwmFlJVNjEf*USP78tojb>Ht@$b-To7xtV(U8=c z3Ff%#Sa-F#So!a3fb&IL?7&|a)-+wEKNu=yTdUR&l)*ticUmC5Je7CMheRImvCELL zjULSm_TTT$MWtfFGcuipVZ86@=uSS%t;sS z@9uKly;?9f1h2^MMeyg(hl310U@Gw{Yx^ttvjNHrs3`k7&Gh-TwaaQNtV=s1z>=An zEjgxI#^bDQQhuROlT#%s3pk_4YlRowybmf%OEF9Jr^(G5bQp#^L7|~z_9v?Os?xUL zO@R0Gl0<*@*VasrXGtm7$?-9R&#uy~P+3I-(BW07eoS`$@**q_SCB%op%vb!*TUP{ z-AJ;}RJ;0q2Itv3USk;S^Yr0}ulqqFKYmZLK+y*LVy99*TRDQiP%2}5ukY;1`4O?H z938uW@7zq?Nd3iRA&6z@8qL%2=ba&a&;R^RLEt}0cEMZ!1 zHT5W2_3TLgA|Lz~QGXN_d_l&*prz`RnLgvBteg&MdW#R%yXWsV-(CAz@@gA4_a|Ti zyug#!b+d6bgw^bt!n`J8>JEv6gKtKZRcM~=D%Go3GfivUW?(q!!#-H6I2-QuIuBXu z(R0dWxO3-l(D&lp8ewA}EiUf=Qry2#y-qnr;S}v#=(eIKH(X=uefF4I_Q&qh$|?C# zZnW=?u$b3T)X1V)b6wq1J{<}%>4J%7I6E}ui=W&}UZ1d!hs^Ebnxe+X10XwG-2M=N z7++hXBNlU;288p7nHlsSIy?=Ku1T3>B3*2zaNYWXdA)eD}Y|i&gCCN-|$<%#rNcFj-J&@Klw18e~pu`e?T9 z443WRJrR-G%LhsJUY7tPwKbJ86h-!zU%-MUd!L>FB1NyR(9_WgpEXwYdaZ|~r5W|V z`G&HcUepwO@BrPIcz_4>*_}^5Ym@iYP|@M$;~O4BdT%MtM${i}1n=bF;0B5w5bLq9 zu+uRx6z1n&%*E7=_l>3_E$DqV>jcNk`Qq2|Yd7$q>i|1p={{W3^?7%wzrWafgEmqM zbmsMkfC;`|#L6-7k?C;<%;XN`!nE^7!GV188{Dzn6EX(sz_ z8O!hgX-H|Vt@Z8^1AH|-TB#TkF;X|#H_9U_s;jEI74XEz-OldO-McgI6Aw64|0RSnpTS@Wkkp)5O|CKy8Eq!@K6v}G9zn^3zeCEfG*OvGoCjT*!JR$u-+40GV$V9~K?Cfjl4+Rse z2|LG0wXh)J^$OWz$M(5^V$ObWG%v#v?S|3lwJ6=8;o<7q+U#r)z9J#%Q3paDXiDH< z#a#zsV-V6xcYLgt9ZB6y9so?eqQcj|a8rlUueZ1SkYcg#kqZ}~ z4SPM!zUD{x+Lgpc9ib|-A$!e;s@h!gndA4fq#^|NkIy)#F zwX)Qzh8S+8J{@T~*{DUWeGj$)tzQEmXmobcYOq?A2$angZq$}fl z4*$??BJ8p151H%NA+CzX>@@-!XY?0v+`sx zXfQ}KcSmh_grAQevAhRb%^q(qiJdS*{b4C?K+2|f{kB11oW{vJK}*@P1`9YCnvSw6 ze-J_`dNjx&A^FkO#l;&_eZeOxx<26`Z)>Zp{MJTpzY2cT*!aAgE&s)fW+tUqnieYs zfg4}Gd|_i|j<8s-*;tQ_U2bS-Sm=xf)5!Pt_a5GFx!ClaRF5}-2dqLEWou8)_iw%iAA>C2`CBDn?PK7`utc-ZK==>1zNxyO^BUF zpa@x^{*t7J;C^<&hJ*nGW@jjR!xpQY(a}5aXe(5I{ z-Ei>?#j~}ArA1?t3JTG)YSVJ-vB>c7T_Amq8XB8P#pJS(b;sL|+05+)0i9}-17aLA zrpCl)i`jY;B?gJR9;p2j(1!Eju=`xZ7w?76i;?_3lTzhZd1{MBKLr{*MG) zKUo4G2>9dvNTsgCfh~>4`P9nYs24>Y%EZX1or~l_l%3ChU-H@C(eqvmZsU!6wsg6p zNgLmteD6dZoy@Ngzs4U5LFMK9wI@X9^}c6dQ0RSVT(^m*=Z0|WgAC13$wFcxLc&!v z8i>-fJzLj{HCtN&HO?3leb5;GF;LBbpoXo8=xAufJl9WM>ke!^59sVrna#6qOEa@U zn?=jZkD%hlDtk}PG1-?YtN0~7UJOr@scK%mmMMFG|p#~#uNk1<8_W}F!))f#* zzhHcCloaT1+uALQm!9!rs4))=UGdgUh6Ev9Z6|YlS6kGY>#vqy^}gF?=JvC)1NU5~ zcHRlHo(^r@GtQ83w7;((Co{;rNDi`Li3d+-G`T2yWqaj|D}5B*kb3-*OV>wQ+59hU zd8oLBB!%pI%Ltrc9(@2VdO`1fI`~Cw%eSfNp4lgJa+(-@A_4}gVrA7xP7?ukyHD3* zHM_22ZkY`rhxv?a- zz@`DbAr+lBQkMFPGWFN7e)kddu4j_GZK9>1C#A84hxK+?3xECx+@NBXL|^AUA%Pmr z9Ufp*SA49w5fT6)2Xjl((#n3NcNxr9x`(8u8I@K2=m+S{#g7E0Vs~h1H?uNn_bCz# zu}pBT4I2;KXMO%L;AR4ve6SF>UJp4GO6}T9($kgm<@lfSD8JEFbVHvuGn@>yNCeH3 zM)28At{+dmR%7nbs&H#BQ7L%fI#D~g*Bg^`5z)%Ey3d|3hj2rGI`qFEDk&_`r>E_d zT~jui--C=!t213H_zD@U#@!ztLCSPpk7m`Pq9SMWUtV8fWv%E_*IV*UYkhb>!_)*c z!Zn9ifoHC(n>wzF`&4o}*LeaS2g~m2>XMV~|OCX_W<3$KTL z3KMZYeI?=kT5kPA*=KhTzkWk15Ns9lT`U_SVTlqFg>rHVBCUuBhH1#~Ie7$zKno^y zJ9{@XyYS`%tNQ{cxm8tj#rC?D8CLo>$aN;t~g@BC5j>g@u9h(|nsTxx`!juUmLKqpj zEY5y)3+dPu={`C8UT@NTj?k+gKmXIC_fz4KMGi{=_luV)qh)*h6^AXIbk-cygueh0 z0IbDr7)Uv3*Ej`O?m;4$Ti#0bc8M0*enAyw>8ar(Vg_0`QXz!p?JMFLXj-*)qMq zHOsxC4(+Z7<^DPrS~9F1aGZO1q3XEh)!4c-fO*MqQKm^(v;>c-77{KfrU66jot&L( zPI^$F_3kf-(s|r1l5cMaD4*m$dJNK*q6|7Fs&Z`BMu%SgS}Drc;( z%uYcd+S(|z;Cx5hPM@X87asUwp8=WK=wW22*l~DB?x?#>!5$ncZzn*z)SFbm`h<#x zhTuz(Cfua9ovdm$I^Wmx=tk~d8uEvyXEkws$uuoR-Cnsc$Z-k@k574>8P_(tp~5^< zjSP`1?}AA!{2|n#d?MV^cyHA0X2+`&zkN5xza?_gm_5EC6=E!)ZW|OFs>b|8jA8;9 zMM%|=VP)rXga&IfOVl_Sbrp~v%dr)E2rKV}3^CzV7Y4}>OaI1S{t&=j0GjXYOgnLr zc?tL2-P^D8wA+|G5P3_;2_#2U6q&o$V2JIZE`5yJ$;^?$?mpR0dWl*y%2C&PxEWM* zyQ-PK)N&J7wm7ayecVfi-pyux;!HD3pJe!0t&sapD3F~GztoQmDP$?;axWP_(XCSC z9NQbLezBA3xMbYBVP@-j(bAuk#9rG7vS2Pq zM?upN&`(eukV(aRxfErSr9U^JpYYiQY?&=AtpS(x)(SJ+#23wxW6Iq)y^2$v2#|;;d@Rx%0P6i`mGP#mrxrsTm3idV9Nzc#!TM zNIvtfJ@aPZwX&a;7(u0h^rNR1CdGAMv;s5V*m%4NvgQcf9*-pt2W>!`AZZDiTSZ5> z#P~PaASktk>P;ruvdzCM-v8s?jh;t}x`~o`F9%>$_g&mPf9H04I3KY*W+VC%)bYE^ z;Z~8;^XJ9(H(^1RUCLFzm?`o`9x`QIo}{q0nikt7Cg%oauch;I!AgQtK^|LSS1YU4 znR5i#Sh~{8W~2AP>Vz@J9qv+xo<#TLi-BuOu-By8Y~^<=^$9s}fO&S8i3uRhLDmmB ztXvtb)^jMcSrxa!8H4z#0}RdV zHmfu~3i8OLA*JdQbUFiZaO0^l0T3JFc!c`Lbjo|t22g+F!|ke9z{`Z;0Y$iVPnpG8 zb>9mrKAW*KGP$!~PGQZX`U1}r5|Ze}Z1SGD-Pm2DL*9YH=m3PXGVMRlOa%;;5mM8?(~ zihUOGj66^6c(dQ~QI+Zu7b4w}isLET;yow$VfZwHJjadU?W$?^#5;^nZg!p$qNr+_Hn{4dUF)Mj_gw|_Yc?6_MpK#0C zFSCyWDz2r~>1=B?L=y_b!yF#AEPVH@s=gheNT`+x>w$-+Q}V^{HH+oL@RnBi3b+=H z&CAAtt_sfOl^+6V*)@Cs8vp|MrKALawB{CCxhydnmaJ&Yhe_uWgc}C6i5^wHe*7p( zDqq#Kn9x&K3D3T5QW(HC3u=v2$c@{=Xt!6?YsPVV15=4>?It^>h-`_0U@v6XQ_Y1} zl{|fH>f>P&?I>j6AsJnjWM0TH_k)n@w7en6U>9XgQz z{KWQ$%tx?k^NNZx`Qzc?Rg`p#S$K_zJ;2ZKyey+lI3ftZ&DDF&B)Z?P;vzRi=ep7L zy9@s&XEwm)N(Cr>OvJR?yN5SQ&Hh;8&HD0Je5FtpXpNy}*Py^kSX+?B&rwty%y`Df z$i)H_3LRDDc-ldM=cm`g99xXsXd*XfGhNqpfA6BOF9gt`YuBzfD0>^HUcpqq?V@bw zNW%-fF`yr z1PBx=!e5Pz?}7aO64&E{%%%lEp6#gI0LZO9xWo<06A#Zz&ZD(%(>Va?jr(_@cuS(a1hx)ML|Lp6`7!_ zqT%9xwEv0gM1}pvh)8SA__ac!Zd6ZV1+k*jLU~vnVniNGEkX4%`rW`99$ihu8Nd=H zHKJ$F6yct;&JbyGTNXK-j>4p8yiEW+2cSjidjN`N^B_~96p~tB?`pV^Fma<(E&rSD zUt7!7kPc1M^7H4N0GRz+wI|NWNk;NF96$S+j`)wTZcuA;p37Q2pE7Z2!nfX_Jad;y zyDtQUhcXe-ZoQ{|A!-;Vlfo^=nq}AJ5CD__900@)fS3?KSvo?zMO#56$sYoRG9lRUI0NJ+{%#oz^l_~3`wmJ`05rz8 zAbDi%iP&RoM*_sdxr*&FKyQ(%M=dycYTDX(OEA+Rz&{-bj2J!d2=NWa!c*JT}Uxxef5x|7A!WT7G& z7qe%-6$}d+j%G?mL7DhOSy>I8oc>VD%kLyOsf`0D7fOC1FX3ol;wu$jfKg^zt+W0Q zz1+bJZNa9*1hGkxLP77gg)8}<_O_;h{7y6pLF(iTt+P~ zQ8DoVW||(TlCN1S$|k~n_wHQ|g$Qn6168>sTh~$9{nC6byl)7z;4#`v<>QmR!u$*k zJQ7lx7=&H1YL*i2Kk1pK?7CIk76*^Bv9I&lqDUy{Q=)B**PnWZPOxiqQV<)?`PCK+J#B&F;m2-YB zkFud$ek!ws7+3r%)w*Ef^=&kSiksV~II~2vU{+QkF#ovb=z`zGM8mntIS{2~V1~yO zYIECLCsN&fnQ7Gp!h75s$q-oHWRZJo4t%j_v!US`T+^B_uv@R_FzLkAcxmy{m<{W^ z(g*6P z#U7Kt0InCVncr`=^h7-&F=ELy1Sp61@8h~rtO%b zee!&}l#2twQ4F$P`q7C#7jEj}Z(jwOuYK(9X=?gF@O{VOIySbB=^y`qmlO5}atMTN z{f;OYShCcsEpYH&E1)F2X|&?7s3=Hy!@ExdOtJH=+8;-$De38<1}Diah_p(qkm1I; z=}o|MxgDVdPMZ`H6GM?@{I+UsAFb4u5&y-@syL#JhuT`v!NO)Lb)rV1;9|Eid%nO| zx5|!>3n1Y5eA-K*0MgqjS}TA4<&=p29xn}7e6!*FoHbwWuBV&S^}Lmi?V;VSBlnQS zYT7sE_69%4Xvyg?s?&&XGnLHr+|ImN@^o5t4zeybQ!S93g5mWS-DqL#?B?p?GL z1{~D1ERIwo^Ar(z$0I=xMmw) z(~TrRt@F3Thb&a|^z_W%JO>W0p~Fi09#C{sKJy#W(S@IbKC9yOkB#ZNpiD@A7t%9KL5TxPl!cqy&x}h4 z+#LZouVL)I1q^8#s$v-=hk(l;1yj?Pk|xodEuc=t)3d5mDkO)c!vNGnRkC;u03G0uJ9|NaIT1E=k-avq=Mn;k83MEG- zECTvQRwgE{MUiI!AMSHdkQ3N^zp5MB3*fkuN95&?JClKMNxjTj1Nr)H0)WDvZg0sG zfMUc`hL@}q)Z(H*w0jdjWhDDlUweA`&bPAxn}2rUF^9s=%smFR>>=Rjdk+LuEeNrqF$? zk|oOHNBxCGXO|<09g+PN^IVB?2!p}$oR00V@?oHXpM~;?LhaGpz>?H3hpye@2ec~e zy>e#_%gyr$fcQ9zw+JZMNnnxDWDcLMZQ@@QM&>DrOSH*p|E$g~uB+I*osT_(Q{gpP z>KNmgxILA$&ZU?90)HkmW5BHJa_bGOC7Nx(p$SmAJbP4XpX#UhMel!K4Y#i;C=q=`$B?zDm)Y7*J*hLuSkQt>wj@oe~i zHO%)fkivgn(doYjHCzT0|F3FT|Ff2h6XN8J09BNifA6d~uV#OOfBqj-+5T@o;hFCp Wyu?l!-;DFio4=Nj6EA@2fB0|x73%5$ literal 0 HcmV?d00001 diff --git a/docs/social/v6-launch/assets/06-export-agent-context.png b/docs/social/v6-launch/assets/06-export-agent-context.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5e3f45cfe793213ba40c24d412b8ea898fec26 GIT binary patch literal 112781 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 mYV7uzJHNCG=?B~{r$>)(>= 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 RJ7;eyBdLJMeem?ve*v}9_yzy~ literal 0 HcmV?d00001 diff --git a/docs/social/v6-launch/assets/contact-sheet.png b/docs/social/v6-launch/assets/contact-sheet.png new file mode 100644 index 0000000000000000000000000000000000000000..a5b65727e1ea2e8e1df29782e3676a870713cfe0 GIT binary patch literal 303068 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 z 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%0DvUmmrzzw7)(oV0qz9C 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�~_a{|d2I`M2>ZVR~+2w8mJGp1^Tv1}zh` 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%0A+hxIhIz{FsT*alv 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", "dim"), + Line("$ docpull diff", "command"), + Line("Project diff: +4 -2 ~18 api=2 pricing=1", "info"), + Line("", "dim"), + Line("Changed pages:", "normal"), + Line("- /payments/payment-intents likely API behavior change", "warning"), + Line("- /billing/subscriptions pricing / billing change", "warning"), + Line("- /webhooks likely API behavior change", "warning"), + ), + ), + Card( + filename="04-v3-pack-contract.png", + eyebrow="Mechanism", + title="One contract. Many source types.", + subtitle=( + "Every lane writes the same v3 pack shape, so validation, " + "citations, exports, and CI work the same way." + ), + terminal_title="packs/stripe-docs", + lines=( + Line("$ docpull pack validate packs/stripe-docs --level eval", "command"), + Line("raw corpus.manifest.json", "success"), + Line("raw sources.md", "success"), + Line("raw acquisition.routes.json", "success"), + Line("agent context.lock.json", "info"), + Line("agent coverage.report.json", "info"), + Line("agent citation.index.json", "info"), + Line("agent pack.score.json + pack.audit.json", "info"), + Line("eval rights.manifest.json", "warning"), + Line("eval provenance.graph.json", "warning"), + Line("eval basis.ndjson + basis.report.json", "warning"), + Line("eval PACK_CARD.md", "warning"), + ), + ), + Card( + filename="05-context-ci.png", + eyebrow="Guardrail", + title="Make bad context fail CI.", + subtitle=( + "Treat weak citation coverage or missing eval artifacts like a failed test, not an agent mystery." + ), + terminal_title="docpull ci --prepare", + lines=( + Line("$ docpull ci --prepare", "command"), + Line("project_lockfile pass", "success"), + Line("pack_score pass 91", "success"), + Line("audit_score pass 94", "success"), + Line("coverage_confidence pass high", "success"), + Line("citation_coverage fail 0.72", "error"), + Line("eval_grade_artifacts pass", "success"), + Line("rights_status warn unknown", "warning"), + Line("", "dim"), + Line("Context CI failed: 4 pass, 1 warn, 1 fail", "error"), + Line("see context-ci.report.json", "dim"), + ), + ), + Card( + filename="06-export-agent-context.png", + eyebrow="Ship", + title="Send the same pack everywhere agents work.", + subtitle=( + "Export the locked, cited context to Cursor, Codex, OpenAI, LangChain, MCP, and RAG pipelines." + ), + terminal_title="agent exports", + lines=( + Line("$ docpull export context-pack --target cursor", "command"), + Line("wrote context.md + citations.json", "success"), + Line("wrote Cursor rule references", "success"), + Line("$ docpull export context-pack --target codex", "command"), + Line("wrote Codex skill references", "success"), + Line("$ docpull export context-pack --target openai", "command"), + Line("wrote openai-vector.jsonl", "success"), + Line("", "dim"), + Line("export recorded in .docpull/context.lock.json", "info"), + ), + footer="pip install docpull", + ), +) + + +def font(path: str, size: int, fallback: str = "") -> ImageFont.FreeTypeFont | ImageFont.ImageFont: + candidates = [ + Path(path), + Path(fallback) if fallback else None, + Path("/System/Library/Fonts/Supplemental/Arial.ttf"), + Path("/System/Library/Fonts/Supplemental/Arial Bold.ttf"), + Path("/Library/Fonts/Arial.ttf"), + ] + for candidate in candidates: + if candidate and candidate.exists(): + try: + return ImageFont.truetype(str(candidate), size=size) + except OSError: + continue + return ImageFont.load_default() + + +REG = font("/System/Library/Fonts/Supplemental/Arial.ttf", 34) +BOLD = font("/System/Library/Fonts/Supplemental/Arial Bold.ttf", 62) +SMALL = font("/System/Library/Fonts/Supplemental/Arial.ttf", 25) +MONO = font("/System/Library/Fonts/Menlo.ttc", 28) +MONO_SMALL = font("/System/Library/Fonts/Menlo.ttc", 24) + + +def text_size(draw: ImageDraw.ImageDraw, value: str, fnt: ImageFont.ImageFont) -> tuple[int, int]: + box = draw.textbbox((0, 0), value, font=fnt) + return box[2] - box[0], box[3] - box[1] + + +def wrap(draw: ImageDraw.ImageDraw, value: str, fnt: ImageFont.ImageFont, max_width: int) -> list[str]: + words = value.split() + lines: list[str] = [] + current: list[str] = [] + for word in words: + attempt = " ".join([*current, word]) + if text_size(draw, attempt, fnt)[0] <= max_width or not current: + current.append(word) + else: + lines.append(" ".join(current)) + current = [word] + if current: + lines.append(" ".join(current)) + return lines + + +def style_color(style: str) -> str: + return { + "command": ACCENT, + "success": SUCCESS, + "warning": WARNING, + "error": ERROR, + "info": ACCENT_DIM, + "dim": DIM, + "normal": TEXT, + }.get(style, TEXT) + + +def draw_card(card: Card) -> None: + image = Image.new("RGB", (WIDTH, HEIGHT), BG) + draw = ImageDraw.Draw(image) + + # Background bands. + draw.rectangle((0, 0, WIDTH, HEIGHT), fill=BG) + draw.rectangle((0, 0, WIDTH, 12), fill=STRIPE) + draw.rectangle((0, HEIGHT - 12, WIDTH, HEIGHT), fill=STRIPE) + + left = 86 + top = 62 + max_text = 640 + + draw.text((left, top), card.eyebrow.upper(), font=MONO_SMALL, fill=ACCENT) + y = top + 54 + for line in wrap(draw, card.title, BOLD, max_text): + draw.text((left, y), line, font=BOLD, fill=TEXT) + y += 72 + y += 18 + for line in wrap(draw, card.subtitle, REG, max_text): + draw.text((left, y), line, font=REG, fill=MUTED) + y += 46 + + # Footer pill. + footer_w, footer_h = text_size(draw, card.footer, MONO_SMALL) + draw.rounded_rectangle( + (left, HEIGHT - 106, left + footer_w + 42, HEIGHT - 58), + radius=12, + fill=PILL, + outline=PILL_BORDER, + width=2, + ) + draw.text((left + 21, HEIGHT - 96), card.footer, font=MONO_SMALL, fill=TEXT) + + # Terminal panel. + panel_x = 780 + panel_y = 86 + panel_w = 730 + panel_h = 720 + draw.rounded_rectangle( + (panel_x, panel_y, panel_x + panel_w, panel_y + panel_h), + radius=24, + fill=PANEL, + outline=BORDER, + width=3, + ) + draw.rounded_rectangle( + (panel_x, panel_y, panel_x + panel_w, panel_y + 70), + radius=24, + fill=HEADER, + ) + draw.rectangle((panel_x, panel_y + 46, panel_x + panel_w, panel_y + 70), fill=HEADER) + for i, color in enumerate(("#7c828b", "#a1a6ad", "#c8ccd0")): + draw.ellipse((panel_x + 26 + i * 34, panel_y + 26, panel_x + 44 + i * 34, panel_y + 44), fill=color) + draw.text((panel_x + 138, panel_y + 22), card.terminal_title, font=MONO_SMALL, fill=MUTED) + + x = panel_x + 34 + y = panel_y + 104 + line_h = 40 + for item in card.lines: + if not item.text: + y += 22 + continue + max_chars = 38 + wrapped = textwrap.wrap(item.text, width=max_chars, subsequent_indent=" ") or [item.text] + for line in wrapped: + draw.text((x, y), line, font=MONO, fill=style_color(item.style)) + y += line_h + if y > panel_y + panel_h - 54: + break + + # Tiny source label. + draw.text( + (panel_x + 34, panel_y + panel_h + 22), + "github.com/raintree-technology/docpull", + font=MONO_SMALL, + fill=DIM, + ) + + OUT.mkdir(parents=True, exist_ok=True) + image.save(OUT / card.filename, optimize=True) + + +def main() -> None: + for card in CARDS: + draw_card(card) + print(f"wrote {len(CARDS)} cards to {OUT}") + + +if __name__ == "__main__": + main() diff --git a/docs/social/v6-launch/twitter-thread.md b/docs/social/v6-launch/twitter-thread.md new file mode 100644 index 0000000..29681d1 --- /dev/null +++ b/docs/social/v6-launch/twitter-thread.md @@ -0,0 +1,212 @@ +# DocPull v6 Twitter/X Thread + +Use one image per tweet. Put the repo or PyPI link in the final tweet or first reply to keep the early tweets cleaner. + +## Assets + +Generate or refresh the PNGs: + +```bash +python3 docs/social/v6-launch/generate_terminal_cards.py +``` + +Generated images: + +- `assets/01-context-drift.png` +- `assets/02-lockfile-workflow.png` +- `assets/03-sync-diff.png` +- `assets/04-v3-pack-contract.png` +- `assets/05-context-ci.png` +- `assets/06-export-agent-context.png` + +## Thread + +### 1/8 + +The first AI agent bug I keep seeing is not hallucination. + +It's context drift. + +The model may be fine. The docs it sees are stale, uncited, copied from Slack, or embedded months ago. + +DocPull v6 turns agent context into something you can lock, diff, and test. + +Attach: `assets/01-context-drift.png` + +Alt text: Terminal-style graphic showing stale agent context files with no citations, no diff, no CI gate, and no provenance. + +### 2/8 + +You already solve this for code. + +`package-lock.json` tells you exactly what your app depends on. + +Agents need the same thing for docs, specs, repos, packages, feeds, datasets, and standards. + +That's the category: context dependencies. + +Attach: `assets/02-lockfile-workflow.png` + +Alt text: Terminal-style graphic showing `docpull init`, `docpull add stripe react openai`, and `docpull install` writing `.docpull/context.lock.json`. + +### 3/8 + +The core workflow: + +```bash +docpull init agent-context +docpull add stripe react openai +docpull install +docpull sync +docpull diff +docpull ci --prepare +docpull export context-pack --target codex +``` + +This makes source changes reviewable before they become model behavior. + +Attach: none, or reuse `assets/02-lockfile-workflow.png` if you want every tweet to have media. + +### 4/8 + +v6 is built around one mechanism: the v3 context-pack contract. + +Every ingestion lane normalizes into the same artifact shape: web, local docs, OpenAPI, feeds, papers, repos, packages, standards, datasets, transcripts, wiki. + +One contract. Many sources. + +Attach: `assets/04-v3-pack-contract.png` + +Alt text: Terminal-style graphic showing v3 pack validation across raw artifacts, agent sidecars including coverage and audit files, and eval-grade rights, provenance, basis, and pack-card artifacts. + +### 5/8 + +That contract matters because agents don't just need text. + +They need to know: + +- where it came from +- when it was fetched +- what changed +- what can be cited +- whether it's ready for evals or CI + +Markdown is the medium. The artifact is the product. + +Attach: none, or `assets/04-v3-pack-contract.png` + +### 6/8 + +Once context is an artifact, CI can enforce it. + +`docpull ci --prepare` can fail on stale runs, weak citation coverage, missing eval-grade sidecars, lockfile drift, or scores below your thresholds. + +Bad context should fail before it reaches the agent. + +Attach: `assets/05-context-ci.png` + +Alt text: Terminal-style graphic showing `docpull ci --prepare` with passing lockfile, pack score, audit score, coverage confidence, and eval artifact gates, plus a failing citation coverage gate and a rights status warning. + +### 7/8 + +DocPull isn't a hosted browser farm or a black-box research API. + +It's the local artifact layer between selected sources and agent behavior: + +sources -> cited pack -> validation -> export -> agents/RAG/CI + +Browser rendering and cloud routes stay explicit. + +Attach: `assets/03-sync-diff.png` + +Alt text: Terminal-style graphic showing `docpull sync` and `docpull diff` detecting added, removed, changed, API, and pricing-related source updates. + +### 8/8 + +Try it: + +```bash +pip install docpull +docpull init my-agent-context +docpull add stripe react openai +docpull sync +docpull ci --prepare +``` + +https://github.com/raintree-technology/docpull + +If your agent depends on external sources, make them dependencies. + +Attach: `assets/06-export-agent-context.png` + +Alt text: Terminal-style graphic showing project context exported with `docpull export context-pack` to Cursor, Codex, and OpenAI targets, with the export recorded in `.docpull/context.lock.json`. + +## Shorter 5-Tweet Version + +### 1/5 + +The first AI agent bug I keep seeing is not hallucination. + +It's context drift. + +DocPull v6 turns agent context into a dependency workflow: declare sources, lock them, sync them, diff them, and check them in CI. + +Attach: `assets/01-context-drift.png` + +### 2/5 + +The workflow: + +```bash +docpull init agent-context +docpull add stripe react openai +docpull install +docpull sync +docpull diff +``` + +This gives you `docpull.yaml`, `.docpull/context.lock.json`, run artifacts, and source diffs your team can review before context reaches an agent. + +Attach: `assets/02-lockfile-workflow.png` + +### 3/5 + +v6 centers on one mechanism: the v3 context-pack contract. + +Web docs, OpenAPI specs, feeds, repos, packages, standards, datasets, transcripts, and local files all normalize into the same artifact shape. + +Raw -> agent-ready -> eval-grade. + +Attach: `assets/04-v3-pack-contract.png` + +### 4/5 + +Then CI can enforce context quality: + +- lockfile matches project +- citations are present +- pack/audit scores pass +- rights/provenance sidecars exist +- stale or weak context fails before it reaches the agent + +```bash +docpull ci --prepare +``` + +Attach: `assets/05-context-ci.png` + +### 5/5 + +DocPull is the local artifact layer for agent context: + +sources -> cited pack -> validation -> export -> agents/RAG/CI + +```bash +pip install docpull +``` + +https://github.com/raintree-technology/docpull + +If your agent depends on external sources, make them dependencies. + +Attach: `assets/06-export-agent-context.png` diff --git a/docs/social/v6.1-benchmark/README.md b/docs/social/v6.1-benchmark/README.md new file mode 100644 index 0000000..470148c --- /dev/null +++ b/docs/social/v6.1-benchmark/README.md @@ -0,0 +1,39 @@ +# DocPull 6.1 benchmark social images + +LinkedIn-ready 4:5 carousel images for the DocPull 6.1.0 benchmark post. + +Recommended carousel order: + +1. `01-cover.png` +2. `02-core-results.png` +3. `03-boundaries.png` +4. `04-pdf-isolation.png` +5. `05-integrity.png` +6. `06-evidence.png` + +The `screenshots/` directory contains direct captures of the public PyPI, +GitHub release, benchmark comparison, and evidence-status pages. These work +best as supporting images after the designed carousel or in a follow-up post. + +For a single-image post, use `assets/02-core-results.png`. For the full story, +publish all six numbered cards in order. Keep `03-boundaries.png` in any +carousel that includes the core score so the acquisition boundary is visible. + +Additional existing product images that can accompany a follow-up post: + +- `../../launch-assets/screenshot-hero-desktop-1280x720.png` +- `../../launch-assets/docpull-project-diff-demo.png` +- `../../launch-assets/docpull-routing-table-v5.png` +- `../../launch-assets/docpull-evidence-formats-table-v5.png` +- `../v6-launch/assets/contact-sheet.png` + +Regenerate the cards from the repository root: + +```bash +uv run --with pillow python docs/social/v6.1-benchmark/generate_cards.py +``` + +The benchmark cards reproduce the stored development result. They must remain +paired with its limitations: the v5 bundle is public development evidence, is +not claim-grade, and does not establish comparative superiority for the +released 6.1.0 wheel. diff --git a/docs/social/v6.1-benchmark/assets/01-cover.png b/docs/social/v6.1-benchmark/assets/01-cover.png new file mode 100644 index 0000000000000000000000000000000000000000..9810635a861f171092edeb43d01997a80ec37c50 GIT binary patch literal 73755 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

VZK!QOCgSoK}c;W2S&pI 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

ygL-52h2nC*8zTi@RtlkGVa)+}Jb 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

EA{e{9qDH|ihX~k@pNr)QNI4G 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 literal 0 HcmV?d00001 diff --git a/docs/social/v6.1-benchmark/assets/06-evidence.png b/docs/social/v6.1-benchmark/assets/06-evidence.png new file mode 100644 index 0000000000000000000000000000000000000000..d0b77c176cbe08f7fd9d56cef256d53efba05bc4 GIT binary patch literal 71962 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

@z7lWc@0|3GfA~_#f_3<9_Zy=0C}?SZGcv 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�t*L2x@7OrIh50TrGs&I$ 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

1My%=Yzpu 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 literal 0 HcmV?d00001 diff --git a/docs/social/v6.1-benchmark/generate_cards.py b/docs/social/v6.1-benchmark/generate_cards.py new file mode 100644 index 0000000..94e40c6 --- /dev/null +++ b/docs/social/v6.1-benchmark/generate_cards.py @@ -0,0 +1,359 @@ +#!/usr/bin/env python3 +"""Generate the DocPull 6.1 benchmark LinkedIn carousel.""" + +from __future__ import annotations + +from pathlib import Path + +from PIL import Image, ImageDraw, ImageFont + + +ROOT = Path(__file__).resolve().parent +OUT = ROOT / "assets" +WIDTH = 1080 +HEIGHT = 1350 + +BG = "#0d0e10" +PANEL = "#17191d" +PANEL_2 = "#111316" +BORDER = "#30343a" +STRIPE = "#2b3036" +TEXT = "#f5f4ef" +MUTED = "#a6abb2" +DIM = "#727780" +GREEN = "#177d6d" +GREEN_LIGHT = "#64b9aa" +WARM = "#c8b98a" +RED = "#c98f8f" + + +def font(size: int, *, bold: bool = False, mono: bool = False) -> ImageFont.FreeTypeFont: + if mono: + candidates = [ + "/System/Library/Fonts/Menlo.ttc", + "/System/Library/Fonts/SFNSMono.ttf", + ] + elif bold: + candidates = [ + "/System/Library/Fonts/Supplemental/Arial Bold.ttf", + "/Library/Fonts/Arial Bold.ttf", + ] + else: + candidates = [ + "/System/Library/Fonts/Supplemental/Arial.ttf", + "/Library/Fonts/Arial.ttf", + ] + for candidate in candidates: + path = Path(candidate) + if path.exists(): + return ImageFont.truetype(str(path), size=size) + raise RuntimeError("No supported font found") + + +F_LABEL = font(23, mono=True) +F_SMALL = font(25) +F_BODY = font(31) +F_BODY_BOLD = font(31, bold=True) +F_TITLE = font(67, bold=True) +F_HUGE = font(150, bold=True) +F_METRIC = font(45, bold=True) +F_MONO = font(25, mono=True) + + +def text_width(draw: ImageDraw.ImageDraw, value: str, fnt: ImageFont.ImageFont) -> int: + box = draw.textbbox((0, 0), value, font=fnt) + return box[2] - box[0] + + +def wrap(draw: ImageDraw.ImageDraw, value: str, fnt: ImageFont.ImageFont, max_width: int) -> list[str]: + lines: list[str] = [] + for paragraph in value.split("\n"): + if not paragraph: + lines.append("") + continue + current: list[str] = [] + for word in paragraph.split(): + attempt = " ".join([*current, word]) + if current and text_width(draw, attempt, fnt) > max_width: + lines.append(" ".join(current)) + current = [word] + else: + current.append(word) + if current: + lines.append(" ".join(current)) + return lines + + +def draw_wrapped( + draw: ImageDraw.ImageDraw, + xy: tuple[int, int], + value: str, + fnt: ImageFont.ImageFont, + fill: str, + max_width: int, + line_height: int, +) -> int: + x, y = xy + for line in wrap(draw, value, fnt, max_width): + draw.text((x, y), line, font=fnt, fill=fill) + y += line_height + return y + + +def rounded_panel(draw: ImageDraw.ImageDraw, box: tuple[int, int, int, int], *, fill: str = PANEL) -> None: + draw.rounded_rectangle(box, radius=22, fill=fill, outline=BORDER, width=2) + + +def base(page: int, eyebrow: str) -> tuple[Image.Image, ImageDraw.ImageDraw]: + image = Image.new("RGB", (WIDTH, HEIGHT), BG) + draw = ImageDraw.Draw(image) + draw.rectangle((0, 0, WIDTH, 12), fill=STRIPE) + draw.rectangle((0, HEIGHT - 12, WIDTH, HEIGHT), fill=STRIPE) + + logo_path = ROOT.parent.parent / "launch-assets" / "logo-transparent-light-1024.png" + logo = Image.open(logo_path).convert("RGBA") + alpha = logo.getchannel("A") + bbox = alpha.getbbox() + if bbox: + logo = logo.crop(bbox) + logo.thumbnail((62, 62), Image.Resampling.LANCZOS) + image.paste(logo, (68, 55), logo) + draw.text((145, 70), "DOCPULL 6.1.0", font=F_LABEL, fill=TEXT) + draw.text((68, 157), eyebrow.upper(), font=F_LABEL, fill=GREEN_LIGHT) + draw.text((930, 70), f"{page}/6", font=F_LABEL, fill=DIM) + return image, draw + + +def footer(draw: ImageDraw.ImageDraw, text: str = "github.com/raintree-technology/docpull") -> None: + draw.line((68, 1262, 1012, 1262), fill=BORDER, width=2) + draw.text((68, 1283), text, font=F_LABEL, fill=DIM) + + +def save(image: Image.Image, name: str) -> None: + OUT.mkdir(parents=True, exist_ok=True) + image.save(OUT / name, optimize=True) + + +def card_1() -> None: + image, draw = base(1, "Benchmark result") + y = draw_wrapped( + draw, + (68, 220), + "Local extraction kept pace with paid APIs.", + F_TITLE, + TEXT, + 920, + 79, + ) + y += 35 + draw.text((68, y), "100.0%", font=F_HUGE, fill=TEXT) + y += 170 + draw.text((73, y), "strict trial pass", font=F_METRIC, fill=GREEN_LIGHT) + y += 78 + rounded_panel(draw, (68, y, 1012, y + 210)) + draw.text((102, y + 37), "28 core fixed-URL cases", font=F_BODY_BOLD, fill=TEXT) + draw.text((102, y + 91), "2 trials per system · all assertions required", font=F_BODY, fill=MUTED) + draw.text((102, y + 145), "$0 provider spend · local compute excluded", font=F_BODY, fill=MUTED) + draw.text((68, 1170), "Public development evidence — not claim-grade", font=F_SMALL, fill=WARM) + footer(draw) + save(image, "01-cover.png") + + +def draw_bar( + draw: ImageDraw.ImageDraw, + y: int, + label: str, + value: float, + *, + highlight: bool = False, +) -> None: + draw.text((68, y), label, font=F_BODY_BOLD if highlight else F_BODY, fill=TEXT) + value_text = f"{value:.1f}%" + tw = text_width(draw, value_text, F_BODY_BOLD) + draw.text((1012 - tw, y), value_text, font=F_BODY_BOLD, fill=TEXT if highlight else MUTED) + track_y = y + 55 + draw.rounded_rectangle((68, track_y, 1012, track_y + 34), radius=17, fill="#23262b") + end = 68 + int(944 * value / 100) + color = GREEN if highlight else "#69717b" + draw.rounded_rectangle((68, track_y, end, track_y + 34), radius=17, fill=color) + + +def card_2() -> None: + image, draw = base(2, "Core extraction") + y = draw_wrapped(draw, (68, 220), "Strict pass rate", F_TITLE, TEXT, 920, 79) + draw.text((68, y + 13), "Every predeclared assertion had to pass.", font=F_BODY, fill=MUTED) + positions = [430, 575, 720, 865] + values = [ + ("DocPull", 100.0, True), + ("Parallel", 96.4, False), + ("Exa Full", 94.6, False), + ("Tavily", 92.9, False), + ] + for pos, (label, value, highlight) in zip(positions, values, strict=True): + draw_bar(draw, pos, label, value, highlight=highlight) + rounded_panel(draw, (68, 1055, 1012, 1198), fill=PANEL_2) + draw.text((102, 1089), "DocPull core operational completion", font=F_BODY, fill=MUTED) + draw.text((102, 1140), "100.0%", font=F_BODY_BOLD, fill=GREEN_LIGHT) + draw.text((360, 1140), "Provider spend $0.00", font=F_BODY_BOLD, fill=TEXT) + draw.text((68, 1215), "No significant pairwise difference (Holm p = 1.0).", font=F_SMALL, fill=WARM) + footer(draw) + save(image, "02-core-results.png") + + +def card_3() -> None: + image, draw = base(3, "Boundary conditions") + y = draw_wrapped(draw, (68, 220), "Core is not the whole benchmark.", F_TITLE, TEXT, 920, 79) + draw.text((68, y + 10), "Strict pass rate across all 32 cases", font=F_BODY, fill=MUTED) + + rows = [ + ("Parallel", "96.9%"), + ("Exa Full", "95.3%"), + ("Tavily", "93.8%"), + ("DocPull", "87.5%"), + ] + start_y = 515 + for index, (label, value) in enumerate(rows): + row_y = start_y + index * 93 + if label == "DocPull": + draw.rounded_rectangle((68, row_y - 18, 1012, row_y + 64), radius=14, fill=PANEL) + draw.text((93, row_y), label, font=F_BODY_BOLD, fill=TEXT) + tw = text_width(draw, value, F_METRIC) + draw.text((985 - tw, row_y - 6), value, font=F_METRIC, fill=TEXT) + + rounded_panel(draw, (68, 925, 1012, 1177)) + draw.text((102, 965), "4 boundary cases", font=F_BODY_BOLD, fill=WARM) + draw_wrapped( + draw, + (102, 1022), + "Managed access and robots policy. Hosted systems completed them; DocPull intentionally stopped.", + F_BODY, + MUTED, + 840, + 44, + ) + draw.text((68, 1203), "Product boundary, not a hidden quality win.", font=F_SMALL, fill=MUTED) + footer(draw) + save(image, "03-boundaries.png") + + +def arrow(draw: ImageDraw.ImageDraw, start: tuple[int, int], end: tuple[int, int]) -> None: + draw.line((*start, *end), fill=GREEN_LIGHT, width=5) + x, y = end + draw.polygon(((x, y), (x - 18, y - 12), (x - 18, y + 12)), fill=GREEN_LIGHT) + + +def card_4() -> None: + image, draw = base(4, "PDF isolation") + y = draw_wrapped(draw, (68, 220), "What changed in 6.1.0", F_TITLE, TEXT, 920, 79) + draw.text((68, y + 10), "Remote PDFs now cross a constrained worker boundary.", font=F_BODY, fill=MUTED) + + boxes = [ + (68, 485, 285, 640, "PDF", "≤ 50 MiB"), + (430, 485, 650, 640, "pypdf", "isolated"), + (795, 485, 1012, 640, "JSON", "validated"), + ] + for x1, y1, x2, y2, title, sub in boxes: + rounded_panel(draw, (x1, y1, x2, y2)) + tw = text_width(draw, title, F_BODY_BOLD) + draw.text(((x1 + x2 - tw) // 2, y1 + 36), title, font=F_BODY_BOLD, fill=TEXT) + sw = text_width(draw, sub, F_SMALL) + draw.text(((x1 + x2 - sw) // 2, y1 + 91), sub, font=F_SMALL, fill=MUTED) + arrow(draw, (306, 562), (408, 562)) + arrow(draw, (672, 562), (773, 562)) + + draw.text((68, 718), "auto fallback", font=F_LABEL, fill=GREEN_LIGHT) + draw.text((68, 766), "pypdf → MarkItDown → Unstructured", font=F_MONO, fill=TEXT) + + items = [ + "wall, CPU and address-space limits", + "credential-stripped worker environment", + "process-group cleanup on timeout or cancellation", + "100 MiB parsed-output limit", + "parser, page count, hash and warning provenance", + ] + y = 850 + for item in items: + draw.rectangle((70, y + 11, 83, y + 24), fill=GREEN) + draw.text((105, y), item, font=F_BODY, fill=MUTED) + y += 62 + footer(draw) + save(image, "04-pdf-isolation.png") + + +def card_5() -> None: + image, draw = base(5, "Evidence integrity") + y = draw_wrapped(draw, (68, 220), "The benchmark was hardened too.", F_TITLE, TEXT, 920, 79) + draw.text((68, y + 10), "6.1.0 makes inflated or stale claims harder to publish.", font=F_BODY, fill=MUTED) + + items = [ + ("SCORER V4", "Token boundaries; fused words fail."), + ("REPORT V3", "Trial keys and summaries are recomputed."), + ("FIXED SCOPE", "Runtime errors cannot move cases out of core."), + ("SUBJECT ID", "Wheel hash, version and source revision recorded."), + ("SIGNED EVIDENCE", "Publication hashes, GPG verification and escrow."), + ] + y = 470 + for label, detail in items: + rounded_panel(draw, (68, y, 1012, y + 124), fill=PANEL_2) + draw.text((96, y + 25), label, font=F_LABEL, fill=GREEN_LIGHT) + draw.text((96, y + 66), detail, font=F_BODY, fill=TEXT) + y += 143 + + draw.text((68, 1199), "Current v5 bundle status: DATA ONLY", font=F_BODY_BOLD, fill=WARM) + footer(draw) + save(image, "05-integrity.png") + + +def card_6() -> None: + image, draw = base(6, "Read the evidence") + y = draw_wrapped(draw, (68, 220), "Results, limitations and release artifacts are public.", F_TITLE, TEXT, 920, 79) + + entries = [ + ("BENCHMARK", "bench/results/manual/…/COMPARISON.md"), + ("STATUS", "bench/results/STATUS.yaml"), + ("RELEASE", "github.com/raintree-technology/docpull/releases/tag/v6.1.0"), + ("PYPI", "pypi.org/project/docpull/6.1.0"), + ] + y = 560 + for label, path in entries: + draw.text((68, y), label, font=F_LABEL, fill=GREEN_LIGHT) + draw.text((68, y + 42), path, font=F_MONO, fill=TEXT) + draw.line((68, y + 91, 1012, y + 91), fill=BORDER, width=2) + y += 143 + + rounded_panel(draw, (68, 1120, 1012, 1210)) + draw.text((102, 1149), 'pip install "docpull[pdf]==6.1.0"', font=F_MONO, fill=TEXT) + footer(draw, "Local-first · open source · browser-free by default") + save(image, "06-evidence.png") + + +def contact_sheet() -> None: + cards = [Image.open(OUT / f"0{index}-{name}.png").convert("RGB") for index, name in [ + (1, "cover"), + (2, "core-results"), + (3, "boundaries"), + (4, "pdf-isolation"), + (5, "integrity"), + (6, "evidence"), + ]] + thumb_w = 360 + thumb_h = 450 + sheet = Image.new("RGB", (thumb_w * 3, thumb_h * 2), BG) + for index, card in enumerate(cards): + thumb = card.resize((thumb_w, thumb_h), Image.Resampling.LANCZOS) + sheet.paste(thumb, ((index % 3) * thumb_w, (index // 3) * thumb_h)) + sheet.save(OUT / "contact-sheet.png", optimize=True) + + +def main() -> None: + card_1() + card_2() + card_3() + card_4() + card_5() + card_6() + contact_sheet() + + +if __name__ == "__main__": + main() diff --git a/docs/sources.md b/docs/sources.md new file mode 100644 index 0000000..8249a54 --- /dev/null +++ b/docs/sources.md @@ -0,0 +1,7 @@ +# Context Pack Sources + +Output format: `markdown`. + +## Sources + +_No records were emitted._ diff --git a/docs/v6-directory-submission-plan.md b/docs/v6-directory-submission-plan.md new file mode 100644 index 0000000..fa403d9 --- /dev/null +++ b/docs/v6-directory-submission-plan.md @@ -0,0 +1,236 @@ +# DocPull v6 Directory Submission Plan + +Verified on 2026-07-04. This plan turns the existing launch kit and visibility +research into an execution order for DocPull v6. + +## Readiness + +Ready: + +- Public documentation: https://github.com/raintree-technology/docpull +- GitHub: https://github.com/raintree-technology/docpull +- PyPI: https://pypi.org/project/docpull/ +- Version: `6.0.0` +- GitHub topics are filled with relevant Python, MCP, RAG, web extraction, and + agent-context terms. +- PyPI keywords and project URLs include docs, repository, comparison guide, + MCP plugin, changelog, releases, and download stats. +- Launch assets exist under `docs/launch-assets`. +- v6 X thread assets exist under `docs/social/v6-launch`. +- GitHub README has package links, MCP install instructions, and clear install + CTAs. + +Fixed in this launch-prep pass, deploy before submission: + +- `/pricing` +- `/privacy` +- `/terms` +- `/llms.txt` + +Still recommended before Product Hunt: + +- Record a 45-60 second terminal demo from `pip install docpull` to `docpull + sync`, `docpull diff`, and `docpull export context-pack --target cursor`. +- Refresh launch screenshots from the deployed v6 site after the policy pages + are live. +- Decide whether Product Hunt should launch from the website or GitHub URL. Use + the website unless the launch story is explicitly "open-source repo first." + +## Positioning + +Primary category: + +- Context dependencies for AI agents. + +Short tagline: + +- Keep AI agents synced with changing public docs. + +Product Hunt tagline: + +- Turn public web sources into agent-ready context packs. + +Long description: + +DocPull is a local-first dependency manager for AI context. Define the public +docs and web sources an agent depends on, sync them into cited context packs, +diff what changed, and export reproducible context for Cursor, Claude, OpenAI, +LlamaIndex, LangChain, MCP clients, and RAG pipelines. + +DocPull is browser-free by default and has explicit budget controls for any +paid-capable cloud route. It fits teams building coding agents, +RAG systems, MCP tools, and docs-aware automation where stale or uncited context +should be visible before it changes model behavior. + +Third-party API stance: + +- Show the adapter ecosystem instead of flattening DocPull into "web scraping." + Public v6 adapters include OpenAPI, feeds, repos, packages, papers, + standards, datasets, transcripts, wiki pages, parsers, render runtimes, MCP, + agent exports, RAG exports, automation exports, and warehouse/table exports. +- Parallel Web, Tavily, and Exa provider adapter code exists in the repository. + Label it as experimental/internal provider code unless the release contract + promotes the exact CLI, SDK, MCP, or package-extra surface. +- Pitch DocPull as the artifact layer that turns selected URLs, files, specs, + packages, feeds, datasets, provider records, or research outputs into local + packs with lockfiles, citations, validation, diffs, and exports. + +## Submission Order + +### Batch 0: Metadata and owned surfaces + +Do this first because every directory links back here. + +1. Deploy the web changes for `/pricing`, `/privacy`, `/terms`, and + `/llms.txt`. +2. Confirm the deployed routes return 200. +3. Publish or tag the v6 GitHub release if not already done. +4. Confirm PyPI shows `6.0.0`. +5. Pin the v6 X thread after posting. + +### Batch 1: Developer and MCP surfaces + +These are highest fit for DocPull. + +1. Official MCP Registry: publish server metadata. +2. Glama MCP: submit the GitHub repository and inspect the generated server + page. +3. Smithery: publish if the local stdio install flow fits their current server + model. +4. mcp.so: submit through the GitHub issue flow with install command and stdio + config. +5. Cline MCP Marketplace: submit only after a Cline setup test and 400x400 PNG + logo are ready. +6. DevHunt: submit as Developer Tools / Open Source / AI / CLI / Python / MCP. +7. PyCoder's Weekly: submit the website or GitHub release link. +8. Python Bytes: send a short email pitch with one terminal example. + +### Batch 2: Community launch + +Use a technical story, not generic launch copy. + +1. r/mcp showcase with install command and MCP tools. +2. DEV Community or Hashnode tutorial: "Context dependencies for AI agents with + DocPull v6." +3. Hacker News Show HN using `docs/v6-hacker-news-plan.md`; the founder should + rewrite the first comment in their own voice before posting. +4. r/Python or r/webscraping only after the tutorial is live. + +### Batch 3: Product launch platforms + +Use these after Batch 1 has seeded credibility. + +1. Product Hunt. +2. DevHunt, if not already submitted in Batch 1. +3. Uneed. +4. Microlaunch. +5. Fazier. +6. BetaList only if we want waitlist/startup exposure; it is weaker for pure + OSS devtool usage. + +Earliest strong Product Hunt date from today: Tuesday, 2026-07-28. Product Hunt +allows scheduling up to one month ahead, so schedule during prep rather than +submitting cold on launch morning. + +### Batch 4: GitHub awesome lists and Python directories + +Open focused PRs only where DocPull clearly fits. + +1. awesome-mcp-servers. +2. awesome-mcp-devtools. +3. awesome-web-scraping. Use public web extraction / Python CLI framing only; + its contribution rules restrict AI-agent and MCP automation submissions. +4. best-of-python-dev. +5. best-of-web-python. +6. awesome-copilot, only if submitting a real Copilot plugin/skill/tool entry + rather than a generic product listing. +7. awesome-python, as a long-shot after v6 traction is visible. +8. awesome-agents, awesome-ai-devtools, Awesome-LLMOps, Awesome-RAG, and + awesome-harness-engineering only with a precise category fit and proof link. + +Detailed GitHub repo targets, suggested categories, and skip/defer notes live in +[`docs/v6-github-list-targets.md`](v6-github-list-targets.md). + +### Batch 5: Long-tail SEO directories + +Do these after the core developer surfaces. Avoid paid or reciprocal-badge +submissions unless there is a clear category fit. + +1. AlternativeTo. +2. SaaSHub. +3. StackShare. +4. SourceForge. +5. Future Tools. +6. Futurepedia. +7. There's An AI For That only if paid placement is acceptable. + +## Product Hunt Prep Calendar + +Assuming a launch on Tuesday, 2026-07-28: + +- 2026-07-07: create Product Hunt draft and Upcoming page. +- 2026-07-08 to 2026-07-20: engage from the maker account with real comments on + relevant developer, AI agent, and open-source launches. +- 2026-07-14: finalize gallery images, demo video, 60-character tagline, + 500-character description, maker comment, and first replies. +- 2026-07-21: send warm heads-up to existing users, friends, and communities. + Ask for feedback, not upvotes. +- 2026-07-27: final route check in incognito: website, GitHub, PyPI, docs, + pricing, privacy, terms, demo media, and signup/install path. +- 2026-07-28: launch at the selected Product Hunt time and keep the maker + account available for comments. + +## Product Hunt Assets + +Name: + +- docpull + +Tagline: + +- Turn public web sources into agent-ready context packs. + +Description, under 500 characters: + +DocPull is a Python CLI, SDK, and MCP server for turning public docs and web +sources into cited, refreshable context packs. Declare sources, sync them, +diff what changed, validate context in CI, and export reproducible context for +Cursor, Claude, OpenAI, LlamaIndex, LangChain, MCP clients, and RAG. + +Launch tags: + +- Engineering & Development +- AI Agents +- LLMs + +Maker comment angle: + +DocPull v6 is about making agent context behave more like code dependencies: +declared, locked, synced, diffed, and tested before it changes model behavior. +The sharp boundary is intentional: browser-free by default, explicit rendering +only when needed, and `--budget 0` for no paid-capable routes. + +## Measurement + +Track weekly: + +- Directory submissions sent. +- Listings live. +- Backlinks verified. +- GitHub stars. +- PyPI downloads. +- Website referrals. +- Mentions in ChatGPT, Claude, Perplexity, and Google AI Overviews for + "context dependencies", "agent context packs", "Context CI", and + "context pack validation". + +## Verification Sources + +- Product Hunt launch guide: https://www.producthunt.com/launch/preparing-for-launch +- Product Hunt preparation guide: https://www.producthunt.com/launch/before-launch +- MCP Registry docs: https://modelcontextprotocol.io/registry/about +- DevHunt: https://devhunt.org/ +- Smithery publishing docs: https://smithery.ai/docs/build/publish +- PyCoder's Weekly submissions: https://pycoders.com/submissions +- Python Bytes contact: https://pythonbytes.fm/home/contact +- GitHub list target research: docs/v6-github-list-targets.md diff --git a/docs/v6-directory-todo.md b/docs/v6-directory-todo.md new file mode 100644 index 0000000..6b35249 --- /dev/null +++ b/docs/v6-directory-todo.md @@ -0,0 +1,42 @@ +# DocPull v6 Directory Follow-Ups + +## Manual Verification + +- Glama MCP: live listing and score badge verified; `punkpeye/awesome-mcp-servers#9276` includes the badge and passes `check-submission`. +- allMCPservers: complete the Google reCAPTCHA/manual verification for the already-filled official MCP form. +- MCP.Directory: watch email/listing status because the form cleared after submit but did not show a reliable success banner. +- HN: add the posted Show HN item URL to `docs/v6-directory-tracker.csv`. + +## Site Readiness + +- Deploy the restored web routes for `/privacy`, `/terms`, `/pricing`, and `/llms.txt`; they were implemented locally on 2026-07-06 but still need live 200 checks. +- Add launch screenshots and a 45-60 second demo video before Product Hunt, DevHunt, Fazier, Microlaunch, or Uneed. +- Product Hunt: schedule only after the launch assets are ready and the founder account is warmed up; do not ask for upvotes, ask for feedback. + +## Package / Registry Work + +- Cline MCP Marketplace: run a real Cline install test using only `README.md` and/or `llms-install.md`; use the ready `docs/launch-assets/logo-square-light-400.png` asset. +- Cursor/Windsurf Directory: add Open Plugins metadata (`.mcp.json`) to the GitHub repo, then submit through `https://cursor.directory/plugins/new`. +- Stacklok ToolHive Catalog: add an OCI image or remote Streamable HTTP MCP server before submitting; current catalog accepts containers/remotes, not PyPI stdio packages. +- Smithery: add an MCPB bundle or a remote Streamable HTTP MCP server before submitting. + +## Account-Gated Launch Surfaces + +- AgentLocker: create/verify an account, then submit through `/agent/submit`. +- OpenTools: sign in and look for an authenticated registry submission path; no public endpoint was found. +- DevHunt, Fazier, Microlaunch, Uneed: retry after policy/pricing pages and launch assets are deployed. + +## Content / Community + +- Reddit: post a technical r/mcp/r/SideProject-style walkthrough with install command, tool list, and authorship disclosure. +- DEV/Hashnode: publish a tutorial, not a raw launch announcement. +- Awesome-RAG / Awesome-LLMOps / awesome-harness-engineering: submit after a concrete RAG/context-dependency tutorial exists. + +## Watchlist + +- 2026-07-07 daily monitor: open public PRs/issues remain maintainer-waiting with no requested changes. `punkpeye/awesome-mcp-servers#9276`, `lorien/awesome-web-scraping#262`, and `toolsdk-ai/toolsdk-mcp-registry#381` have passing active checks; `lorien#262` still exposes an older failed run in the rollup. Official MCP Registry, Glama, and MCPRepository listings remain live. mcp.so, mcpservers.org, MCP.Directory, MCP Server Hub, and AiAgents.Directory did not show confirmed live DocPull listing pages in lightweight checks. appcypher still has a one-commit-ahead branch and no PR. +- 2026-07-06 daily monitor: open PRs/issues remain maintainer-waiting with no requested changes; `punkpeye/awesome-mcp-servers#9276`, `lorien/awesome-web-scraping#262`, and `toolsdk-ai/toolsdk-mcp-registry#381` have passing required checks. MCPRepository is now live with GitHub/PyPI links. mcp.so, mcpservers.org, and PulseMCP did not show new public listing pages in lightweight checks. +- MCP Market: email request sent; optionally retry the free queue manually, but do not pay for review without approval. +- MCPCentral: no supported write endpoint found; recheck after Official MCP Registry propagation. +- AgenticSkills: public submit API returned HTTP 503 because the review queue is not configured; retry later. +- MCPera and GPTMCP: both appear to be demo-only forms that do not send submissions. diff --git a/docs/v6-directory-tracker.csv b/docs/v6-directory-tracker.csv new file mode 100644 index 0000000..441aa58 --- /dev/null +++ b/docs/v6-directory-tracker.csv @@ -0,0 +1,57 @@ +Directory,Tier,URL,Category,Priority,Status,Submission Date,Live URL,Backlink Verified,Positioning Variant,Tags,Account Needed,Notes +Product Hunt,Flagship,https://www.producthunt.com/launch,Launch,High,Blocked - launch assets/deployed pages,,,,Startup,Engineering & Development; AI Agents; LLMs,Yes,"Schedule after /privacy, /terms, /pricing, screenshots, and a 45-60s demo are live; deployed policy/pricing pages returned 404 on 2026-07-04. Local web routes for /privacy, /terms, /pricing, and /llms.txt were restored on 2026-07-06; deploy and verify live 200 responses next." +Hacker News Show HN,Community,https://news.ycombinator.com/submit,Developer community,High,Submitted,2026-07-04,,,Dev,Show HN; Python; open source; AI agents,Yes,Posted by founder from zacharyr0th; add item URL when available. +DevHunt,Launch,https://devhunt.org/,Developer tools,High,Ready after deploy,,,,Dev,Developer Tools; Open Source; AI; CLI; Python; MCP,Yes,Best non-PH launch fit. +Official MCP Registry,MCP,https://modelcontextprotocol.io/registry/about,MCP registry,High,Published,2026-07-04,https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.raintree-technology/docpull,Yes,MCP,MCP; public web context; developer tools; web extraction,Yes,"Published active/latest registry entry for io.github.raintree-technology/docpull version 6.0.1 at 2026-07-04T22:00:42Z after PyPI 6.0.1 marker release and GitHub OIDC workflow publish; reverified 2026-07-07." +Glama MCP,MCP,https://glama.ai/mcp/servers,MCP registry,High,Published,2026-07-04,https://glama.ai/mcp/servers/raintree-technology/docpull,Yes,MCP,MCP server; web scraping; documentation; RAG,Yes,"Live listing and score badge reverified on 2026-07-07; punkpeye/awesome-mcp-servers #9276 includes the required Glama badge and check-submission passes." +Smithery,MCP,https://smithery.ai/docs/build/publish,MCP registry,High,Blocked - packaging mismatch,2026-07-04,,,MCP,MCP; local server; developer tools,Yes,Current Smithery publish docs support public HTTPS servers or local MCPB bundles; DocPull is a PyPI stdio server. Needs MCPB bundle or remote Streamable HTTP server before submission. +mcp.so,MCP,https://mcp.so/,MCP directory,High,Submitted,2026-07-04,https://github.com/chatmcp/mcpso/issues/3016,,MCP,MCP server; web scraping; documentation; developer tools,Yes,"Submitted via GitHub issue from zacharyr0th with install command, stdio config, PyPI link, and 17k+ downloads; issue still open with no maintainer comments on 2026-07-07, and common mcp.so listing paths still show Project not found content." +Cline MCP Marketplace,MCP,https://github.com/cline/mcp-marketplace,MCP marketplace,Medium,Prep,,,,MCP,MCP; Cline; developer tools; public web context,Yes,"Requires 400x400 PNG logo and confirmation that Cline can install the server using only README.md and/or llms-install.md; ready asset exists at docs/launch-assets/logo-square-light-400.png, but the Cline install test must be completed before submitting." +PulseMCP,MCP,https://www.pulsemcp.com/servers,MCP directory,High,Outreach Sent,2026-07-04,,,MCP,MCP; public web context; RAG; developer tools,Yes,"Submit page says PulseMCP ingests entries from the Official MCP Registry and to email hello@pulsemcp.com for adjustments; sent listing request from admin@raintree.technology with repo, install command, stdio config, and 17k+ download note." +mcpservers.org,MCP,https://mcpservers.org/submit,MCP directory,High,Submitted,2026-07-04,,,MCP,MCP; web scraping; development; RAG,Yes,"Submitted free listing with Web Scraping category; site says review within 12 hours and email notification on approval. This is also the required flow for wong2/awesome-mcp-servers; likely listing path checked 2026-07-07 still returned 404." +MCP Market,MCP,https://mcpmarket.com/submit,MCP directory,Medium,Outreach Sent,2026-07-04,,,MCP,MCP; agent skills; developer tools,Yes,"Chrome showed free queue form, but automation was interrupted before final submit and static access is Vercel-guarded; sent free-queue listing request to support@mcpmarket.com. Do not use $29 paid review without approval." +MCP Hub / AIMCP,MCP,https://www.aimcp.info/en/submit,MCP directory,Medium,Submitted,2026-07-04,,,MCP,MCP; agent profiles; CLI tools; API docs,Yes,Submitted MCP repository for review via /api/mcps/submit; API returned pending submission id 1450. +PyCoder's Weekly,Newsletter,https://pycoders.com/submissions,Python newsletter,High,Submitted,2026-07-04,,,Dev,Python; CLI; open source; AI agents,No,"Submitted Google Form with GitHub repo, v6 context-dependencies headline, summary, Zach Roth contact, and admin@raintree.technology." +Python Bytes,Newsletter,https://pythonbytes.fm/home/contact,Python podcast,High,Outreach Sent,2026-07-04,,,Dev,Python; CLI; web extraction; MCP,No,Sent concise v6 pitch to contact@pythonbytes.fm from admin@raintree.technology. +r/mcp,Community,https://www.reddit.com/r/mcp/,MCP community,High,Prep,,,,MCP,showcase; MCP; Python; public web context,Yes,"Post install command, tool list, and demo. Disclose authorship." +DEV Community,Community,https://dev.to/,Developer content,Medium,Prep,,,,Dev,python; showdev; opensource; ai; webscraping,Yes,"Publish tutorial, not announcement." +awesome-mcp-servers,Awesome list,https://github.com/punkpeye/awesome-mcp-servers,MCP list,High,PR Open,2026-07-04,https://github.com/punkpeye/awesome-mcp-servers/pull/9276,,MCP,MCP; developer tools; documentation,Yes,"Opened fresh PR from zacharyr0th after fork-name collision closed #9275; Glama listing and badge are live, check-submission passes, and PR is mergeable with no reviews requested as of 2026-07-07." +awesome-mcp-devtools,Awesome list,https://github.com/punkpeye/awesome-mcp-devtools,MCP devtools,High,PR Open,2026-07-04,https://github.com/punkpeye/awesome-mcp-devtools/pull/221,,MCP,MCP; developer tools; CLI; context packs,Yes,Opened PR from zacharyr0th with 17k+ PyPI download proof in PR body. +awesome-mcp-servers (wong2),Awesome list,https://github.com/wong2/awesome-mcp-servers,MCP list,Medium,Submitted,2026-07-04,,,MCP,MCP; public web context; search; RAG,Yes,"README says PRs are not accepted; submitted through https://mcpservers.org/submit, which is the required route." +awesome-mcp-servers (appcypher),Awesome list,https://github.com/appcypher/awesome-mcp-servers,MCP list,Medium,Blocked,2026-07-04,https://github.com/zacharyr0th/awesome-mcp-servers-appcypher/tree/add-docpull-appcypher,,MCP,MCP; documentation; search; RAG,Yes,"Renamed fork and branch were pushed, but GitHub PR creation is blocked for this repo from zacharyr0th; compare still shows the branch one commit ahead and no DocPull PR exists as of 2026-07-07. Use compare/manual PR path if available." +awesome-mcp-servers (TensorBlock),Awesome list,https://github.com/TensorBlock/awesome-mcp-servers,MCP index,High,PR Open,2026-07-04,https://github.com/TensorBlock/awesome-mcp-servers/pull/1064,,MCP,MCP; web scraping; context packs; developer tools,Yes,Opened PR from zacharyr0th using custom fork awesome-mcp-servers-tensorblock; strong fit with Browser Automation & Web Scraping category and hosted searchable profiles. +awesome-copilot,Awesome list,https://github.com/github/awesome-copilot,Copilot tools,Medium,Needs packaged entry,,,,MCP,Copilot; MCP; skill; plugin; developer tools,Yes,"Only submit a concrete Copilot skill/plugin/tool entry, not a generic repo listing." +awesome-web-scraping,Awesome list,https://github.com/lorien/awesome-web-scraping,Web scraping list,Medium,PR Open,2026-07-04,https://github.com/lorien/awesome-web-scraping/pull/262,,Dev,Python; crawler; markdown; web extraction,Yes,"Opened PR from zacharyr0th; replaced auto-rejected #259 with #262 using no restricted terms in the PR body; closed duplicate #260. Current PR is mergeable and the latest required check passes as of 2026-07-07; GitHub's rollup still includes an older failed run." +awesome-ai-web-scraping,Awesome list,https://github.com/h4ckf0r0day/awesome-ai-web-scraping,AI web scraping list,High,PR Open,2026-07-04,https://github.com/h4ckf0r0day/awesome-ai-web-scraping/pull/11,,MCP,MCP; web scraping; LLM; RAG; agents,Yes,Opened PR from zacharyr0th; strong fit because repo has an MCP Servers for Scraping section and explicitly covers LLM-friendly crawlers and MCP servers. +best-of-web-python,Awesome list,https://github.com/ml-tooling/best-of-web-python,Python web,Medium,PR Open,2026-07-04,https://github.com/ml-tooling/best-of-web-python/pull/272,,Dev,Python; web; html processing; docs extraction,Yes,Opened projects.yaml PR from zacharyr0th with 17k+ PyPI download proof in PR body. +best-of-python-dev,Awesome list,https://github.com/ml-tooling/best-of-python-dev,Python devtools,Medium,PR Open,2026-07-04,https://github.com/ml-tooling/best-of-python-dev/pull/279,,Dev,Python; CLI; developer tools; docs,Yes,Opened projects.yaml PR from zacharyr0th with 17k+ PyPI download proof in PR body. +awesome-python,Awesome list,https://github.com/vinta/awesome-python,Python list,Low,Defer,,,,Dev,Python; web scraping; documentation,Yes,Long-shot due strict acceptance bar; try after visible v6 traction. +awesome-agents,Awesome list,https://github.com/kyrolabs/awesome-agents,Agent tools,Low,Defer,,,,AI,AI agents; knowledge management; developer tools,Yes,Contribution rules prefer agentic frameworks; submit only with clear agent context-dependency proof. +awesome-ai-devtools,Awesome list,https://github.com/jamesmurdza/awesome-ai-devtools,AI devtools,Low,Defer,,,,AI,AI developer tools; CLI; context management,Yes,Borderline because entries should be AI-powered; use only if pitch centers agent/MCP workflows. +Awesome-LLMOps,Awesome list,https://github.com/tensorchord/Awesome-LLMOps,LLMOps,Medium,Prep after tutorial,,,,AI,LLMOps; RAG; data management; search,Yes,Submit after a short RAG/context-dependency tutorial exists. +Awesome-RAG,Awesome list,https://github.com/Danielskry/Awesome-RAG,RAG,Medium,Prep after tutorial,,,,AI,RAG; context packs; data ingestion; citations,Yes,Better with an example RAG pack or tutorial link. +awesome-harness-engineering,Awesome list,https://github.com/ai-boost/awesome-harness-engineering,Agent harness,Medium,Prep after article,,,,AI,agent harness; context delivery; MCP; verification,Yes,Likely stronger as a technical article/resource submission than a bare repo. +Uneed,Launch,https://www.uneed.best/submit-a-tool,Product directory,Medium,Blocked - account/CAPTCHA/payment path,,,,Startup,Developer Tools; AI; Open Source,Yes,Static page exposes Turnstile/Supabase account flow; retry after deployed policy/pricing pages and manual account/CAPTCHA step. +Microlaunch,Launch,https://microlaunch.net/,Product directory,Medium,Blocked - account/launch prep,,,,Startup,Developer Tools; AI Tools; Productivity,Yes,Account-based launch surface; retry after deployed policy/pricing pages and launch assets. +Fazier,Launch,https://fazier.com/,Product directory,Medium,Blocked - sign-in/launch prep,,,,Startup,Developer Tools; AI; Open Source,Yes,Sign-in/join gated launch surface; retry after deployed policy/pricing pages and launch assets. +AlternativeTo,SEO,https://alternativeto.net/,Software alternatives,Medium,Defer,,,,SaaS,web scraping; developer tools; open source,Yes,Better after comparison pages are more complete. +SaaSHub,SEO,https://www.saashub.com/submit/list,SaaS directory,Low,Defer,,,,SaaS,developer tools; web scraping; AI tools,Yes,Only after alternatives/comparison pages are ready. +Future Tools,AI directory,https://futuretools.io/submit-a-tool,AI directory,Low,Defer,,,,AI,AI agents; developer tools; research,Yes,"Generic AI audience, use after developer surfaces." +Futurepedia,AI directory,https://www.futurepedia.io/submit-tool,AI directory,Low,Defer,,,,AI,AI agents; developer tools; productivity,Yes,Check current pricing before spending. +mcp-audit.dev,MCP,https://mcp-audit.dev/submit/,MCP audit registry,Medium,Issue Open,2026-07-04,https://github.com/adudley78/mcp-audit/issues/35,,MCP,MCP; security; audit; PyPI,Yes,"Submitted PyPI package via GitHub issue #35 with repo, package, network-fetch capability, stdio config, and 17k+ download note; issue still open with no maintainer comments on 2026-07-07." +ToolSDK MCP Registry,MCP,https://github.com/toolsdk-ai/toolsdk-mcp-registry,MCP registry,Medium,PR Open,2026-07-04,https://github.com/toolsdk-ai/toolsdk-mcp-registry/pull/381,,MCP,MCP; Python; search; extraction; RAG,Yes,"Opened PR adding packages/search-data-extraction/docpull.json with python runtime, docpull package, docpull mcp bin args, MIT license, and repo/readme links; biome and package schema checks pass as of 2026-07-07." +MCP.Directory,MCP,https://mcp.directory/submit,MCP directory,High,Submitted - unconfirmed,2026-07-04,,,MCP,MCP; public web context; RAG; developer tools,No,"Submitted GitHub repo, PyPI package docpull, short description, and admin email; form cleared without visible success or error, so confirm by email/listing." +ChatMCP MCP Server Market,MCP,https://github.com/chatmcpclient/mcp_server_market,MCP market,Medium,PR Open,2026-07-04,https://github.com/chatmcpclient/mcp_server_market/pull/13,,MCP,MCP; ChatMCP; Python,Yes,"Opened PR adding docpull command config to mcp_server_market.json; PR is mergeable with no maintainer comments as of 2026-07-07." +MCPRepository,MCP,https://mcprepository.com,MCP directory,Medium,Published,2026-07-04,https://mcprepository.com/raintree-technology/docpull,Yes,MCP,MCP; Python; developer tools,No,"Submitted via npx mcp-index; live listing with GitHub and PyPI links verified on 2026-07-07." +MCP Server Hub,MCP,https://mcpserverhub.com/submit,MCP directory,Medium,Submitted,2026-07-04,,,MCP,MCP; public web context; developer tools,No,"Submitted embedded Tally form; confirmation said Done and review/display later. Checked 2026-07-07; guessed listing path still returned 404." +MCP Server Hub .net,MCP,https://mcpserverhub.net/submit,MCP directory,Medium,Submitted,2026-07-04,,,MCP,MCP; developer tools; public web context,No,"Submitted via public /api/submit endpoint; API returned {message: Success}. Checked 2026-07-07; guessed listing path returned 200 but did not expose DocPull content in static HTML." +allMCPservers,MCP,https://www.allmcpservers.com/,MCP directory,Medium,Blocked - reCAPTCHA,2026-07-04,,,MCP,MCP; developer tools; web extraction,No,"Filled official MCP form with Zach/admin/repo/category Developer Tools, but Google reCAPTCHA loaded and no reliable success/error appeared; needs manual verification." +MCPCentral,MCP,https://mcpcentral.io,MCP directory,Medium,Blocked - no write endpoint,2026-07-04,,,MCP,MCP; developer tools,No,"Search API shows DocPull not indexed; public API is read-only, mcp-submit provider says integration pending, and openapi.yaml is Cloudflare-gated. Likely wait for official registry auto-index or contact if a submit path appears." +MCPera,MCP,https://mcpera.com/submit.html,MCP directory,Low,Blocked - demo form,2026-07-04,,,MCP,MCP; developer tools,No,"Submit JavaScript only validates locally, shows an alert, and never posts to a server; no real submission recorded." +GPTMCP,MCP,https://www.gptmcp.ai/submit,MCP directory,Low,Blocked - demo form,2026-07-04,,,MCP,MCP; developer tools,No,"Submit UI only waits locally and shows a success banner; bundled code makes no network request, so no real submission recorded." +AgenticSkills,MCP,https://agenticskills.io/submit?type=mcp,MCP and agent skills directory,Medium,Blocked - broken review queue,2026-07-04,,,MCP,MCP; public web context; developer tools,No,"Public form posts to /api/submissions, but the API returned HTTP 503 with 'Submission review queue is not configured.'" +AiAgents.Directory,AI directory,https://aiagents.directory/submit/,AI agents/tools directory,Medium,Submitted,2026-07-04,,,AI,AI tool; agent infrastructure; RAG; developer tools,No,"Submitted as an AI tool/infrastructure for agents using admin@raintree.technology; site redirected to /submit/success/. Checked 2026-07-07; guessed listing path still returned 404." +AgentLocker,AI directory,https://agentlocker.ai/submit-your-tool,AI agents/tools directory,Medium,Blocked - account required,2026-07-04,,,AI,AI tools; agent infrastructure; developer tools,Yes,Submission requires sign-in at /auth/login?next=/agent/submit; create/verify account before posting. +OpenTools,MCP,https://opentools.com/registry,MCP registry,Medium,Blocked - sign-in/no public submit,2026-07-04,,,MCP,MCP; developer tools,Yes,Registry page is Clerk-gated with no public submit endpoint found. +Stacklok ToolHive Catalog,MCP,https://github.com/stacklok/toolhive-catalog,MCP runtime catalog,Medium,Blocked - packaging mismatch,2026-07-04,,,MCP,MCP; ToolHive; runtime catalog,Yes,Catalog contribution docs support OCI container packages or remote HTTP servers only; DocPull is currently a PyPI stdio server. +Cursor/Windsurf Directory,MCP,https://cursor.directory/plugins/new,MCP/client plugin directory,Medium,Blocked - needs Open Plugins metadata,2026-07-04,,,MCP,MCP; Cursor; Windsurf; developer tools,Yes,Data is submitted through website after sign-in; repo README says it auto-detects MCP servers from .mcp.json. Add Open Plugins .mcp.json to DocPull and then submit the GitHub repo through cursor.directory/plugins/new. diff --git a/docs/v6-github-list-targets.md b/docs/v6-github-list-targets.md new file mode 100644 index 0000000..33745d1 --- /dev/null +++ b/docs/v6-github-list-targets.md @@ -0,0 +1,146 @@ +# DocPull v6 GitHub List Targets + +Verified on 2026-07-04 from GitHub repository pages, raw contribution files, +and GitHub API metadata. Use this as the PR target list for the GitHub +"awesome list" portion of the directory launch. + +## Highest-Fit PR Order + +1. `punkpeye/awesome-mcp-servers` + - URL: https://github.com/punkpeye/awesome-mcp-servers + - Fit: MCP server directory with relevant categories for Developer Tools, + Knowledge & Memory, Search & Data Extraction, and end-to-end RAG. + - Submission angle: local-first MCP server for fetching, indexing, + diffing, and exporting cited public docs as agent context packs. + - Next step: submit after the official MCP Registry or Glama listing is + live so the PR has external validation. + +2. `punkpeye/awesome-mcp-devtools` + - URL: https://github.com/punkpeye/awesome-mcp-devtools + - Fit: MCP developer tools, SDKs, libraries, utilities, and resources. + - Suggested category: `Utilities` / `Development Tools`. + - Submission angle: Python CLI/SDK/MCP utility for producing reproducible + context packs from public docs and web sources. + +3. `lorien/awesome-web-scraping` + - URL: https://github.com/lorien/awesome-web-scraping + - Fit: Python web scraping and command-line web extraction lists. + - Suggested files: `python.md` and/or `cli.md`. + - Submission angle: Python CLI/SDK for public web-to-Markdown extraction + with citations and refreshable local packs. + - Caveat: the contribution rules restrict AI-agent and MCP automation + content, so do not lead with agent/MCP positioning in this PR. + +4. `ml-tooling/best-of-python-dev` + - URL: https://github.com/ml-tooling/best-of-python-dev + - Fit: Python developer tools, updated weekly, accepts issues or PRs to + `projects.yaml`. + - Suggested category: `documentation`. + - Submission angle: developer documentation/context dependency tooling. + - Draft YAML: + + ```yaml + - name: docpull + github_id: raintree-technology/docpull + pypi_id: docpull + category: documentation + ``` + +5. `ml-tooling/best-of-web-python` + - URL: https://github.com/ml-tooling/best-of-web-python + - Fit: Python web libraries, updated weekly, accepts issues or PRs to + `projects.yaml`. + - Suggested category: `html-processing` first, `url-utils` only if the + maintainer prefers the URL discovery angle. + - Submission angle: public web and docs extraction to structured Markdown + / local context packs. + +6. `h4ckf0r0day/awesome-ai-web-scraping` + - URL: https://github.com/h4ckf0r0day/awesome-ai-web-scraping + - Fit: explicit AI web scraping list with a dedicated `MCP Servers for + Scraping` section. The README scope includes LLM-friendly crawlers, MCP + servers, RAG pipelines, and agents. + - Submission angle: local-first Python CLI/SDK/MCP server for turning public + static and server-rendered web sources into Markdown, NDJSON, SQLite, and + cited context packs. + - Caveat: keep the entry concise and in the MCP scraping section; this is + not a generic Python scraper listing. + +7. `TensorBlock/awesome-mcp-servers` + - URL: https://github.com/TensorBlock/awesome-mcp-servers + - Fit: active MCP index with a hosted searchable profile site, issue forms, + and direct category markdown PRs. + - Suggested category: `Browser Automation & Web Scraping`. + - Submission angle: MCP server for fetching, caching, searching, validating, + and exporting public static/server-rendered web sources as cited local + context packs. + - Caveat: use a custom fork name because `zacharyr0th/awesome-mcp-servers` + is already the fork used for the punkpeye PR. + +8. `github/awesome-copilot` + - URL: https://github.com/github/awesome-copilot + - Fit: tools section covers MCP servers and developer tooling; repo also + accepts agents, skills, hooks, workflows, and plugins. + - Submission angle: only submit a concrete DocPull Copilot plugin, skill, + or MCP tool entry. Do not submit a generic repo listing. + - Next step: package the DocPull workflow as a Copilot-ready skill/plugin + before opening a PR. + +## Secondary Targets + +9. `vinta/awesome-python` + - URL: https://github.com/vinta/awesome-python + - Fit: huge Python list with a Web Scraping category. + - Caveat: strict quality bar. Requires Python-first, active, stable, + documented, unique, and established projects. Treat as a long-shot until + v6 has visible adoption. + +10. `kyrolabs/awesome-agents` + - URL: https://github.com/kyrolabs/awesome-agents + - Fit: has Knowledge Management and Software Development categories. + - Caveat: contribution rules focus on agentic frameworks, so DocPull may be + considered adjacent rather than core. Submit only with a clear agent + context-dependency framing and proof of traction. + +11. `jamesmurdza/awesome-ai-devtools` + - URL: https://github.com/jamesmurdza/awesome-ai-devtools + - Fit: CLI utilities, configuration/context management, documentation + generation, and agent infrastructure sections. + - Caveat: PR template says entries must be tools that use AI. DocPull is + mostly AI-supporting infrastructure, so this is medium-risk unless the + pitch leads with Context CI, agent exports, or MCP workflows. + +12. `tensorchord/Awesome-LLMOps` + - URL: https://github.com/tensorchord/Awesome-LLMOps + - Fit: LLMOps list with Search, Data Management, Observability, and + LLMOps categories. + - Submission angle: context dependency management for RAG and agent + pipelines, especially sync/diff/validate/export. + +13. `Danielskry/Awesome-RAG` + - URL: https://github.com/Danielskry/Awesome-RAG + - Fit: RAG tools and resources. + - Submission angle: refreshable cited source packs for RAG ingestion. + - Next step: publish a short RAG tutorial or example pack first; a bare + tool listing is weaker. + +14. `ai-boost/awesome-harness-engineering` + - URL: https://github.com/ai-boost/awesome-harness-engineering + - Fit: context delivery, MCP, verification/CI, and agent harness design. + - Submission angle: DocPull as a context delivery and verification + component for agent harnesses. + - Caveat: this list is article/resource-heavy. A technical post about + context dependencies may be a better submission than the repo alone. + +## Skip or Watch + +- `e2b-dev/awesome-ai-agents`: large but mostly autonomous agents; DocPull is + supporting infrastructure, and the repo has less recent activity than better + targets. +- `Shubhamsaboo/awesome-llm-apps`: very high reach, but it focuses on runnable + AI Agent and RAG apps. Consider only if DocPull publishes a runnable demo app. +- `hyp1231/awesome-llm-powered-agent`: stronger for papers/blogs/repos about + agents than for developer infrastructure. Defer unless there is a research or + technical article. +- Fresh `awesome-* 2026` scraper/agent repos with heavy self-promotion: skip + unless they show stable maintenance and a non-spammy contribution process. diff --git a/docs/v6-github-pr-recipes.json b/docs/v6-github-pr-recipes.json new file mode 100644 index 0000000..b108aaf --- /dev/null +++ b/docs/v6-github-pr-recipes.json @@ -0,0 +1,163 @@ +[ + { + "id": "awesome-mcp-servers", + "ready": true, + "upstream": "punkpeye/awesome-mcp-servers", + "base_branch": "main", + "branch": "add-docpull-punkpeye", + "commit_message": "Add docpull to Developer Tools", + "title": "Add docpull to Developer Tools", + "body": "Adds DocPull, a local-first Python CLI and MCP server for fetching, caching, searching, validating, and exporting cited public docs and web sources as agent-ready context packs. The entry is placed under Developer Tools because the primary MCP use case is agent context dependency management for developer workflows. DocPull is published on PyPI and has 17k+ downloads.", + "changes": [ + { + "file": "README.md", + "mode": "append_markdown_section", + "section": "### 💻 Developer Tools", + "entry": "- [raintree-technology/docpull](https://github.com/raintree-technology/docpull) 🐍 🏠 🍎 🪟 🐧 - Local-first MCP server and Python CLI for fetching, caching, searching, validating, and exporting cited public docs and web sources as agent-ready context packs. `pip install 'docpull[mcp]'`" + } + ] + }, + { + "id": "awesome-mcp-devtools", + "ready": true, + "upstream": "punkpeye/awesome-mcp-devtools", + "base_branch": "main", + "branch": "add-docpull", + "commit_message": "Add docpull to MCP development tools", + "title": "Add docpull to MCP development tools", + "body": "Adds DocPull to the MCP development tools section. DocPull provides a Python CLI/SDK/MCP workflow for syncing, diffing, validating, and exporting public docs and web sources as cited context packs for agents. It is published on PyPI and has 17k+ downloads.", + "changes": [ + { + "file": "README.md", + "mode": "append_markdown_section", + "section": "### Development Tools", + "entry": "- [docpull](https://github.com/raintree-technology/docpull) 🐍 - Local-first CLI/SDK/MCP server for syncing, diffing, validating, and exporting public docs and web sources as cited agent context packs." + } + ] + }, + { + "id": "awesome-web-scraping", + "ready": true, + "upstream": "lorien/awesome-web-scraping", + "base_branch": "master", + "branch": "add-docpull-web-extraction", + "commit_message": "Add docpull to web scraping tools", + "title": "Add docpull to web scraping tools", + "body": "Adds DocPull as a Python and command-line tool for public static/server-rendered web extraction. The wording focuses on standalone public web extraction, matching this repository's contribution rules. DocPull is published on PyPI and has 17k+ downloads.", + "changes": [ + { + "file": "python.md", + "mode": "append_markdown_section", + "section": "### Web Scraping : Tools", + "entry": "* [docpull](https://github.com/raintree-technology/docpull) - Public static/server-rendered web extraction toolkit that writes clean Markdown, NDJSON, SQLite, and local archives." + }, + { + "file": "cli.md", + "mode": "append_markdown_section", + "section": "## Web Scraping", + "entry": "* [docpull](https://github.com/raintree-technology/docpull) - Public static/server-rendered web extraction CLI that writes clean Markdown, NDJSON, SQLite, and local archives." + } + ] + }, + { + "id": "best-of-python-dev", + "ready": true, + "upstream": "ml-tooling/best-of-python-dev", + "base_branch": "main", + "branch": "add-docpull", + "commit_message": "Add docpull to documentation tools", + "title": "Add docpull to documentation tools", + "body": "Adds DocPull to the documentation category. DocPull is a Python CLI/SDK for declaring, syncing, diffing, and exporting docs and web-source context dependencies for agent and developer workflows. It is published on PyPI and has 17k+ downloads.", + "changes": [ + { + "file": "projects.yaml", + "mode": "append_yaml_project", + "entry": " - name: docpull\n github_id: raintree-technology/docpull\n pypi_id: docpull\n category: documentation" + } + ] + }, + { + "id": "best-of-web-python", + "ready": true, + "upstream": "ml-tooling/best-of-web-python", + "base_branch": "main", + "branch": "add-docpull", + "commit_message": "Add docpull to web scraping tools", + "title": "Add docpull to web scraping tools", + "body": "Adds DocPull to the web scraping and crawling category. DocPull is a Python package for extracting public static/server-rendered web sources into clean Markdown, NDJSON, SQLite, and reproducible local packs. It is published on PyPI and has 17k+ downloads.", + "changes": [ + { + "file": "projects.yaml", + "mode": "append_yaml_project", + "entry": " - name: docpull\n github_id: raintree-technology/docpull\n pypi_id: docpull\n category: web-scraping" + } + ] + }, + { + "id": "awesome-mcp-servers-appcypher", + "ready": true, + "upstream": "appcypher/awesome-mcp-servers", + "fork_name": "awesome-mcp-servers-appcypher", + "base_branch": "main", + "branch": "add-docpull-appcypher", + "commit_message": "Add docpull to Search & Web", + "title": "Add docpull to Search & Web", + "body": "Adds DocPull to the Search & Web section. DocPull is a local-first Python CLI and MCP server for fetching, caching, searching, validating, and exporting cited public docs and web sources as agent-ready context packs. It is published on PyPI and has 17k+ downloads.", + "changes": [ + { + "file": "README.md", + "mode": "append_markdown_section", + "section": "## 🔍 Search & Web", + "entry": "- 🐍 [DocPull](https://github.com/raintree-technology/docpull) - Local-first MCP server and Python CLI for fetching, caching, searching, validating, and exporting cited public docs and web sources as agent-ready context packs." + } + ] + }, + { + "id": "awesome-ai-web-scraping", + "ready": true, + "upstream": "h4ckf0r0day/awesome-ai-web-scraping", + "base_branch": "main", + "branch": "add-docpull", + "commit_message": "Add DocPull to MCP scraping servers", + "title": "Add DocPull to MCP scraping servers", + "body": "Adds DocPull to the MCP Servers for Scraping section. The project is a Python CLI/SDK/MCP server for turning public static and server-rendered web sources into Markdown, NDJSON, SQLite, and cited context packs for LLM/RAG/agent workflows. It is open source, published on PyPI, and has 17k+ downloads.", + "changes": [ + { + "file": "README.md", + "mode": "append_markdown_section", + "section": "## MCP Servers for Scraping", + "entry": "- [DocPull](https://github.com/raintree-technology/docpull) - Local-first Python CLI/SDK/MCP server for turning public static and server-rendered web sources into Markdown, NDJSON, SQLite, and cited context packs. ![GitHub Repo stars](https://img.shields.io/github/stars/raintree-technology/docpull?style=social)" + } + ] + }, + { + "id": "awesome-mcp-servers-tensorblock", + "ready": true, + "upstream": "TensorBlock/awesome-mcp-servers", + "fork_name": "awesome-mcp-servers-tensorblock", + "base_branch": "main", + "branch": "add-docpull-tensorblock", + "commit_message": "Add DocPull to Browser Automation & Web Scraping", + "title": "Add DocPull to Browser Automation & Web Scraping", + "body": "Adds DocPull to the Browser Automation & Web Scraping category. DocPull is a Python CLI/SDK/MCP server that lets agents fetch, cache, search, validate, and export public static and server-rendered web sources as cited Markdown, NDJSON, SQLite, and local context packs. It is open source, published on PyPI, and has 17k+ downloads.", + "changes": [ + { + "file": "docs/browser-automation--web-scraping.md", + "mode": "append_markdown_section", + "section": "## 🌐 Browser Automation & Web Scraping", + "entry": "- [raintree-technology/docpull](https://github.com/raintree-technology/docpull): Python CLI/SDK/MCP server for fetching, caching, searching, validating, and exporting public static and server-rendered web sources as cited Markdown, NDJSON, SQLite, and local context packs. Install: `pip install 'docpull[mcp]'`." + } + ] + }, + { + "id": "awesome-copilot", + "ready": false, + "upstream": "github/awesome-copilot", + "base_branch": "main", + "branch": "add-docpull", + "commit_message": "Add docpull", + "title": "Add docpull", + "body": "Deferred until DocPull has a concrete Copilot skill, plugin, or MCP tool entry ready for this repository's format.", + "changes": [] + } +] diff --git a/docs/v6-hacker-news-plan.md b/docs/v6-hacker-news-plan.md new file mode 100644 index 0000000..49e63b2 --- /dev/null +++ b/docs/v6-hacker-news-plan.md @@ -0,0 +1,100 @@ +# DocPull Hacker News Plan + +Verified on 2026-07-04. + +## Official Constraints + +- Use Show HN only because DocPull is something people can run and try: + https://news.ycombinator.com/showhn.html +- Submit the original source or primary try-it page. For DocPull, the GitHub + repo is the safest target because it has install commands, source, examples, + and no signup wall: https://github.com/raintree-technology/docpull +- Title must begin with `Show HN`; keep it neutral, no hype, no exclamation + points: https://news.ycombinator.com/newsguidelines.html +- Do not ask anyone for upvotes or comments: + https://news.ycombinator.com/showhn.html +- Submit the link first, then add context as a normal comment: + https://news.ycombinator.com/newsfaq.html +- HN says not to post generated or AI-edited text. Treat the title/comment below + as an internal draft only; the founder should rewrite it in their own words + before posting. + +## Current Submit Status + +The public submit page currently requires login: +https://news.ycombinator.com/submit + +Status: ready for a logged-in human post. Do not use automation to submit the +comment. + +## Recommended Link + +```text +https://github.com/raintree-technology/docpull +``` + +Why: HN Show HN guidelines prefer something people can try. The repo is +installable, inspectable, and avoids a landing-page-only first impression. + +## Title Draft + +```text +Show HN: DocPull - sync public docs into agent-ready context packs +``` + +Alternates: + +```text +Show HN: DocPull - local web-to-Markdown packs for coding agents +Show HN: DocPull - context dependencies for AI agents +Show HN: DocPull - browser-free public docs extraction for agents +``` + +Use the first title unless the README has shifted to a different primary +positioning. It is specific, technical, and not over-claiming. + +## First Comment Draft + +Rewrite this in the founder's own voice before posting. + +```text +Hi HN, I built DocPull because coding agents and RAG pipelines often depend on public docs, changelogs, standards, and API references that change underneath them. + +The tool is a Python CLI/SDK/MCP server that fetches public static and server-rendered web sources, extracts the useful content, and writes local Markdown, NDJSON, SQLite, or archive outputs with source metadata. The goal is to make web context behave more like a dependency: declared, synced, diffed, cached, validated, and easy to inspect. + +It is browser-free by default. For dynamic pages, the boundary is explicit: either use the local rendering path or use a browser automation tool. I wanted the default path to stay auditable and cheap instead of silently turning every docs crawl into a hosted scraping job. + +Try it: + +pip install docpull +docpull https://docs.python.org/3/library/asyncio.html --single +docpull https://www.python.org/blogs/ --max-pages 25 -o ./python-news + +For MCP: + +pip install 'docpull[mcp]' +docpull mcp + +I would especially like feedback on the boundary between browser-free extraction and full browser automation. What sources would you expect a tool like this to handle, and where should it intentionally stop? +``` + +## Posting Checklist + +- Confirm the repo README has the simplest install command in the first screen. +- Confirm PyPI download count is current if mentioning it in comments. +- Submit the GitHub link with the selected `Show HN:` title. +- Immediately add the rewritten first comment as a normal comment. +- Be available for the first 2-3 hours to answer technical questions. +- Do not message friends, users, or communities asking for upvotes or comments. +- Share later as "we posted, feedback welcome" only where the audience would + naturally care, without asking for votes. + +## Likely Questions To Prepare For + +- Why not use Firecrawl, Jina Reader, Crawlee, agent-browser, or Scrapy? +- What does it do when the useful content is behind JavaScript? +- What anti-abuse and security boundaries exist for agent-selected URLs? +- How does it preserve citations/provenance? +- How does `--budget 0` prevent paid-capable routes? +- What is the MCP tool surface? +- What is the smallest real workflow where DocPull beats a one-off script? diff --git a/docs/v6-sales-pr-automation.md b/docs/v6-sales-pr-automation.md new file mode 100644 index 0000000..b47d40d --- /dev/null +++ b/docs/v6-sales-pr-automation.md @@ -0,0 +1,161 @@ +# DocPull v6 Sales And PR Automation + +This is the systematic operating plan for selling DocPull v6 and turning the +GitHub list work into repeatable PRs from the `zacharyr0th` account. + +## Account Baseline + +Local state checked on 2026-07-04: + +- Git author: `Zachary Roth <100426704+zacharyr0th@users.noreply.github.com>` +- `gh` active account: `zacharyr0th` +- Git protocol: SSH +- Repo remote: `git@github.com:raintree-technology/docpull.git` + +This means PR automation can safely use `gh` and forked branches under +`zacharyr0th`, as long as each PR is reviewed before pushing. + +## Sales Motion + +DocPull should not be sold as "another scraper." The strongest shelf is: + +> Context dependencies for AI agents. + +Use that as the main story on agent, MCP, RAG, and devtool surfaces. Use +"browser-free public web extraction" only where the audience is explicitly +web-scraping or Python web tooling. + +Primary pitch: + +> DocPull lets teams declare the public docs and web sources an agent depends +> on, sync them into cited context packs, diff what changed, and fail CI when +> the evidence is stale. + +The buying argument: + +- Agents are only as reliable as the context loaded into them. +- Vendor docs, API behavior, pricing pages, changelogs, standards, packages, + and repos change constantly. +- Raw URLs and ad hoc browser scraping are not a dependency system. +- DocPull makes context behave like code dependencies: declared, locked, + synced, diffed, validated, and exported. + +## Audience Segments + +1. Agent/MCP builders + - Pain: agents need current docs/tools without relying on raw browser output. + - Lead with: MCP server, context packs, `docpull ci`, local-first workflow. + - CTA: install `docpull[mcp]`, add server to MCP client, run a docs sync. + +2. RAG/search engineers + - Pain: ingestion quality and citations are weak links in RAG systems. + - Lead with: Markdown/NDJSON/chunks/citations, provenance, refresh/diff. + - CTA: build a pack from vendor docs and export JSONL. + +3. Python/web extraction developers + - Pain: need clean public web extraction without browser automation. + - Lead with: static/server-rendered HTML, async fetching, Markdown/SQLite, + safety boundary. + - CTA: `pip install docpull` and fetch one real docs site. + +4. Coding-agent teams + - Pain: generated code breaks because docs in context are stale or uncited. + - Lead with: context dependencies, lockfile, Context CI, and agent-ready + exports. + - CTA: add DocPull to CI as a context gate. + +## Surface-Specific Positioning + +| Surface | Lead with | Avoid | +|---|---|---| +| MCP registries | MCP server for cited context dependencies | Generic scraper copy | +| GitHub MCP lists | Local MCP server, install command, tool surface | Long marketing descriptions | +| Python lists | Python package, CLI/SDK, clean web extraction | Agent hype | +| Web-scraping lists | Public static/server-rendered extraction | MCP/agent automation framing | +| RAG/LLMOps lists | Refreshable cited ingestion packs | "Crawler" as the whole story | +| Product Hunt | Agent context dependency manager | Dense implementation details | +| HN/Reddit | Technical boundary and examples | Launch announcement tone | + +## PR Automation Policy + +Automate the mechanics, not the judgment. + +Do: + +- Generate a per-repo branch from a small recipe. +- Keep one upstream PR per repository. +- Follow the target repo's contribution format exactly. +- Use one-sentence entries for awesome lists. +- Create PR bodies that explain fit and disclose maintainer-facing caveats. +- Log status in `docs/v6-directory-tracker.csv`. + +Do not: + +- Bulk-open PRs across every repo in one shot. +- Submit to weak-fit lists just because automation makes it easy. +- Lead with AI/MCP on `lorien/awesome-web-scraping`; their rules restrict + agent/MCP automation content. +- Open `github/awesome-copilot` until there is a concrete Copilot skill, + plugin, or MCP tool listing to submit. + +## Automation Workflow + +Dry run all recipes: + +```bash +python scripts/github_list_prs.py --recipes docs/v6-github-pr-recipes.json --dry-run +``` + +Prepare one local branch and commit without pushing: + +```bash +python scripts/github_list_prs.py \ + --recipes docs/v6-github-pr-recipes.json \ + --id awesome-mcp-devtools \ + --prepare +``` + +Push and create a PR after reviewing the local diff: + +```bash +python scripts/github_list_prs.py \ + --recipes docs/v6-github-pr-recipes.json \ + --id awesome-mcp-devtools \ + --prepare \ + --push \ + --create-pr +``` + +Recommended launch order: + +1. Official MCP Registry / Glama / Smithery listings. +2. `punkpeye/awesome-mcp-servers`. +3. `punkpeye/awesome-mcp-devtools`. +4. `ml-tooling/best-of-python-dev`. +5. `ml-tooling/best-of-web-python`. +6. `lorien/awesome-web-scraping`, using web extraction framing. +7. `h4ckf0r0day/awesome-ai-web-scraping`, using MCP scraping-server framing. +8. `TensorBlock/awesome-mcp-servers`, using Browser Automation & Web Scraping + category framing. +9. Secondary RAG/LLMOps/agent-harness lists only after a tutorial exists. + +## PR Review Checklist + +Before pushing each PR: + +- The entry is in the correct section. +- The line is concise and factual. +- The link points to `https://github.com/raintree-technology/docpull`. +- The pitch matches that repository's audience. +- The PR title is specific and not promotional. +- The PR body mentions why DocPull belongs in that exact section. +- There are no unrelated file changes from the cloned target repo. + +## Tracking + +Update `docs/v6-directory-tracker.csv` after every submission: + +- `Status`: `PR Open`, `Merged`, `Rejected`, `Needs Changes`, or `Deferred` +- `Submission Date`: ISO date +- `Live URL`: PR URL first, merged listing URL after merge +- `Notes`: maintainer feedback or next action diff --git a/mcp/package.json b/mcp/package.json index 0ee1255..81b58a7 100644 --- a/mcp/package.json +++ b/mcp/package.json @@ -1,60 +1,64 @@ { - "name": "docpull-mcp-lab", - "version": "0.3.0", - "private": true, - "description": "Internal lab for docpull semantic-search MCP experiments", - "type": "module", - "main": "src/server.ts", - "scripts": { - "dev": "bun run src/server.ts", - "ingest": "bun run src/ingest.ts", - "test": "bun test", - "typecheck": "tsc --noEmit" - }, - "knip": { - "ignoreBinaries": [ - "docpull" - ] - }, - "dependencies": { - "@modelcontextprotocol/sdk": "^1.29.0", - "hono": "4.12.27", - "ip-address": "^10.2.0", - "openai": "^6.44.0", - "pg": "^8.22.0", - "yaml": "^2.9.0", - "zod": "^4.4.3" - }, - "overrides": { - "@hono/node-server": "^2.0.4", - "ajv": "^8.18.0", - "fast-uri": "^3.1.2", - "hono": "4.12.25", - "ip-address": "^10.2.0", - "path-to-regexp": "^8.4.2", - "qs": "^6.15.2", - "zod": "^4.4.3" - }, - "devDependencies": { - "@types/node": "^25.9.1", - "@types/pg": "^8.11.10", - "typescript": "^6.0.3" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/raintree-technology/docpull.git", - "directory": "mcp" - }, - "license": "MIT", - "author": "Raintree Technology", - "keywords": [ - "mcp", - "web", - "web-source", - "documentation", - "semantic-search", - "pgvector", - "embeddings", - "claude" - ] + "name": "docpull-mcp-lab", + "version": "0.3.0", + "private": true, + "description": "Internal lab for docpull semantic-search MCP experiments", + "type": "module", + "main": "src/server.ts", + "scripts": { + "dev": "bun run src/server.ts", + "ingest": "bun run src/ingest.ts", + "test": "bun test", + "typecheck": "tsc --noEmit" + }, + "knip": { + "ignoreBinaries": [ + "docpull" + ] + }, + "dependencies": { + "@modelcontextprotocol/sdk": "^1.29.0", + "hono": "4.12.27", + "ip-address": "^10.2.0", + "openai": "^6.44.0", + "pg": "^8.22.0", + "yaml": "^2.9.0", + "zod": "^4.4.3" + }, + "overrides": { + "@hono/node-server": "^2.0.4", + "ajv": "^8.18.0", + "fast-uri": "^3.1.2", + "hono": "4.12.25", + "ip-address": "^10.2.0", + "path-to-regexp": "^8.4.2", + "qs": "^6.15.2", + "zod": "^4.4.3" + }, + "devDependencies": { + "@types/node": "^25.9.1", + "@types/pg": "^8.11.10", + "typescript": "^6.0.3" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/raintree-technology/docpull.git", + "directory": "mcp" + }, + "license": "MIT", + "author": "Raintree Technology", + "keywords": [ + "mcp", + "web", + "web-source", + "documentation", + "semantic-search", + "pgvector", + "embeddings", + "claude" + ], + "packageManager": "bun@1.3.11", + "engines": { + "node": "24.x" + } } diff --git a/mise.lock b/mise.lock new file mode 100644 index 0000000..734d84b --- /dev/null +++ b/mise.lock @@ -0,0 +1,276 @@ +# @generated - this file is auto-generated by `mise lock` https://mise.jdx.dev/dev-tools/mise-lock.html + +[[tools.bun]] +version = "1.3.11" +backend = "core:bun" + +[tools.bun."platforms.linux-arm64"] +checksum = "sha256:d13944da12a53ecc74bf6a720bd1d04c4555c038dfe422365356a7be47691fdf" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-linux-aarch64.zip" + +[tools.bun."platforms.linux-arm64-musl"] +checksum = "sha256:0f5bf5dc3f276053196274bb84f90a44e2fa40c9432bd6757e3247a8d9476a3d" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-linux-aarch64-musl.zip" + +[tools.bun."platforms.linux-x64"] +checksum = "sha256:8611ba935af886f05a6f38740a15160326c15e5d5d07adef966130b4493607ed" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-linux-x64.zip" + +[tools.bun."platforms.linux-x64-baseline"] +checksum = "sha256:abe346f63414547cdf6b35b7a649a490c728b93d006226156923918a84c0e59b" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-linux-x64-baseline.zip" + +[tools.bun."platforms.linux-x64-musl"] +checksum = "sha256:b0fce3bc4fab52f26a1e0d8886dc07fd0c0eb2a274cb343b59c83a2d5997b5b1" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-linux-x64-musl.zip" + +[tools.bun."platforms.linux-x64-musl-baseline"] +checksum = "sha256:2fa2b697f14ada86a28df771d3876ca7606d7453b2339454893b1937aa9c0c7e" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-linux-x64-musl-baseline.zip" + +[tools.bun."platforms.macos-arm64"] +checksum = "sha256:6f5a3467ed9caec4795bf78cd476507d9f870c7d57b86c945fcb338126772ffc" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-darwin-aarch64.zip" + +[tools.bun."platforms.macos-x64"] +checksum = "sha256:c4fe2b9247218b0295f24e895aaec8fee62e74452679a9026b67eacbd611a286" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-darwin-x64.zip" + +[tools.bun."platforms.macos-x64-baseline"] +checksum = "sha256:fb6739b08bf54550edaa7c824cd5b2dca45b6a06afef408443087a63105f6f8d" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-darwin-x64-baseline.zip" + +[tools.bun."platforms.windows-x64"] +checksum = "sha256:066f8694f8b7d8df592452746d18f01710d4053e93030922dbc6e8c34a8c4b9f" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-windows-x64.zip" + +[tools.bun."platforms.windows-x64-baseline"] +checksum = "sha256:9d0e0f923e9626f3bc6044fc32e0d3ab29039aea753f5678ef8801cf26f75288" +url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.11/bun-windows-x64-baseline.zip" + +[[tools.node]] +version = "24.18.0" +backend = "core:node" + +[tools.node."platforms.linux-arm64"] +checksum = "sha256:6b4484c2190274175df9aa8f28e2d758a819cb1c1fe6ab481e2f95b463ab8508" +url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-linux-arm64.tar.gz" + +[tools.node."platforms.linux-arm64-musl"] +checksum = "sha256:b1c6c2dc31b46dd8fb2322f4fe75b07e775c5120bc37251deeea28f529d4567b" +url = "https://unofficial-builds.nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-arm64-musl.tar.gz" + +[tools.node."platforms.linux-x64"] +checksum = "sha256:783130984963db7ba9cbd01089eaf2c2efb055c7c1693c943174b967b3050cb8" +url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-linux-x64.tar.gz" + +[tools.node."platforms.linux-x64-musl"] +checksum = "sha256:ea58409911e141ec6b19d9178efa2d9185a13295005b1cbf5521b3157eed1d95" +url = "https://unofficial-builds.nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-x64-musl.tar.gz" + +[tools.node."platforms.macos-arm64"] +checksum = "sha256:e1a97e14c99c803e96c7339403282ea05a499c32f8d83defe9ef5ec66f979ed1" +url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-darwin-arm64.tar.gz" + +[tools.node."platforms.macos-x64"] +checksum = "sha256:dfd0dbd3e721503434df7b7205e719f61b3a3a31b2bcf9729b8b91fea240f080" +url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-darwin-x64.tar.gz" + +[tools.node."platforms.windows-x64"] +checksum = "sha256:0ae68406b42d7725661da979b1403ec9926da205c6770827f33aac9d8f26e821" +url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-win-x64.zip" + +[[tools.python]] +version = "3.12.13" +backend = "core:python" + +[tools.python."platforms.linux-arm64"] +checksum = "sha256:b85154b9c7ca9de3f85f2c9f032d503151db16ef198de86b885fc61890c075ed" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.12.13+20260623-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-arm64-musl"] +checksum = "sha256:66f59eb91a2c7e4fe11201e71d23abf1e14730e37d7ae86c68c50124f7c6d5b7" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.12.13+20260623-aarch64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64"] +checksum = "sha256:10a452caac7041357805f0c19a60576df53f1ab06d1abfc9200f1f0157cb3bd1" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.12.13+20260623-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64-musl"] +checksum = "sha256:c97f849b60b7baf80c5fe734e905a777d668be86bf530274041682a7a7b239da" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.12.13+20260623-x86_64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-arm64"] +checksum = "sha256:41df7d3ae4757e84b97874f76d634268456aaa271740d33f968d826374998fb7" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.12.13+20260623-aarch64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-x64"] +checksum = "sha256:a6bbea996c5f14eb55ab275889d2df45408deec504b4a7219d7b59c045b2555e" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.12.13+20260623-x86_64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.windows-x64"] +checksum = "sha256:de3e362376859b060fa8b856c434efa81fcf6d4ede3d6e177c7e2169670cac50" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.12.13+20260623-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[[tools.python]] +version = "3.10.20" +backend = "core:python" + +[tools.python."platforms.linux-arm64"] +checksum = "sha256:2d9a5d103129bd8155f0332f3f876df90364038e59945369fa73fed15e6a2474" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.10.20+20260623-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-arm64-musl"] +checksum = "sha256:c69776d67791f33f14e00224bc19f013d9a01a857ae26e9b381fb09adf3a03b8" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.10.20+20260623-aarch64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64"] +checksum = "sha256:ac308036658cee12537c90bf85985f348160663dfab8550f25fc19bf10695573" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.10.20+20260623-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64-musl"] +checksum = "sha256:ada10acaebec935cf04ee1cd580dc52b47f71064ccca75669b5a3241af3eadc2" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.10.20+20260623-x86_64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-arm64"] +checksum = "sha256:1b966fa4f23c0b9a68eafa1c5720c86a622d5fbfedd49a38fe17e18987149caf" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.10.20+20260623-aarch64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-x64"] +checksum = "sha256:7532d3a1a1b53dd302bc91a409fe3c04f52b7e2b619f95c20cc3a59cbb873721" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.10.20+20260623-x86_64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.windows-x64"] +checksum = "sha256:94bd85f03ae02ee090abd694763e5337293d59ee78aae775c1338ac4cb01661f" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.10.20+20260623-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[[tools.python]] +version = "3.11.15" +backend = "core:python" + +[tools.python."platforms.linux-arm64"] +checksum = "sha256:9ac18c9a761e91e6c6452bc0ef0082922a00a3fdec734555635d57c3169309b7" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-arm64-musl"] +checksum = "sha256:bcd414f2e9d8cc5d4ac7fab2c8f912e30379c150fa6b94da19d64daf85cfc5d4" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-aarch64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64"] +checksum = "sha256:0604cd029b142dc223e131f17f5941c0c8d2d5074997c8178b515b19eea2a6c2" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64-musl"] +checksum = "sha256:45bffdb320cf4a2c2dbf183b634aeb7e28f9cb0646f715b2f4117c11084d839a" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-x86_64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-arm64"] +checksum = "sha256:2318799eaf104f8a29bc09a93b0851b05dbbcb4ce9a5f045ddea169c0c7ff3a5" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-aarch64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-x64"] +checksum = "sha256:4925e5aaa9bc77c85302d350b36c1d9def2002996a6bcfa55c88ba6eb318de29" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-x86_64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.windows-x64"] +checksum = "sha256:6589ca6d63f520bec4096d62b3ab91da3d0a80b16b594c99a6b677e335814683" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[[tools.python]] +version = "3.13.14" +backend = "core:python" + +[tools.python."platforms.linux-arm64"] +checksum = "sha256:e931d7a393f54902503f8745ceb35420e7dd50a067e78e5f45c71404f7a15b30" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.13.14+20260623-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-arm64-musl"] +checksum = "sha256:530453a8d47dcf234dbdebb8fdc8fb7277e1edc0f1b6e326e7a80e064318f019" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.13.14+20260623-aarch64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64"] +checksum = "sha256:459ed79967acc207bef2ff5124dac35d74d5108528e37b15395d14e2922f2c92" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.13.14+20260623-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64-musl"] +checksum = "sha256:88a95f01ab0cb402822f803facea2f938d9b4cfe08da3d866629ac21c62c1f83" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.13.14+20260623-x86_64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-arm64"] +checksum = "sha256:795a5aeeb050f00aa8a2214d779bad9f1b9113edb6923317a80c042a11a087d7" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.13.14+20260623-aarch64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-x64"] +checksum = "sha256:fdbe7198fb32f24ab99c67cb68cb265615e0bb6cb6586ffccb629ef9ca868420" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.13.14+20260623-x86_64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.windows-x64"] +checksum = "sha256:7c3159205dda0289a47e6dd1226c4e5800b1f99a03146cdc25a41fed8ef74f5a" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.13.14+20260623-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[[tools.python]] +version = "3.14.6" +backend = "core:python" + +[tools.python."platforms.linux-arm64"] +checksum = "sha256:f177d40ca931df03f660fc006f86ad8cd2ac6e7d6b5d54edbc625103464fc4aa" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.14.6+20260623-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-arm64-musl"] +checksum = "sha256:11d463be3e2d34ea67722acfd8f3f2d6d6e5b6b4d4ab27240f220628134a0141" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.14.6+20260623-aarch64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64"] +checksum = "sha256:c172314f4a8ec137a8f605289010c3d19c8b56867d968f0095074cc68efa1d29" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.14.6+20260623-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.linux-x64-musl"] +checksum = "sha256:f25064ecb3b07cfe2440b178e72001cf1e0d69a5e53625ca3a32b7ae4e2fdcc6" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.14.6+20260623-x86_64-unknown-linux-musl-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-arm64"] +checksum = "sha256:35d774f61d63c1fd4f1bc9495a7ada92e500dc4382a0df8a9910eb87ea48e8cf" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.14.6+20260623-aarch64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.macos-x64"] +checksum = "sha256:12fb3ea3d6a855fe6ca1c2241702b06cb7e5939fbef09a5f54bf326e480f66af" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.14.6+20260623-x86_64-apple-darwin-install_only_stripped.tar.gz" +provenance = "github-attestations" + +[tools.python."platforms.windows-x64"] +checksum = "sha256:ec05b628ad749682d06d225780fbc02e7bbb5ce2146c9bd8e74a3659b14b693a" +url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.14.6+20260623-x86_64-pc-windows-msvc-install_only_stripped.tar.gz" +provenance = "github-attestations" diff --git a/mise.toml b/mise.toml new file mode 100644 index 0000000..9e69666 --- /dev/null +++ b/mise.toml @@ -0,0 +1,44 @@ +# Generated by the code-estate Mise policy; do not hand-edit. +# Estate owners: update the central standards, then run `estate mise sync`. +min_version = "2026.7.1" + +[tools] +"bun" = "1.3.11" +"node" = "24.18.0" +"python" = ["3.12.13", "3.10.20", "3.11.15", "3.13.14", "3.14.6"] + +[tasks."setup"] +description = "Install dependencies" +run = "bun install --frozen-lockfile" + +[tasks."lint"] +description = "Run lint" +run = "bun run lint" + +[tasks."typecheck"] +description = "Run type checking" +run = "bun run typecheck" + +[tasks."test"] +description = "Run tests" +run = "bun run test" + +[tasks."test:unit"] +description = "Run unit tests" +run = "bun run test:unit" + +[tasks."test:e2e"] +description = "Run end-to-end tests" +run = "bun run test:e2e" + +[tasks."build"] +description = "Build the project" +run = "bun run build" + +[tasks."validate"] +description = "Run repository validation" +run = "bun run validate" + +[tasks."validate:full"] +description = "Run full repository validation" +run = "bun run validate:full" diff --git a/package.json b/package.json index 08b8c84..f562e09 100644 --- a/package.json +++ b/package.json @@ -3,18 +3,24 @@ "private": true, "packageManager": "bun@1.3.11", "scripts": { + "dev": "bun run --cwd mcp dev", "build": "uv run --locked --with-requirements requirements-release.txt python scripts/build_release.py --verify-reproducible --clean", - "test": "uv run --locked python -m pytest -q && bun run --cwd mcp test", + "test": "uv run --locked --all-extras python -m pytest -q && bun run --cwd mcp test", + "test:unit": "uv run --locked --all-extras python -m pytest -q", + "test:e2e": "uv run --locked python scripts/real_feature_smoke.py --json", "lint": "uv run --locked python scripts/sync_release_metadata.py --check && uv run --locked python scripts/generate_contract_schemas.py --check && uv run --locked python -m ruff check . && uv run --locked python -m ruff format --check .", - "typecheck": "uv run --locked python -m mypy src && bun run --cwd mcp typecheck", + "lint:fix": "uv run --locked python -m ruff check . --fix && uv run --locked python -m ruff format .", + "format": "uv run --locked python -m ruff format .", + "typecheck": "uv run --locked python -m mypy src && bun run --cwd mcp typecheck && bun run --cwd web typecheck", "validate": "bun run lint && bun run typecheck && bun run test", - "validate:full": "bun run validate && bun run build" + "validate:full": "bun run validate && bun run build && bun run --cwd web build" }, "overrides": { "postcss": "^8.5.10" }, "workspaces": [ - "mcp" + "mcp", + "web" ], "engines": { "node": "24.x" diff --git a/plugin/.codex-plugin/plugin.json b/plugin/.codex-plugin/plugin.json index a8c7c71..04de6d0 100644 --- a/plugin/.codex-plugin/plugin.json +++ b/plugin/.codex-plugin/plugin.json @@ -41,7 +41,9 @@ "Manage user-defined source aliases" ], "websiteURL": "https://github.com/raintree-technology/docpull", - "brandColor": "#2563EB", + "brandColor": "#0F6B5D", + "composerIcon": "./assets/logo.svg", + "logo": "./assets/logo.svg", "defaultPrompt": "Use docpull when I ask about a specific library, framework, SDK, API, website, or public source URL. Prefer cached sources first, fetch only the requested source, and cite source paths when answering." } } diff --git a/plugin/README.md b/plugin/README.md index e64bd40..17ae4b4 100644 --- a/plugin/README.md +++ b/plugin/README.md @@ -1,3 +1,11 @@ +

+ DocPull +

+ # docpull plugin Pull static and server-rendered public web sources into Codex or Claude Code. Local, fast, no API keys. diff --git a/plugin/assets/logo.svg b/plugin/assets/logo.svg new file mode 100644 index 0000000..681438e --- /dev/null +++ b/plugin/assets/logo.svg @@ -0,0 +1,11 @@ + + DocPull + A geometric capital D frame with a small green square inset in its lower-left counter. + + + + diff --git a/scripts/github_list_prs.py b/scripts/github_list_prs.py new file mode 100644 index 0000000..0b9e09b --- /dev/null +++ b/scripts/github_list_prs.py @@ -0,0 +1,270 @@ +#!/usr/bin/env python3 +"""Prepare GitHub awesome-list PRs from local recipes. + +The script is dry-run by default. It only writes to external repositories when +called with --prepare, and it only pushes/opens PRs when --push/--create-pr are +also passed. +""" + +from __future__ import annotations + +import argparse +import json +import shutil +import subprocess +import sys +from dataclasses import dataclass +from pathlib import Path + +DEFAULT_WORKDIR = Path(".tmp/github-list-prs") + + +@dataclass(frozen=True) +class Change: + file: str + mode: str + entry: str + section: str | None = None + + +@dataclass(frozen=True) +class Recipe: + id: str + ready: bool + upstream: str + fork_name: str | None + base_branch: str + branch: str + commit_message: str + title: str + body: str + changes: tuple[Change, ...] + + +def main() -> int: + args = parse_args() + recipes = load_recipes(args.recipes) + selected = [recipe for recipe in recipes if args.id in {None, recipe.id}] + if args.ready_only: + selected = [recipe for recipe in selected if recipe.ready] + if not selected: + print("No recipes selected.", file=sys.stderr) + return 1 + + for recipe in selected: + print_recipe_summary(recipe) + if args.dry_run and not args.prepare: + continue + prepare_recipe(recipe, args) + return 0 + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--recipes", type=Path, required=True, help="Path to recipe JSON") + parser.add_argument("--id", help="Only process one recipe id") + parser.add_argument("--workdir", type=Path, default=DEFAULT_WORKDIR) + parser.add_argument("--ready-only", action="store_true", default=True) + parser.add_argument("--include-deferred", dest="ready_only", action="store_false") + parser.add_argument("--dry-run", action="store_true", default=True) + parser.add_argument("--prepare", action="store_true", help="Clone/fork, edit, and commit locally") + parser.add_argument("--push", action="store_true", help="Push branch to zacharyr0th fork") + parser.add_argument("--create-pr", action="store_true", help="Open PR with gh") + parser.add_argument("--force-reclone", action="store_true", help="Remove existing local clone first") + return parser.parse_args() + + +def load_recipes(path: Path) -> list[Recipe]: + data = json.loads(path.read_text(encoding="utf-8")) + recipes: list[Recipe] = [] + for raw in data: + recipes.append( + Recipe( + id=str(raw["id"]), + ready=bool(raw.get("ready")), + upstream=str(raw["upstream"]), + fork_name=raw.get("fork_name"), + base_branch=str(raw["base_branch"]), + branch=str(raw["branch"]), + commit_message=str(raw["commit_message"]), + title=str(raw["title"]), + body=str(raw["body"]), + changes=tuple( + Change( + file=str(change["file"]), + mode=str(change["mode"]), + entry=str(change["entry"]), + section=change.get("section"), + ) + for change in raw.get("changes", []) + ), + ) + ) + return recipes + + +def print_recipe_summary(recipe: Recipe) -> None: + status = "ready" if recipe.ready else "deferred" + print(f"\n[{recipe.id}] {recipe.upstream} ({status})") + print(f" branch: {recipe.branch}") + print(f" title: {recipe.title}") + for change in recipe.changes: + target = f"{change.file} :: {change.section}" if change.section else change.file + print(f" change: {change.mode} -> {target}") + print(f" {change.entry.splitlines()[0]}") + + +def prepare_recipe(recipe: Recipe, args: argparse.Namespace) -> None: + if not recipe.ready: + raise SystemExit(f"Recipe {recipe.id} is deferred; pass a ready recipe.") + ensure_tools() + + _, upstream_name = recipe.upstream.split("/", 1) + fork_name = recipe.fork_name or upstream_name + repo_dir = args.workdir / fork_name + args.workdir.mkdir(parents=True, exist_ok=True) + + if args.force_reclone and repo_dir.exists(): + shutil.rmtree(repo_dir) + + ensure_fork(recipe.upstream, fork_name) + ensure_clone(repo_dir, recipe.upstream, fork_name) + run(["git", "fetch", "upstream", recipe.base_branch], cwd=repo_dir) + run(["git", "checkout", "-B", recipe.branch, f"upstream/{recipe.base_branch}"], cwd=repo_dir) + + for change in recipe.changes: + apply_change(repo_dir / change.file, change) + + run(["git", "diff", "--", *sorted({change.file for change in recipe.changes})], cwd=repo_dir, check=False) + run(["git", "add", *sorted({change.file for change in recipe.changes})], cwd=repo_dir) + + diff_check = run(["git", "diff", "--cached", "--quiet"], cwd=repo_dir, check=False, capture=True) + if diff_check.returncode == 0: + print(" no staged changes; skipping commit") + else: + run(["git", "commit", "-m", recipe.commit_message], cwd=repo_dir) + + if args.push or args.create_pr: + run(["git", "push", "-u", "origin", recipe.branch, "--force-with-lease"], cwd=repo_dir) + if args.create_pr: + body_path = (repo_dir / ".docpull-pr-body.md").resolve() + body_path.write_text(recipe.body + "\n", encoding="utf-8") + run( + [ + "gh", + "pr", + "create", + "--repo", + recipe.upstream, + "--base", + recipe.base_branch, + "--head", + f"zacharyr0th:{recipe.branch}", + "--title", + recipe.title, + "--body-file", + str(body_path), + ], + cwd=repo_dir, + ) + + +def ensure_tools() -> None: + for tool in ("git", "gh"): + if shutil.which(tool) is None: + raise SystemExit(f"Missing required tool: {tool}") + + +def ensure_fork(upstream: str, fork_name: str) -> None: + fork_repo = f"zacharyr0th/{fork_name}" + result = run(["gh", "repo", "view", fork_repo], check=False, capture=True) + if result.returncode == 0: + return + run(["gh", "repo", "fork", upstream, "--clone=false", "--fork-name", fork_name]) + + +def ensure_clone(repo_dir: Path, upstream: str, name: str) -> None: + if not repo_dir.exists(): + run(["git", "clone", f"https://github.com/zacharyr0th/{name}.git", str(repo_dir)]) + remotes = run(["git", "remote"], cwd=repo_dir, capture=True).stdout.splitlines() + if "upstream" not in remotes: + run(["git", "remote", "add", "upstream", f"https://github.com/{upstream}.git"], cwd=repo_dir) + else: + run(["git", "remote", "set-url", "upstream", f"https://github.com/{upstream}.git"], cwd=repo_dir) + run(["git", "remote", "set-url", "origin", f"https://github.com/zacharyr0th/{name}.git"], cwd=repo_dir) + + +def apply_change(path: Path, change: Change) -> None: + text = path.read_text(encoding="utf-8") + if "docpull" in text.lower(): + print(f" {path}: docpull already present; leaving unchanged") + return + if change.mode == "append_markdown_section": + if not change.section: + raise ValueError("append_markdown_section requires section") + text = append_markdown_section(text, change.section, change.entry) + elif change.mode == "append_yaml_project": + text = append_yaml_project(text, change.entry) + else: + raise ValueError(f"Unsupported change mode: {change.mode}") + path.write_text(text, encoding="utf-8") + + +def append_markdown_section(text: str, section: str, entry: str) -> str: + lines = text.splitlines() + try: + start = next(i for i, line in enumerate(lines) if line.strip() == section) + except StopIteration as exc: + raise ValueError(f"Section not found: {section}") from exc + + heading_level = len(section) - len(section.lstrip("#")) + insert_at = len(lines) + for i in range(start + 1, len(lines)): + line = lines[i] + if line.startswith("#"): + level = len(line) - len(line.lstrip("#")) + if level <= heading_level: + insert_at = i + break + + while insert_at > start and not lines[insert_at - 1].strip(): + insert_at -= 1 + if insert_at > start and lines[insert_at - 1].strip().lower() == "
": + insert_at -= 1 + while insert_at > start and not lines[insert_at - 1].strip(): + insert_at -= 1 + lines.insert(insert_at, entry) + return "\n".join(lines) + "\n" + + +def append_yaml_project(text: str, entry: str) -> str: + stripped = text.rstrip() + return stripped + "\n" + entry.rstrip() + "\n" + + +def run( + cmd: list[str], + *, + cwd: Path | None = None, + check: bool = True, + capture: bool = False, +) -> subprocess.CompletedProcess[str]: + print(" $ " + " ".join(cmd)) + result = subprocess.run( + cmd, + cwd=cwd, + check=False, + text=True, + stdout=subprocess.PIPE if capture else None, + stderr=subprocess.PIPE if capture else None, + ) + if check and result.returncode != 0: + if capture: + print(result.stdout, end="") + print(result.stderr, end="", file=sys.stderr) + raise SystemExit(result.returncode) + return result + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/src/docpull/__init__.py b/src/docpull/__init__.py index 027bcfd..c6d9010 100644 --- a/src/docpull/__init__.py +++ b/src/docpull/__init__.py @@ -1,244 +1,271 @@ +"""DocPull — reproducible context dependencies for AI agents. + +The public SDK is loaded lazily. Importing :mod:`docpull` is common to every +CLI command and Python submodule import, so the package root must not eagerly +load optional workflows or rendering backends. Attribute access and +``from docpull import ...`` retain the public contract while loading only the +module that owns the requested symbol. """ -docpull - Context dependencies for AI agents. +# ruff: noqa: F401 - TYPE_CHECKING imports document the lazy public re-exports. -Usage: - from docpull import Fetcher, DocpullConfig, ProfileName +from __future__ import annotations - config = DocpullConfig( - url="https://docs.example.com", - profile=ProfileName.RAG, - ) +from importlib import import_module +from typing import TYPE_CHECKING, Any - async with Fetcher(config) as fetcher: - async for event in fetcher.run(): - print(event) -""" +from .surface import PUBLIC_SDK_EXPORTS __version__ = "6.2.0" -from .cache import CacheManager, StreamingDeduplicator -from .context_ci import CIThresholds, ContextCIError, run_context_ci -from .context_packs import ( - async_build_dataset_pack, - async_build_package_pack, - async_build_paper_pack, - async_build_repo_pack, - async_build_standards_pack, - async_build_transcript_pack, - async_build_wiki_pack, - build_brand_pack, - build_dataset_pack, - build_feed_pack, - build_image_pack, - build_openapi_pack, - build_package_pack, - build_paper_pack, - build_policy_pack, - build_product_pack, - build_repo_pack, - build_standards_pack, - build_styleguide_pack, - build_transcript_pack, - build_wiki_pack, - capture_screenshot_pack, -) -from .contracts import ( - ArtifactManifest, - ChangeEvent, - EvidenceSpan, - IntelligenceBundle, - SourceAuthority, - WorkflowRequest, - WorkflowResult, - bundled_schema_path, - write_contract_schemas, -) -from .conversion.chunking import Chunk, TokenCounter, chunk_markdown -from .core.fetcher import Fetcher, fetch_blocking, fetch_one -from .document_parse import DocumentParseError, ParsedDocument, parse_documents, parse_one_document -from .exports import ExportResult, export_pack -from .graph import ( - GraphError, - build_graph, - graph_neighbors, - graph_status, - load_graph, - query_graph, - refresh_graph, -) -from .local_workflows import audit_pack, refresh_pack -from .models.config import ( - BudgetConfig, - CacheConfig, - ContentFilterConfig, - CrawlConfig, - DocpullConfig, - NetworkConfig, - OutputConfig, - PerformanceConfig, - ProfileName, - RenderActionPolicy, - RenderConfig, - RenderViewport, -) -from .models.events import EventType, FetchEvent, FetchStats -from .output_contract import validate_pack_contract -from .pack_reader import LocalPack, PackReadError, PackSource, load_pack -from .pack_tools import ( - build_citation_map, - build_company_brain_bundle, - build_intelligence_bundle, - build_research_brief, - diff_packs, - extract_pack_entities, - prepare_pack, - score_pack, - score_pack_sources, - search_pack, -) -from .pipeline.base import PageContext -from .pipeline.steps import SqliteSearchResult, search_sqlite_documents -from .policy import PolicyConfig -from .rendering import ( - AgentBrowserRenderer, - E2BSandboxRenderer, - RenderedPage, - Renderer, - RenderError, - RendererUnavailableError, - VercelSandboxRenderer, - agent_browser_binary, - check_agent_browser_availability, - check_e2b_sandbox_availability, - check_render_backend_availability, - check_vercel_sandbox_availability, - estimate_cloud_render_cost_usd, - render_url, - render_url_to_directory, -) -from .server import PackASGIApp, PackServerError, create_pack_app -from .share import ReportHTTPServer, ShareError, create_report_server, render_report_document -from .surface import PUBLIC_SDK_EXPORTS -from .workflows import async_run_workflow, create_workflow_request, run_workflow +_LAZY_EXPORTS: dict[str, tuple[str, str]] = { + **{ + name: (".context_packs", name) + for name in ( + "async_build_dataset_pack", + "async_build_package_pack", + "async_build_paper_pack", + "async_build_repo_pack", + "async_build_standards_pack", + "async_build_transcript_pack", + "async_build_wiki_pack", + "build_brand_pack", + "build_dataset_pack", + "build_feed_pack", + "build_image_pack", + "build_openapi_pack", + "build_package_pack", + "build_paper_pack", + "build_policy_pack", + "build_product_pack", + "build_repo_pack", + "build_standards_pack", + "build_styleguide_pack", + "build_transcript_pack", + "build_wiki_pack", + "capture_screenshot_pack", + ) + }, + **{ + name: (".contracts", name) + for name in ( + "ArtifactManifest", + "ChangeEvent", + "EvidenceSpan", + "IntelligenceBundle", + "SourceAuthority", + "WorkflowRequest", + "WorkflowResult", + "bundled_schema_path", + "write_contract_schemas", + ) + }, + **{ + name: (".workflows", name) + for name in ("async_run_workflow", "create_workflow_request", "run_workflow") + }, + **{name: (".core.fetcher", name) for name in ("Fetcher", "fetch_blocking", "fetch_one")}, + **{name: (".conversion.chunking", name) for name in ("Chunk", "TokenCounter", "chunk_markdown")}, + "PageContext": (".pipeline.base", "PageContext"), + **{name: (".pipeline.steps", name) for name in ("SqliteSearchResult", "search_sqlite_documents")}, + **{ + name: (".models.config", name) + for name in ( + "BudgetConfig", + "CacheConfig", + "ContentFilterConfig", + "CrawlConfig", + "DocpullConfig", + "NetworkConfig", + "OutputConfig", + "PerformanceConfig", + "ProfileName", + "RenderActionPolicy", + "RenderConfig", + "RenderViewport", + ) + }, + **{name: (".models.events", name) for name in ("EventType", "FetchEvent", "FetchStats")}, + **{name: (".cache", name) for name in ("CacheManager", "StreamingDeduplicator")}, + "PolicyConfig": (".policy", "PolicyConfig"), + **{name: (".local_workflows", name) for name in ("audit_pack", "refresh_pack")}, + **{ + name: (".document_parse", name) + for name in ("DocumentParseError", "ParsedDocument", "parse_documents", "parse_one_document") + }, + **{ + name: (".pack_tools", name) + for name in ( + "build_citation_map", + "build_company_brain_bundle", + "build_intelligence_bundle", + "build_research_brief", + "diff_packs", + "extract_pack_entities", + "prepare_pack", + "score_pack", + "score_pack_sources", + "search_pack", + ) + }, + "validate_pack_contract": (".output_contract", "validate_pack_contract"), + **{name: (".context_ci", name) for name in ("CIThresholds", "ContextCIError", "run_context_ci")}, + **{name: (".exports", name) for name in ("ExportResult", "export_pack")}, + **{name: (".pack_reader", name) for name in ("LocalPack", "PackReadError", "PackSource", "load_pack")}, + **{ + name: (".graph", name) + for name in ( + "GraphError", + "build_graph", + "graph_neighbors", + "graph_status", + "load_graph", + "query_graph", + "refresh_graph", + ) + }, + **{name: (".server", name) for name in ("PackASGIApp", "PackServerError", "create_pack_app")}, + **{ + name: (".share", name) + for name in ("ReportHTTPServer", "ShareError", "create_report_server", "render_report_document") + }, + **{ + name: (".rendering", name) + for name in ( + "AgentBrowserRenderer", + "E2BSandboxRenderer", + "RenderedPage", + "Renderer", + "RenderError", + "RendererUnavailableError", + "VercelSandboxRenderer", + "agent_browser_binary", + "check_agent_browser_availability", + "check_e2b_sandbox_availability", + "check_render_backend_availability", + "check_vercel_sandbox_availability", + "estimate_cloud_render_cost_usd", + "render_url", + "render_url_to_directory", + ) + }, +} + +__all__ = list(PUBLIC_SDK_EXPORTS) + + +def __getattr__(name: str) -> Any: + """Load one public SDK symbol on first access and cache it locally.""" + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + """Include lazy public attributes in interactive discovery.""" + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .cache import CacheManager, StreamingDeduplicator + from .context_ci import CIThresholds, ContextCIError, run_context_ci + from .context_packs import ( + async_build_dataset_pack, + async_build_package_pack, + async_build_paper_pack, + async_build_repo_pack, + async_build_standards_pack, + async_build_transcript_pack, + async_build_wiki_pack, + build_brand_pack, + build_dataset_pack, + build_feed_pack, + build_image_pack, + build_openapi_pack, + build_package_pack, + build_paper_pack, + build_policy_pack, + build_product_pack, + build_repo_pack, + build_standards_pack, + build_styleguide_pack, + build_transcript_pack, + build_wiki_pack, + capture_screenshot_pack, + ) + from .contracts import ( + ArtifactManifest, + ChangeEvent, + EvidenceSpan, + IntelligenceBundle, + SourceAuthority, + WorkflowRequest, + WorkflowResult, + bundled_schema_path, + write_contract_schemas, + ) + from .conversion.chunking import Chunk, TokenCounter, chunk_markdown + from .core.fetcher import Fetcher, fetch_blocking, fetch_one + from .document_parse import DocumentParseError, ParsedDocument, parse_documents, parse_one_document + from .exports import ExportResult, export_pack + from .graph import GraphError, build_graph, graph_neighbors, graph_status, load_graph, query_graph, refresh_graph + from .local_workflows import audit_pack, refresh_pack + from .models.config import ( + BudgetConfig, + CacheConfig, + ContentFilterConfig, + CrawlConfig, + DocpullConfig, + NetworkConfig, + OutputConfig, + PerformanceConfig, + ProfileName, + RenderActionPolicy, + RenderConfig, + RenderViewport, + ) + from .models.events import EventType, FetchEvent, FetchStats + from .output_contract import validate_pack_contract + from .pack_reader import LocalPack, PackReadError, PackSource, load_pack + from .pack_tools import ( + build_citation_map, + build_company_brain_bundle, + build_intelligence_bundle, + build_research_brief, + diff_packs, + extract_pack_entities, + prepare_pack, + score_pack, + score_pack_sources, + search_pack, + ) + from .pipeline.base import PageContext + from .pipeline.steps import SqliteSearchResult, search_sqlite_documents + from .policy import PolicyConfig + from .rendering import ( + AgentBrowserRenderer, + E2BSandboxRenderer, + RenderedPage, + Renderer, + RenderError, + RendererUnavailableError, + VercelSandboxRenderer, + agent_browser_binary, + check_agent_browser_availability, + check_e2b_sandbox_availability, + check_render_backend_availability, + check_vercel_sandbox_availability, + estimate_cloud_render_cost_usd, + render_url, + render_url_to_directory, + ) + from .server import PackASGIApp, PackServerError, create_pack_app + from .share import ReportHTTPServer, ShareError, create_report_server, render_report_document + from .workflows import async_run_workflow, create_workflow_request, run_workflow -__all__ = [ - "__version__", - "async_build_dataset_pack", - "async_build_package_pack", - "async_build_paper_pack", - "async_build_repo_pack", - "async_build_standards_pack", - "async_build_transcript_pack", - "async_build_wiki_pack", - "async_run_workflow", - "ArtifactManifest", - "ChangeEvent", - "EvidenceSpan", - "IntelligenceBundle", - "SourceAuthority", - "WorkflowRequest", - "WorkflowResult", - "bundled_schema_path", - "write_contract_schemas", - "create_workflow_request", - "run_workflow", - "Fetcher", - "fetch_blocking", - "fetch_one", - "refresh_pack", - "audit_pack", - "build_dataset_pack", - "build_brand_pack", - "build_feed_pack", - "build_openapi_pack", - "build_package_pack", - "build_paper_pack", - "build_policy_pack", - "build_product_pack", - "build_repo_pack", - "build_standards_pack", - "build_styleguide_pack", - "build_transcript_pack", - "build_wiki_pack", - "build_image_pack", - "capture_screenshot_pack", - "parse_documents", - "parse_one_document", - "DocumentParseError", - "ParsedDocument", - "score_pack", - "score_pack_sources", - "diff_packs", - "build_citation_map", - "build_intelligence_bundle", - "build_company_brain_bundle", - "extract_pack_entities", - "search_pack", - "build_research_brief", - "prepare_pack", - "validate_pack_contract", - "run_context_ci", - "ContextCIError", - "CIThresholds", - "export_pack", - "ExportResult", - "GraphError", - "build_graph", - "load_graph", - "graph_status", - "query_graph", - "graph_neighbors", - "refresh_graph", - "load_pack", - "LocalPack", - "PackReadError", - "PackSource", - "create_pack_app", - "PackASGIApp", - "PackServerError", - "create_report_server", - "render_report_document", - "ReportHTTPServer", - "ShareError", - "PageContext", - "PolicyConfig", - "DocpullConfig", - "ProfileName", - "CrawlConfig", - "ContentFilterConfig", - "OutputConfig", - "NetworkConfig", - "PerformanceConfig", - "CacheConfig", - "BudgetConfig", - "RenderActionPolicy", - "RenderConfig", - "RenderViewport", - "Renderer", - "RenderedPage", - "AgentBrowserRenderer", - "VercelSandboxRenderer", - "E2BSandboxRenderer", - "RenderError", - "RendererUnavailableError", - "agent_browser_binary", - "check_agent_browser_availability", - "check_vercel_sandbox_availability", - "check_e2b_sandbox_availability", - "check_render_backend_availability", - "estimate_cloud_render_cost_usd", - "render_url", - "render_url_to_directory", - "EventType", - "FetchEvent", - "FetchStats", - "SqliteSearchResult", - "search_sqlite_documents", - "CacheManager", - "StreamingDeduplicator", - "Chunk", - "TokenCounter", - "chunk_markdown", -] assert tuple(__all__) == PUBLIC_SDK_EXPORTS +assert set(_LAZY_EXPORTS) == set(__all__) - {"__version__"} diff --git a/src/docpull/basis.py b/src/docpull/basis.py index da798b7..dd61b9f 100644 --- a/src/docpull/basis.py +++ b/src/docpull/basis.py @@ -7,7 +7,7 @@ from pathlib import Path from typing import Any, Literal -from .pack_reader import PackReadError, load_pack +from .pack_reader import LocalPack, PackReadError, load_pack from .time_utils import utc_now_iso BasisConfidence = Literal["high", "medium", "low"] @@ -249,22 +249,26 @@ def build_pack_basis( claim: str, limit: int = 5, producer: str = "docpull.pack.basis", + _pack: LocalPack | None = None, ) -> list[dict[str, Any]]: """Build basis records for a claim from local pack search results.""" - try: - pack = load_pack(pack_dir) - except PackReadError as err: - return [ - basis_record( - claim_path=claim_path, - claim=claim, - confidence="low", - evidence_state="insufficient", - warnings=[str(err)], - producer=producer, - ) - ] + if _pack is None: + try: + pack = load_pack(pack_dir) + except PackReadError as err: + return [ + basis_record( + claim_path=claim_path, + claim=claim, + confidence="low", + evidence_state="insufficient", + warnings=[str(err)], + producer=producer, + ) + ] + else: + pack = _pack if not pack.documents: return [ basis_record( diff --git a/src/docpull/cache/__init__.py b/src/docpull/cache/__init__.py index 5ed9737..eb956f4 100644 --- a/src/docpull/cache/__init__.py +++ b/src/docpull/cache/__init__.py @@ -1,8 +1,19 @@ -"""Caching and deduplication for docpull.""" +"""Caching, durable crawl frontier, and streaming deduplication.""" +# ruff: noqa: F401 - TYPE_CHECKING imports document lazy public re-exports. -from .frontier import FrontierEntry, FrontierState, FrontierStore -from .manager import DEFAULT_TTL_DAYS, CacheManager, CacheState, ManifestEntry -from .streaming_dedup import StreamingDeduplicator +from __future__ import annotations + +from importlib import import_module +from typing import TYPE_CHECKING, Any + +_LAZY_EXPORTS = { + **{name: (".frontier", name) for name in ("FrontierEntry", "FrontierState", "FrontierStore")}, + **{ + name: (".manager", name) + for name in ("DEFAULT_TTL_DAYS", "CacheManager", "CacheState", "ManifestEntry") + }, + "StreamingDeduplicator": (".streaming_dedup", "StreamingDeduplicator"), +} __all__ = [ "CacheManager", @@ -14,3 +25,26 @@ "StreamingDeduplicator", "DEFAULT_TTL_DAYS", ] + + +def __getattr__(name: str) -> Any: + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .frontier import FrontierEntry, FrontierState, FrontierStore + from .manager import DEFAULT_TTL_DAYS, CacheManager, CacheState, ManifestEntry + from .streaming_dedup import StreamingDeduplicator + + +assert set(_LAZY_EXPORTS) == set(__all__) diff --git a/src/docpull/cache/frontier.py b/src/docpull/cache/frontier.py index 6d55468..21524b2 100644 --- a/src/docpull/cache/frontier.py +++ b/src/docpull/cache/frontier.py @@ -9,7 +9,7 @@ from pathlib import Path from typing import Any -from ..models.run import FRONTIER_SCHEMA_VERSION +from ..models.schema import FRONTIER_SCHEMA_VERSION from ..time_utils import utc_now_iso logger = logging.getLogger(__name__) @@ -82,21 +82,26 @@ class FrontierStore: def __init__(self, path: Path): self.path = Path(path) + self.journal_path = self.path.with_suffix(self.path.suffix + ".journal") self.entries: dict[str, FrontierEntry] = {} self.start_url: str | None = None self.run_fingerprint: dict[str, object] | None = None self.created_at: str | None = None self.updated_at: str | None = None + self._journal_needs_separator = False self._load() def _load(self) -> None: - if not self.path.exists(): - return - try: - data = json.loads(self.path.read_text(encoding="utf-8")) - except (OSError, json.JSONDecodeError) as err: - logger.warning("Could not load frontier store %s: %s", self.path, err) - return + if self.path.exists(): + try: + data = json.loads(self.path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError) as err: + logger.warning("Could not load frontier store %s: %s", self.path, err) + else: + self._load_snapshot(data) + self._replay_journal() + + def _load_snapshot(self, data: object) -> None: if not isinstance(data, dict) or data.get("schema_version") != FRONTIER_SCHEMA_VERSION: return entries = data.get("entries") @@ -114,6 +119,54 @@ def _load(self) -> None: if entry: self.entries[entry.url] = entry + def _replay_journal(self) -> None: + """Apply complete transition records after the last snapshot.""" + if not self.journal_path.exists(): + return + try: + with self.journal_path.open(encoding="utf-8") as journal: + for line_number, line in enumerate(journal, start=1): + if not line.strip(): + continue + try: + update = json.loads(line) + except json.JSONDecodeError: + if not line.endswith("\n"): + self._journal_needs_separator = True + logger.warning( + "Ignoring incomplete frontier journal record %s:%d", + self.journal_path, + line_number, + ) + continue + if not isinstance(update, dict): + continue + if update.get("schema_version") != FRONTIER_SCHEMA_VERSION: + continue + raw_entry = update.get("entry") + if not isinstance(raw_entry, dict): + continue + entry = FrontierEntry.from_json(raw_entry) + if entry is not None: + self.entries[entry.url] = entry + self.updated_at = entry.updated_at + except OSError as err: + logger.warning("Could not load frontier journal %s: %s", self.journal_path, err) + + def _append_entry(self, entry: FrontierEntry) -> None: + """Durably append one URL transition without rewriting the frontier.""" + self.path.parent.mkdir(parents=True, exist_ok=True) + payload = { + "schema_version": FRONTIER_SCHEMA_VERSION, + "entry": entry.to_json(), + } + with self.journal_path.open("a", encoding="utf-8") as journal: + if self._journal_needs_separator and self.journal_path.stat().st_size: + journal.write("\n") + self._journal_needs_separator = False + journal.write(json.dumps(payload, ensure_ascii=False, separators=(",", ":"))) + journal.write("\n") + def save(self) -> None: self.path.parent.mkdir(parents=True, exist_ok=True) now = utc_now_iso() @@ -132,10 +185,17 @@ def save(self) -> None: try: tmp.write_text(json.dumps(data, indent=2, ensure_ascii=False) + "\n", encoding="utf-8") tmp.replace(self.path) + self.journal_path.unlink(missing_ok=True) + self._journal_needs_separator = False except Exception: tmp.unlink(missing_ok=True) raise + def flush(self) -> None: + """Compact pending journal transitions into the stable snapshot.""" + if self.journal_path.exists(): + self.save() + def initialize(self, *, start_url: str, run_fingerprint: dict[str, object]) -> None: if self.start_url != start_url or self.run_fingerprint != run_fingerprint: self.entries.clear() @@ -164,7 +224,7 @@ def mark_processing(self, url: str) -> None: entry.state = FrontierState.PROCESSING entry.attempts += 1 entry.updated_at = utc_now_iso() - self.save() + self._append_entry(entry) def mark_succeeded(self, url: str) -> None: self._mark_terminal(url, FrontierState.SUCCEEDED) @@ -183,7 +243,7 @@ def _mark_terminal(self, url: str, state: FrontierState, error: str | None = Non entry.state = state entry.last_error = error entry.updated_at = utc_now_iso() - self.save() + self._append_entry(entry) def pending_urls(self) -> list[str]: terminal = {FrontierState.SUCCEEDED, FrontierState.SKIPPED} @@ -192,8 +252,10 @@ def pending_urls(self) -> list[str]: def clear(self) -> None: if self.path.exists(): self.path.unlink() + self.journal_path.unlink(missing_ok=True) self.entries.clear() self.start_url = None self.run_fingerprint = None self.created_at = None self.updated_at = None + self._journal_needs_separator = False diff --git a/src/docpull/cache/manager.py b/src/docpull/cache/manager.py index 097bf71..60a11bb 100644 --- a/src/docpull/cache/manager.py +++ b/src/docpull/cache/manager.py @@ -234,6 +234,7 @@ def flush(self) -> None: """ self._save_manifest() self._save_state() + self.frontier.flush() def __enter__(self) -> CacheManager: """Context manager entry.""" @@ -415,7 +416,11 @@ def save_discovered_urls( } if config_fingerprint is not None: data["config_fingerprint"] = config_fingerprint - self.frontier.initialize(start_url=start_url, run_fingerprint=config_fingerprint) + if not self.frontier.compatible( + start_url=start_url, + run_fingerprint=config_fingerprint, + ): + self.frontier.initialize(start_url=start_url, run_fingerprint=config_fingerprint) self.frontier.add_many(urls, source="discovery") self.frontier.save() try: diff --git a/src/docpull/cli.py b/src/docpull/cli.py index 75c6c77..ed7a149 100644 --- a/src/docpull/cli.py +++ b/src/docpull/cli.py @@ -7,8 +7,9 @@ import json import sys import tempfile +from importlib import import_module from pathlib import Path -from typing import Literal, cast +from typing import TYPE_CHECKING, Any, Literal, cast if "--doctor" in sys.argv: from .doctor import run_doctor @@ -21,54 +22,63 @@ output_dir = Path(sys.argv[flag_idx + 1]) sys.exit(run_doctor(output_dir=output_dir)) -try: - import aiohttp # noqa: F401 - import bs4 # noqa: F401 - import defusedxml # noqa: F401 - import html2text # noqa: F401 - import rich # noqa: F401 -except ImportError as e: - print(f"\nERROR: Missing required dependency: {e.name}", file=sys.stderr) - print("\nDocpull requires all core dependencies to be installed.", file=sys.stderr) - print("\nRecommended fixes:", file=sys.stderr) - print(" 1. For pipx users: pipx reinstall docpull --force", file=sys.stderr) - print(" 2. For pip users: pip install --upgrade --force-reinstall docpull", file=sys.stderr) - print(" 3. For development: pip install -e .[dev]", file=sys.stderr) - print("\nTo diagnose issues, run: docpull --doctor", file=sys.stderr) - sys.exit(1) - -from rich.console import Console -from rich.markup import escape -from rich.progress import Progress, SpinnerColumn, TextColumn - from . import __version__ -from .accounting import ( - BudgetError, - RunAccounting, - blocked_action, - default_route_steps, - effective_budget_limit, - enforce_paid_budget, - maybe_write_run_accounting, - parse_budget_value, -) -from .core.fetcher import Fetcher -from .models.config import DEFAULT_CLOUD_ARTIFACT_PATH, DocpullConfig, ProfileName, RenderConfig -from .models.events import EventType, SkipReason -from .rendering import ( - AgentBrowserRenderer, - Renderer, - RenderError, - VercelSandboxRenderer, - check_render_backend_availability, - estimate_cloud_render_cost_usd, - render_url_to_directory, -) -from .skill_export import default_skill_root, expand_skill_agents from .surface import PRUNED_CLI_COMMANDS, format_cli_subcommands +if TYPE_CHECKING: + from .models.config import DocpullConfig + from .models.events import SkipReason + from .rendering import CloudSandboxBackend, Renderer + RenderBackend = Literal["agent-browser", "vercel-sandbox", "e2b-sandbox"] +_CLI_LAZY_EXPORTS = { + "Fetcher": (".core.fetcher", "Fetcher"), + "check_render_backend_availability": ( + ".rendering", + "check_render_backend_availability", + ), + "render_url_to_directory": (".rendering", "render_url_to_directory"), +} + + +def __getattr__(name: str) -> object: + """Preserve CLI test/integration seams without eager heavy imports.""" + target = _CLI_LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __package__), attribute_name) + globals()[name] = value + return value + + +def _parse_budget_value(value: str) -> float: + """Load budget parsing only when argparse sees a budget value.""" + from .accounting import parse_budget_value + + return parse_budget_value(value) + + +def _core_dependencies_available() -> bool: + """Keep the friendly fetch dependency error off unrelated CLI paths.""" + try: + import aiohttp # noqa: F401 + import bs4 # noqa: F401 + import defusedxml # noqa: F401 + import html2text # noqa: F401 + import rich # noqa: F401 + except ImportError as err: + print(f"\nERROR: Missing required dependency: {err.name}", file=sys.stderr) + print("\nDocpull requires all core dependencies to be installed.", file=sys.stderr) + print("\nRecommended fixes:", file=sys.stderr) + print(" 1. For pipx users: pipx reinstall docpull --force", file=sys.stderr) + print(" 2. For pip users: pip install --upgrade --force-reinstall docpull", file=sys.stderr) + print(" 3. For development: pip install -e .[dev]", file=sys.stderr) + print("\nTo diagnose issues, run: docpull --doctor", file=sys.stderr) + return False + return True + def _write_fetch_accounting( *, @@ -79,6 +89,9 @@ def _write_fetch_accounting( paid_capable: bool, skip_counts: dict[SkipReason, int] | None = None, ) -> None: + from .accounting import RunAccounting, maybe_write_run_accounting + from .models.events import SkipReason + cache_hits = 0 if skip_counts: cache_hits = int(skip_counts.get(SkipReason.CACHE_UNCHANGED, 0)) @@ -251,7 +264,7 @@ def create_parser() -> argparse.ArgumentParser: ) parser.add_argument( "--budget", - type=parse_budget_value, + type=_parse_budget_value, default=None, metavar="USD", help="Maximum paid-capable provider/cloud spend for this run. Use 0 for zero paid calls.", @@ -597,6 +610,27 @@ def create_parser() -> argparse.ArgumentParser: def run_fetcher(args: argparse.Namespace) -> int: """Run the fetcher with given arguments.""" + if not _core_dependencies_available(): + return 1 + + from rich.console import Console + from rich.markup import escape + from rich.progress import Progress, SpinnerColumn, TextColumn + + from .accounting import ( + BudgetError, + RunAccounting, + blocked_action, + default_route_steps, + enforce_paid_budget, + maybe_write_run_accounting, + ) + from .models.config import DocpullConfig, ProfileName + from .models.events import EventType, SkipReason + from .rendering import estimate_cloud_render_cost_usd + from .skill_export import default_skill_root, expand_skill_agents + + fetcher_class: Any = globals().get("Fetcher") or __getattr__("Fetcher") console = Console() if not args.url: @@ -874,7 +908,7 @@ async def run() -> int: console.print() try: - async with Fetcher(config) as fetcher: + async with fetcher_class(config) as fetcher: # Handle --preview-urls mode if args.preview_urls: urls = await fetcher.discover() @@ -1023,6 +1057,32 @@ def run_render_cli(argv: list[str]) -> int: return _run_render_init_cli(argv[1:]) if argv and argv[0] == "doctor": return _run_render_doctor_cli() + + from rich.console import Console + from rich.markup import escape + + from .accounting import ( + BudgetError, + RunAccounting, + blocked_action, + default_route_steps, + effective_budget_limit, + enforce_paid_budget, + maybe_write_run_accounting, + ) + from .models.config import DEFAULT_CLOUD_ARTIFACT_PATH, RenderConfig + from .rendering import ( + RenderError, + estimate_cloud_render_cost_usd, + ) + + check_render_backend: Any = globals().get("check_render_backend_availability") or __getattr__( + "check_render_backend_availability" + ) + render_to_directory: Any = globals().get("render_url_to_directory") or __getattr__( + "render_url_to_directory" + ) + output_dir_explicit = any( arg in {"--output-dir", "-o"} or arg.startswith("--output-dir=") @@ -1128,7 +1188,7 @@ def run_render_cli(argv: list[str]) -> int: ) parser.add_argument( "--budget", - type=parse_budget_value, + type=_parse_budget_value, default=None, metavar="USD", help="Maximum paid-capable provider/cloud spend for this render. Use 0 for zero paid calls.", @@ -1166,7 +1226,7 @@ def run_render_cli(argv: list[str]) -> int: agent_browser_binary=args.agent_browser_bin, vercel_sandbox_binary=args.vercel_sandbox_bin, ) - available, message = check_render_backend_availability(backend, binary=binary) + available, message = check_render_backend(backend, binary=binary) style = "green" if available else "yellow" console.print(f"[{style}]{escape(message)}[/{style}]") return 0 if available else 1 @@ -1198,7 +1258,7 @@ def run_render_cli(argv: list[str]) -> int: args.cloud_max_estimated_cost if backend in {"vercel-sandbox", "e2b-sandbox"} else None, ) cloud_estimated_cost = ( - estimate_cloud_render_cost_usd(backend, config) + estimate_cloud_render_cost_usd(cast("CloudSandboxBackend", backend), config) if backend in {"vercel-sandbox", "e2b-sandbox"} else 0.0 ) @@ -1259,7 +1319,7 @@ async def run() -> int: vercel_sandbox_binary=args.vercel_sandbox_bin, agent_browser_binary=args.agent_browser_bin, ) - artifact = await render_url_to_directory( + artifact = await render_to_directory( args.url, output_dir, config=config, @@ -1300,6 +1360,13 @@ async def run() -> int: def _run_render_doctor_cli() -> int: + from rich.console import Console + from rich.markup import escape + + check_render_backend: Any = globals().get("check_render_backend_availability") or __getattr__( + "check_render_backend_availability" + ) + console = Console() checks = [ ("local", "agent-browser"), @@ -1308,7 +1375,7 @@ def _run_render_doctor_cli() -> int: ] exit_code = 0 for runtime, backend in checks: - available, message = check_render_backend_availability(backend) + available, message = check_render_backend(backend) style = "green" if available else "yellow" console.print(f"[{style}]{runtime}:[/{style}] {escape(message)}") if runtime == "local" and not available: @@ -1321,6 +1388,8 @@ def _run_render_doctor_cli() -> int: def _run_render_init_cli(argv: list[str]) -> int: + from rich.console import Console + parser = argparse.ArgumentParser( prog="docpull render init", description="Print a sandbox template recipe for agent-browser rendering", @@ -1404,6 +1473,8 @@ def _renderer_for_render_cli_backend( vercel_sandbox_binary: str | None, agent_browser_binary: str | None, ) -> Renderer | None: + from .rendering import AgentBrowserRenderer, VercelSandboxRenderer + if backend == "agent-browser": return AgentBrowserRenderer(binary=agent_browser_binary) if agent_browser_binary else None if backend == "vercel-sandbox": diff --git a/src/docpull/context_packs/__init__.py b/src/docpull/context_packs/__init__.py index 6fc07f8..0a05b45 100644 --- a/src/docpull/context_packs/__init__.py +++ b/src/docpull/context_packs/__init__.py @@ -1,46 +1,64 @@ """Typed local context-pack workflows.""" +# ruff: noqa: F401 - TYPE_CHECKING imports document lazy public re-exports. from __future__ import annotations +from importlib import import_module +from typing import TYPE_CHECKING, Any + from ..surface import PUBLIC_CONTEXT_PACK_EXPORTS -from .brand import build_brand_pack -from .dataset import async_build_dataset_pack, build_dataset_pack -from .feed import build_feed_pack -from .openapi import build_openapi_pack -from .package import async_build_package_pack, build_package_pack -from .paper import async_build_paper_pack, build_paper_pack -from .policy_pack import build_policy_pack -from .product import build_product_pack -from .repo import async_build_repo_pack, build_repo_pack -from .standards import async_build_standards_pack, build_standards_pack -from .styleguide import build_styleguide_pack -from .transcript import async_build_transcript_pack, build_transcript_pack -from .visuals import build_image_pack, capture_screenshot_pack -from .wiki import async_build_wiki_pack, build_wiki_pack - -__all__ = [ - "async_build_dataset_pack", - "async_build_package_pack", - "async_build_paper_pack", - "async_build_repo_pack", - "async_build_standards_pack", - "async_build_transcript_pack", - "async_build_wiki_pack", - "build_brand_pack", - "build_dataset_pack", - "build_feed_pack", - "build_openapi_pack", - "build_package_pack", - "build_paper_pack", - "build_policy_pack", - "build_product_pack", - "build_repo_pack", - "build_standards_pack", - "build_styleguide_pack", - "build_transcript_pack", - "build_wiki_pack", - "build_image_pack", - "capture_screenshot_pack", -] + +_LAZY_EXPORTS = { + "build_brand_pack": (".brand", "build_brand_pack"), + **{name: (".dataset", name) for name in ("async_build_dataset_pack", "build_dataset_pack")}, + "build_feed_pack": (".feed", "build_feed_pack"), + "build_image_pack": (".visuals", "build_image_pack"), + "build_openapi_pack": (".openapi", "build_openapi_pack"), + **{name: (".package", name) for name in ("async_build_package_pack", "build_package_pack")}, + **{name: (".paper", name) for name in ("async_build_paper_pack", "build_paper_pack")}, + "build_policy_pack": (".policy_pack", "build_policy_pack"), + "build_product_pack": (".product", "build_product_pack"), + **{name: (".repo", name) for name in ("async_build_repo_pack", "build_repo_pack")}, + **{name: (".standards", name) for name in ("async_build_standards_pack", "build_standards_pack")}, + "build_styleguide_pack": (".styleguide", "build_styleguide_pack"), + **{name: (".transcript", name) for name in ("async_build_transcript_pack", "build_transcript_pack")}, + **{name: (".wiki", name) for name in ("async_build_wiki_pack", "build_wiki_pack")}, + "capture_screenshot_pack": (".visuals", "capture_screenshot_pack"), +} + +__all__ = list(PUBLIC_CONTEXT_PACK_EXPORTS) + + +def __getattr__(name: str) -> Any: + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .brand import build_brand_pack + from .dataset import async_build_dataset_pack, build_dataset_pack + from .feed import build_feed_pack + from .openapi import build_openapi_pack + from .package import async_build_package_pack, build_package_pack + from .paper import async_build_paper_pack, build_paper_pack + from .policy_pack import build_policy_pack + from .product import build_product_pack + from .repo import async_build_repo_pack, build_repo_pack + from .standards import async_build_standards_pack, build_standards_pack + from .styleguide import build_styleguide_pack + from .transcript import async_build_transcript_pack, build_transcript_pack + from .visuals import build_image_pack, capture_screenshot_pack + from .wiki import async_build_wiki_pack, build_wiki_pack + assert tuple(__all__) == PUBLIC_CONTEXT_PACK_EXPORTS +assert set(_LAZY_EXPORTS) == set(__all__) diff --git a/src/docpull/conversion/__init__.py b/src/docpull/conversion/__init__.py index 9d10ccb..fd0aa1d 100644 --- a/src/docpull/conversion/__init__.py +++ b/src/docpull/conversion/__init__.py @@ -1,37 +1,76 @@ -"""Content conversion for docpull (HTML to Markdown, frontmatter).""" - -from .chunking import Chunk, TokenCounter, chunk_markdown -from .extractor import MainContentExtractor -from .markdown import FrontmatterBuilder, HtmlToMarkdown -from .protocols import ContentExtractor, MarkdownConverter -from .special_cases import ( - DEFAULT_CHAIN as DEFAULT_SPECIAL_CHAIN, -) -from .special_cases import ( - SpecialCaseExtractor, - SpecialCaseResult, - detect_source_type, - find_mdx_source_url, - looks_like_spa, -) +"""Content conversion, extraction, frontmatter, and chunking.""" +# ruff: noqa: F401 - TYPE_CHECKING imports document lazy public re-exports. + +from __future__ import annotations + +from importlib import import_module +from typing import TYPE_CHECKING, Any + +_LAZY_EXPORTS = { + **{name: (".chunking", name) for name in ("Chunk", "TokenCounter", "chunk_markdown")}, + "MainContentExtractor": (".extractor", "MainContentExtractor"), + **{name: (".markdown", name) for name in ("FrontmatterBuilder", "HtmlToMarkdown")}, + **{name: (".protocols", name) for name in ("ContentExtractor", "MarkdownConverter")}, + **{ + name: (".special_cases", target) + for name, target in ( + ("DEFAULT_SPECIAL_CHAIN", "DEFAULT_CHAIN"), + ("SpecialCaseExtractor", "SpecialCaseExtractor"), + ("SpecialCaseResult", "SpecialCaseResult"), + ("detect_source_type", "detect_source_type"), + ("find_mdx_source_url", "find_mdx_source_url"), + ("looks_like_spa", "looks_like_spa"), + ) + }, +} __all__ = [ - # Protocols "ContentExtractor", "MarkdownConverter", "SpecialCaseExtractor", - # Implementations "MainContentExtractor", "HtmlToMarkdown", "FrontmatterBuilder", - # Special-case extractors "DEFAULT_SPECIAL_CHAIN", "SpecialCaseResult", "detect_source_type", "find_mdx_source_url", "looks_like_spa", - # Chunking "Chunk", "TokenCounter", "chunk_markdown", ] + + +def __getattr__(name: str) -> Any: + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .chunking import Chunk, TokenCounter, chunk_markdown + from .extractor import MainContentExtractor + from .markdown import FrontmatterBuilder, HtmlToMarkdown + from .protocols import ContentExtractor, MarkdownConverter + from .special_cases import ( + DEFAULT_CHAIN as DEFAULT_SPECIAL_CHAIN, + ) + from .special_cases import ( + SpecialCaseExtractor, + SpecialCaseResult, + detect_source_type, + find_mdx_source_url, + looks_like_spa, + ) + + +assert set(_LAZY_EXPORTS) == set(__all__) diff --git a/src/docpull/conversion/extractor.py b/src/docpull/conversion/extractor.py index 1463031..c7f2060 100644 --- a/src/docpull/conversion/extractor.py +++ b/src/docpull/conversion/extractor.py @@ -231,9 +231,13 @@ def _score_content_candidate(self, element: Tag, selector: str, selector_index: def _remove_unwanted(self, element: Tag) -> None: """Remove navigation, ads, and other unwanted elements.""" - for selector in self._remove_selectors: - for el in element.select(selector): - el.decompose() + # One selector traversal is substantially cheaper than walking the + # same document once for every chrome selector. Descendants are + # removed first so a selected child is never decomposed after its + # selected parent has already discarded it. + selector = ",".join(self._remove_selectors) + for el in reversed(element.select(selector)): + el.decompose() def _remove_placeholder_nodes(self, element: Tag) -> None: """Remove loading-only skeleton nodes left by streamed app shells.""" @@ -294,7 +298,15 @@ def extract(self, html: bytes, url: str) -> str: Returns: Cleaned HTML content as string """ - soup = self._parse_html(html) + return self.extract_parsed(self._parse_html(html), url) + + def extract_parsed(self, soup: BeautifulSoup, url: str) -> str: + """Extract content from an already parsed HTML document. + + Metadata extraction immediately precedes conversion in the standard + pipeline. Accepting its parse avoids building the same full DOM twice + while the standalone :meth:`extract` API keeps its existing behavior. + """ main_content = self._find_main_content(soup) if main_content is None: diff --git a/src/docpull/discovery/__init__.py b/src/docpull/discovery/__init__.py index 55f465b..a28d23c 100644 --- a/src/docpull/discovery/__init__.py +++ b/src/docpull/discovery/__init__.py @@ -1,29 +1,40 @@ -"""URL discovery for docpull (sitemap parsing, link crawling).""" - -from .composite import CompositeDiscoverer -from .contracts import ( - CandidateSourceRecord, - DiscoveryError, - normalize_provider_response, - read_candidate_records, - records_from_site_scan, - records_from_sitemap_file, - records_from_url_file, - select_candidate_records, - write_discovery_pack, - write_selected_sources, -) -from .crawler import LinkCrawler -from .filters import ( - CompositeFilter, - DomainFilter, - PatternFilter, - SeenUrlTracker, - normalize_url, -) -from .link_extractors import EnhancedLinkExtractor, LinkExtractor, StaticLinkExtractor -from .protocols import UrlDiscoverer, UrlFilter -from .sitemap import SitemapDiscoverer +"""URL discovery, filtering, crawling, and source contracts.""" +# ruff: noqa: F401 - TYPE_CHECKING imports document lazy public re-exports. + +from __future__ import annotations + +from importlib import import_module +from typing import TYPE_CHECKING, Any + +_LAZY_EXPORTS = { + "CompositeDiscoverer": (".composite", "CompositeDiscoverer"), + **{ + name: (".contracts", name) + for name in ( + "CandidateSourceRecord", + "DiscoveryError", + "normalize_provider_response", + "read_candidate_records", + "records_from_site_scan", + "records_from_sitemap_file", + "records_from_url_file", + "select_candidate_records", + "write_discovery_pack", + "write_selected_sources", + ) + }, + "LinkCrawler": (".crawler", "LinkCrawler"), + **{ + name: (".filters", name) + for name in ("CompositeFilter", "DomainFilter", "PatternFilter", "SeenUrlTracker", "normalize_url") + }, + **{ + name: (".link_extractors", name) + for name in ("EnhancedLinkExtractor", "LinkExtractor", "StaticLinkExtractor") + }, + **{name: (".protocols", name) for name in ("UrlDiscoverer", "UrlFilter")}, + "SitemapDiscoverer": (".sitemap", "SitemapDiscoverer"), +} __all__ = [ "UrlDiscoverer", @@ -50,3 +61,41 @@ "write_discovery_pack", "write_selected_sources", ] + + +def __getattr__(name: str) -> Any: + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .composite import CompositeDiscoverer + from .contracts import ( + CandidateSourceRecord, + DiscoveryError, + normalize_provider_response, + read_candidate_records, + records_from_site_scan, + records_from_sitemap_file, + records_from_url_file, + select_candidate_records, + write_discovery_pack, + write_selected_sources, + ) + from .crawler import LinkCrawler + from .filters import CompositeFilter, DomainFilter, PatternFilter, SeenUrlTracker, normalize_url + from .link_extractors import EnhancedLinkExtractor, LinkExtractor, StaticLinkExtractor + from .protocols import UrlDiscoverer, UrlFilter + from .sitemap import SitemapDiscoverer + + +assert set(_LAZY_EXPORTS) == set(__all__) diff --git a/src/docpull/discovery/link_extractors/__init__.py b/src/docpull/discovery/link_extractors/__init__.py index 9913118..0338e18 100644 --- a/src/docpull/discovery/link_extractors/__init__.py +++ b/src/docpull/discovery/link_extractors/__init__.py @@ -1,11 +1,37 @@ """Link extraction strategies for URL discovery.""" +# ruff: noqa: F401 - TYPE_CHECKING imports document lazy public re-exports. -from .enhanced import EnhancedLinkExtractor -from .protocols import LinkExtractor -from .static import StaticLinkExtractor +from __future__ import annotations -__all__ = [ - "LinkExtractor", - "StaticLinkExtractor", - "EnhancedLinkExtractor", -] +from importlib import import_module +from typing import TYPE_CHECKING, Any + +_LAZY_EXPORTS = { + "EnhancedLinkExtractor": (".enhanced", "EnhancedLinkExtractor"), + "LinkExtractor": (".protocols", "LinkExtractor"), + "StaticLinkExtractor": (".static", "StaticLinkExtractor"), +} +__all__ = ["LinkExtractor", "StaticLinkExtractor", "EnhancedLinkExtractor"] + + +def __getattr__(name: str) -> Any: + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .enhanced import EnhancedLinkExtractor + from .protocols import LinkExtractor + from .static import StaticLinkExtractor + + +assert set(_LAZY_EXPORTS) == set(__all__) diff --git a/src/docpull/export_formats.py b/src/docpull/export_formats.py new file mode 100644 index 0000000..b38e43e --- /dev/null +++ b/src/docpull/export_formats.py @@ -0,0 +1,27 @@ +"""Lightweight registry of supported local pack export formats.""" + +from __future__ import annotations + +JSONL_FORMATS = { + "openai-vector-jsonl", + "langchain-jsonl", + "llamaindex-jsonl", + "dspy-jsonl", +} +AGENT_FORMATS = { + "codex-skill", + "claude-skill", + "cursor-rules", +} +TABLE_FORMATS = { + "sheets-csv", + "sheets-tsv", + "warehouse-ndjson", + "parquet", +} +DOWNSTREAM_JSON_FORMATS = { + "n8n-json", + "vercel-ai-json", + "crewai-json", +} +EXPORT_FORMATS = tuple(sorted(JSONL_FORMATS | AGENT_FORMATS | TABLE_FORMATS | DOWNSTREAM_JSON_FORMATS)) diff --git a/src/docpull/exports.py b/src/docpull/exports.py index 168d35c..04542d6 100644 --- a/src/docpull/exports.py +++ b/src/docpull/exports.py @@ -14,35 +14,17 @@ from rich.console import Console from rich.markup import escape +from . import export_formats as _export_formats from .models.document import DocumentRecord from .pack_reader import LocalPack, PackReadError, load_pack, sanitize_metadata from .skill_export import export_agent_skill EXPORT_SCHEMA_VERSION = 1 - -JSONL_FORMATS = { - "openai-vector-jsonl", - "langchain-jsonl", - "llamaindex-jsonl", - "dspy-jsonl", -} -AGENT_FORMATS = { - "codex-skill", - "claude-skill", - "cursor-rules", -} -TABLE_FORMATS = { - "sheets-csv", - "sheets-tsv", - "warehouse-ndjson", - "parquet", -} -DOWNSTREAM_JSON_FORMATS = { - "n8n-json", - "vercel-ai-json", - "crewai-json", -} -EXPORT_FORMATS = tuple(sorted(JSONL_FORMATS | AGENT_FORMATS | TABLE_FORMATS | DOWNSTREAM_JSON_FORMATS)) +JSONL_FORMATS = _export_formats.JSONL_FORMATS +AGENT_FORMATS = _export_formats.AGENT_FORMATS +TABLE_FORMATS = _export_formats.TABLE_FORMATS +DOWNSTREAM_JSON_FORMATS = _export_formats.DOWNSTREAM_JSON_FORMATS +EXPORT_FORMATS = _export_formats.EXPORT_FORMATS class ExportError(RuntimeError): @@ -370,7 +352,7 @@ def run_export_cli(argv: list[str] | None = None) -> int: def _record_metadata(pack: LocalPack, record: DocumentRecord) -> dict[str, Any]: - source = pack.source_by_url.get(record.url) + source = pack.source_for_url(record.url) metadata: dict[str, Any] = { "schema_version": EXPORT_SCHEMA_VERSION, "source_url": record.url, diff --git a/src/docpull/graph.py b/src/docpull/graph.py index a270c67..5945071 100644 --- a/src/docpull/graph.py +++ b/src/docpull/graph.py @@ -15,7 +15,11 @@ from rich.markup import escape from .pack_reader import LocalPack, PackReadError, load_pack -from .pack_tools import PackToolError, extract_pack_entities +from .pack_tools import ( + PackToolError, + _analysis_from_local_pack, + extract_pack_entities, +) from .time_utils import utc_now_iso GRAPH_SCHEMA_VERSION = 1 @@ -136,16 +140,23 @@ def build_graph( *, entity_limit: int = DEFAULT_ENTITY_LIMIT, markdown: bool = True, + _analysis: Any | None = None, + _pack: LocalPack | None = None, ) -> dict[str, Any]: """Build local graph sidecars for a DocPull pack.""" if entity_limit < 1: raise GraphError("entity_limit must be at least 1") - pack = load_pack(pack_dir) + pack = _pack or load_pack(pack_dir) if not pack.documents: raise GraphError("Cannot build a graph for an empty pack.") - entities_payload = extract_pack_entities(pack.pack_dir, limit=entity_limit) + analysis = _analysis or _analysis_from_local_pack(pack, None) + entities_payload = extract_pack_entities( + pack.pack_dir, + limit=entity_limit, + _analysis=analysis, + ) fingerprint = _pack_fingerprint(pack) nodes, edges = _build_nodes_and_edges(pack, entities_payload) node_path = pack.pack_dir / "graph.nodes.ndjson" @@ -431,6 +442,8 @@ def _build_nodes_and_edges( edges: list[dict[str, Any]] = [] source_node_by_url: dict[str, str] = {} chunk_entity_ids: dict[str, list[str]] = {} + chunk_excerpts: dict[str, str] = {} + citation_by_url = pack.citation_by_url for source in pack.sources: node_id = _stable_id("source", source.url) @@ -454,9 +467,12 @@ def _build_nodes_and_edges( document_ids: set[str] = set() for record in pack.documents: - citation_id = pack.citation_by_url.get(record.url) + citation_id = citation_by_url.get(record.url) source_id = source_node_by_url.get(record.url) document_id = record.document_id + chunk_id = record.chunk_id or _stable_id("chunk", record.document_id, record.content_hash) + record_excerpt = _excerpt(record.content) + chunk_excerpts[chunk_id] = record_excerpt if document_id not in document_ids: document_ids.add(document_id) nodes.append( @@ -482,10 +498,10 @@ def _build_nodes_and_edges( "contains_document", record=record, citation_id=citation_id, + excerpt=record_excerpt, ) ) - chunk_id = record.chunk_id or _stable_id("chunk", record.document_id, record.content_hash) nodes.append( { "schema_version": GRAPH_SCHEMA_VERSION, @@ -500,7 +516,7 @@ def _build_nodes_and_edges( "chunk_index": record.chunk_index, "chunk_heading": record.chunk_heading, "token_count": record.token_count, - "excerpt": _excerpt(record.content), + "excerpt": record_excerpt, } ) edges.append( @@ -511,18 +527,25 @@ def _build_nodes_and_edges( "contains_chunk", record=record, citation_id=citation_id, + excerpt=record_excerpt, ) ) entity_nodes = _entity_nodes(entities_payload) + entity_nodes_by_id = {str(node["id"]): node for node in entity_nodes} + entity_candidates_by_id = { + entity_id: _entity_candidates(node) for entity_id, node in entity_nodes_by_id.items() + } nodes.extend(entity_nodes) for record in pack.documents: chunk_id = record.chunk_id or _stable_id("chunk", record.document_id, record.content_hash) - citation_id = pack.citation_by_url.get(record.url) + citation_id = citation_by_url.get(record.url) + content_casefold = record.content.casefold() for entity_node in entity_nodes: - if not _entity_in_content(entity_node, record.content): - continue entity_id = str(entity_node["id"]) + candidates = entity_candidates_by_id[entity_id] + if not _entity_in_haystack(candidates, content_casefold): + continue chunk_entity_ids.setdefault(chunk_id, []).append(entity_id) edges.append( _edge( @@ -532,7 +555,12 @@ def _build_nodes_and_edges( "mentions_entity", record=record, citation_id=citation_id, - excerpt=_entity_excerpt(entity_node, record.content), + excerpt=_entity_excerpt( + entity_node, + record.content, + haystack=content_casefold, + candidates=candidates, + ), ) ) @@ -541,7 +569,7 @@ def _build_nodes_and_edges( entity_ids = sorted(set(chunk_entity_ids.get(chunk_id, []))) if len(entity_ids) < 2: continue - citation_id = pack.citation_by_url.get(record.url) + citation_id = citation_by_url.get(record.url) for left, right in itertools.combinations(entity_ids, 2): edges.append( _edge( @@ -551,12 +579,14 @@ def _build_nodes_and_edges( "co_occurs_in_chunk", record=record, citation_id=citation_id, + excerpt=chunk_excerpts[chunk_id], ) ) edges.extend( _entity_relation_edges( record, - entity_nodes=entity_nodes, + entity_nodes_by_id=entity_nodes_by_id, + entity_candidates_by_id=entity_candidates_by_id, entity_ids=entity_ids, citation_id=citation_id, ) @@ -624,24 +654,30 @@ def _edge( "chunk_id": record.chunk_id or _stable_id("chunk", record.document_id, record.content_hash), "content_hash": record.content_hash, "title": record.title or record.url, - "excerpt": excerpt or _excerpt(record.content), + "excerpt": excerpt if excerpt is not None else _excerpt(record.content), } def _entity_relation_edges( record: Any, *, - entity_nodes: list[dict[str, Any]], + entity_nodes_by_id: dict[str, dict[str, Any]], + entity_candidates_by_id: dict[str, tuple[str, ...]], entity_ids: list[str], citation_id: str | None, ) -> list[dict[str, Any]]: - entity_nodes_by_id = {str(node["id"]): node for node in entity_nodes if node.get("id") in entity_ids} + candidates_by_id = { + entity_id: entity_candidates_by_id[entity_id] + for entity_id in entity_ids + if entity_id in entity_nodes_by_id + } edges: list[dict[str, Any]] = [] for sentence in _sentences(record.content): + sentence_casefold = sentence.casefold() sentence_entity_ids = sorted( entity_id - for entity_id, entity_node in entity_nodes_by_id.items() - if _entity_in_content(entity_node, sentence) + for entity_id, candidates in candidates_by_id.items() + if _entity_in_haystack(candidates, sentence_casefold) ) if len(sentence_entity_ids) < 2: continue @@ -832,26 +868,40 @@ def _public_node(node: dict[str, Any]) -> dict[str, Any]: def _entity_in_content(entity: dict[str, Any], content: str) -> bool: - haystack = content.casefold() - candidates = { - str(entity.get("value") or "").strip(), - str(entity.get("normalized") or "").strip(), - str(entity.get("label") or "").strip(), - } - return any(candidate and candidate.casefold() in haystack for candidate in candidates) + return _entity_in_haystack(_entity_candidates(entity), content.casefold()) -def _entity_excerpt(entity: dict[str, Any], content: str) -> str: - haystack = content.casefold() - candidates = [ - str(entity.get("value") or "").strip(), - str(entity.get("normalized") or "").strip(), - str(entity.get("label") or "").strip(), - ] +def _entity_candidates(entity: dict[str, Any]) -> tuple[str, ...]: + return tuple( + sorted( + { + candidate.casefold() + for candidate in ( + str(entity.get("value") or "").strip(), + str(entity.get("normalized") or "").strip(), + str(entity.get("label") or "").strip(), + ) + if candidate + } + ) + ) + + +def _entity_in_haystack(candidates: tuple[str, ...], haystack: str) -> bool: + return any(candidate in haystack for candidate in candidates) + + +def _entity_excerpt( + entity: dict[str, Any], + content: str, + *, + haystack: str | None = None, + candidates: tuple[str, ...] | None = None, +) -> str: + haystack = haystack if haystack is not None else content.casefold() + candidates = candidates if candidates is not None else _entity_candidates(entity) for candidate in candidates: - if not candidate: - continue - index = haystack.find(candidate.casefold()) + index = haystack.find(candidate) if index >= 0: return _nearest_sentence(content, index, index + len(candidate)) return _excerpt(content) diff --git a/src/docpull/http/__init__.py b/src/docpull/http/__init__.py index 8391704..b080b54 100644 --- a/src/docpull/http/__init__.py +++ b/src/docpull/http/__init__.py @@ -1,8 +1,18 @@ -"""HTTP client and rate limiting for docpull.""" +"""HTTP client protocols, transport, and rate limiting.""" +# ruff: noqa: F401 - TYPE_CHECKING imports document lazy public re-exports. -from .client import AsyncHttpClient -from .protocols import HttpClient, HttpResponse -from .rate_limiter import AdaptiveRateLimiter, PerHostRateLimiter +from __future__ import annotations + +from importlib import import_module +from typing import TYPE_CHECKING, Any + +_LAZY_EXPORTS = { + "AsyncHttpClient": (".client", "AsyncHttpClient"), + "HttpClient": (".protocols", "HttpClient"), + "HttpResponse": (".protocols", "HttpResponse"), + "AdaptiveRateLimiter": (".rate_limiter", "AdaptiveRateLimiter"), + "PerHostRateLimiter": (".rate_limiter", "PerHostRateLimiter"), +} __all__ = [ "AdaptiveRateLimiter", @@ -11,3 +21,26 @@ "HttpResponse", "PerHostRateLimiter", ] + + +def __getattr__(name: str) -> Any: + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .client import AsyncHttpClient + from .protocols import HttpClient, HttpResponse + from .rate_limiter import AdaptiveRateLimiter, PerHostRateLimiter + + +assert set(_LAZY_EXPORTS) == set(__all__) diff --git a/src/docpull/http/client.py b/src/docpull/http/client.py index b21ce4c..caa346b 100644 --- a/src/docpull/http/client.py +++ b/src/docpull/http/client.py @@ -8,6 +8,7 @@ import re import secrets import socket +from dataclasses import dataclass from types import TracebackType from typing import cast from urllib.parse import parse_qsl, urlencode, urljoin, urlparse @@ -32,6 +33,13 @@ _NATIVE_PROXY_SCHEMES = frozenset({"http", "https"}) _SOCKS_PROXY_SCHEMES = frozenset({"socks4", "socks4a", "socks5", "socks5h"}) +_RequestKey = tuple[str, float, tuple[tuple[str, str], ...]] + + +@dataclass +class _InflightGet: + task: asyncio.Task[HttpResponse] + waiters: int = 0 class _ValidatedResolver(AbstractResolver): @@ -199,6 +207,7 @@ def __init__( self._validate_header_value(name, value) self._session: aiohttp.ClientSession | None = None + self._inflight_gets: dict[_RequestKey, _InflightGet] = {} @property def user_agent(self) -> str: @@ -495,7 +504,63 @@ async def get( if self._session is None: raise RuntimeError("Client not initialized. Use 'async with' context manager.") + # Streaming discovery and the fetch worker pool can reach the same URL + # concurrently. Share only byte-for-byte equivalent requests while they + # are in flight; completed responses are never retained as an implicit + # cache. Including the effective timeout and caller headers keeps cache + # validators and other request-specific semantics isolated. timeout_val = timeout or self._default_timeout + # Snapshot mutable caller input before the task can be scheduled. Keep + # header spelling in the key because a caller header whose casing only + # differs from an auth header produces a different merged request dict. + headers_snapshot = dict(headers) if headers else None + header_key = tuple(sorted((name, value) for name, value in (headers_snapshot or {}).items())) + request_key = (url, timeout_val, header_key) + inflight = self._inflight_gets.get(request_key) + if inflight is None: + task = asyncio.create_task(self._get_uncached(url, timeout=timeout_val, headers=headers_snapshot)) + inflight = _InflightGet(task=task) + self._inflight_gets[request_key] = inflight + + def remove_completed(completed: asyncio.Task[HttpResponse]) -> None: + if self._inflight_gets.get(request_key) is inflight: + self._inflight_gets.pop(request_key, None) + + task.add_done_callback(remove_completed) + + inflight.waiters += 1 + try: + # One caller being cancelled must not cancel a request still used + # by another discovery/fetch consumer. + response = await asyncio.shield(inflight.task) + finally: + inflight.waiters -= 1 + if inflight.waiters == 0: + if not inflight.task.done(): + inflight.task.cancel() + if self._inflight_gets.get(request_key) is inflight: + self._inflight_gets.pop(request_key, None) + # HttpResponse is frozen, but its header mapping is mutable. Give every + # caller an independent mapping just as separate network requests did. + return HttpResponse( + status_code=response.status_code, + content=response.content, + content_type=response.content_type, + headers=dict(response.headers), + url=response.url, + ) + + async def _get_uncached( + self, + url: str, + *, + timeout: float, + headers: dict[str, str] | None, + ) -> HttpResponse: + """Perform one physical GET, including retries and redirects.""" + if self._session is None: + raise RuntimeError("Client not initialized. Use 'async with' context manager.") + # Merge auth headers with request-specific headers request_headers = dict(self._auth_headers) if headers: @@ -518,7 +583,7 @@ async def get( self._rate_limiter.limit(current_url), self._session.get( current_url, - timeout=aiohttp.ClientTimeout(total=timeout_val), + timeout=aiohttp.ClientTimeout(total=timeout), headers=current_headers, proxy=self._request_proxy, allow_redirects=False, diff --git a/src/docpull/local_workflows.py b/src/docpull/local_workflows.py index 0bdcaf2..b3eb806 100644 --- a/src/docpull/local_workflows.py +++ b/src/docpull/local_workflows.py @@ -7,17 +7,17 @@ import re from collections import Counter from pathlib import Path -from typing import Any +from typing import TYPE_CHECKING, Any from rich.console import Console from rich.markup import escape -from .core.fetcher import Fetcher from .models.config import DocpullConfig, ProfileName from .models.document import DocumentRecord from .models.run import RunIdentity from .pack_tools import ( PackToolError, + _analyze_pack, _artifact_ref, _brief_markdown, _clean_passage, @@ -42,12 +42,33 @@ from .source_scoring import score_source_entries from .time_utils import utc_now_iso +if TYPE_CHECKING: + from .pack_tools import _PackAnalysis + REFRESH_SCHEMA_VERSION = 1 AUDIT_SCHEMA_VERSION = 1 ANSWER_SCHEMA_VERSION = 1 LOCAL_PACK_SCHEMA_VERSION = 1 +def __getattr__(name: str) -> Any: + """Preserve the historical patchable Fetcher attribute without eager imports.""" + if name == "Fetcher": + from .core.fetcher import Fetcher + + return Fetcher + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +def _fetcher_class() -> Any: + override = globals().get("Fetcher") + if override is not None: + return override + from .core.fetcher import Fetcher + + return Fetcher + + class LocalWorkflowError(RuntimeError): """User-facing local workflow error.""" @@ -252,7 +273,7 @@ async def _fetch_urls_to_pack( skips: list[dict[str, Any]] = [] run_identity = RunIdentity.from_config(DocpullConfig(url=urls[0], profile=ProfileName.CUSTOM)) - async with Fetcher(DocpullConfig(url=urls[0], profile=ProfileName.CUSTOM)) as fetcher: + async with _fetcher_class()(DocpullConfig(url=urls[0], profile=ProfileName.CUSTOM)) as fetcher: for index, url in enumerate(urls, start=1): ctx = await fetcher.fetch_one(url, save=False) if ctx.error: @@ -354,12 +375,22 @@ def audit_pack( fail_under: float | None = None, markdown_path: Path | None = None, json_path: Path | None = None, + _analysis: _PackAnalysis | None = None, ) -> dict[str, Any]: """Write an actionable local pack quality audit.""" - pack_dir = pack_dir.resolve() - records = _read_pack_records(pack_dir) - score_payload = score_pack(pack_dir, required_domains=required_domains) - citation_payload = build_citation_map(pack_dir, required_domains=required_domains) + analysis = _analysis or _analyze_pack(pack_dir, required_domains) + pack_dir = analysis.pack_dir + records = analysis.records + score_payload = score_pack( + pack_dir, + required_domains=required_domains, + _analysis=analysis, + ) + citation_payload = build_citation_map( + pack_dir, + required_domains=required_domains, + _analysis=analysis, + ) dimensions = _audit_dimensions(records, score_payload, citation_payload) stale_sidecar_issues = _stale_sidecar_issues(pack_dir, records, score_payload) weighted_score = max( @@ -468,14 +499,22 @@ def answer_pack( raise LocalWorkflowError("question must be non-empty.") if limit < 1: raise LocalWorkflowError("limit must be at least 1.") - pack_dir = pack_dir.resolve() - search_payload = search_pack(pack_dir, question, required_domains=required_domains, limit=limit) + analysis = _analyze_pack(pack_dir, required_domains) + pack_dir = analysis.pack_dir + search_payload = search_pack( + pack_dir, + question, + required_domains=required_domains, + limit=limit, + _analysis=analysis, + ) brief_payload = build_research_brief( pack_dir, objective=question, required_domains=required_domains, max_excerpts=max(limit, 1), entity_limit=10, + _analysis=analysis, ) result_count = _safe_int(search_payload.get("result_count")) if result_count == 0: diff --git a/src/docpull/mcp/__init__.py b/src/docpull/mcp/__init__.py index 85e7055..6b05bed 100644 --- a/src/docpull/mcp/__init__.py +++ b/src/docpull/mcp/__init__.py @@ -1,10 +1,24 @@ -"""MCP (Model Context Protocol) server for docpull. +"""MCP server entrypoint for DocPull.""" -Exposes ``docpull`` as a tool for AI agents: fetch web sources on demand, -list source aliases, and grep through fetched Markdown. Runs as -``docpull mcp`` via stdio. -""" +from __future__ import annotations -from .server import run_mcp_server +from importlib import import_module +from typing import TYPE_CHECKING, Any __all__ = ["run_mcp_server"] + + +def __getattr__(name: str) -> Any: + if name != "run_mcp_server": + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + value = getattr(import_module(".server", __name__), name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .server import run_mcp_server diff --git a/src/docpull/mcp/server.py b/src/docpull/mcp/server.py index 4e06e8c..930d71d 100644 --- a/src/docpull/mcp/server.py +++ b/src/docpull/mcp/server.py @@ -54,25 +54,8 @@ maybe_write_run_accounting, paid_action_blocked, ) -from ..exports import EXPORT_FORMATS -from ..exports import export_pack as export_local_pack -from ..graph import build_graph, graph_neighbors, graph_status, query_graph, refresh_graph -from ..local_workflows import audit_pack, refresh_pack -from ..pack_reader import load_pack -from ..pack_tools import ( - build_citation_map, - build_intelligence_bundle, - build_research_brief, - diff_packs, - extract_pack_entities, - prepare_pack, - score_pack, - search_pack, -) -from ..policy import PolicyConfig -from ..rendering import render_url_to_directory +from ..export_formats import EXPORT_FORMATS from ..surface import PRUNED_MCP_TOOLS -from ..workflows import create_workflow_request, run_workflow from .tools import ( ToolResult, add_source, @@ -791,6 +774,8 @@ async def _dispatch_tool( else: accounting.paid_request_count = 1 if not render_blocked: + from ..rendering import render_url_to_directory + artifact = await render_url_to_directory( url, output_dir, @@ -880,6 +865,9 @@ async def _dispatch_tool( "screenshot_pack", "policy_pack", }: + from ..policy import PolicyConfig + from ..workflows import create_workflow_request, run_workflow + workflow_aliases = { "brand_pack": ("brand-pack", "domain_or_url", "packs/brand"), "product_pack": ("product-pack", "url_or_domain", "packs/products"), @@ -931,6 +919,8 @@ async def _dispatch_tool( ) elif name == "intelligence_bundle": + from ..pack_tools import build_intelligence_bundle + objective = arguments.get("objective") market = arguments.get("market") if objective is not None and not isinstance(objective, str): @@ -959,6 +949,8 @@ async def _dispatch_tool( ) elif name == "pack_score": + from ..pack_tools import score_pack + payload = await asyncio.to_thread( score_pack, _path_arg(arguments, "pack_dir"), @@ -970,6 +962,8 @@ async def _dispatch_tool( ) elif name == "pack_diff": + from ..pack_tools import diff_packs + diff_payload: dict[str, Any] = await asyncio.to_thread( diff_packs, _path_arg(arguments, "old_pack_dir"), @@ -984,6 +978,8 @@ async def _dispatch_tool( ) elif name == "refresh_pack": + from ..local_workflows import refresh_pack + output_dir_arg = arguments.get("output_dir") if output_dir_arg is not None and not isinstance(output_dir_arg, str): raise ValueError("'output_dir' must be a path string") @@ -1006,6 +1002,8 @@ async def _dispatch_tool( ) elif name == "audit_pack": + from ..local_workflows import audit_pack + fail_under = arguments.get("fail_under") if fail_under is not None and not isinstance(fail_under, int | float): raise ValueError("'fail_under' must be a number") @@ -1021,6 +1019,8 @@ async def _dispatch_tool( ) elif name == "pack_citations": + from ..pack_tools import build_citation_map + payload = await asyncio.to_thread( build_citation_map, _path_arg(arguments, "pack_dir"), @@ -1032,6 +1032,8 @@ async def _dispatch_tool( ) elif name == "pack_entities": + from ..pack_tools import extract_pack_entities + payload = await asyncio.to_thread( extract_pack_entities, _path_arg(arguments, "pack_dir"), @@ -1044,6 +1046,8 @@ async def _dispatch_tool( ) elif name == "pack_search": + from ..pack_tools import search_pack + payload = await asyncio.to_thread( search_pack, _path_arg(arguments, "pack_dir"), @@ -1057,6 +1061,8 @@ async def _dispatch_tool( ) elif name == "pack_brief": + from ..pack_tools import build_research_brief + brief_objective = arguments.get("objective") if brief_objective is not None and not isinstance(brief_objective, str): raise ValueError("'objective' must be a string") @@ -1079,6 +1085,8 @@ async def _dispatch_tool( ) elif name == "pack_prepare": + from ..pack_tools import prepare_pack + prepare_objective = arguments.get("objective") if prepare_objective is not None and not isinstance(prepare_objective, str): raise ValueError("'objective' must be a string") @@ -1119,6 +1127,8 @@ async def _dispatch_tool( ) elif name == "graph_build": + from ..graph import build_graph + graph_payload: dict[str, Any] = await asyncio.to_thread( build_graph, _path_arg(arguments, "pack_dir"), @@ -1138,6 +1148,8 @@ async def _dispatch_tool( ) elif name == "graph_status": + from ..graph import graph_status + status_payload: dict[str, Any] = await asyncio.to_thread( graph_status, _path_arg(arguments, "pack_dir"), @@ -1148,6 +1160,8 @@ async def _dispatch_tool( ) elif name == "graph_query": + from ..graph import query_graph + query_payload: dict[str, Any] = await asyncio.to_thread( query_graph, _path_arg(arguments, "pack_dir"), @@ -1160,6 +1174,8 @@ async def _dispatch_tool( ) elif name == "graph_neighbors": + from ..graph import graph_neighbors + neighbors_payload: dict[str, Any] = await asyncio.to_thread( graph_neighbors, _path_arg(arguments, "pack_dir"), @@ -1172,6 +1188,8 @@ async def _dispatch_tool( ) elif name == "graph_refresh": + from ..graph import refresh_graph + graph_refresh_payload: dict[str, Any] = await asyncio.to_thread( refresh_graph, _path_arg(arguments, "pack_dir"), @@ -1193,6 +1211,8 @@ async def _dispatch_tool( ) elif name == "validate_policy": + from ..policy import PolicyConfig + policy_path = _path_arg(arguments, "policy_path") policy = PolicyConfig.from_file(policy_path) validation_source_policy: dict[str, Any] = policy.to_source_policy_payload( @@ -1209,6 +1229,8 @@ async def _dispatch_tool( ) elif name == "export_pack": + from ..exports import export_pack as export_local_pack + format_arg = _require_str(arguments, "format") skill_name = arguments.get("skill_name") if skill_name is not None and not isinstance(skill_name, str): @@ -1235,6 +1257,8 @@ async def _dispatch_tool( ) elif name == "serve_pack_status": + from ..pack_reader import load_pack + served_pack = await asyncio.to_thread(load_pack, _path_arg(arguments, "pack_dir")) result = ToolResult( f"Pack server status: {len(served_pack.documents)} documents", diff --git a/src/docpull/mcp/tools.py b/src/docpull/mcp/tools.py index 0676364..d61c7d9 100644 --- a/src/docpull/mcp/tools.py +++ b/src/docpull/mcp/tools.py @@ -24,9 +24,8 @@ import regex import yaml -from ..core.fetcher import Fetcher from ..models.config import ContentFilterConfig, CrawlConfig, DocpullConfig, OutputConfig, ProfileName -from ..models.run import MCP_META_SCHEMA_VERSION +from ..models.schema import MCP_META_SCHEMA_VERSION from ..security.url_validator import UrlValidator from ..time_utils import utc_now_iso from .sources import ( @@ -51,6 +50,24 @@ _FETCH_URL_VALIDATOR = UrlValidator(allowed_schemes={"https"}) +def __getattr__(name: str) -> Any: + """Preserve the historical patchable Fetcher attribute without eager imports.""" + if name == "Fetcher": + from ..core.fetcher import Fetcher + + return Fetcher + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +def _fetcher_class() -> Any: + override = globals().get("Fetcher") + if override is not None: + return override + from ..core.fetcher import Fetcher + + return Fetcher + + @dataclass class ToolResult: """Tool return value. @@ -269,7 +286,7 @@ async def ensure_docs( fetched = 0 crashed = False try: - async with Fetcher(config) as fetcher: + async with _fetcher_class()(config) as fetcher: async for event in fetcher.run(): if event.type.value == "fetch_completed": fetched += 1 @@ -345,7 +362,7 @@ async def fetch_url( remote_document_memory_mib=remote_document_memory_mib, ), ) - async with Fetcher(config) as fetcher: + async with _fetcher_class()(config) as fetcher: ctx = await fetcher.fetch_one(url, save=False) if ctx.error: diff --git a/src/docpull/metadata_extractor.py b/src/docpull/metadata_extractor.py index 9a4d136..ebf340c 100644 --- a/src/docpull/metadata_extractor.py +++ b/src/docpull/metadata_extractor.py @@ -44,7 +44,7 @@ def __init__(self, base_url: str = "") -> None: """ self.base_url = base_url - def extract(self, html: str, url: str) -> RichMetadata: + def extract(self, html: str | bytes, url: str) -> RichMetadata: """Extract rich structured metadata from HTML. Args: diff --git a/src/docpull/models/__init__.py b/src/docpull/models/__init__.py index b6bf467..d00d6d9 100644 --- a/src/docpull/models/__init__.py +++ b/src/docpull/models/__init__.py @@ -1,33 +1,52 @@ -"""Docpull configuration and event models.""" - -from .config import ( - AuthConfig, - AuthType, - BudgetConfig, - ByteSize, - CacheConfig, - ContentFilterConfig, - CrawlConfig, - DocpullConfig, - NetworkConfig, - OutputConfig, - PerformanceConfig, - ProfileName, - RenderActionPolicy, - RenderConfig, - RenderViewport, -) -from .document import DocumentRecord -from .events import EventType, FetchEvent, FetchStats, SkipReason -from .profiles import PROFILES, apply_profile -from .run import ( - DOCUMENT_RECORD_SCHEMA_VERSION, - FRONTIER_SCHEMA_VERSION, - MCP_META_SCHEMA_VERSION, - PROGRESS_EVENT_SCHEMA_VERSION, - RUN_IDENTITY_SCHEMA_VERSION, - RunIdentity, -) +"""Docpull configuration, document, event, profile, and run models. + +Public model exports are resolved lazily so importing a lightweight submodule +such as :mod:`docpull.models.run` does not build every Pydantic configuration +schema in the package. +""" +# ruff: noqa: F401 - TYPE_CHECKING imports document lazy public re-exports. + +from __future__ import annotations + +from importlib import import_module +from typing import TYPE_CHECKING, Any + +_LAZY_EXPORTS: dict[str, tuple[str, str]] = { + **{ + name: (".config", name) + for name in ( + "AuthConfig", + "AuthType", + "BudgetConfig", + "ByteSize", + "CacheConfig", + "ContentFilterConfig", + "CrawlConfig", + "DocpullConfig", + "NetworkConfig", + "OutputConfig", + "PerformanceConfig", + "ProfileName", + "RenderActionPolicy", + "RenderConfig", + "RenderViewport", + ) + }, + "DocumentRecord": (".document", "DocumentRecord"), + **{name: (".events", name) for name in ("EventType", "FetchEvent", "FetchStats", "SkipReason")}, + **{name: (".profiles", name) for name in ("PROFILES", "apply_profile")}, + **{ + name: (".run", name) + for name in ( + "DOCUMENT_RECORD_SCHEMA_VERSION", + "FRONTIER_SCHEMA_VERSION", + "MCP_META_SCHEMA_VERSION", + "PROGRESS_EVENT_SCHEMA_VERSION", + "RUN_IDENTITY_SCHEMA_VERSION", + "RunIdentity", + ) + }, +} __all__ = [ "AuthConfig", @@ -59,3 +78,51 @@ "PROFILES", "apply_profile", ] + + +def __getattr__(name: str) -> Any: + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .config import ( + AuthConfig, + AuthType, + BudgetConfig, + ByteSize, + CacheConfig, + ContentFilterConfig, + CrawlConfig, + DocpullConfig, + NetworkConfig, + OutputConfig, + PerformanceConfig, + ProfileName, + RenderActionPolicy, + RenderConfig, + RenderViewport, + ) + from .document import DocumentRecord + from .events import EventType, FetchEvent, FetchStats, SkipReason + from .profiles import PROFILES, apply_profile + from .run import ( + DOCUMENT_RECORD_SCHEMA_VERSION, + FRONTIER_SCHEMA_VERSION, + MCP_META_SCHEMA_VERSION, + PROGRESS_EVENT_SCHEMA_VERSION, + RUN_IDENTITY_SCHEMA_VERSION, + RunIdentity, + ) + + +assert set(_LAZY_EXPORTS) == set(__all__) diff --git a/src/docpull/models/events.py b/src/docpull/models/events.py index 910df1a..76edfaf 100644 --- a/src/docpull/models/events.py +++ b/src/docpull/models/events.py @@ -7,7 +7,7 @@ from enum import Enum from pathlib import Path -from .run import PROGRESS_EVENT_SCHEMA_VERSION +from .schema import PROGRESS_EVENT_SCHEMA_VERSION class SkipReason(str, Enum): diff --git a/src/docpull/models/run.py b/src/docpull/models/run.py index eee3052..4b95b9e 100644 --- a/src/docpull/models/run.py +++ b/src/docpull/models/run.py @@ -5,12 +5,21 @@ from pydantic import BaseModel, Field from .config import DocpullConfig - -RUN_IDENTITY_SCHEMA_VERSION = 1 -DOCUMENT_RECORD_SCHEMA_VERSION = 3 -FRONTIER_SCHEMA_VERSION = 1 -MCP_META_SCHEMA_VERSION = 1 -PROGRESS_EVENT_SCHEMA_VERSION = 1 +from .schema import ( + DOCUMENT_RECORD_SCHEMA_VERSION as DOCUMENT_RECORD_SCHEMA_VERSION, +) +from .schema import ( + FRONTIER_SCHEMA_VERSION as FRONTIER_SCHEMA_VERSION, +) +from .schema import ( + MCP_META_SCHEMA_VERSION as MCP_META_SCHEMA_VERSION, +) +from .schema import ( + PROGRESS_EVENT_SCHEMA_VERSION as PROGRESS_EVENT_SCHEMA_VERSION, +) +from .schema import ( + RUN_IDENTITY_SCHEMA_VERSION, +) class RunIdentity(BaseModel): diff --git a/src/docpull/models/schema.py b/src/docpull/models/schema.py new file mode 100644 index 0000000..dfa382b --- /dev/null +++ b/src/docpull/models/schema.py @@ -0,0 +1,9 @@ +"""Lightweight artifact schema constants shared across DocPull models.""" + +from __future__ import annotations + +RUN_IDENTITY_SCHEMA_VERSION = 1 +DOCUMENT_RECORD_SCHEMA_VERSION = 3 +FRONTIER_SCHEMA_VERSION = 1 +MCP_META_SCHEMA_VERSION = 1 +PROGRESS_EVENT_SCHEMA_VERSION = 1 diff --git a/src/docpull/native_integrations.py b/src/docpull/native_integrations.py new file mode 100644 index 0000000..b8a2dfb --- /dev/null +++ b/src/docpull/native_integrations.py @@ -0,0 +1,88 @@ +"""Metadata-only context adapters for Clearance native integrations. + +These helpers intentionally do not enforce release/runtime gates. They turn +provider-linked operational context into DocPull document records that can be +packed, cited, diffed, and handed to Clearance/PolicyStrata as evidence refs. +""" + +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Any, Literal + +from .models.document import DocumentRecord + +NativeIntegrationProvider = Literal[ + "github", + "vercel", + "datadog", + "snowflake", + "slack", + "jira", + "aws", + "gcp", + "azure", +] + +NATIVE_INTEGRATION_PROVIDERS: tuple[NativeIntegrationProvider, ...] = ( + "github", + "vercel", + "datadog", + "snowflake", + "slack", + "jira", + "aws", + "gcp", + "azure", +) + + +@dataclass(frozen=True) +class NativeIntegrationContextSource: + provider: NativeIntegrationProvider + ref: str + title: str + url: str | None = None + summary: str | None = None + metadata: dict[str, Any] = field(default_factory=dict) + + +def native_integration_context_documents( + sources: list[NativeIntegrationContextSource], +) -> list[DocumentRecord]: + return [_source_to_document(source) for source in sources] + + +def _source_to_document(source: NativeIntegrationContextSource) -> DocumentRecord: + url = source.url or f"integration://{source.provider}/{source.ref}" + content = "\n".join( + line + for line in [ + f"# {source.title}", + "", + f"- Provider: `{source.provider}`", + f"- Reference: `{source.ref}`", + "", + source.summary or "Metadata-only provider context captured for Clearance evidence.", + ] + if line is not None + ) + metadata = { + "storageMode": "metadata_only", + "provider": source.provider, + "ref": source.ref, + **source.metadata, + } + return DocumentRecord.from_page( + url=url, + title=source.title, + content=content, + metadata=metadata, + source_type=f"integration:{source.provider}", + route={"name": "native-integration-context", "provider": source.provider}, + rights={ + "state": "metadata_only", + "basis": "customer_provided_reference", + "notes": "No raw provider secret or customer row payload is stored.", + }, + ) diff --git a/src/docpull/output_contract.py b/src/docpull/output_contract.py index cd68426..68427c2 100644 --- a/src/docpull/output_contract.py +++ b/src/docpull/output_contract.py @@ -117,10 +117,15 @@ def write_raw_contract_sidecars( return artifacts -def ensure_agent_contract_sidecars(pack_dir: Path, *, workflow: str = "pack-prepare") -> dict[str, Path]: +def ensure_agent_contract_sidecars( + pack_dir: Path, + *, + workflow: str = "pack-prepare", + records: list[dict[str, Any]] | None = None, +) -> dict[str, Path]: """Write minimal agent-level sidecars when a local pack lacks them.""" pack_dir = pack_dir.resolve() - records = _read_records(pack_dir) + records = records if records is not None else _read_records(pack_dir) artifacts: dict[str, Path] = {} context_lock = pack_dir / "context.lock.json" diff --git a/src/docpull/pack_reader.py b/src/docpull/pack_reader.py index b267402..05e38b8 100644 --- a/src/docpull/pack_reader.py +++ b/src/docpull/pack_reader.py @@ -3,10 +3,11 @@ from __future__ import annotations import hashlib +import heapq import json import re import sqlite3 -from dataclasses import dataclass +from dataclasses import dataclass, field from pathlib import Path from typing import Any from urllib.parse import urlparse @@ -86,6 +87,41 @@ class LocalPack: sources: tuple[PackSource, ...] document_source: str sqlite_path: Path | None = None + _source_index: dict[str, PackSource] = field(init=False, repr=False, compare=False) + _document_index: dict[str, DocumentRecord] = field(init=False, repr=False, compare=False) + _first_document_by_url: dict[str, DocumentRecord] = field(init=False, repr=False, compare=False) + _record_citation_index: dict[tuple[str, str], str] = field( + init=False, + repr=False, + compare=False, + ) + + def __post_init__(self) -> None: + """Build immutable-pack lookup indexes once instead of once per record.""" + source_index = {source.url: source for source in self.sources} + document_index: dict[str, DocumentRecord] = {} + first_document_by_url: dict[str, DocumentRecord] = {} + for record in self.documents: + document_index.setdefault(record.document_id, record) + if record.chunk_id: + document_index.setdefault(record.chunk_id, record) + first_document_by_url.setdefault(record.url, record) + + record_citation_index: dict[tuple[str, str], str] = {} + for source in self.sources: + for item in source.record_citations: + record_key = item.get("record_key") + if not isinstance(record_key, str): + continue + record_citation_index.setdefault( + (source.url, record_key), + str(item.get("record_citation_id") or ""), + ) + + object.__setattr__(self, "_source_index", source_index) + object.__setattr__(self, "_document_index", document_index) + object.__setattr__(self, "_first_document_by_url", first_document_by_url) + object.__setattr__(self, "_record_citation_index", record_citation_index) @property def citation_by_url(self) -> dict[str, str]: @@ -95,15 +131,20 @@ def citation_by_url(self) -> dict[str, str]: def source_by_url(self) -> dict[str, PackSource]: return {source.url: source for source in self.sources} + def source_for_url(self, url: str) -> PackSource | None: + """Return a source in constant time without exposing the internal index.""" + return self._source_index.get(url) + + def first_document_for_url(self, url: str) -> DocumentRecord | None: + """Return the first record for a source URL in constant time.""" + return self._first_document_by_url.get(url) + def record_citation_id(self, record: DocumentRecord) -> str | None: - source = self.source_by_url.get(record.url) + source = self.source_for_url(record.url) if source is None: return None key = record.chunk_id or record.document_id - for item in source.record_citations: - if item.get("record_key") == key: - return str(item.get("record_citation_id") or "") - return source.citation_id + return self._record_citation_index.get((record.url, key), source.citation_id) def health_payload(self) -> dict[str, Any]: return { @@ -134,7 +175,7 @@ def documents_payload(self, *, limit: int, offset: int) -> dict[str, Any]: } def document_payload(self, record: DocumentRecord, *, include_content: bool) -> dict[str, Any]: - source = self.source_by_url.get(record.url) + source = self.source_for_url(record.url) payload: dict[str, Any] = { "schema_version": record.schema_version, "document_id": record.document_id, @@ -163,10 +204,7 @@ def document_payload(self, record: DocumentRecord, *, include_content: bool) -> return {key: value for key, value in payload.items() if value is not None} def find_document(self, document_id: str) -> DocumentRecord | None: - for record in self.documents: - if record.document_id == document_id or record.chunk_id == document_id: - return record - return None + return self._document_index.get(document_id) def citations_payload(self) -> dict[str, Any]: return { @@ -227,6 +265,31 @@ def load_pack(pack_dir: Path | str) -> LocalPack: ) +def _local_pack_from_records( + pack_dir: Path, + records: list[dict[str, Any]], + *, + metadata: dict[str, Any], + metadata_path: Path | None, +) -> LocalPack: + """Build a LocalPack from an already-read NDJSON corpus.""" + manifest = _read_json(pack_dir / "corpus.manifest.json", required=False) + if not isinstance(manifest, dict): + manifest = {} + documents = _coerce_records(records) + sources = _build_sources(pack_dir, manifest, metadata, documents) + return LocalPack( + pack_dir=pack_dir, + manifest=manifest, + metadata=metadata, + metadata_path=metadata_path, + documents=tuple(documents), + sources=tuple(sources), + document_source="documents.ndjson", + sqlite_path=None, + ) + + def sanitize_metadata(value: Any) -> Any: """Remove credential-like keys from exported or served metadata.""" if isinstance(value, dict): @@ -599,12 +662,10 @@ def _search_with_sqlite( hits = search_sqlite_documents(pack.sqlite_path, query, limit=limit) except Exception: return None, "scan" - documents_by_key = _documents_by_record_key(pack.documents) - documents_by_url = _documents_by_url(pack.documents) results: list[dict[str, Any]] = [] for rank, hit in enumerate(hits, start=1): - record = documents_by_key.get(hit.record_key or "") or documents_by_url.get(hit.url) - source = pack.source_by_url.get(hit.url) + record = pack.find_document(hit.record_key or "") or pack.first_document_for_url(hit.url) + source = pack.source_for_url(hit.url) results.append( { "rank": rank, @@ -639,7 +700,7 @@ def _search_by_scan(pack: LocalPack, query: str, limit: int) -> list[dict[str, A ) if score <= 0: continue - source = pack.source_by_url.get(record.url) + source = pack.source_for_url(record.url) scored.append( { "score": score, @@ -652,17 +713,22 @@ def _search_by_scan(pack: LocalPack, query: str, limit: int) -> list[dict[str, A "title": title, "content_hash": record.content_hash, "matched_terms": matched_terms, - "excerpt": _excerpt(content or title, terms, phrase), + "_content": content or title, } ) - scored.sort( + top_results = heapq.nsmallest( + limit, + scored, key=lambda item: ( -int(item.get("score", 0)), str(item.get("citation_id") or ""), str(item.get("document_id") or ""), - ) + ), ) - return [{"rank": rank, **item} for rank, item in enumerate(scored[:limit], start=1)] + for result in top_results: + content = str(result.pop("_content")) + result["excerpt"] = _excerpt(content, terms, phrase) + return [{"rank": rank, **item} for rank, item in enumerate(top_results, start=1)] def _scan_score( diff --git a/src/docpull/pack_tools.py b/src/docpull/pack_tools.py index f685e05..44e9fea 100644 --- a/src/docpull/pack_tools.py +++ b/src/docpull/pack_tools.py @@ -3,9 +3,11 @@ from __future__ import annotations import argparse +import heapq import json import re from collections import Counter +from dataclasses import dataclass, field from pathlib import Path from typing import Any from urllib.parse import urlparse @@ -80,6 +82,89 @@ class PackToolError(RuntimeError): """User-facing pack tooling error.""" +@dataclass +class _PackAnalysis: + """One reusable read/index pass for a pack intelligence workflow.""" + + pack_dir: Path + metadata: dict[str, Any] + metadata_path: Path | None + records: list[dict[str, Any]] + expected_domains: list[str] + _source_scores: list[dict[str, Any]] | None = field(default=None, init=False, repr=False) + _citation_data: tuple[list[dict[str, Any]], dict[str, str], list[str]] | None = field( + default=None, + init=False, + repr=False, + ) + _record_citations: dict[str, str] | None = field(default=None, init=False, repr=False) + _entities_by_limit: dict[int, list[dict[str, Any]]] = field( + default_factory=dict, + init=False, + repr=False, + ) + + def source_scores(self) -> list[dict[str, Any]]: + if self._source_scores is None: + entries = _pack_source_entries(self.metadata, self.records) + self._source_scores = score_source_entries(entries, expected_domains=self.expected_domains) + return self._source_scores + + def citation_data(self) -> tuple[list[dict[str, Any]], dict[str, str], list[str]]: + if self._citation_data is None: + self._citation_data = _citation_sources( + self.pack_dir, + self.metadata, + self.records, + self.expected_domains, + ) + return self._citation_data + + def record_citations(self) -> dict[str, str]: + if self._record_citations is None: + sources, _citation_by_url, _expected = self.citation_data() + self._record_citations = _record_citation_lookup(sources) + return self._record_citations + + def entities(self, *, limit: int) -> list[dict[str, Any]]: + cached = self._entities_by_limit.get(limit) + if cached is None: + _sources, citation_by_url, _expected = self.citation_data() + cached = _extract_entities( + self.records, + citation_by_url, + self.record_citations(), + limit=limit, + ) + self._entities_by_limit[limit] = cached + return cached + + +def _analyze_pack(pack_dir: Path, required_domains: list[str] | None) -> _PackAnalysis: + root = pack_dir.resolve() + metadata, metadata_path = _read_pack_metadata_entry(root) + records = _read_pack_records(root) + return _PackAnalysis( + pack_dir=root, + metadata=metadata, + metadata_path=metadata_path, + records=records, + expected_domains=required_domains or _expected_domains(metadata), + ) + + +def _analysis_from_local_pack(pack: Any, required_domains: list[str] | None) -> _PackAnalysis: + """Reuse an already loaded LocalPack without another corpus read.""" + metadata = pack.metadata if isinstance(pack.metadata, dict) else {} + return _PackAnalysis( + pack_dir=pack.pack_dir, + metadata=metadata, + metadata_path=pack.metadata_path, + records=[record.model_dump(mode="json", exclude_none=True) for record in pack.documents], + expected_domains=required_domains or _expected_domains(metadata), + ) + + def create_pack_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser( prog="docpull pack", @@ -563,12 +648,19 @@ def run_pack_cli(argv: list[str] | None = None) -> int: return 1 -def score_pack(pack_dir: Path, *, required_domains: list[str] | None = None) -> dict[str, Any]: - pack_dir = pack_dir.resolve() +def score_pack( + pack_dir: Path, + *, + required_domains: list[str] | None = None, + _analysis: _PackAnalysis | None = None, +) -> dict[str, Any]: + analysis = _analysis or _analyze_pack(pack_dir, required_domains) + pack_dir = analysis.pack_dir manifest = _read_json(pack_dir / "corpus.manifest.json", required=False) or {} - parallel_pack, metadata_path = _read_pack_metadata_entry(pack_dir) + parallel_pack = analysis.metadata + metadata_path = analysis.metadata_path metadata_label = metadata_path.name if metadata_path else "pack metadata" - records = _read_pack_records(pack_dir) + records = analysis.records issues: list[dict[str, Any]] = [] warnings: list[dict[str, Any]] = [] @@ -676,7 +768,7 @@ def score_pack(pack_dir: Path, *, required_domains: list[str] | None = None) -> score -= 5 warnings.append(_issue("missing_task_basis", "Task output has no basis metadata.")) - expected = required_domains or _expected_domains(parallel_pack) + expected = analysis.expected_domains off_domain = _off_domain_urls(unique_urls, expected) if expected and off_domain: score -= min(25, len(off_domain) * 8) @@ -710,18 +802,19 @@ def score_pack(pack_dir: Path, *, required_domains: list[str] | None = None) -> } -def score_pack_sources(pack_dir: Path, *, required_domains: list[str] | None = None) -> dict[str, Any]: - pack_dir = pack_dir.resolve() - parallel_pack = _read_pack_metadata(pack_dir) - records = _read_pack_records(pack_dir) - expected = required_domains or _expected_domains(parallel_pack) - sources = _pack_source_entries(parallel_pack, records) - scored = score_source_entries(sources, expected_domains=expected) +def score_pack_sources( + pack_dir: Path, + *, + required_domains: list[str] | None = None, + _analysis: _PackAnalysis | None = None, +) -> dict[str, Any]: + analysis = _analysis or _analyze_pack(pack_dir, required_domains) + scored = analysis.source_scores() return { "schema_version": SOURCE_SCORE_SCHEMA_VERSION, "generated_at": utc_now_iso(), - "pack_dir": str(pack_dir), - "expected_domains": expected, + "pack_dir": str(analysis.pack_dir), + "expected_domains": analysis.expected_domains, "source_count": len(scored), "sources": scored, } @@ -731,18 +824,17 @@ def build_citation_map( pack_dir: Path, *, required_domains: list[str] | None = None, + _analysis: _PackAnalysis | None = None, ) -> dict[str, Any]: - pack_dir = pack_dir.resolve() - pack = _read_pack_metadata(pack_dir) - records = _read_pack_records(pack_dir) - sources, _citation_by_url, expected = _citation_sources(pack_dir, pack, records, required_domains) + analysis = _analysis or _analyze_pack(pack_dir, required_domains) + sources, _citation_by_url, expected = analysis.citation_data() return { "schema_version": CITATION_SCHEMA_VERSION, "generated_at": utc_now_iso(), - "pack_dir": str(pack_dir), + "pack_dir": str(analysis.pack_dir), "expected_domains": expected, "source_count": len(sources), - "record_count": len(records), + "record_count": len(analysis.records), "sources": sources, } @@ -752,26 +844,20 @@ def extract_pack_entities( *, required_domains: list[str] | None = None, limit: int = DEFAULT_ENTITY_LIMIT, + _analysis: _PackAnalysis | None = None, ) -> dict[str, Any]: if limit < 1: raise PackToolError("--limit must be at least 1.") - pack_dir = pack_dir.resolve() - pack = _read_pack_metadata(pack_dir) - records = _read_pack_records(pack_dir) - sources, citation_by_url, expected = _citation_sources(pack_dir, pack, records, required_domains) - entities = _extract_entities( - records, - citation_by_url, - _record_citation_lookup(sources), - limit=limit, - ) + analysis = _analysis or _analyze_pack(pack_dir, required_domains) + sources, _citation_by_url, expected = analysis.citation_data() + entities = analysis.entities(limit=limit) return { "schema_version": ENTITY_SCHEMA_VERSION, "generated_at": utc_now_iso(), - "pack_dir": str(pack_dir), + "pack_dir": str(analysis.pack_dir), "expected_domains": expected, "source_count": len(sources), - "record_count": len(records), + "record_count": len(analysis.records), "entity_count": len(entities), "entities": entities, } @@ -784,37 +870,34 @@ def build_research_brief( required_domains: list[str] | None = None, max_excerpts: int = DEFAULT_BRIEF_EXCERPTS, entity_limit: int = DEFAULT_BRIEF_ENTITY_LIMIT, + _analysis: _PackAnalysis | None = None, ) -> dict[str, Any]: if max_excerpts < 1: raise PackToolError("--max-excerpts must be at least 1.") if entity_limit < 0: raise PackToolError("--entity-limit cannot be negative.") - pack_dir = pack_dir.resolve() - pack = _read_pack_metadata(pack_dir) - records = _read_pack_records(pack_dir) - sources, citation_by_url, expected = _citation_sources(pack_dir, pack, records, required_domains) - brief_objective = objective or str(pack.get("objective") or "Review local DocPull context pack") - record_citation_by_key = _record_citation_lookup(sources) - entities = ( - _extract_entities(records, citation_by_url, record_citation_by_key, limit=max(1, entity_limit)) - if entity_limit - else [] + analysis = _analysis or _analyze_pack(pack_dir, required_domains) + sources, citation_by_url, expected = analysis.citation_data() + brief_objective = objective or str( + analysis.metadata.get("objective") or "Review local DocPull context pack" ) + record_citation_by_key = analysis.record_citations() + entities = analysis.entities(limit=max(1, entity_limit)) if entity_limit else [] return { "schema_version": BRIEF_SCHEMA_VERSION, "generated_at": utc_now_iso(), - "pack_dir": str(pack_dir), + "pack_dir": str(analysis.pack_dir), "objective": brief_objective, "expected_domains": expected, "summary": { "source_count": len(sources), - "record_count": len(records), + "record_count": len(analysis.records), "entity_count": len(entities), - "total_tokens": sum(_safe_int(record.get("token_count")) for record in records), + "total_tokens": sum(_safe_int(record.get("token_count")) for record in analysis.records), }, "load_plan": sources[: min(len(sources), 12)], "key_excerpts": _select_key_excerpts( - records, + analysis.records, citation_by_url, record_citation_by_key, objective=brief_objective, @@ -853,8 +936,9 @@ def build_intelligence_bundle( if search_limit < 1: raise PackToolError("--search-limit must be at least 1.") - pack_dir = pack_dir.resolve() - pack = _read_pack_metadata(pack_dir) + analysis = _analyze_pack(pack_dir, required_domains) + pack_dir = analysis.pack_dir + pack = analysis.metadata brain_objective = objective or str(pack.get("objective") or "Review local DocPull context pack") workspace_label = (market or str(pack.get("market") or "")).strip() or "Company Brain workspace" queries = _prepare_search_queries( @@ -868,12 +952,14 @@ def build_intelligence_bundle( pack_dir, required_domains=required_domains, artifacts=artifacts, + analysis=analysis, ) citations_payload = _write_prepare_citation_artifacts( pack_dir, required_domains=required_domains, markdown=True, artifacts=artifacts, + analysis=analysis, ) entities_payload = _write_prepare_entity_artifacts( pack_dir, @@ -882,6 +968,7 @@ def build_intelligence_bundle( entity_limit=entity_limit, markdown=True, artifacts=artifacts, + analysis=analysis, ) search_payloads = _write_prepare_search_artifacts( pack_dir, @@ -890,6 +977,7 @@ def build_intelligence_bundle( search_limit=search_limit, markdown=True, artifacts=artifacts, + analysis=analysis, ) brief_payload = _write_prepare_brief_artifacts( pack_dir, @@ -899,6 +987,7 @@ def build_intelligence_bundle( entity_limit=entity_limit, markdown=True, artifacts=artifacts, + analysis=analysis, ) records = _read_pack_records(pack_dir) @@ -1079,8 +1168,21 @@ def prepare_pack( if graph_entity_limit < 1: raise PackToolError("--graph-entity-limit must be at least 1.") - pack_dir = pack_dir.resolve() - pack = _read_pack_metadata(pack_dir) + analysis = _analyze_pack(pack_dir, required_domains) + pack_dir = analysis.pack_dir + pack = analysis.metadata + from .pack_reader import _local_pack_from_records, load_pack + + local_pack = ( + _local_pack_from_records( + pack_dir, + analysis.records, + metadata=analysis.metadata, + metadata_path=analysis.metadata_path, + ) + if (pack_dir / "documents.ndjson").exists() + else load_pack(pack_dir) + ) prepare_objective = objective or str(pack.get("objective") or "Review local DocPull context pack") queries = _prepare_search_queries( search_queries, @@ -1093,12 +1195,14 @@ def prepare_pack( pack_dir, required_domains=required_domains, artifacts=artifacts, + analysis=analysis, ) citations_payload = _write_prepare_citation_artifacts( pack_dir, required_domains=required_domains, markdown=markdown, artifacts=artifacts, + analysis=analysis, ) entities_payload = _write_prepare_entity_artifacts( pack_dir, @@ -1107,6 +1211,7 @@ def prepare_pack( entity_limit=entity_limit, markdown=markdown, artifacts=artifacts, + analysis=analysis, ) search_payloads = _write_prepare_search_artifacts( pack_dir, @@ -1115,6 +1220,7 @@ def prepare_pack( search_limit=search_limit, markdown=markdown, artifacts=artifacts, + analysis=analysis, ) brief_payload = _write_prepare_brief_artifacts( pack_dir, @@ -1124,12 +1230,14 @@ def prepare_pack( entity_limit=entity_limit, markdown=markdown, artifacts=artifacts, + analysis=analysis, ) basis_payload = _write_prepare_basis_artifacts( pack_dir, objective=prepare_objective, max_excerpts=max_excerpts, artifacts=artifacts, + local_pack=local_pack, ) graph_payload = ( _write_prepare_graph_artifacts( @@ -1137,6 +1245,8 @@ def prepare_pack( entity_limit=graph_entity_limit, markdown=markdown, artifacts=artifacts, + analysis=analysis, + local_pack=local_pack, ) if graph else None @@ -1146,6 +1256,7 @@ def prepare_pack( required_domains=required_domains, citations_payload=citations_payload, artifacts=artifacts, + analysis=analysis, ) eval_grade_payload = None if eval_grade: @@ -1206,13 +1317,22 @@ def _write_prepare_score_artifacts( *, required_domains: list[str] | None, artifacts: dict[str, str], + analysis: _PackAnalysis, ) -> tuple[dict[str, Any], dict[str, Any]]: - score_payload = score_pack(pack_dir, required_domains=required_domains) + score_payload = score_pack( + pack_dir, + required_domains=required_domains, + _analysis=analysis, + ) score_path = pack_dir / "pack.score.json" _write_json(score_path, score_payload) artifacts["score"] = _artifact_ref(pack_dir, score_path) - source_scores_payload = score_pack_sources(pack_dir, required_domains=required_domains) + source_scores_payload = score_pack_sources( + pack_dir, + required_domains=required_domains, + _analysis=analysis, + ) source_scores_path = pack_dir / "source.scores.json" _write_json(source_scores_path, source_scores_payload) artifacts["source_scores"] = _artifact_ref(pack_dir, source_scores_path) @@ -1225,8 +1345,13 @@ def _write_prepare_citation_artifacts( required_domains: list[str] | None, markdown: bool, artifacts: dict[str, str], + analysis: _PackAnalysis, ) -> dict[str, Any]: - citations_payload = build_citation_map(pack_dir, required_domains=required_domains) + citations_payload = build_citation_map( + pack_dir, + required_domains=required_domains, + _analysis=analysis, + ) citations_path = pack_dir / "citations.json" _write_json(citations_path, citations_payload) artifacts["citations"] = _artifact_ref(pack_dir, citations_path) @@ -1245,12 +1370,14 @@ def _write_prepare_entity_artifacts( entity_limit: int, markdown: bool, artifacts: dict[str, str], + analysis: _PackAnalysis, ) -> dict[str, Any]: if entity_limit: entities_payload = extract_pack_entities( pack_dir, required_domains=required_domains, limit=entity_limit, + _analysis=analysis, ) else: entities_payload = _empty_entities_payload(pack_dir, citations_payload) @@ -1272,6 +1399,7 @@ def _write_prepare_search_artifacts( search_limit: int, markdown: bool, artifacts: dict[str, str], + analysis: _PackAnalysis, ) -> list[dict[str, Any]]: search_payloads = [ search_pack( @@ -1279,6 +1407,7 @@ def _write_prepare_search_artifacts( query, required_domains=required_domains, limit=search_limit, + _analysis=analysis, ) for query in queries ] @@ -1316,6 +1445,7 @@ def _write_prepare_brief_artifacts( entity_limit: int, markdown: bool, artifacts: dict[str, str], + analysis: _PackAnalysis, ) -> dict[str, Any]: brief_payload = build_research_brief( pack_dir, @@ -1323,6 +1453,7 @@ def _write_prepare_brief_artifacts( required_domains=required_domains, max_excerpts=max_excerpts, entity_limit=entity_limit, + _analysis=analysis, ) brief_json_path = pack_dir / "research.brief.json" _write_json(brief_json_path, brief_payload) @@ -1340,6 +1471,7 @@ def _write_prepare_basis_artifacts( objective: str, max_excerpts: int, artifacts: dict[str, str], + local_pack: Any, ) -> dict[str, Any]: from .basis import build_pack_basis, write_basis @@ -1350,6 +1482,7 @@ def _write_prepare_basis_artifacts( claim=objective, limit=max(1, max_excerpts), producer="docpull.pack.prepare", + _pack=local_pack, ) payload = write_basis(basis_path, records) artifacts["basis"] = _artifact_ref(pack_dir, basis_path) @@ -1364,14 +1497,19 @@ def _write_prepare_agent_contract_artifacts( required_domains: list[str] | None, citations_payload: dict[str, Any], artifacts: dict[str, str], + analysis: _PackAnalysis, ) -> None: from .eval_grade import build_citation_index from .local_workflows import audit_pack - for key, path in ensure_agent_contract_sidecars(pack_dir).items(): + for key, path in ensure_agent_contract_sidecars(pack_dir, records=analysis.records).items(): artifacts[key] = _artifact_ref(pack_dir, path) - audit_payload = audit_pack(pack_dir, required_domains=required_domains) + audit_payload = audit_pack( + pack_dir, + required_domains=required_domains, + _analysis=analysis, + ) audit_artifacts = audit_payload.get("artifacts") if isinstance(audit_artifacts, dict): for key, value in audit_artifacts.items(): @@ -1381,7 +1519,11 @@ def _write_prepare_agent_contract_artifacts( citation_index_path = pack_dir / "citation.index.json" _write_json( citation_index_path, - build_citation_index(pack_dir, citations_payload=citations_payload), + build_citation_index( + pack_dir, + records=analysis.records, + citations_payload=citations_payload, + ), ) artifacts["citation_index"] = _artifact_ref(pack_dir, citation_index_path) @@ -1392,10 +1534,18 @@ def _write_prepare_graph_artifacts( entity_limit: int, markdown: bool, artifacts: dict[str, str], + analysis: _PackAnalysis, + local_pack: Any, ) -> dict[str, Any]: from .graph import build_graph - graph_payload = build_graph(pack_dir, entity_limit=entity_limit, markdown=markdown) + graph_payload = build_graph( + pack_dir, + entity_limit=entity_limit, + markdown=markdown, + _analysis=analysis, + _pack=local_pack, + ) graph_artifacts = graph_payload.get("artifacts") if isinstance(graph_artifacts, dict): for key, value in graph_artifacts.items(): @@ -1695,19 +1845,18 @@ def search_pack( *, required_domains: list[str] | None = None, limit: int = DEFAULT_SEARCH_LIMIT, + _analysis: _PackAnalysis | None = None, ) -> dict[str, Any]: if not query.strip(): raise PackToolError("query must be non-empty.") if limit < 1: raise PackToolError("--limit must be at least 1.") - pack_dir = pack_dir.resolve() - pack = _read_pack_metadata(pack_dir) - records = _read_pack_records(pack_dir) - sources, citation_by_url, expected = _citation_sources(pack_dir, pack, records, required_domains) + analysis = _analysis or _analyze_pack(pack_dir, required_domains) + sources, citation_by_url, expected = analysis.citation_data() results = _search_records( - records, + analysis.records, citation_by_url, - _record_citation_lookup(sources), + analysis.record_citations(), query=query, limit=limit, ) @@ -1715,11 +1864,11 @@ def search_pack( return { "schema_version": SEARCH_SCHEMA_VERSION, "generated_at": utc_now_iso(), - "pack_dir": str(pack_dir), + "pack_dir": str(analysis.pack_dir), "query": query, "expected_domains": expected, "source_count": len(sources), - "record_count": len(records), + "record_count": len(analysis.records), "result_count": len(results), "results": results, "citations": [source for source in sources if source["citation_id"] in citation_ids], @@ -2045,13 +2194,15 @@ def _extract_entities( "count": 0, "source_count": 0, "citations": [], + "_citation_ids": set(), }, ) item["count"] = _safe_int(item.get("count")) + 1 citations = item["citations"] if isinstance(citations, list) and citation_id: - existing_ids = {str(citation.get("citation_id")) for citation in citations} + existing_ids = item["_citation_ids"] if citation_id not in existing_ids: + existing_ids.add(citation_id) citations.append( { "citation_id": citation_id, @@ -2063,6 +2214,8 @@ def _extract_entities( ) item["source_count"] = len(citations) + for item in entities.values(): + item.pop("_citation_ids", None) sorted_entities = sorted( entities.values(), key=lambda item: ( @@ -2159,24 +2312,29 @@ def _search_records( "content_hash": record.get("content_hash"), "token_count": _safe_int(record.get("token_count")), "matched_terms": matched_terms, - "excerpt": _best_search_excerpt(content or title, terms, phrase), + "_content": content or title, } ) - scored.sort( + top_results = heapq.nsmallest( + limit, + scored, key=lambda item: ( -_safe_int(item.get("score")), str(item.get("citation_id") or ""), str(item.get("chunk_id") or ""), str(item.get("url") or ""), - ) + ), ) + for result in top_results: + content = str(result.pop("_content")) + result["excerpt"] = _best_search_excerpt(content, terms, phrase) return [ { "rank": rank, **result, } - for rank, result in enumerate(scored[:limit], start=1) + for rank, result in enumerate(top_results, start=1) ] diff --git a/src/docpull/pipeline/base.py b/src/docpull/pipeline/base.py index 4dc0968..83e171a 100644 --- a/src/docpull/pipeline/base.py +++ b/src/docpull/pipeline/base.py @@ -65,6 +65,10 @@ class PageContext: source_type: str | None = None chunks: list[object] = field(default_factory=list) + # Internal parse cache shared by adjacent HTML pipeline steps. Kept out + # of repr/serialization and released by ConvertStep after use. + parsed_html: object | None = field(default=None, repr=False) + def mark_skipped(self, reason: str, code: SkipReason | None = None) -> None: self.should_skip = True self.skip_reason = reason diff --git a/src/docpull/pipeline/steps/__init__.py b/src/docpull/pipeline/steps/__init__.py index 694aeab..8bf5176 100644 --- a/src/docpull/pipeline/steps/__init__.py +++ b/src/docpull/pipeline/steps/__init__.py @@ -1,17 +1,28 @@ -"""Pipeline steps for fetch operations.""" - -from .chunk import ChunkStep -from .convert import ConvertStep -from .dedup import DedupStep -from .fetch import FetchStep -from .metadata import MetadataStep -from .render import RenderStep -from .save import SaveStep -from .save_json import JsonSaveStep -from .save_ndjson import NdjsonSaveStep -from .save_okf import OkfSaveStep -from .save_sqlite import SqliteSaveStep, SqliteSearchResult, search_sqlite_documents -from .validate import ValidateStep +"""Pipeline steps for fetch, conversion, deduplication, and persistence.""" +# ruff: noqa: F401 - TYPE_CHECKING imports document lazy public re-exports. + +from __future__ import annotations + +from importlib import import_module +from typing import TYPE_CHECKING, Any + +_LAZY_EXPORTS = { + "ChunkStep": (".chunk", "ChunkStep"), + "ConvertStep": (".convert", "ConvertStep"), + "DedupStep": (".dedup", "DedupStep"), + "FetchStep": (".fetch", "FetchStep"), + "MetadataStep": (".metadata", "MetadataStep"), + "RenderStep": (".render", "RenderStep"), + "SaveStep": (".save", "SaveStep"), + "JsonSaveStep": (".save_json", "JsonSaveStep"), + "NdjsonSaveStep": (".save_ndjson", "NdjsonSaveStep"), + "OkfSaveStep": (".save_okf", "OkfSaveStep"), + **{ + name: (".save_sqlite", name) + for name in ("SqliteSaveStep", "SqliteSearchResult", "search_sqlite_documents") + }, + "ValidateStep": (".validate", "ValidateStep"), +} __all__ = [ "ChunkStep", @@ -29,3 +40,35 @@ "ValidateStep", "search_sqlite_documents", ] + + +def __getattr__(name: str) -> Any: + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .chunk import ChunkStep + from .convert import ConvertStep + from .dedup import DedupStep + from .fetch import FetchStep + from .metadata import MetadataStep + from .render import RenderStep + from .save import SaveStep + from .save_json import JsonSaveStep + from .save_ndjson import NdjsonSaveStep + from .save_okf import OkfSaveStep + from .save_sqlite import SqliteSaveStep, SqliteSearchResult, search_sqlite_documents + from .validate import ValidateStep + + +assert set(_LAZY_EXPORTS) == set(__all__) diff --git a/src/docpull/pipeline/steps/convert.py b/src/docpull/pipeline/steps/convert.py index 10f2d51..70ebef0 100644 --- a/src/docpull/pipeline/steps/convert.py +++ b/src/docpull/pipeline/steps/convert.py @@ -7,6 +7,8 @@ from datetime import datetime, timezone from typing import TYPE_CHECKING, Any +from bs4 import BeautifulSoup + from ...conversion.article_cleanup import clean_article_markdown from ...conversion.extractor import MainContentExtractor from ...conversion.filings import clean_inline_xbrl_html @@ -87,6 +89,39 @@ def _extract_headings(markdown: str, max_level: int = 2, limit: int = 12) -> lis return out +def _heading_summary(markdown: str) -> tuple[list[str], int]: + """Collect the frontmatter outline and bounded total in one pass.""" + outline: list[str] = [] + heading_count = 0 + in_fence = False + fence_marker = "" + for raw_line in markdown.splitlines(): + line = raw_line.strip() + if line.startswith("```") or line.startswith("~~~"): + marker = line[:3] + if not in_fence: + in_fence = True + fence_marker = marker + elif line.startswith(fence_marker): + in_fence = False + fence_marker = "" + continue + if in_fence: + continue + match = _HEADING_LINE_RE.match(raw_line) + if not match: + continue + level = len(match.group(1)) + text = match.group(2).strip() + if not text: + continue + if level <= 6 and heading_count < 1000: + heading_count += 1 + if level <= 2 and len(outline) < 12: + outline.append(text) + return outline, heading_count + + def _whitelist_metadata(metadata: dict[str, Any]) -> dict[str, Any]: """Return only the metadata keys we want to surface in frontmatter.""" return {key: metadata[key] for key in _FRONTMATTER_METADATA_KEYS if metadata.get(key)} @@ -191,6 +226,9 @@ async def execute( ctx.extraction_info["method"] = "remote_document" elif self._clean_inline_xbrl: ctx.html, cleanup_stats = clean_inline_xbrl_html(ctx.html) + # Metadata parsed the pre-cleanup document; force conversion + # to parse the rewritten bytes so XBRL removal still applies. + ctx.parsed_html = None ctx.extraction_info["inline_xbrl_cleanup"] = cleanup_stats if remote_markdown is None: ctx.source_type = detect_source_type(ctx.html, ctx.url) @@ -210,7 +248,13 @@ async def execute( else: if self._extractor is None or self._converter is None: raise RuntimeError("Generic HTML converter is not initialized.") - extracted_html = self._extractor.extract(ctx.html, ctx.url) + if ( + isinstance(ctx.parsed_html, BeautifulSoup) + and type(self._extractor) is MainContentExtractor + ): + extracted_html = self._extractor.extract_parsed(ctx.parsed_html, ctx.url) + else: + extracted_html = self._extractor.extract(ctx.html, ctx.url) ctx.extraction_info["method"] = "generic" ctx.extraction_info["extracted_html_bytes"] = len(extracted_html.encode("utf-8")) if not extracted_html.strip(): @@ -226,6 +270,7 @@ async def execute( return self._handle_empty_content(ctx, emit) markdown = clean_article_markdown(markdown, url=ctx.url, metadata=ctx.metadata) + headings, heading_count = _heading_summary(markdown) if self._add_frontmatter and self._frontmatter_builder: if ctx.source_type in {"raw_text", "llms_txt"}: @@ -244,7 +289,6 @@ async def execute( extra.update(_whitelist_metadata(ctx.metadata)) # Heading outline lets RAG indexers and skill loaders pick # the right chunk without re-parsing the body. - headings = _extract_headings(markdown) if headings: extra["headings"] = headings # ISO 8601 UTC timestamp so re-runs can be diffed by date. @@ -259,7 +303,7 @@ async def execute( ctx.markdown = markdown ctx.extraction_info["markdown_bytes"] = len(markdown.encode("utf-8")) - ctx.extraction_info["heading_count"] = len(_extract_headings(markdown, max_level=6, limit=1000)) + ctx.extraction_info["heading_count"] = heading_count ctx.extraction_info["confidence"] = self._confidence(ctx) if emit: @@ -279,6 +323,10 @@ async def execute( if emit: emit(FetchEvent(type=EventType.FETCH_FAILED, url=ctx.url, error=ctx.error)) return ctx + finally: + # Do not retain a full duplicate DOM after conversion. This also + # bounds peak memory when several fetch workers finish together. + ctx.parsed_html = None async def _try_remote_document(self, ctx: PageContext) -> str | None: media_type = (ctx.content_type or "").split(";", 1)[0].strip().casefold() diff --git a/src/docpull/pipeline/steps/metadata.py b/src/docpull/pipeline/steps/metadata.py index 8db5c05..1e63f43 100644 --- a/src/docpull/pipeline/steps/metadata.py +++ b/src/docpull/pipeline/steps/metadata.py @@ -102,6 +102,7 @@ async def execute( try: soup = BeautifulSoup(ctx.html, "html.parser") + ctx.parsed_html = soup ctx.title = self._extract_title(soup) description = self._extract_description(soup) @@ -113,8 +114,7 @@ async def execute( ctx.metadata["description"] = description if self._extract_rich and self._rich_extractor: - html_str = ctx.html.decode("utf-8", errors="replace") - rich_meta = self._rich_extractor.extract(html_str, ctx.url) + rich_meta = self._rich_extractor.extract(ctx.html, ctx.url) ctx.metadata.update(self._rich_extractor.merge_with_fallback(rich_meta, ctx.title)) if not ctx.title and ctx.metadata.get("title"): ctx.title = ctx.metadata["title"] diff --git a/src/docpull/project.py b/src/docpull/project.py index 03fd2a8..0d8d9ec 100644 --- a/src/docpull/project.py +++ b/src/docpull/project.py @@ -34,7 +34,6 @@ from .accounting import RunAccounting from .context_aliases import context_alias_for_url, get_context_alias, list_context_aliases from .conversion.chunking import TokenCounter, chunk_markdown -from .core.fetcher import Fetcher from .exports import export_pack from .models.config import ( AuthConfig, @@ -69,6 +68,26 @@ ANTHROPIC_MESSAGES_URL = "https://api.anthropic.com/v1/messages" ANTHROPIC_API_VERSION = "2023-06-01" SEMANTIC_REQUEST_TIMEOUT_S = 60.0 + + +def __getattr__(name: str) -> Any: + """Preserve the historical patchable Fetcher attribute without eager imports.""" + if name == "Fetcher": + from .core.fetcher import Fetcher + + return Fetcher + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +def _fetcher_class() -> Any: + override = globals().get("Fetcher") + if override is not None: + return override + from .core.fetcher import Fetcher + + return Fetcher + + _RUN_ID_RE = re.compile(r"^[0-9A-Za-z_.-]+$") SourceType = Literal[ @@ -1721,7 +1740,7 @@ async def _sync_source( errors: list[dict[str, Any]] = [] skips: list[dict[str, Any]] = [] robots_blocked = 0 - async with Fetcher(fetch_config) as fetcher: + async with _fetcher_class()(fetch_config) as fetcher: if source.discovered_urls: urls = _unique_urls([source.url, *source.discovered_urls]) if config.crawl.max_pages is not None: @@ -1995,7 +2014,7 @@ async def _discover_source_urls( ) -> list[str]: output_dir = project_paths(project_root).cache / "discovery" / source.name discover_config = _fetch_config(project_root, config, source, output_dir) - async with Fetcher(discover_config) as fetcher: + async with _fetcher_class()(discover_config) as fetcher: try: urls = await fetcher.discover() except Exception as err: # noqa: BLE001 diff --git a/src/docpull/security/__init__.py b/src/docpull/security/__init__.py index 6cb8ab0..1df13fb 100644 --- a/src/docpull/security/__init__.py +++ b/src/docpull/security/__init__.py @@ -1,9 +1,16 @@ -"""Security validation for docpull.""" +"""Security validation, robots policy, and safe download controls.""" +# ruff: noqa: F401 - TYPE_CHECKING imports document lazy public re-exports. -from .download_policy import SafeDownloadPolicy, UnsafeDownloadError -from .robots import RobotsChecker -from .url_validator import UrlValidationResult, UrlValidator +from __future__ import annotations +from importlib import import_module +from typing import TYPE_CHECKING, Any + +_LAZY_EXPORTS = { + **{name: (".download_policy", name) for name in ("SafeDownloadPolicy", "UnsafeDownloadError")}, + "RobotsChecker": (".robots", "RobotsChecker"), + **{name: (".url_validator", name) for name in ("UrlValidationResult", "UrlValidator")}, +} __all__ = [ "RobotsChecker", "SafeDownloadPolicy", @@ -11,3 +18,26 @@ "UrlValidationResult", "UrlValidator", ] + + +def __getattr__(name: str) -> Any: + target = _LAZY_EXPORTS.get(name) + if target is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + module_name, attribute_name = target + value = getattr(import_module(module_name, __name__), attribute_name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + return sorted(set(globals()) | set(__all__)) + + +if TYPE_CHECKING: + from .download_policy import SafeDownloadPolicy, UnsafeDownloadError + from .robots import RobotsChecker + from .url_validator import UrlValidationResult, UrlValidator + + +assert set(_LAZY_EXPORTS) == set(__all__) diff --git a/tests/test_ci_policy.py b/tests/test_ci_policy.py index 3f6e34c..9a6e667 100644 --- a/tests/test_ci_policy.py +++ b/tests/test_ci_policy.py @@ -104,7 +104,8 @@ def test_ci_matrix_covers_advertised_python_minors() -> None: advertised = set(PYTHON_CLASSIFIER_RE.findall(pyproject)) matrix_match = CI_MATRIX_RE.search(ci) assert matrix_match is not None - tested = set(re.findall(r'"(3\.\d+)"', matrix_match.group("versions"))) + tested_versions = re.findall(r'"(3\.\d+(?:\.\d+)?)"', matrix_match.group("versions")) + tested = {".".join(version.split(".")[:2]) for version in tested_versions} assert tested == advertised @@ -113,31 +114,38 @@ def test_ci_builds_checks_and_smoke_installs_distribution() -> None: ci = (WORKFLOW_DIR / "ci.yml").read_text() assert "\n package:\n" in ci - assert "python scripts/sync_release_metadata.py --check" in ci - assert "python -m pip install -r requirements-release.txt" in ci - assert "python scripts/build_release.py --verify-reproducible" in ci + assert "uv run --locked python scripts/sync_release_metadata.py --check" in ci + assert ( + "uv run --locked --with-requirements requirements-release.txt " + "python scripts/build_release.py --verify-reproducible" + ) in ci + assert "python -m build --no-isolation" not in ci assert "python -m twine check dist/*" in ci - assert "python -m venv .pkg-smoke" in ci - assert ".pkg-smoke/bin/python -m pip install dist/*.whl" in ci + assert "uv venv .pkg-smoke" in ci + assert "uv pip install --python .pkg-smoke/bin/python dist/*.whl" in ci assert ".pkg-smoke/bin/docpull --version" in ci -def test_publish_workflow_builds_artifact_before_unlocked_release_gates() -> None: +def test_publish_workflow_builds_artifact_before_locked_release_gates() -> None: publish = (WORKFLOW_DIR / "publish.yml").read_text() build_section, gate_and_publish = publish.split("\n release-gates:\n", 1) gate_section, publish_section = gate_and_publish.split("\n publish:\n", 1) - assert "python scripts/build_release.py --verify-reproducible" in build_section + assert ( + "uv run --locked --with-requirements requirements-release.txt " + "python scripts/build_release.py --verify-reproducible" + ) in build_section + assert "python -m build --no-isolation" not in build_section assert "actions/upload-artifact" in build_section assert "if-no-files-found: error" in build_section assert "retention-days: 7" in build_section assert 'pip install --no-build-isolation -e ".[all,dev]"' not in build_section - assert 'pip install --no-build-isolation -e ".[all,dev]"' in gate_section - assert "python scripts/sync_release_metadata.py --check" in publish + assert "uv sync --locked --all-extras --dev" in gate_section + assert "uv run --locked python scripts/sync_release_metadata.py --check" in publish assert "actions/download-artifact" in gate_section - assert "python -m venv .release-smoke" in publish - assert ".release-smoke/bin/python -m pip install dist/*.whl" in publish + assert "uv venv .release-smoke" in publish + assert "uv pip install --python .release-smoke/bin/python dist/*.whl" in publish assert ".release-smoke/bin/docpull --version" in publish assert "needs: [build, release-gates]" in publish_section diff --git a/tests/test_frontier_resume.py b/tests/test_frontier_resume.py index 7a3d6fe..a258c8e 100644 --- a/tests/test_frontier_resume.py +++ b/tests/test_frontier_resume.py @@ -33,3 +33,58 @@ def test_frontier_reinitializes_on_fingerprint_change(tmp_path): assert store.entries == {} assert store.compatible(start_url="https://example.com", run_fingerprint={"max_pages": 2}) + + +def test_frontier_transitions_append_then_compact(tmp_path): + path = tmp_path / "frontier.json" + store = FrontierStore(path) + store.initialize(start_url="https://example.com", run_fingerprint={"max_pages": 2}) + store.add_many(["https://example.com/a", "https://example.com/b"]) + store.save() + snapshot_before = path.read_bytes() + + store.mark_processing("https://example.com/a") + store.mark_succeeded("https://example.com/a") + + assert path.read_bytes() == snapshot_before + assert store.journal_path.exists() + assert len(store.journal_path.read_text(encoding="utf-8").splitlines()) == 2 + assert FrontierStore(path).entries["https://example.com/a"].state == FrontierState.SUCCEEDED + + store.flush() + + assert not store.journal_path.exists() + assert FrontierStore(path).entries["https://example.com/a"].state == FrontierState.SUCCEEDED + + +def test_frontier_recovers_after_truncated_journal_tail(tmp_path): + path = tmp_path / "frontier.json" + store = FrontierStore(path) + store.initialize(start_url="https://example.com", run_fingerprint={"max_pages": 2}) + store.add_many(["https://example.com/a", "https://example.com/b"]) + store.save() + store.mark_succeeded("https://example.com/a") + + with store.journal_path.open("a", encoding="utf-8") as journal: + journal.write('{"schema_version":1,"entry":') + + recovered = FrontierStore(path) + recovered.mark_succeeded("https://example.com/b") + reloaded = FrontierStore(path) + + assert reloaded.entries["https://example.com/a"].state == FrontierState.SUCCEEDED + assert reloaded.entries["https://example.com/b"].state == FrontierState.SUCCEEDED + + +def test_frontier_ignores_journal_records_from_other_schema_versions(tmp_path): + path = tmp_path / "frontier.json" + store = FrontierStore(path) + store.initialize(start_url="https://example.com", run_fingerprint={"max_pages": 2}) + store.add("https://example.com/a") + store.save() + store.journal_path.write_text( + '{"schema_version":999,"entry":{"url":"https://example.com/a","state":"succeeded"}}\n', + encoding="utf-8", + ) + + assert FrontierStore(path).entries["https://example.com/a"].state == FrontierState.QUEUED diff --git a/tests/test_http_efficiency.py b/tests/test_http_efficiency.py new file mode 100644 index 0000000..3b1e4dc --- /dev/null +++ b/tests/test_http_efficiency.py @@ -0,0 +1,169 @@ +"""Performance-contract tests for the shared HTTP transport.""" + +from __future__ import annotations + +import asyncio +from collections.abc import AsyncIterator + +import pytest + +from docpull.http.client import AsyncHttpClient + + +class _NullLimit: + async def __aenter__(self) -> None: + return None + + async def __aexit__(self, _exc_type: object, _exc: object, _tb: object) -> None: + return None + + +class _RateLimiter: + def limit(self, _url: str) -> _NullLimit: + return _NullLimit() + + +class _Content: + async def iter_chunked(self, _size: int) -> AsyncIterator[bytes]: + yield b"content" + + +class _Response: + status = 200 + headers = {"Content-Type": "text/html", "ETag": "test"} + content = _Content() + url = "https://docs.example.com/page" + + def raise_for_status(self) -> None: + return None + + +class _DelayedRequest: + def __init__(self, release: asyncio.Event) -> None: + self._release = release + + async def __aenter__(self) -> _Response: + await self._release.wait() + return _Response() + + async def __aexit__(self, _exc_type: object, _exc: object, _tb: object) -> None: + return None + + +class _CountingSession: + def __init__(self, release: asyncio.Event) -> None: + self.release = release + self.calls: list[tuple[str, dict[str, object]]] = [] + + def get(self, url: str, **kwargs: object) -> _DelayedRequest: + self.calls.append((url, kwargs)) + return _DelayedRequest(self.release) + + +@pytest.mark.asyncio +async def test_identical_concurrent_gets_share_one_physical_request() -> None: + release = asyncio.Event() + session = _CountingSession(release) + client = AsyncHttpClient(rate_limiter=_RateLimiter()) # type: ignore[arg-type] + client._session = session # type: ignore[assignment] + + first = asyncio.create_task(client.get("https://docs.example.com/page")) + await asyncio.sleep(0) + second = asyncio.create_task(client.get("https://docs.example.com/page", timeout=30.0, headers={})) + await asyncio.sleep(0) + + assert len(session.calls) == 1 + release.set() + first_response, second_response = await asyncio.gather(first, second) + assert first_response.content == second_response.content == b"content" + + first_response.headers["X-Caller"] = "first" + assert "X-Caller" not in second_response.headers + + +@pytest.mark.asyncio +async def test_request_headers_keep_concurrent_gets_isolated() -> None: + release = asyncio.Event() + session = _CountingSession(release) + client = AsyncHttpClient(rate_limiter=_RateLimiter()) # type: ignore[arg-type] + client._session = session # type: ignore[assignment] + + plain = asyncio.create_task(client.get("https://docs.example.com/page")) + conditional = asyncio.create_task( + client.get( + "https://docs.example.com/page", + headers={"If-None-Match": '"cached"'}, + ) + ) + await asyncio.sleep(0) + await asyncio.sleep(0) + + assert len(session.calls) == 2 + release.set() + await asyncio.gather(plain, conditional) + + +@pytest.mark.asyncio +async def test_auth_header_override_spelling_does_not_coalesce_different_requests() -> None: + release = asyncio.Event() + session = _CountingSession(release) + client = AsyncHttpClient( + rate_limiter=_RateLimiter(), # type: ignore[arg-type] + auth_headers={"Authorization": "secret"}, + ) + client._session = session # type: ignore[assignment] + + exact_override = asyncio.create_task( + client.get("https://docs.example.com/page", headers={"Authorization": "override"}) + ) + differently_cased = asyncio.create_task( + client.get("https://docs.example.com/page", headers={"authorization": "override"}) + ) + await asyncio.sleep(0) + await asyncio.sleep(0) + + assert len(session.calls) == 2 + release.set() + await asyncio.gather(exact_override, differently_cased) + + +@pytest.mark.asyncio +async def test_inflight_get_snapshots_mutable_request_headers() -> None: + release = asyncio.Event() + session = _CountingSession(release) + client = AsyncHttpClient(rate_limiter=_RateLimiter()) # type: ignore[arg-type] + client._session = session # type: ignore[assignment] + headers = {"If-None-Match": '"first"'} + + request = asyncio.create_task(client.get("https://docs.example.com/page", headers=headers)) + await asyncio.sleep(0) + headers["If-None-Match"] = '"changed"' + await asyncio.sleep(0) + + release.set() + await request + sent_headers = session.calls[0][1]["headers"] + assert isinstance(sent_headers, dict) + assert sent_headers["If-None-Match"] == '"first"' + + +@pytest.mark.asyncio +async def test_cancelled_waiter_does_not_cancel_shared_get() -> None: + release = asyncio.Event() + session = _CountingSession(release) + client = AsyncHttpClient(rate_limiter=_RateLimiter()) # type: ignore[arg-type] + client._session = session # type: ignore[assignment] + + cancelled = asyncio.create_task(client.get("https://docs.example.com/page")) + survivor = asyncio.create_task(client.get("https://docs.example.com/page")) + await asyncio.sleep(0) + await asyncio.sleep(0) + + cancelled.cancel() + with pytest.raises(asyncio.CancelledError): + await cancelled + release.set() + + response = await survivor + assert response.content == b"content" + assert len(session.calls) == 1 diff --git a/tests/test_import_efficiency.py b/tests/test_import_efficiency.py new file mode 100644 index 0000000..69d4ae4 --- /dev/null +++ b/tests/test_import_efficiency.py @@ -0,0 +1,107 @@ +"""Regression coverage for the lightweight package import boundary.""" + +from __future__ import annotations + +import subprocess +import sys + +import docpull + + +def test_all_public_sdk_exports_resolve() -> None: + for name in docpull.__all__: + assert getattr(docpull, name) is not None + + +def test_plain_package_import_does_not_load_fetch_or_html_stacks() -> None: + script = """ +import sys +import docpull +blocked = {'aiohttp', 'bs4', 'docpull.core.fetcher', 'docpull.context_ci'} +loaded = sorted(blocked.intersection(sys.modules)) +if loaded: + raise SystemExit(','.join(loaded)) +""" + result = subprocess.run( + [sys.executable, "-c", script], + check=False, + capture_output=True, + text=True, + ) + assert result.returncode == 0, result.stderr + + +def _assert_import_avoids(statement: str, blocked: set[str]) -> None: + script = f""" +import sys +{statement} +blocked = {blocked!r} +loaded = sorted(blocked.intersection(sys.modules)) +if loaded: + raise SystemExit(','.join(loaded)) +""" + result = subprocess.run( + [sys.executable, "-c", script], + check=False, + capture_output=True, + text=True, + ) + assert result.returncode == 0, result.stderr + + +def test_lightweight_internal_features_do_not_import_unrelated_stacks() -> None: + _assert_import_avoids( + "import docpull.models.events", + {"pydantic", "docpull.models.run", "docpull.models.config"}, + ) + _assert_import_avoids( + "import docpull.cache.frontier", + {"pydantic", "docpull.cache.manager", "docpull.models.run"}, + ) + _assert_import_avoids( + "import docpull.http.protocols", + {"aiohttp", "docpull.http.client", "docpull.http.rate_limiter"}, + ) + _assert_import_avoids( + "import docpull.conversion.chunking", + {"bs4", "docpull.conversion.extractor", "docpull.conversion.special_cases"}, + ) + _assert_import_avoids( + "import docpull.mcp.sources", + {"aiohttp", "docpull.mcp.server", "docpull.core.fetcher"}, + ) + _assert_import_avoids( + "import docpull.project", + {"aiohttp", "bs4", "docpull.core.fetcher"}, + ) + + +def test_internal_package_public_exports_still_resolve() -> None: + script = """ +import importlib + +packages = ( + 'docpull.models', + 'docpull.http', + 'docpull.cache', + 'docpull.conversion', + 'docpull.pipeline.steps', + 'docpull.mcp', + 'docpull.discovery', + 'docpull.discovery.link_extractors', + 'docpull.security', + 'docpull.context_packs', +) +for package_name in packages: + package = importlib.import_module(package_name) + for name in package.__all__: + if getattr(package, name) is None: + raise SystemExit(f'{package_name}.{name}') +""" + result = subprocess.run( + [sys.executable, "-c", script], + check=False, + capture_output=True, + text=True, + ) + assert result.returncode == 0, result.stderr diff --git a/tests/test_native_integrations.py b/tests/test_native_integrations.py new file mode 100644 index 0000000..9bcadea --- /dev/null +++ b/tests/test_native_integrations.py @@ -0,0 +1,29 @@ +from __future__ import annotations + +from docpull.native_integrations import ( + NativeIntegrationContextSource, + native_integration_context_documents, +) + + +def test_native_integration_context_documents_are_metadata_only() -> None: + docs = native_integration_context_documents( + [ + NativeIntegrationContextSource( + provider="jira", + ref="GOV-123", + title="Release blocker issue", + url="https://example.atlassian.net/browse/GOV-123", + summary="Reviewer accepted the mitigation plan.", + metadata={"status": "Done"}, + ) + ] + ) + + doc = docs[0] + assert doc.source_type == "integration:jira" + assert doc.metadata["storageMode"] == "metadata_only" + assert doc.metadata["provider"] == "jira" + assert doc.metadata["ref"] == "GOV-123" + assert doc.rights["state"] == "metadata_only" + assert "Reviewer accepted" in doc.content diff --git a/tests/test_pack_tools.py b/tests/test_pack_tools.py index 94d2a54..5c72d42 100644 --- a/tests/test_pack_tools.py +++ b/tests/test_pack_tools.py @@ -5,6 +5,7 @@ import json from pathlib import Path +import docpull.pack_tools as pack_tools_module from docpull.cli import main from docpull.eval_grade import run_evalgen_cli, run_freshdocs_cli from docpull.pack_tools import ( @@ -589,6 +590,28 @@ def test_pack_prepare_cli_can_skip_search_entities_and_markdown(tmp_path: Path) assert not (pack / "SEARCH.md").exists() +def test_pack_prepare_reads_corpus_once_for_shared_analysis(tmp_path: Path, monkeypatch) -> None: + pack = tmp_path / "pack" + _write_pack( + pack, + [_record("https://docs.parallel.ai/api-reference/search/search", "aaa")], + include_domains=["docs.parallel.ai"], + ) + original = pack_tools_module._read_pack_records + calls = 0 + + def counted_read(pack_dir: Path): + nonlocal calls + calls += 1 + return original(pack_dir) + + monkeypatch.setattr(pack_tools_module, "_read_pack_records", counted_read) + + prepare_pack(pack, graph=False, markdown=False) + + assert calls == 1 + + def test_pack_prepare_no_markdown_still_builds_graph_data(tmp_path: Path) -> None: pack = tmp_path / "pack" _write_pack( diff --git a/tests/test_pipeline.py b/tests/test_pipeline.py index 3893240..5a1671c 100644 --- a/tests/test_pipeline.py +++ b/tests/test_pipeline.py @@ -216,6 +216,26 @@ async def test_no_html_skipped(self): assert result.error is not None + @pytest.mark.asyncio + async def test_inline_xbrl_cleanup_invalidates_metadata_parse_cache(self): + html = ( + b"private taxonomy data" + b"

Visible filing

" + ) + ctx = PageContext( + url="https://example.com/filing", + output_path=Path("/tmp/out.md"), + html=html, + ) + await MetadataStep().execute(ctx) + + result = await ConvertStep(add_frontmatter=False, clean_inline_xbrl=True).execute(ctx) + + assert result.markdown is not None + assert "Visible filing" in result.markdown + assert "private taxonomy data" not in result.markdown + assert result.parsed_html is None + class TestMetadataStep: """Tests for MetadataStep.""" diff --git a/tests/test_surface_contract.py b/tests/test_surface_contract.py index 390bd69..76176f2 100644 --- a/tests/test_surface_contract.py +++ b/tests/test_surface_contract.py @@ -28,6 +28,9 @@ ) ROOT = Path(__file__).resolve().parents[1] +LEGACY_BROWSER_RUNNER = "playwright" +LEGACY_BROWSER_RENDERER = "Playwright" +LEGACY_BROWSER_AVAILABILITY_CHECK = "check_" + LEGACY_BROWSER_RUNNER + "_availability" PRIMARY_DOC_PATHS = [ "README.md", @@ -43,22 +46,19 @@ PRIMARY_WEB_PATHS = [ "web/app/page.tsx", "web/app/layout.tsx", - "web/components/CodeExamples.tsx", - "web/components/Comparison.tsx", - "web/components/Features.tsx", - "web/components/Install.tsx", - "web/components/StructuredData.tsx", - "web/components/faq-content.tsx", - "web/components/docs/DocsArticle.tsx", - "web/components/docs/docs-data.ts", + "web/app/pricing/page.tsx", + "web/app/privacy/page.tsx", + "web/app/terms/page.tsx", + "web/app/llms.txt/route.ts", + "web/components/SiteChrome.tsx", ] def test_documented_sdk_exports_remain_public() -> None: assert tuple(docpull.__all__) == PUBLIC_SDK_EXPORTS assert set(docpull.__all__).isdisjoint(PRUNED_SDK_EXPORTS) - assert "PlaywrightRenderer" not in docpull.__all__ - assert "check_playwright_availability" not in docpull.__all__ + assert f"{LEGACY_BROWSER_RENDERER}Renderer" not in docpull.__all__ + assert LEGACY_BROWSER_AVAILABILITY_CHECK not in docpull.__all__ def test_context_pack_package_exports_match_public_lanes() -> None: @@ -82,7 +82,7 @@ def test_pruned_package_extras_remain_private() -> None: for extra in PRUNED_PACKAGE_EXTRAS: assert f"{extra} = [" not in pyproject - assert "playwright" not in pyproject + assert LEGACY_BROWSER_RUNNER not in pyproject assert "parallel-web" not in pyproject assert "raindrop-ai" not in pyproject @@ -109,8 +109,8 @@ def test_documented_cli_workflows_remain_dispatched() -> None: assert f'raw_argv[0] == "{workflow}"' not in cli_source assert workflow not in help_commands - assert "playwright" not in cli_source - assert "Playwright" not in cli_source + assert LEGACY_BROWSER_RUNNER not in cli_source + assert LEGACY_BROWSER_RENDERER not in cli_source args = create_parser().parse_args(["https://example.com"]) assert args.url == "https://example.com" @@ -163,10 +163,10 @@ def test_primary_docs_do_not_publish_pruned_surface() -> None: for relative_path in PRIMARY_DOC_PATHS: text = (ROOT / relative_path).read_text(encoding="utf-8") - assert "docpull[playwright]" not in text + assert f"docpull[{LEGACY_BROWSER_RUNNER}]" not in text assert "docpull[all]" not in text - assert "--runtime playwright" not in text - assert "--render-runtime playwright" not in text + assert f"--runtime {LEGACY_BROWSER_RUNNER}" not in text + assert f"--render-runtime {LEGACY_BROWSER_RUNNER}" not in text assert not pruned_command_re.search(text), relative_path readme = (ROOT / "README.md").read_text(encoding="utf-8") diff --git a/web/.gitignore b/web/.gitignore new file mode 100644 index 0000000..5e637f4 --- /dev/null +++ b/web/.gitignore @@ -0,0 +1,3 @@ +.next/ +node_modules/ +next-env.d.ts diff --git a/web/app/globals.css b/web/app/globals.css new file mode 100644 index 0000000..690bd8e --- /dev/null +++ b/web/app/globals.css @@ -0,0 +1,382 @@ +:root { + --bg: #ffffff; + --fg: #101213; + --muted: #5d646b; + --line: #dce1e5; + --soft: #f5f7f8; + --soft-strong: #edf3f1; + --accent: #0f6b5d; + --accent-strong: #083f37; + --warn: #805b13; + --code: #18201f; + color-scheme: light; +} + +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + margin: 0; + background: var(--bg); + color: var(--fg); + font-family: + Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", + sans-serif; + line-height: 1.5; + text-rendering: optimizeLegibility; +} + +a { + color: inherit; + text-decoration: none; +} + +a:hover { + color: var(--accent); +} + +.site-shell { + min-height: 100vh; + display: flex; + flex-direction: column; +} + +.site-header, +.site-footer { + border-color: var(--line); + border-style: solid; +} + +.site-header { + border-width: 0 0 1px; + background: rgba(255, 255, 255, 0.92); + position: sticky; + top: 0; + z-index: 10; + backdrop-filter: blur(12px); +} + +.site-footer { + border-width: 1px 0 0; + margin-top: auto; +} + +.site-bar, +.footer-inner, +.page-wrap { + width: min(100% - 32px, 1040px); + margin: 0 auto; +} + +.site-bar { + min-height: 64px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 24px; +} + +.brand { + display: inline-flex; + align-items: center; + gap: 10px; + font-size: 15px; + font-weight: 700; + letter-spacing: 0; +} + +.brand-mark { + width: 24px; + height: 24px; + display: block; + flex: 0 0 auto; +} + +.logo-mark-frame { + fill: var(--fg); +} + +.logo-mark-accent { + fill: var(--accent); +} + +.site-nav { + display: flex; + align-items: center; + gap: 18px; + color: var(--muted); + font-size: 14px; + font-weight: 600; +} + +.page-wrap { + padding: 72px 0 88px; +} + +.hero { + max-width: 760px; + margin-bottom: 44px; +} + +.hero h1 { + margin: 0; + font-size: clamp(40px, 6vw, 76px); + line-height: 0.96; + letter-spacing: 0; + max-width: 780px; +} + +.hero p { + margin: 22px 0 0; + color: var(--muted); + font-size: 19px; + line-height: 1.6; + max-width: 680px; +} + +.actions { + display: flex; + flex-wrap: wrap; + gap: 12px; + margin-top: 28px; +} + +.button { + min-height: 44px; + display: inline-flex; + align-items: center; + justify-content: center; + border: 1px solid var(--line); + border-radius: 8px; + padding: 10px 15px; + font-size: 14px; + font-weight: 700; + line-height: 1.2; +} + +.button.primary { + background: var(--fg); + border-color: var(--fg); + color: var(--bg); +} + +.button.primary:hover { + background: var(--accent-strong); + border-color: var(--accent-strong); + color: var(--bg); +} + +.button:hover { + border-color: var(--accent); +} + +.panel-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 14px; +} + +.panel, +.plan, +.notice { + border: 1px solid var(--line); + border-radius: 8px; + background: var(--bg); +} + +.panel, +.plan { + padding: 22px; +} + +.panel h2, +.panel h3, +.plan h2, +.plan h3, +.content-section h2 { + margin: 0; + line-height: 1.15; + letter-spacing: 0; +} + +.panel p, +.plan p, +.content-section p, +.content-section li { + color: var(--muted); +} + +.plan.featured { + background: var(--soft-strong); + border-color: #b6cec7; +} + +.price { + margin: 22px 0 4px; + font-size: 44px; + line-height: 1; + font-weight: 800; + letter-spacing: 0; +} + +.price span { + color: var(--muted); + font-size: 15px; + font-weight: 600; +} + +.feature-list { + padding: 0; + margin: 22px 0 0; + list-style: none; +} + +.feature-list li { + position: relative; + padding-left: 20px; + margin: 11px 0; +} + +.feature-list li::before { + content: ""; + position: absolute; + left: 0; + top: 0.72em; + width: 7px; + height: 7px; + border-radius: 50%; + background: var(--accent); +} + +.notice { + padding: 18px 20px; + margin: 26px 0 0; + background: #fff8e8; + color: var(--warn); +} + +.notice p { + margin: 0; +} + +.content-layout { + display: grid; + grid-template-columns: minmax(0, 1fr) 260px; + gap: 48px; + align-items: start; +} + +.content-section { + border-top: 1px solid var(--line); + padding: 30px 0; +} + +.content-section:first-child { + border-top: 0; + padding-top: 0; +} + +.content-section h2 { + font-size: 24px; +} + +.content-section p, +.content-section li { + font-size: 16px; + line-height: 1.7; +} + +.content-section ul { + padding-left: 20px; +} + +.sidebar { + border: 1px solid var(--line); + border-radius: 8px; + padding: 18px; + background: var(--soft); + position: sticky; + top: 88px; +} + +.sidebar h2 { + margin: 0 0 10px; + font-size: 14px; +} + +.sidebar p, +.sidebar a { + font-size: 14px; + color: var(--muted); +} + +.sidebar a { + display: block; + margin-top: 9px; + font-weight: 700; +} + +.footer-inner { + min-height: 88px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 20px; + color: var(--muted); + font-size: 14px; +} + +.footer-links { + display: flex; + gap: 16px; +} + +code { + border-radius: 6px; + background: var(--soft); + color: var(--code); + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; + font-size: 0.92em; + padding: 0.12em 0.35em; +} + +@media (max-width: 780px) { + .site-bar, + .footer-inner, + .content-layout { + align-items: stretch; + flex-direction: column; + } + + .site-bar { + padding: 12px 0; + } + + .site-nav, + .footer-links { + flex-wrap: wrap; + gap: 12px; + } + + .page-wrap { + padding: 48px 0 64px; + } + + .panel-grid, + .content-layout { + grid-template-columns: 1fr; + } + + .sidebar { + position: static; + } + + .hero h1 { + font-size: 44px; + } +} diff --git a/web/app/icon.svg b/web/app/icon.svg new file mode 100644 index 0000000..1c4ef75 --- /dev/null +++ b/web/app/icon.svg @@ -0,0 +1,10 @@ + + DocPull + + + + diff --git a/web/app/layout.tsx b/web/app/layout.tsx new file mode 100644 index 0000000..08a7de6 --- /dev/null +++ b/web/app/layout.tsx @@ -0,0 +1,56 @@ +import type { Metadata } from "next"; +import "./globals.css"; + +const baseUrl = "https://docpull.raintree.technology"; + +export const metadata: Metadata = { + metadataBase: new URL(baseUrl), + title: { + default: "DocPull", + template: "%s | DocPull", + }, + description: + "DocPull is a local-first Python CLI, SDK, and MCP server for turning public web sources into cited context packs.", + applicationName: "DocPull", + manifest: "/manifest.webmanifest", + authors: [{ name: "Raintree Technology", url: "https://raintree.technology" }], + creator: "Raintree Technology", + publisher: "Raintree Technology", + robots: { + index: true, + follow: true, + }, + openGraph: { + type: "website", + url: baseUrl, + siteName: "DocPull", + title: "DocPull", + description: + "Local-first context dependencies for AI agents, RAG pipelines, and MCP clients.", + }, + twitter: { + card: "summary", + title: "DocPull", + description: + "Local-first context dependencies for AI agents, RAG pipelines, and MCP clients.", + }, + icons: { + icon: [ + { url: "/favicon.svg", type: "image/svg+xml" }, + { url: "/favicon.ico", sizes: "32x32" }, + ], + apple: [{ url: "/apple-touch-icon.png", sizes: "180x180" }], + }, +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + {children} + + ); +} diff --git a/web/app/llms.txt/route.ts b/web/app/llms.txt/route.ts new file mode 100644 index 0000000..4b6e3a9 --- /dev/null +++ b/web/app/llms.txt/route.ts @@ -0,0 +1,33 @@ +export function GET() { + const body = `# DocPull + +DocPull is a local-first Python CLI, SDK, and MCP server for declaring public web sources, syncing them into cited context packs, diffing changes, and exporting reproducible context for AI agents, MCP clients, and RAG pipelines. + +Canonical project: +- GitHub: https://github.com/raintree-technology/docpull +- PyPI: https://pypi.org/project/docpull/ +- Documentation: https://github.com/raintree-technology/docpull#readme +- Pricing: https://docpull.raintree.technology/pricing +- Privacy: https://docpull.raintree.technology/privacy +- Terms: https://docpull.raintree.technology/terms + +Install: +\`\`\`bash +pip install docpull +pip install 'docpull[mcp]' +\`\`\` + +Positioning: +- Local-first context dependencies for AI agents. +- Browser-free by default. +- Explicit user control for optional paid-capable provider or cloud-rendering routes. +- MIT licensed open-source core. +`; + + return new Response(body, { + headers: { + "content-type": "text/plain; charset=utf-8", + "cache-control": "public, max-age=3600", + }, + }); +} diff --git a/web/app/manifest.ts b/web/app/manifest.ts new file mode 100644 index 0000000..070df9e --- /dev/null +++ b/web/app/manifest.ts @@ -0,0 +1,26 @@ +import type { MetadataRoute } from "next"; + +export default function manifest(): MetadataRoute.Manifest { + return { + name: "DocPull", + short_name: "DocPull", + description: + "Local-first context dependencies for AI agents, RAG pipelines, and MCP clients.", + start_url: "/", + display: "standalone", + background_color: "#F5F4EF", + theme_color: "#101213", + icons: [ + { + src: "/icon-192.png", + sizes: "192x192", + type: "image/png", + }, + { + src: "/icon-512.png", + sizes: "512x512", + type: "image/png", + }, + ], + }; +} diff --git a/web/app/page.tsx b/web/app/page.tsx new file mode 100644 index 0000000..946c60a --- /dev/null +++ b/web/app/page.tsx @@ -0,0 +1,53 @@ +import { PageShell } from "../components/SiteChrome"; + +export default function HomePage() { + return ( + +
+
+

Local-first context dependencies for AI agents.

+

+ DocPull is a Python CLI, SDK, and MCP server for turning public web + sources into cited context packs that can be synced, diffed, and + exported without a hosted account. +

+ +
+ +
+
+

Open source

+

+ The core package is MIT licensed and runs locally from your + environment. +

+
+
+

No account required

+

+ Fetch, cache, diff, and export public sources without creating a + DocPull account. +

+
+
+

Explicit paid routes

+

+ Optional provider or cloud-rendering paths remain user-controlled + and budget gated. +

+
+
+
+
+ ); +} diff --git a/web/app/pricing/page.tsx b/web/app/pricing/page.tsx new file mode 100644 index 0000000..2951a58 --- /dev/null +++ b/web/app/pricing/page.tsx @@ -0,0 +1,87 @@ +import type { Metadata } from "next"; +import { PageShell } from "../../components/SiteChrome"; + +export const metadata: Metadata = { + title: "Pricing", + description: + "DocPull pricing for the open-source Python CLI, SDK, and MCP server.", + alternates: { + canonical: "/pricing", + }, +}; + +export default function PricingPage() { + return ( + +
+
+

Pricing

+

+ DocPull is local-first open-source software. The core CLI, SDK, MCP + server, cache, lockfile, diff, and export workflow are free to use + under the MIT license. +

+
+ +
+
+

Open source

+
+ $0 / seat +
+

For developers and teams running DocPull in their own environment.

+
    +
  • Python CLI and SDK
  • +
  • MCP server for local clients
  • +
  • Markdown, NDJSON, SQLite, and context-pack exports
  • +
  • Local cache, lockfiles, diffs, and CI checks
  • +
  • MIT license for personal and commercial use
  • +
+
+ +
+

Bring your own provider

+
+ $0 to DocPull +
+

+ Optional API providers, browser rendering, or cloud sandboxes are + billed by the provider you choose, not by DocPull. +

+
    +
  • Explicit opt-in for paid-capable routes
  • +
  • + Use --budget 0 to block paid-capable provider paths +
  • +
  • No DocPull account or metered hosted service required
  • +
+
+ +
+

Commercial support

+
+ Contact / project +
+

+ Support, integration help, and managed workflows may be offered + separately for teams that need them. +

+
    +
  • Context-dependency setup reviews
  • +
  • CI and workflow integration help
  • +
  • Custom source-pack or export guidance
  • +
+
+
+ + +
+
+ ); +} diff --git a/web/app/privacy/page.tsx b/web/app/privacy/page.tsx new file mode 100644 index 0000000..adc7c38 --- /dev/null +++ b/web/app/privacy/page.tsx @@ -0,0 +1,94 @@ +import type { Metadata } from "next"; +import { PageShell } from "../../components/SiteChrome"; + +const updatedAt = "July 6, 2026"; + +export const metadata: Metadata = { + title: "Privacy", + description: + "Privacy notes for DocPull, a local-first open-source CLI, SDK, and MCP server.", + alternates: { + canonical: "/privacy", + }, +}; + +export default function PrivacyPage() { + return ( + +
+
+

Privacy

+

+ DocPull is designed as local-first software. The open-source package + runs in your environment and does not require a DocPull account, + hosted workspace, or telemetry service to fetch and export public + web context. +

+
+ +
+
+
+

What DocPull collects

+

+ The DocPull CLI, SDK, and MCP server do not send product + telemetry to Raintree Technology by default. Local commands may + write caches, lockfiles, manifests, reports, and exported + context packs on your machine or in paths you choose. +

+
+ +
+

Public sources you fetch

+

+ When you run DocPull against a URL, your environment connects to + that public source. The source owner, hosting provider, network + operator, or any proxy you configure may receive normal request + metadata such as IP address, user agent, timestamps, and + requested URLs. +

+
+ +
+

Optional providers and rendering

+

+ Some workflows can explicitly use third-party APIs, browser + rendering, or cloud sandbox providers. Those integrations are + user-configured and are governed by the third party's own + privacy and data-processing terms. +

+
+ +
+

Repository and package services

+

+ If you visit GitHub, PyPI, package registries, directory + listings, or linked documentation from this site, those services + may process your visit according to their own policies. +

+
+ +
+

Contact

+

+ For privacy questions about DocPull, open a GitHub issue at{" "} + + github.com/raintree-technology/docpull + {" "} + or contact Raintree Technology through{" "} + raintree.technology. +

+
+
+ + +
+
+
+ ); +} diff --git a/web/app/robots.ts b/web/app/robots.ts new file mode 100644 index 0000000..0ccd5d4 --- /dev/null +++ b/web/app/robots.ts @@ -0,0 +1,14 @@ +import type { MetadataRoute } from "next"; + +const baseUrl = "https://docpull.raintree.technology"; + +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: "*", + allow: "/", + }, + sitemap: `${baseUrl}/sitemap.xml`, + host: baseUrl, + }; +} diff --git a/web/app/sitemap.ts b/web/app/sitemap.ts new file mode 100644 index 0000000..f598f24 --- /dev/null +++ b/web/app/sitemap.ts @@ -0,0 +1,33 @@ +import type { MetadataRoute } from "next"; + +const baseUrl = "https://docpull.raintree.technology"; + +export default function sitemap(): MetadataRoute.Sitemap { + const now = new Date(); + return [ + { + url: baseUrl, + lastModified: now, + changeFrequency: "monthly", + priority: 1, + }, + { + url: `${baseUrl}/pricing`, + lastModified: now, + changeFrequency: "monthly", + priority: 0.8, + }, + { + url: `${baseUrl}/privacy`, + lastModified: now, + changeFrequency: "yearly", + priority: 0.7, + }, + { + url: `${baseUrl}/terms`, + lastModified: now, + changeFrequency: "yearly", + priority: 0.7, + }, + ]; +} diff --git a/web/app/terms/page.tsx b/web/app/terms/page.tsx new file mode 100644 index 0000000..7a83a4c --- /dev/null +++ b/web/app/terms/page.tsx @@ -0,0 +1,88 @@ +import type { Metadata } from "next"; +import { PageShell } from "../../components/SiteChrome"; + +const updatedAt = "July 6, 2026"; + +export const metadata: Metadata = { + title: "Terms", + description: + "Terms for using the DocPull website and open-source project resources.", + alternates: { + canonical: "/terms", + }, +}; + +export default function TermsPage() { + return ( + +
+
+

Terms

+

+ These terms cover the DocPull website and public project resources. + The DocPull source code is distributed under the MIT license in the + GitHub repository. +

+
+ +
+
+
+

Open-source license

+

+ Use of the DocPull code is governed by the MIT license included + in the repository. If these website terms and the repository + license differ for source-code use, the repository license + controls. +

+
+ +
+

Acceptable use

+

+ Use DocPull only for sources you are allowed to access. Respect + applicable law, robots.txt, site terms, rate limits, credentials, + and third-party service policies. +

+
+ +
+

No hosted-service warranty

+

+ DocPull is provided as open-source software and project + documentation. The website does not currently provide a hosted + DocPull processing service or account workspace. +

+
+ +
+

Third-party services

+

+ Optional provider APIs, package registries, GitHub, PyPI, and + linked services are operated by their respective providers. You + are responsible for any credentials, costs, and terms that apply + when you choose to use them. +

+
+ +
+

Changes

+

+ These terms may be updated as DocPull's public surfaces + change. Material updates will be reflected by the date on this + page. +

+
+
+ + +
+
+
+ ); +} diff --git a/web/components/LogoMark.tsx b/web/components/LogoMark.tsx new file mode 100644 index 0000000..85c2bf4 --- /dev/null +++ b/web/components/LogoMark.tsx @@ -0,0 +1,25 @@ +type LogoMarkProps = { + className?: string; + title?: string; +}; + +export function LogoMark({ className, title }: LogoMarkProps) { + const labelled = Boolean(title); + + return ( + + + + + ); +} diff --git a/web/components/SiteChrome.tsx b/web/components/SiteChrome.tsx new file mode 100644 index 0000000..d08fa75 --- /dev/null +++ b/web/components/SiteChrome.tsx @@ -0,0 +1,47 @@ +import Link from "next/link"; +import { LogoMark } from "./LogoMark"; + +export function SiteHeader() { + return ( +
+
+ + + DocPull + + +
+
+ ); +} + +export function SiteFooter() { + return ( +
+
+ Raintree Technology. DocPull is released under the MIT license. + +
+
+ ); +} + +export function PageShell({ children }: { children: React.ReactNode }) { + return ( +
+ + {children} + +
+ ); +} diff --git a/web/next.config.ts b/web/next.config.ts new file mode 100644 index 0000000..2f6491c --- /dev/null +++ b/web/next.config.ts @@ -0,0 +1,7 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + reactStrictMode: true, +}; + +export default nextConfig; diff --git a/web/package.json b/web/package.json new file mode 100644 index 0000000..0ef0e05 --- /dev/null +++ b/web/package.json @@ -0,0 +1,25 @@ +{ + "name": "docpull-web", + "version": "1.0.0", + "private": true, + "scripts": { + "dev": "next dev -p 3013", + "build": "next build", + "start": "next start -p 3013", + "typecheck": "next typegen && tsc --noEmit --incremental false" + }, + "dependencies": { + "next": "^16.2.9", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@types/node": "^25.9.1", + "@types/react": "^19", + "@types/react-dom": "^19", + "typescript": "^6.0.3" + }, + "engines": { + "node": "24.x" + } +} diff --git a/web/public/apple-touch-icon.png b/web/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..16c1fc4e36f85609ba047ac9e3c2ed211ea83312 GIT binary patch literal 2337 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 literal 0 HcmV?d00001 diff --git a/web/public/favicon.svg b/web/public/favicon.svg new file mode 100644 index 0000000..dd40bbe --- /dev/null +++ b/web/public/favicon.svg @@ -0,0 +1,10 @@ + + DocPull + + + + diff --git a/web/public/icon-192.png b/web/public/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..6d1c200648dcf1a78a973386574b308bc75ad9be GIT binary patch literal 2294 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%0AWV^J_(>n`O}A--mt-B(ZkxKOVm_#$_# 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 SD#O3>fb9YM{pI^kCHxot-E6i1 literal 0 HcmV?d00001 diff --git a/web/public/logo-mark.svg b/web/public/logo-mark.svg new file mode 100644 index 0000000..5ade7c6 --- /dev/null +++ b/web/public/logo-mark.svg @@ -0,0 +1,10 @@ + + DocPull mark + A geometric capital D frame with a small green square inset in its lower-left counter. + + + diff --git a/web/public/logo.svg b/web/public/logo.svg new file mode 100644 index 0000000..681438e --- /dev/null +++ b/web/public/logo.svg @@ -0,0 +1,11 @@ + + DocPull + A geometric capital D frame with a small green square inset in its lower-left counter. + + + + diff --git a/web/tsconfig.json b/web/tsconfig.json new file mode 100644 index 0000000..73d4fdb --- /dev/null +++ b/web/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": false, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "react-jsx", + "incremental": true, + "plugins": [{ "name": "next" }] + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts" + ], + "exclude": ["node_modules"] +} From c564d985aa2646c92555c228625f9262940a53d9 Mon Sep 17 00:00:00 2001 From: Zachary Roth <100426704+zacharyr0th@users.noreply.github.com> Date: Thu, 16 Jul 2026 11:47:59 -0700 Subject: [PATCH 2/5] release: prepare DocPull 6.3.0 product surface --- .github/ISSUE_TEMPLATE/config.yml | 4 +- .github/workflows/benchmark.yml | 7 +- .github/workflows/ci.yml | 15 +- .github/workflows/codeql.yml | 6 + .github/workflows/live-typed-packs.yml | 4 +- .github/workflows/live-web-smoke.yml | 4 +- .github/workflows/metrics.yml | 7 +- .github/workflows/publish.yml | 2 +- .github/workflows/security.yml | 9 +- .gitignore | 3 - bun.lock | 636 +- docs/CHANGELOG.md | 35 + docs/competitor-tracker-integration.md | 2 +- docs/migrations/6.3.md | 30 + docs/release-post-v6.3.md | 17 + docs/social/v6.1-benchmark/generate_cards.py | 37 +- package.json | 8 +- plugin/.claude-plugin/plugin.json | 2 +- plugin/.codex-plugin/plugin.json | 2 +- plugin/README.md | 2 +- pyproject.toml | 2 +- scripts/github_list_prs.py | 8 +- server.json | 4 +- src/docpull/__init__.py | 12 +- src/docpull/cli.py | 4 +- src/docpull/native_integrations.py | 6 +- tests/test_ci_policy.py | 37 +- tests/test_release_a_plus_check_script.py | 4 +- uv.lock | 7645 ++++++++++++++++++ web/eslint.config.mjs | 9 + web/package.json | 4 + 31 files changed, 8513 insertions(+), 54 deletions(-) create mode 100644 docs/migrations/6.3.md create mode 100644 docs/release-post-v6.3.md create mode 100644 uv.lock create mode 100644 web/eslint.config.mjs diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 4a37d12..e271237 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: false contact_links: - name: Documentation - url: https://github.com/raintree-ai/docpull#readme + url: https://github.com/raintree-technology/docpull#readme about: Check the README for usage instructions and examples - name: Discussions - url: https://github.com/raintree-ai/docpull/discussions + url: https://github.com/raintree-technology/docpull/discussions about: Ask questions and share ideas diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 15082cf..bbd17f8 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -6,6 +6,9 @@ name: Benchmark # or if the injected duplicate fraction isn't detected. on: + schedule: + # 04:17 UTC weekly Wednesday — enough signal without daily Actions spend. + - cron: "17 4 * * 3" workflow_dispatch: permissions: @@ -39,7 +42,7 @@ jobs: run: python -m pip install "uv==$UV_VERSION" - name: Sync dependencies - run: uv sync --locked --dev + run: uv sync --locked --extra dev - name: Run 10k-page benchmark env: @@ -85,7 +88,7 @@ jobs: run: python -m pip install "uv==$UV_VERSION" - name: Sync dependencies - run: uv sync --locked --dev + run: uv sync --locked --extra dev - name: Run public contract smoke tests run: | diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 726744b..58484f4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,10 @@ name: CI on: workflow_dispatch: + pull_request: + push: + branches: + - main permissions: contents: read @@ -47,6 +51,8 @@ jobs: test: runs-on: ubuntu-24.04 timeout-minutes: 30 + env: + MISE_PYTHON_VERSION: ${{ matrix.python-version }} strategy: fail-fast: false matrix: @@ -66,7 +72,7 @@ jobs: run: python -m pip install "uv==$UV_VERSION" - name: Sync dependencies - run: uv sync --locked --all-extras --dev + run: uv sync --locked --all-extras - name: Run tests if: matrix.python-version != '3.11.15' @@ -101,11 +107,14 @@ jobs: run: python -m pip install "uv==$UV_VERSION" - name: Sync dependencies - run: uv sync --locked --all-extras --dev + run: uv sync --locked --all-extras - name: Check generated release metadata run: uv run --locked python scripts/sync_release_metadata.py --check + - name: Check generated contract schemas + run: uv run --locked python scripts/generate_contract_schemas.py --check + - name: Run ruff run: uv run --locked python -m ruff check . @@ -133,7 +142,7 @@ jobs: run: python -m pip install "uv==$UV_VERSION" - name: Sync dependencies - run: uv sync --locked --all-extras --dev + run: uv sync --locked --all-extras - name: Run mypy run: uv run --locked python -m mypy src diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d6770f0..e4a352d 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -5,6 +5,12 @@ env: on: workflow_dispatch: + pull_request: + push: + branches: + - main + schedule: + - cron: "38 6 * * 1" permissions: actions: read diff --git a/.github/workflows/live-typed-packs.yml b/.github/workflows/live-typed-packs.yml index 7d1ed3f..2ff77ff 100644 --- a/.github/workflows/live-typed-packs.yml +++ b/.github/workflows/live-typed-packs.yml @@ -2,6 +2,8 @@ name: Live Typed Pack Smoke on: workflow_dispatch: + schedule: + - cron: "17 11 * * *" permissions: contents: read @@ -33,7 +35,7 @@ jobs: run: python -m pip install "uv==$UV_VERSION" - name: Sync dependencies - run: uv sync --locked --dev + run: uv sync --locked --extra dev - name: Run free live typed-pack smokes env: diff --git a/.github/workflows/live-web-smoke.yml b/.github/workflows/live-web-smoke.yml index cb3a6af..86a46f9 100644 --- a/.github/workflows/live-web-smoke.yml +++ b/.github/workflows/live-web-smoke.yml @@ -2,6 +2,8 @@ name: Live Web Smoke on: workflow_dispatch: + schedule: + - cron: "43 10 * * *" permissions: contents: read @@ -33,7 +35,7 @@ jobs: run: python -m pip install "uv==$UV_VERSION" - name: Sync dependencies - run: uv sync --locked --dev + run: uv sync --locked --extra dev - name: Run free live web smokes env: diff --git a/.github/workflows/metrics.yml b/.github/workflows/metrics.yml index 19e9d59..c349f5a 100644 --- a/.github/workflows/metrics.yml +++ b/.github/workflows/metrics.yml @@ -12,8 +12,8 @@ env: # - GitHub traffic (clones, views, referrers, paths) — last 14 days. # # Plugin install proxy: `/plugin marketplace add raintree-technology/docpull` -# is a git clone under the hood. Manual clone-count refreshes are enough for -# trend tracking while the external metrics APIs are unreliable. +# is a git clone under the hood. Weekly clone counts are enough for trend +# tracking without daily Actions spend. # # Why a workflow instead of an external dashboard: # - Single source of truth committed in-repo (no external service to babysit). @@ -28,6 +28,9 @@ env: # `METRICS_TOKEN`. The workflow falls back to GITHUB_TOKEN if absent. on: + schedule: + # 09:12 UTC weekly Monday (off-hour to dodge top-of-hour Actions spikes). + - cron: "12 9 * * 1" workflow_dispatch: permissions: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bffe11d..b26e16b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -117,7 +117,7 @@ jobs: run: python -m pip install "uv==$UV_VERSION" - name: Sync release gate dependencies - run: uv sync --locked --all-extras --dev + run: uv sync --locked --all-extras - name: Install local render runtime run: | diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index e976d47..51e08e2 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -2,6 +2,10 @@ name: Security on: workflow_dispatch: + pull_request: + push: + branches: + - main permissions: contents: read @@ -57,7 +61,7 @@ jobs: run: python -m pip install "uv==$UV_VERSION" - name: Sync Python dependencies - run: uv sync --locked --dev + run: uv sync --locked --extra dev - name: Audit Python dependencies run: uv run --locked python -m pip_audit @@ -123,5 +127,8 @@ jobs: - name: Typecheck web app run: mise run typecheck + - name: Lint web app + run: bun run lint + - name: Build web app run: mise x -- bun run build diff --git a/.gitignore b/.gitignore index 0156e0e..7bd1aa8 100644 --- a/.gitignore +++ b/.gitignore @@ -92,9 +92,6 @@ poetry.lock # pdm .pdm.toml -# uv -uv.lock - # PEP 582 __pypackages__/ diff --git a/bun.lock b/bun.lock index 4a0ed15..4937dbf 100644 --- a/bun.lock +++ b/bun.lock @@ -35,6 +35,8 @@ "@types/node": "^25.9.1", "@types/react": "^19", "@types/react-dom": "^19", + "eslint": "^9.39.2", + "eslint-config-next": "^16.2.9", "typescript": "^6.0.3", }, }, @@ -43,10 +45,74 @@ "postcss": "^8.5.10", }, "packages": { + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], + + "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], + + "@babel/core": ["@babel/core@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-compilation-targets": "^7.29.7", "@babel/helper-module-transforms": "^7.29.7", "@babel/helpers": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA=="], + + "@babel/generator": ["@babel/generator@7.29.7", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.29.7", "", { "dependencies": { "@babel/compat-data": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.29.7", "", {}, "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.29.7", "", { "dependencies": { "@babel/helper-module-imports": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.29.7", "", {}, "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.29.7", "", {}, "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw=="], + + "@babel/helpers": ["@babel/helpers@7.29.7", "", { "dependencies": { "@babel/template": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg=="], + + "@babel/parser": ["@babel/parser@7.29.7", "", { "dependencies": { "@babel/types": "^7.29.7" }, "bin": "./bin/babel-parser.js" }, "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg=="], + + "@babel/template": ["@babel/template@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg=="], + + "@babel/traverse": ["@babel/traverse@7.29.7", "", { "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", "@babel/helper-globals": "^7.29.7", "@babel/parser": "^7.29.7", "@babel/template": "^7.29.7", "@babel/types": "^7.29.7", "debug": "^4.3.1" } }, "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw=="], + + "@babel/types": ["@babel/types@7.29.7", "", { "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" } }, "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA=="], + + "@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], + "@emnapi/runtime": ["@emnapi/runtime@1.11.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA=="], + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.1", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + + "@eslint/config-array": ["@eslint/config-array@0.21.2", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.5" } }, "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="], + + "@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="], + + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.6", "", { "dependencies": { "ajv": "^6.14.0", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.3.0", "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" } }, "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA=="], + + "@eslint/js": ["@eslint/js@9.39.5", "", {}, "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A=="], + + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], + "@hono/node-server": ["@hono/node-server@1.19.14", "", { "peerDependencies": { "hono": "^4" } }, "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw=="], + "@humanfs/core": ["@humanfs/core@0.19.2", "", { "dependencies": { "@humanfs/types": "^0.15.0" } }, "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA=="], + + "@humanfs/node": ["@humanfs/node@0.16.8", "", { "dependencies": { "@humanfs/core": "^0.19.2", "@humanfs/types": "^0.15.0", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ=="], + + "@humanfs/types": ["@humanfs/types@0.15.0", "", {}, "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="], @@ -97,10 +163,24 @@ "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.29.0", "", { "dependencies": { "@hono/node-server": "^1.19.9", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="], + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], + "@next/env": ["@next/env@16.2.10", "", {}, "sha512-zLPxg9M0MEHmygpj5OuxjQ+vHMiy/K7cSp74G8ecYolmgUWw0RwN02tF56npup/+qaI8JB97hQgS/r2Hb6QwVA=="], + "@next/eslint-plugin-next": ["@next/eslint-plugin-next@16.2.10", "", { "dependencies": { "fast-glob": "3.3.1" } }, "sha512-Gs8D2m21VnJeFo9qvYIIqJH94frWerWYu41BprU1pLtRVF7PCQNLiFZZ3fG+iPuj3K83Cwv/rt+msLOy8Qgu3Q=="], + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.2.10", "", { "os": "darwin", "cpu": "arm64" }, "sha512-v9IdJCa0H0mbo+8z5zwUpOk1Vj7RjkcI5uNYf5Ws1y6szf/p3Mzl9hLaST8SCt6L9h8NGnruZcd2+o0NTNwDhA=="], "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.2.10", "", { "os": "darwin", "cpu": "x64" }, "sha512-17IS0jJRViROGmA9uGdNR8VPJpfbnaVG7E9qhso5jDLkmyd0lSDORWxbcKINzcFqzZqGwGtMSnrFRxBpuUYjLQ=="], @@ -117,8 +197,26 @@ "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.2.10", "", { "os": "win32", "cpu": "x64" }, "sha512-0JXq3b85Jk9Jg4ntLUbXSPvoDw3gpZou7twuKdoFG2jOw635v7+IiXfTaa0TxVMyx78pUjnrVYwLgjKfX4e6/A=="], + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], + + "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], + + "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], + + "@nolyfill/is-core-module": ["@nolyfill/is-core-module@1.0.39", "", {}, "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA=="], + + "@rtsao/scc": ["@rtsao/scc@1.1.0", "", {}, "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="], + "@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="], + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], + + "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], + "@types/node": ["@types/node@25.9.4", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-dszCsrKb5U7ZsVZBWiHFklTloVl0mSEnWH/iZXfZUlI4rzCUnsvGmgqfuVRHL54ugE7/wRuxEIXRa2iMZ+BG6g=="], "@types/pg": ["@types/pg@8.20.0", "", { "dependencies": { "@types/node": "*", "pg-protocol": "*", "pg-types": "^2.2.0" } }, "sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow=="], @@ -127,30 +225,152 @@ "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.64.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.64.0", "@typescript-eslint/type-utils": "8.64.0", "@typescript-eslint/utils": "8.64.0", "@typescript-eslint/visitor-keys": "8.64.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.64.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-CGvQPBxN3wZLu6Rz2kFUpZeoCm78xUic92ck39KPePkO1NPOwjCqdQnm5Q87tpWw9vcBvW8XLrDXjH9PWYtJ3Q=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.64.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.64.0", "@typescript-eslint/types": "8.64.0", "@typescript-eslint/typescript-estree": "8.64.0", "@typescript-eslint/visitor-keys": "8.64.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-KA0OshtlcCCXmbfqyZkM5pV3/WNraJf7DkJRLpyrmwPtud57H5BDX7C3k0LPSPxpprfRL+cJDGabF10mvNCoCw=="], + + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.64.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.64.0", "@typescript-eslint/types": "^8.64.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-tk4WpOJ6IEbGrVHaNmM0YRrwAD3exZlIK3iadQNAxh4YKk6jvUQ4ecq18n+v7+meh+cJ3j+D8nbk8sRKhlwLQg=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.64.0", "", { "dependencies": { "@typescript-eslint/types": "8.64.0", "@typescript-eslint/visitor-keys": "8.64.0" } }, "sha512-CXEaFdYXjSTgKhisNkwCcJwTP8Pl+fmRrEQrri4nm3vU743bALrxzLmq7fHG/7e6a5xO0lDYeURpZmBuhHk54w=="], + + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.64.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-2yo8rRNKuzbVWQp5kslhANqZ2uDAeROQHBRZNPu8JDsHmeFNj/XJJhX/FhNUWmkHHvoNsKa6+tHJiig87EzsQw=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.64.0", "", { "dependencies": { "@typescript-eslint/types": "8.64.0", "@typescript-eslint/typescript-estree": "8.64.0", "@typescript-eslint/utils": "8.64.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-XWG4Fmmv/6SvyS9nH8jWrKs6terwJvE8cyRt1CzYYqzp9OrPhCT4cMc/f7C6RZCwG+qMmiffJS1/qJP8G1URtg=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.64.0", "", {}, "sha512-qjhfuTfLXjA4IOzXvz0rTjT01BqEiIgPoUeMwiEjnaHKJMTNo8rH5pYW1a2L/0Dnux2fPC85AeyJoWaGa8WxTA=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.64.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.64.0", "@typescript-eslint/tsconfig-utils": "8.64.0", "@typescript-eslint/types": "8.64.0", "@typescript-eslint/visitor-keys": "8.64.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.5.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.1.0" } }, "sha512-Pztpsn1aCE1oWDvDEfUk31nngvvF7vUB5SwHFEaZIFpvw7WJtqUHHL4plBZDA9HfWJJjL13BdG0YrJInTUvoVA=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.64.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.64.0", "@typescript-eslint/types": "8.64.0", "@typescript-eslint/typescript-estree": "8.64.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-aJUGVB3+U0htrrCjoA8qukw8cm8fNCGAxK/tVoS70k8aeb7DETKeFozRiVFIwEeN9WJLsjaP3ph8I60tY2XZoQ=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.64.0", "", { "dependencies": { "@typescript-eslint/types": "8.64.0", "eslint-visitor-keys": "^5.0.0" } }, "sha512-mrtuL8Nsn6gi2H4mo5KMTp823M+3Q19Ew/i+Zlikq20tIMm99C3Ez0dCmkWWnxut20esQvTg8aUSEhMcAOXhEw=="], + + "@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.12.2", "", { "os": "android", "cpu": "arm" }, "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w=="], + + "@unrs/resolver-binding-android-arm64": ["@unrs/resolver-binding-android-arm64@1.12.2", "", { "os": "android", "cpu": "arm64" }, "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ=="], + + "@unrs/resolver-binding-darwin-arm64": ["@unrs/resolver-binding-darwin-arm64@1.12.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w=="], + + "@unrs/resolver-binding-darwin-x64": ["@unrs/resolver-binding-darwin-x64@1.12.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA=="], + + "@unrs/resolver-binding-freebsd-x64": ["@unrs/resolver-binding-freebsd-x64@1.12.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg=="], + + "@unrs/resolver-binding-linux-arm-gnueabihf": ["@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A=="], + + "@unrs/resolver-binding-linux-arm-musleabihf": ["@unrs/resolver-binding-linux-arm-musleabihf@1.12.2", "", { "os": "linux", "cpu": "arm" }, "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g=="], + + "@unrs/resolver-binding-linux-arm64-gnu": ["@unrs/resolver-binding-linux-arm64-gnu@1.12.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg=="], + + "@unrs/resolver-binding-linux-arm64-musl": ["@unrs/resolver-binding-linux-arm64-musl@1.12.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA=="], + + "@unrs/resolver-binding-linux-loong64-gnu": ["@unrs/resolver-binding-linux-loong64-gnu@1.12.2", "", { "os": "linux", "cpu": "none" }, "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q=="], + + "@unrs/resolver-binding-linux-loong64-musl": ["@unrs/resolver-binding-linux-loong64-musl@1.12.2", "", { "os": "linux", "cpu": "none" }, "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew=="], + + "@unrs/resolver-binding-linux-ppc64-gnu": ["@unrs/resolver-binding-linux-ppc64-gnu@1.12.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg=="], + + "@unrs/resolver-binding-linux-riscv64-gnu": ["@unrs/resolver-binding-linux-riscv64-gnu@1.12.2", "", { "os": "linux", "cpu": "none" }, "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A=="], + + "@unrs/resolver-binding-linux-riscv64-musl": ["@unrs/resolver-binding-linux-riscv64-musl@1.12.2", "", { "os": "linux", "cpu": "none" }, "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w=="], + + "@unrs/resolver-binding-linux-s390x-gnu": ["@unrs/resolver-binding-linux-s390x-gnu@1.12.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw=="], + + "@unrs/resolver-binding-linux-x64-gnu": ["@unrs/resolver-binding-linux-x64-gnu@1.12.2", "", { "os": "linux", "cpu": "x64" }, "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ=="], + + "@unrs/resolver-binding-linux-x64-musl": ["@unrs/resolver-binding-linux-x64-musl@1.12.2", "", { "os": "linux", "cpu": "x64" }, "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A=="], + + "@unrs/resolver-binding-openharmony-arm64": ["@unrs/resolver-binding-openharmony-arm64@1.12.2", "", { "os": "none", "cpu": "arm64" }, "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ=="], + + "@unrs/resolver-binding-wasm32-wasi": ["@unrs/resolver-binding-wasm32-wasi@1.12.2", "", { "dependencies": { "@emnapi/core": "1.10.0", "@emnapi/runtime": "1.10.0", "@napi-rs/wasm-runtime": "^1.1.4" }, "cpu": "none" }, "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A=="], + + "@unrs/resolver-binding-win32-arm64-msvc": ["@unrs/resolver-binding-win32-arm64-msvc@1.12.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g=="], + + "@unrs/resolver-binding-win32-ia32-msvc": ["@unrs/resolver-binding-win32-ia32-msvc@1.12.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g=="], + + "@unrs/resolver-binding-win32-x64-msvc": ["@unrs/resolver-binding-win32-x64-msvc@1.12.2", "", { "os": "win32", "cpu": "x64" }, "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA=="], + "accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], + "acorn": ["acorn@8.17.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + "ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="], "ajv-formats": ["ajv-formats@3.0.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="], + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], + + "array-buffer-byte-length": ["array-buffer-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" } }, "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw=="], + + "array-includes": ["array-includes@3.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.0", "es-object-atoms": "^1.1.1", "get-intrinsic": "^1.3.0", "is-string": "^1.1.1", "math-intrinsics": "^1.1.0" } }, "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ=="], + + "array.prototype.findlast": ["array.prototype.findlast@1.2.5", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ=="], + + "array.prototype.findlastindex": ["array.prototype.findlastindex@1.2.6", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-shim-unscopables": "^1.1.0" } }, "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ=="], + + "array.prototype.flat": ["array.prototype.flat@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg=="], + + "array.prototype.flatmap": ["array.prototype.flatmap@1.3.3", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-shim-unscopables": "^1.0.2" } }, "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg=="], + + "array.prototype.tosorted": ["array.prototype.tosorted@1.1.4", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3", "es-errors": "^1.3.0", "es-shim-unscopables": "^1.0.2" } }, "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA=="], + + "arraybuffer.prototype.slice": ["arraybuffer.prototype.slice@1.0.4", "", { "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.5", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "is-array-buffer": "^3.0.4" } }, "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ=="], + + "ast-types-flow": ["ast-types-flow@0.0.8", "", {}, "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="], + + "async-function": ["async-function@1.0.0", "", {}, "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA=="], + + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + + "axe-core": ["axe-core@4.12.1", "", {}, "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA=="], + + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.41", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-WwS7MHhqGHHlaVsqRZnhvCEMS0owDX+SxRlve7JkuH7My1Ara3ZriTmCQupPfYjxMZ8I/tgxtJYr2t7taHaH4A=="], "body-parser": ["body-parser@2.3.0", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^2.0.0", "debug": "^4.4.3", "http-errors": "^2.0.1", "iconv-lite": "^0.7.2", "on-finished": "^2.4.1", "qs": "^6.15.2", "raw-body": "^3.0.2", "type-is": "^2.1.0" } }, "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw=="], + "brace-expansion": ["brace-expansion@1.1.16", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw=="], + + "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="], + + "browserslist": ["browserslist@4.28.6", "", { "dependencies": { "baseline-browser-mapping": "^2.10.42", "caniuse-lite": "^1.0.30001803", "electron-to-chromium": "^1.5.389", "node-releases": "^2.0.51", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw=="], + "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], + "call-bind": ["call-bind@1.0.9", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" } }, "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ=="], + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + "caniuse-lite": ["caniuse-lite@1.0.30001800", "", {}, "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA=="], + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "client-only": ["client-only@0.0.1", "", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="], + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + "content-disposition": ["content-disposition@1.1.0", "", {}, "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g=="], "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + "cookie": ["cookie@0.7.2", "", {}, "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="], "cookie-signature": ["cookie-signature@1.2.2", "", {}, "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="], @@ -161,8 +381,22 @@ "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + "damerau-levenshtein": ["damerau-levenshtein@1.0.8", "", {}, "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="], + + "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], + + "data-view-byte-length": ["data-view-byte-length@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ=="], + + "data-view-byte-offset": ["data-view-byte-offset@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" } }, "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + + "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], + "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], @@ -171,20 +405,74 @@ "docpull-web": ["docpull-web@workspace:web"], + "doctrine": ["doctrine@2.1.0", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="], + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], + "electron-to-chromium": ["electron-to-chromium@1.5.389", "", {}, "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg=="], + + "emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], + "es-abstract": ["es-abstract@1.24.2", "", { "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", "get-intrinsic": "^1.3.0", "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "internal-slot": "^1.1.0", "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.3", "typed-array-byte-length": "^1.0.3", "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", "which-typed-array": "^1.1.19" } }, "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg=="], + + "es-abstract-get": ["es-abstract-get@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "es-object-atoms": "^1.1.2", "is-callable": "^1.2.7", "object-inspect": "^1.13.4" } }, "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg=="], + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + "es-iterator-helpers": ["es-iterator-helpers@1.4.0", "", { "dependencies": { "call-bind": "^1.0.9", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.2", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.3.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.5", "math-intrinsics": "^1.1.0" } }, "sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q=="], + "es-object-atoms": ["es-object-atoms@1.1.2", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw=="], + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], + + "es-shim-unscopables": ["es-shim-unscopables@1.1.0", "", { "dependencies": { "hasown": "^2.0.2" } }, "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw=="], + + "es-to-primitive": ["es-to-primitive@1.3.4", "", { "dependencies": { "es-abstract-get": "^1.0.0", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "is-callable": "^1.2.7", "is-date-object": "^1.1.0", "is-symbol": "^1.1.1" } }, "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + "escape-html": ["escape-html@1.0.3", "", {}, "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="], + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@9.39.5", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.6", "@eslint/js": "9.39.5", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw=="], + + "eslint-config-next": ["eslint-config-next@16.2.10", "", { "dependencies": { "@next/eslint-plugin-next": "16.2.10", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-react": "^7.37.0", "eslint-plugin-react-hooks": "^7.0.0", "globals": "16.4.0", "typescript-eslint": "^8.46.0" }, "peerDependencies": { "eslint": ">=9.0.0", "typescript": ">=3.3.1" }, "optionalPeers": ["typescript"] }, "sha512-HSybLOY0QKf39i4FWUqPN0xWiNDi6A6UqJmZtgDkS3zMqjXTqULvj/sueXx3cdCG0mVG+qH6k5/qdegklH1d1w=="], + + "eslint-import-resolver-node": ["eslint-import-resolver-node@0.3.10", "", { "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.16.1", "resolve": "^2.0.0-next.6" } }, "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ=="], + + "eslint-import-resolver-typescript": ["eslint-import-resolver-typescript@3.10.1", "", { "dependencies": { "@nolyfill/is-core-module": "1.0.39", "debug": "^4.4.0", "get-tsconfig": "^4.10.0", "is-bun-module": "^2.0.0", "stable-hash": "^0.0.5", "tinyglobby": "^0.2.13", "unrs-resolver": "^1.6.2" }, "peerDependencies": { "eslint": "*", "eslint-plugin-import": "*", "eslint-plugin-import-x": "*" }, "optionalPeers": ["eslint-plugin-import", "eslint-plugin-import-x"] }, "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ=="], + + "eslint-module-utils": ["eslint-module-utils@2.14.0", "", { "dependencies": { "debug": "^3.2.7" } }, "sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig=="], + + "eslint-plugin-import": ["eslint-plugin-import@2.32.0", "", { "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", "array.prototype.findlastindex": "^1.2.6", "array.prototype.flat": "^1.3.3", "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", "object.values": "^1.2.1", "semver": "^6.3.1", "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "peerDependencies": { "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA=="], + + "eslint-plugin-jsx-a11y": ["eslint-plugin-jsx-a11y@6.10.2", "", { "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", "axe-core": "^4.10.0", "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "safe-regex-test": "^1.0.3", "string.prototype.includes": "^2.0.1" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q=="], + + "eslint-plugin-react": ["eslint-plugin-react@7.37.5", "", { "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.9", "object.fromentries": "^2.0.8", "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "peerDependencies": { "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA=="], + + "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@7.1.1", "", { "dependencies": { "@babel/core": "^7.24.4", "@babel/parser": "^7.24.4", "hermes-parser": "^0.25.1", "zod": "^3.25.0 || ^4.0.0", "zod-validation-error": "^3.5.0 || ^4.0.0" }, "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" } }, "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g=="], + + "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + + "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + + "esquery": ["esquery@1.7.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + "etag": ["etag@1.8.1", "", {}, "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="], "eventsource": ["eventsource@3.0.7", "", { "dependencies": { "eventsource-parser": "^3.0.1" } }, "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="], @@ -197,80 +485,272 @@ "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + "fast-glob": ["fast-glob@3.3.1", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" } }, "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + "fast-uri": ["fast-uri@3.1.2", "", {}, "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ=="], + "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], + "finalhandler": ["finalhandler@2.1.1", "", { "dependencies": { "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "on-finished": "^2.4.1", "parseurl": "^1.3.3", "statuses": "^2.0.1" } }, "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="], + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatted": ["flatted@3.4.2", "", {}, "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA=="], + + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + "forwarded": ["forwarded@0.2.0", "", {}, "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="], "fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="], "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + "function.prototype.name": ["function.prototype.name@1.2.0", "", { "dependencies": { "call-bind": "^1.0.9", "call-bound": "^1.0.4", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2", "hasown": "^2.0.4", "is-callable": "^1.2.7", "is-document.all": "^1.0.0" } }, "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew=="], + + "functions-have-names": ["functions-have-names@1.2.3", "", {}, "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="], + + "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + "get-symbol-description": ["get-symbol-description@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6" } }, "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg=="], + + "get-tsconfig": ["get-tsconfig@4.14.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@16.4.0", "", {}, "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw=="], + + "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + "has-bigints": ["has-bigints@1.1.0", "", {}, "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + + "has-proto": ["has-proto@1.2.0", "", { "dependencies": { "dunder-proto": "^1.0.0" } }, "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ=="], + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="], + "hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="], + + "hermes-parser": ["hermes-parser@0.25.1", "", { "dependencies": { "hermes-estree": "0.25.1" } }, "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA=="], + "hono": ["hono@4.12.27", "", {}, "sha512-1yrb/+w6HWQJrUCLkJ2IF5jNIPvvFkblV5RNOYl6bV+OA6p9GLcMpHFFGTosSvHvcAUibuUukRqhlYI4z32C7Q=="], "http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], "iconv-lite": ["iconv-lite@0.7.2", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="], + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], + "ip-address": ["ip-address@10.2.0", "", {}, "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA=="], "ipaddr.js": ["ipaddr.js@1.9.1", "", {}, "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="], + "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="], + + "is-async-function": ["is-async-function@2.1.1", "", { "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ=="], + + "is-bigint": ["is-bigint@1.1.0", "", { "dependencies": { "has-bigints": "^1.0.2" } }, "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ=="], + + "is-boolean-object": ["is-boolean-object@1.2.2", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A=="], + + "is-bun-module": ["is-bun-module@2.0.0", "", { "dependencies": { "semver": "^7.7.1" } }, "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ=="], + + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + + "is-core-module": ["is-core-module@2.16.2", "", { "dependencies": { "hasown": "^2.0.3" } }, "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA=="], + + "is-data-view": ["is-data-view@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" } }, "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw=="], + + "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="], + + "is-document.all": ["is-document.all@1.0.0", "", { "dependencies": { "call-bound": "^1.0.4" } }, "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-finalizationregistry": ["is-finalizationregistry@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg=="], + + "is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-map": ["is-map@2.0.3", "", {}, "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw=="], + + "is-negative-zero": ["is-negative-zero@2.0.3", "", {}, "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw=="], + + "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], + + "is-number-object": ["is-number-object@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw=="], + "is-promise": ["is-promise@4.0.0", "", {}, "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="], + "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + + "is-set": ["is-set@2.0.3", "", {}, "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg=="], + + "is-shared-array-buffer": ["is-shared-array-buffer@1.0.4", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A=="], + + "is-string": ["is-string@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" } }, "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA=="], + + "is-symbol": ["is-symbol@1.1.1", "", { "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", "safe-regex-test": "^1.1.0" } }, "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w=="], + + "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + + "is-weakmap": ["is-weakmap@2.0.2", "", {}, "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w=="], + + "is-weakref": ["is-weakref@1.1.1", "", { "dependencies": { "call-bound": "^1.0.3" } }, "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew=="], + + "is-weakset": ["is-weakset@2.0.4", "", { "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ=="], + + "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + "iterator.prototype": ["iterator.prototype@1.1.5", "", { "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", "has-symbols": "^1.1.0", "set-function-name": "^2.0.2" } }, "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g=="], + "jose": ["jose@6.2.3", "", {}, "sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw=="], + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "js-yaml": ["js-yaml@4.3.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + "json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], "json-schema-typed": ["json-schema-typed@8.0.2", "", {}, "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA=="], + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "json5": ["json5@1.0.2", "", { "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA=="], + + "jsx-ast-utils": ["jsx-ast-utils@3.3.5", "", { "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", "object.assign": "^4.1.4", "object.values": "^1.1.6" } }, "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "language-subtag-registry": ["language-subtag-registry@0.3.23", "", {}, "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ=="], + + "language-tags": ["language-tags@1.0.9", "", { "dependencies": { "language-subtag-registry": "^0.3.20" } }, "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + + "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], + + "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], "media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="], "merge-descriptors": ["merge-descriptors@2.0.0", "", {}, "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="], + "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], + + "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], + "mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], "mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], + "minimatch": ["minimatch@3.1.5", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w=="], + + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], "nanoid": ["nanoid@3.3.15", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA=="], + "napi-postinstall": ["napi-postinstall@0.3.4", "", { "bin": { "napi-postinstall": "lib/cli.js" } }, "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + "negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], "next": ["next@16.2.10", "", { "dependencies": { "@next/env": "16.2.10", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.2.10", "@next/swc-darwin-x64": "16.2.10", "@next/swc-linux-arm64-gnu": "16.2.10", "@next/swc-linux-arm64-musl": "16.2.10", "@next/swc-linux-x64-gnu": "16.2.10", "@next/swc-linux-x64-musl": "16.2.10", "@next/swc-win32-arm64-msvc": "16.2.10", "@next/swc-win32-x64-msvc": "16.2.10", "sharp": "^0.34.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.51.1", "babel-plugin-react-compiler": "*", "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", "sass": "^1.3.0" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-2som5AVXb3kE6Yjine3/mNbBayYF58eguBWIVVUdr1y/L426xyVEgYxgBG+1QC34P2x5E+tcDup6XkuOAX3dCA=="], + "node-exports-info": ["node-exports-info@1.6.2", "", { "dependencies": { "array.prototype.flatmap": "^1.3.3", "es-errors": "^1.3.0", "object.entries": "^1.1.9", "semver": "^6.3.1" } }, "sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag=="], + + "node-releases": ["node-releases@2.0.51", "", {}, "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ=="], + "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + + "object.assign": ["object.assign@4.1.7", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0", "has-symbols": "^1.1.0", "object-keys": "^1.1.1" } }, "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw=="], + + "object.entries": ["object.entries@1.1.9", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-object-atoms": "^1.1.1" } }, "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw=="], + + "object.fromentries": ["object.fromentries@2.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2", "es-object-atoms": "^1.0.0" } }, "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ=="], + + "object.groupby": ["object.groupby@1.0.3", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.2" } }, "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ=="], + + "object.values": ["object.values@1.2.1", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA=="], + "on-finished": ["on-finished@2.4.1", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="], "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], "openai": ["openai@6.45.0", "", { "peerDependencies": { "@aws-sdk/credential-provider-node": ">=3.972.0 <4", "@smithy/hash-node": ">=4.3.0 <5", "@smithy/signature-v4": ">=5.4.0 <6", "ws": "^8.18.0", "zod": "^3.25 || ^4.0" }, "optionalPeers": ["@aws-sdk/credential-provider-node", "@smithy/hash-node", "@smithy/signature-v4", "ws", "zod"] }, "sha512-5DQVNErssk0afNpTTHUm/qZPU4iKR9OYdNid8Ib4puq4gHNNvGWZht2zY4h9a8JMF949Ik6m8gQutllVPbjdnw=="], + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "own-keys": ["own-keys@1.0.1", "", { "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", "safe-push-apply": "^1.0.0" } }, "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg=="], + + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + "path-parse": ["path-parse@1.0.7", "", {}, "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="], + "path-to-regexp": ["path-to-regexp@8.4.2", "", {}, "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA=="], "pg": ["pg@8.22.0", "", { "dependencies": { "pg-connection-string": "^2.14.0", "pg-pool": "^3.14.0", "pg-protocol": "^1.15.0", "pg-types": "2.2.0", "pgpass": "1.0.5" }, "optionalDependencies": { "pg-cloudflare": "^1.4.0" }, "peerDependencies": { "pg-native": ">=3.0.1" }, "optionalPeers": ["pg-native"] }, "sha512-8wih1vVIBMxoUM2oB4soJsD9tDnDpLv4OXBJ+EJzFsvycD+lfyIreC2gGHq78f8jbLLt+bvlPTFdFZfJkOuzAA=="], @@ -291,8 +771,12 @@ "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + "picomatch": ["picomatch@4.0.5", "", {}, "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A=="], + "pkce-challenge": ["pkce-challenge@5.0.1", "", {}, "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="], + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + "postcss": ["postcss@8.5.16", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg=="], "postgres-array": ["postgres-array@2.0.0", "", {}, "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="], @@ -303,10 +787,18 @@ "postgres-interval": ["postgres-interval@1.2.0", "", { "dependencies": { "xtend": "^4.0.0" } }, "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="], + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], + "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="], + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "qs": ["qs@6.15.3", "", { "dependencies": { "es-define-property": "^1.0.1", "side-channel": "^1.1.1" } }, "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A=="], + "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], + "range-parser": ["range-parser@1.3.0", "", {}, "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw=="], "raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="], @@ -315,20 +807,48 @@ "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], + "react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], + + "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="], + + "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="], + "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], + "resolve": ["resolve@2.0.0-next.7", "", { "dependencies": { "es-errors": "^1.3.0", "is-core-module": "^2.16.2", "node-exports-info": "^1.6.0", "object-keys": "^1.1.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ=="], + + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + + "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], + "router": ["router@2.2.0", "", { "dependencies": { "debug": "^4.4.0", "depd": "^2.0.0", "is-promise": "^4.0.0", "parseurl": "^1.3.3", "path-to-regexp": "^8.0.0" } }, "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="], + "run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="], + + "safe-array-concat": ["safe-array-concat@1.1.4", "", { "dependencies": { "call-bind": "^1.0.9", "call-bound": "^1.0.4", "get-intrinsic": "^1.3.0", "has-symbols": "^1.1.0", "isarray": "^2.0.5" } }, "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg=="], + + "safe-push-apply": ["safe-push-apply@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" } }, "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA=="], + + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], - "semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "send": ["send@1.2.1", "", { "dependencies": { "debug": "^4.4.3", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", "http-errors": "^2.0.1", "mime-types": "^3.0.2", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", "statuses": "^2.0.2" } }, "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="], "serve-static": ["serve-static@2.2.1", "", { "dependencies": { "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "parseurl": "^1.3.3", "send": "^1.2.0" } }, "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw=="], + "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + + "set-function-name": ["set-function-name@2.0.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" } }, "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ=="], + + "set-proto": ["set-proto@1.0.0", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0" } }, "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw=="], + "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="], "sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], @@ -349,38 +869,152 @@ "split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], + "stable-hash": ["stable-hash@0.0.5", "", {}, "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA=="], + "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="], + + "string.prototype.includes": ["string.prototype.includes@2.0.1", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-abstract": "^1.23.3" } }, "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg=="], + + "string.prototype.matchall": ["string.prototype.matchall@4.0.12", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA=="], + + "string.prototype.repeat": ["string.prototype.repeat@1.0.0", "", { "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" } }, "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w=="], + + "string.prototype.trim": ["string.prototype.trim@1.2.11", "", { "dependencies": { "call-bind": "^1.0.9", "call-bound": "^1.0.4", "define-data-property": "^1.1.4", "define-properties": "^1.2.1", "es-abstract": "^1.24.2", "es-object-atoms": "^1.1.2", "has-property-descriptors": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w=="], + + "string.prototype.trimend": ["string.prototype.trimend@1.0.10", "", { "dependencies": { "call-bind": "^1.0.9", "call-bound": "^1.0.4", "define-properties": "^1.2.1", "es-object-atoms": "^1.1.2" } }, "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw=="], + + "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="], + + "strip-bom": ["strip-bom@3.0.0", "", {}, "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + "styled-jsx": ["styled-jsx@5.1.6", "", { "dependencies": { "client-only": "0.0.1" }, "peerDependencies": { "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" } }, "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA=="], + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], + + "to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="], + "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], + "ts-api-utils": ["ts-api-utils@2.5.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA=="], + + "tsconfig-paths": ["tsconfig-paths@3.15.0", "", { "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + "type-is": ["type-is@2.1.0", "", { "dependencies": { "content-type": "^2.0.0", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA=="], + "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], + + "typed-array-byte-length": ["typed-array-byte-length@1.0.3", "", { "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.14" } }, "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg=="], + + "typed-array-byte-offset": ["typed-array-byte-offset@1.0.4", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "for-each": "^0.3.3", "gopd": "^1.2.0", "has-proto": "^1.2.0", "is-typed-array": "^1.1.15", "reflect.getprototypeof": "^1.0.9" } }, "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ=="], + + "typed-array-length": ["typed-array-length@1.0.8", "", { "dependencies": { "call-bind": "^1.0.9", "for-each": "^0.3.5", "gopd": "^1.2.0", "is-typed-array": "^1.1.15", "possible-typed-array-names": "^1.1.0", "reflect.getprototypeof": "^1.0.10" } }, "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g=="], + "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], + "typescript-eslint": ["typescript-eslint@8.64.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.64.0", "@typescript-eslint/parser": "8.64.0", "@typescript-eslint/typescript-estree": "8.64.0", "@typescript-eslint/utils": "8.64.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "sha512-0qg+pDNMnqYzqH9AnNK+39tejHvsShUOUUoRUgtnTGE7QuMZhiFDnozq8nHJVq+Wae6NMLKNWLg5WmkcC/ndyQ=="], + + "unbox-primitive": ["unbox-primitive@1.1.0", "", { "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", "has-symbols": "^1.1.0", "which-boxed-primitive": "^1.1.1" } }, "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw=="], + "undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="], + "unrs-resolver": ["unrs-resolver@1.12.2", "", { "dependencies": { "napi-postinstall": "^0.3.4" }, "optionalDependencies": { "@unrs/resolver-binding-android-arm-eabi": "1.12.2", "@unrs/resolver-binding-android-arm64": "1.12.2", "@unrs/resolver-binding-darwin-arm64": "1.12.2", "@unrs/resolver-binding-darwin-x64": "1.12.2", "@unrs/resolver-binding-freebsd-x64": "1.12.2", "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", "@unrs/resolver-binding-linux-x64-musl": "1.12.2", "@unrs/resolver-binding-openharmony-arm64": "1.12.2", "@unrs/resolver-binding-wasm32-wasi": "1.12.2", "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" } }, "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ=="], + + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + "which-boxed-primitive": ["which-boxed-primitive@1.1.1", "", { "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", "is-number-object": "^1.1.1", "is-string": "^1.1.1", "is-symbol": "^1.1.1" } }, "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA=="], + + "which-builtin-type": ["which-builtin-type@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", "which-typed-array": "^1.1.16" } }, "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q=="], + + "which-collection": ["which-collection@1.0.2", "", { "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" } }, "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw=="], + + "which-typed-array": ["which-typed-array@1.1.22", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.9", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="], + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + "yaml": ["yaml@2.9.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA=="], + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + "zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="], "zod-to-json-schema": ["zod-to-json-schema@3.25.2", "", { "peerDependencies": { "zod": "^3.25.28 || ^4" } }, "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA=="], + "zod-validation-error": ["zod-validation-error@4.0.2", "", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ=="], + + "@babel/core/json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "@eslint/eslintrc/ajv": ["ajv@6.15.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw=="], + + "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.6", "", {}, "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw=="], + + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@10.2.5", "", { "dependencies": { "brace-expansion": "^5.0.5" } }, "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg=="], + + "@typescript-eslint/typescript-estree/semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + + "@typescript-eslint/visitor-keys/eslint-visitor-keys": ["eslint-visitor-keys@5.0.1", "", {}, "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA=="], + + "@unrs/resolver-binding-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], + "body-parser/content-type": ["content-type@2.0.0", "", {}, "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ=="], + "browserslist/baseline-browser-mapping": ["baseline-browser-mapping@2.10.43", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ=="], + + "browserslist/caniuse-lite": ["caniuse-lite@1.0.30001805", "", {}, "sha512-52noaS3DubycKSXaU30TwPGIp+POyQSUVa5jBEq3vkRkY0kjyb3LQgvhU6WGyCcyXqVLWO0Cw0Q6BSdD0kUfVA=="], + + "eslint/ajv": ["ajv@6.15.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw=="], + + "eslint-import-resolver-node/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + + "eslint-module-utils/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + + "eslint-plugin-import/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], + + "is-bun-module/semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + + "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + + "sharp/semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + "type-is/content-type": ["content-type@2.0.0", "", {}, "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ=="], + + "@eslint/eslintrc/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@5.0.7", "", { "dependencies": { "balanced-match": "^4.0.2" } }, "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA=="], + + "eslint/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "@typescript-eslint/typescript-estree/minimatch/brace-expansion/balanced-match": ["balanced-match@4.0.4", "", {}, "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA=="], } } diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index ea6f742..1cf6d7d 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -5,6 +5,41 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [6.3.0] - 2026-07-16 + +### Added +- Add the DocPull product site with home, pricing, privacy, terms, `llms.txt`, + robots, sitemap, manifest, branded icons, and reusable launch assets. +- Add metadata-only native integration context adapters that produce cited, + rights-labeled document records without storing provider secrets or raw + customer payloads. +- Add a committed `uv.lock`, pinned Mise runtimes, Next.js ESLint gates, and + dependency review for reproducible local and CI environments. + +### Changed +- Load the root SDK and internal package exports lazily while preserving every + documented import and CLI, Python SDK, and MCP surface. +- Coalesce byte-equivalent concurrent HTTP GETs without retaining completed + responses, and isolate requests with different timeouts or headers. +- Journal frontier transitions between compact snapshots so interrupted runs + remain resumable without rewriting the full frontier after every URL. +- Reuse pack reads, citation analysis, entity extraction, and graph indexes + across intelligence workflows; use constant-time document/source lookups and + bounded top-result selection for local search. +- Centralize schema versions and export-format registries in lightweight + modules to reduce import cost and duplicated contract definitions. + +### Fixed +- Restore automatic CI, CodeQL, security, benchmark, live-smoke, and metrics + triggers after the runtime-tooling migration, and make the Python matrix + select the advertised patch versions explicitly. +- Extend release-readiness checks to lint, type-check, audit, and build the web + workspace, and repair stale repository links in issue templates. + +### Compatibility +- Keep all 6.2 pack, workflow, CLI, SDK, MCP, schema, and tracker contracts + readable and importable; 6.3 changes are additive or internal optimizations. + ## [6.2.0] - 2026-07-16 ### Added diff --git a/docs/competitor-tracker-integration.md b/docs/competitor-tracker-integration.md index 906eb6d..5e89597 100644 --- a/docs/competitor-tracker-integration.md +++ b/docs/competitor-tracker-integration.md @@ -1,6 +1,6 @@ # Competitor-tracker integration contract -Pin DocPull `6.2.0` and validate `intelligence.bundle.v1.json` against +Pin DocPull `6.3.0` and validate `intelligence.bundle.v1.json` against `intelligence-bundle.v1.schema.json` at import time. ## Producer flow diff --git a/docs/migrations/6.3.md b/docs/migrations/6.3.md new file mode 100644 index 0000000..a48cd74 --- /dev/null +++ b/docs/migrations/6.3.md @@ -0,0 +1,30 @@ +# Migrating to DocPull 6.3 + +No pack, workflow, CLI, SDK, MCP, or tracker migration is required. DocPull +6.3 preserves the 6.2 public surface and artifact contracts. + +## Locked development environments + +The repository now commits `uv.lock`. Use `uv run --locked --all-extras` for +the full Python suite or the root Bun scripts (`bun run validate:full`) to run +the supported Python, MCP, web, and release-build gates. + +## Lazy SDK imports + +Root imports such as `from docpull import Fetcher` keep the same behavior. The +owning module is now imported on first attribute access, so applications that +only inspect versions or lightweight models no longer load HTTP, HTML, or +optional workflow stacks. + +## Frontier journals + +Resumable crawls may create a `frontier.json.journal` beside the existing +frontier snapshot. DocPull replays complete journal records after a restart and +compacts them into the established snapshot during flush. Consumers should +continue treating cache internals as opaque. + +## Product site + +The public site lives in the private `web` workspace and does not change the +PyPI package or MCP runtime. Its pricing page describes the open-source package; +it does not enable paid or browser-backed acquisition paths. diff --git a/docs/release-post-v6.3.md b/docs/release-post-v6.3.md new file mode 100644 index 0000000..30516b2 --- /dev/null +++ b/docs/release-post-v6.3.md @@ -0,0 +1,17 @@ +# DocPull 6.3: faster local evidence workflows and a complete product surface + +DocPull 6.3 preserves the 6.2 evidence/workflow contracts while reducing the +cost of using them. Public Python exports now load lazily, identical concurrent +GETs share one in-flight request, resumable frontiers use a compact journal, +and pack intelligence workflows reuse source, citation, entity, and graph +indexes instead of rereading the same artifacts. + +The repository now includes a production-ready DocPull site with pricing, +privacy, terms, machine-readable `llms.txt`, metadata, robots, sitemap, icons, +and reusable launch assets. The complete Python, MCP, and web surface is covered +by locked dependencies, automatic CI/security triggers, lint, type checks, +audits, tests, and reproducible release builds. + +No migration is required for existing packs or consumers. CLI, Python SDK, +MCP, JSON Schema, `intelligence.bundle.v1`, change-event, and +`company_brain.bundle.json` compatibility remains intact. diff --git a/docs/social/v6.1-benchmark/generate_cards.py b/docs/social/v6.1-benchmark/generate_cards.py index 94e40c6..aee4cbf 100644 --- a/docs/social/v6.1-benchmark/generate_cards.py +++ b/docs/social/v6.1-benchmark/generate_cards.py @@ -7,7 +7,6 @@ from PIL import Image, ImageDraw, ImageFont - ROOT = Path(__file__).resolve().parent OUT = ROOT / "assets" WIDTH = 1080 @@ -283,7 +282,12 @@ def card_4() -> None: def card_5() -> None: image, draw = base(5, "Evidence integrity") y = draw_wrapped(draw, (68, 220), "The benchmark was hardened too.", F_TITLE, TEXT, 920, 79) - draw.text((68, y + 10), "6.1.0 makes inflated or stale claims harder to publish.", font=F_BODY, fill=MUTED) + draw.text( + (68, y + 10), + "6.1.0 makes inflated or stale claims harder to publish.", + font=F_BODY, + fill=MUTED, + ) items = [ ("SCORER V4", "Token boundaries; fused words fail."), @@ -306,7 +310,15 @@ def card_5() -> None: def card_6() -> None: image, draw = base(6, "Read the evidence") - y = draw_wrapped(draw, (68, 220), "Results, limitations and release artifacts are public.", F_TITLE, TEXT, 920, 79) + y = draw_wrapped( + draw, + (68, 220), + "Results, limitations and release artifacts are public.", + F_TITLE, + TEXT, + 920, + 79, + ) entries = [ ("BENCHMARK", "bench/results/manual/…/COMPARISON.md"), @@ -328,14 +340,17 @@ def card_6() -> None: def contact_sheet() -> None: - cards = [Image.open(OUT / f"0{index}-{name}.png").convert("RGB") for index, name in [ - (1, "cover"), - (2, "core-results"), - (3, "boundaries"), - (4, "pdf-isolation"), - (5, "integrity"), - (6, "evidence"), - ]] + cards = [ + Image.open(OUT / f"0{index}-{name}.png").convert("RGB") + for index, name in [ + (1, "cover"), + (2, "core-results"), + (3, "boundaries"), + (4, "pdf-isolation"), + (5, "integrity"), + (6, "evidence"), + ] + ] thumb_w = 360 thumb_h = 450 sheet = Image.new("RGB", (thumb_w * 3, thumb_h * 2), BG) diff --git a/package.json b/package.json index f562e09..2abe555 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,10 @@ "test": "uv run --locked --all-extras python -m pytest -q && bun run --cwd mcp test", "test:unit": "uv run --locked --all-extras python -m pytest -q", "test:e2e": "uv run --locked python scripts/real_feature_smoke.py --json", - "lint": "uv run --locked python scripts/sync_release_metadata.py --check && uv run --locked python scripts/generate_contract_schemas.py --check && uv run --locked python -m ruff check . && uv run --locked python -m ruff format --check .", - "lint:fix": "uv run --locked python -m ruff check . --fix && uv run --locked python -m ruff format .", - "format": "uv run --locked python -m ruff format .", - "typecheck": "uv run --locked python -m mypy src && bun run --cwd mcp typecheck && bun run --cwd web typecheck", + "lint": "uv run --locked --extra dev python scripts/sync_release_metadata.py --check && uv run --locked --extra dev python scripts/generate_contract_schemas.py --check && uv run --locked --extra dev python -m ruff check . && uv run --locked --extra dev python -m ruff format --check . && bun run --cwd web lint", + "lint:fix": "uv run --locked --extra dev python -m ruff check . --fix && uv run --locked --extra dev python -m ruff format . && bun run --cwd web lint:fix", + "format": "uv run --locked --extra dev python -m ruff format .", + "typecheck": "uv run --locked --extra dev python -m mypy src && bun run --cwd mcp typecheck && bun run --cwd web typecheck", "validate": "bun run lint && bun run typecheck && bun run test", "validate:full": "bun run validate && bun run build && bun run --cwd web build" }, diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index e99afd1..73b5ba8 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "docpull", - "version": "6.2.0", + "version": "6.3.0", "description": "Pull public web sources into Claude Code. Indexes static and server-rendered sites as local Markdown with conditional-GET caching, then exposes them as MCP tools. Local, browser-free, no API keys.", "author": { "name": "Raintree Technology", diff --git a/plugin/.codex-plugin/plugin.json b/plugin/.codex-plugin/plugin.json index 04de6d0..13f7c44 100644 --- a/plugin/.codex-plugin/plugin.json +++ b/plugin/.codex-plugin/plugin.json @@ -1,7 +1,7 @@ { "id": "docpull", "name": "docpull", - "version": "6.2.0", + "version": "6.3.0", "description": "Pull public web sources into Codex as local, searchable Markdown through docpull's MCP server.", "skills": "./skills/", "mcpServers": "./.mcp.json", diff --git a/plugin/README.md b/plugin/README.md index 17ae4b4..d5b0677 100644 --- a/plugin/README.md +++ b/plugin/README.md @@ -39,7 +39,7 @@ MCP server is available: ```bash pip install 'docpull[mcp]' # or: pipx install 'docpull[mcp]' # uv tool install 'docpull[mcp]' -docpull --version # should print 6.2.0 or newer +docpull --version # should print 6.3.0 or newer docpull mcp --help # confirm the MCP subcommand is wired ``` diff --git a/pyproject.toml b/pyproject.toml index 78d33d6..350e329 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "docpull" -version = "6.2.0" +version = "6.3.0" dynamic = [] description = "Declare, sync, diff, and lock context dependencies for AI agents" readme = {file = "README.md", content-type = "text/markdown"} diff --git a/scripts/github_list_prs.py b/scripts/github_list_prs.py index 0b9e09b..799bd1e 100644 --- a/scripts/github_list_prs.py +++ b/scripts/github_list_prs.py @@ -11,11 +11,14 @@ import argparse import json import shutil -import subprocess +import subprocess # nosec B404 import sys from dataclasses import dataclass from pathlib import Path +# Bandit B404 is suppressed because this script uses fixed executables and +# direct argument vectors without a shell. + DEFAULT_WORKDIR = Path(".tmp/github-list-prs") @@ -250,7 +253,8 @@ def run( capture: bool = False, ) -> subprocess.CompletedProcess[str]: print(" $ " + " ".join(cmd)) - result = subprocess.run( + # Arguments are passed directly and shell execution is never enabled. + result = subprocess.run( # nosec B603 cmd, cwd=cwd, check=False, diff --git a/server.json b/server.json index 98571c6..9ca8705 100644 --- a/server.json +++ b/server.json @@ -8,12 +8,12 @@ "source": "github" }, "websiteUrl": "https://github.com/raintree-technology/docpull", - "version": "6.2.0", + "version": "6.3.0", "packages": [ { "registryType": "pypi", "identifier": "docpull", - "version": "6.2.0", + "version": "6.3.0", "transport": { "type": "stdio" } diff --git a/src/docpull/__init__.py b/src/docpull/__init__.py index c6d9010..4a0434b 100644 --- a/src/docpull/__init__.py +++ b/src/docpull/__init__.py @@ -15,7 +15,7 @@ from .surface import PUBLIC_SDK_EXPORTS -__version__ = "6.2.0" +__version__ = "6.3.0" _LAZY_EXPORTS: dict[str, tuple[str, str]] = { **{ @@ -211,7 +211,15 @@ def __dir__() -> list[str]: from .core.fetcher import Fetcher, fetch_blocking, fetch_one from .document_parse import DocumentParseError, ParsedDocument, parse_documents, parse_one_document from .exports import ExportResult, export_pack - from .graph import GraphError, build_graph, graph_neighbors, graph_status, load_graph, query_graph, refresh_graph + from .graph import ( + GraphError, + build_graph, + graph_neighbors, + graph_status, + load_graph, + query_graph, + refresh_graph, + ) from .local_workflows import audit_pack, refresh_pack from .models.config import ( BudgetConfig, diff --git a/src/docpull/cli.py b/src/docpull/cli.py index ed7a149..c9d4eaa 100644 --- a/src/docpull/cli.py +++ b/src/docpull/cli.py @@ -28,7 +28,7 @@ if TYPE_CHECKING: from .models.config import DocpullConfig from .models.events import SkipReason - from .rendering import CloudSandboxBackend, Renderer + from .rendering import Renderer RenderBackend = Literal["agent-browser", "vercel-sandbox", "e2b-sandbox"] @@ -1258,7 +1258,7 @@ def run_render_cli(argv: list[str]) -> int: args.cloud_max_estimated_cost if backend in {"vercel-sandbox", "e2b-sandbox"} else None, ) cloud_estimated_cost = ( - estimate_cloud_render_cost_usd(cast("CloudSandboxBackend", backend), config) + estimate_cloud_render_cost_usd(backend, config) if backend in {"vercel-sandbox", "e2b-sandbox"} else 0.0 ) diff --git a/src/docpull/native_integrations.py b/src/docpull/native_integrations.py index b8a2dfb..63ef889 100644 --- a/src/docpull/native_integrations.py +++ b/src/docpull/native_integrations.py @@ -1,8 +1,8 @@ -"""Metadata-only context adapters for Clearance native integrations. +"""Metadata-only context adapters for native provider integrations. These helpers intentionally do not enforce release/runtime gates. They turn provider-linked operational context into DocPull document records that can be -packed, cited, diffed, and handed to Clearance/PolicyStrata as evidence refs. +packed, cited, diffed, and handed to downstream consumers as evidence refs. """ from __future__ import annotations @@ -63,7 +63,7 @@ def _source_to_document(source: NativeIntegrationContextSource) -> DocumentRecor f"- Provider: `{source.provider}`", f"- Reference: `{source.ref}`", "", - source.summary or "Metadata-only provider context captured for Clearance evidence.", + source.summary or "Metadata-only provider context captured as DocPull evidence.", ] if line is not None ) diff --git a/tests/test_ci_policy.py b/tests/test_ci_policy.py index 9a6e667..3078312 100644 --- a/tests/test_ci_policy.py +++ b/tests/test_ci_policy.py @@ -108,6 +108,32 @@ def test_ci_matrix_covers_advertised_python_minors() -> None: tested = {".".join(version.split(".")[:2]) for version in tested_versions} assert tested == advertised + assert "MISE_PYTHON_VERSION: ${{ matrix.python-version }}" in ci + + +def test_production_workflows_keep_automatic_triggers() -> None: + ci = (WORKFLOW_DIR / "ci.yml").read_text() + codeql = (WORKFLOW_DIR / "codeql.yml").read_text() + security = (WORKFLOW_DIR / "security.yml").read_text() + benchmark = (WORKFLOW_DIR / "benchmark.yml").read_text() + live_typed = (WORKFLOW_DIR / "live-typed-packs.yml").read_text() + live_web = (WORKFLOW_DIR / "live-web-smoke.yml").read_text() + metrics = (WORKFLOW_DIR / "metrics.yml").read_text() + + for workflow in (ci, codeql, security): + assert "pull_request:" in workflow + assert "push:" in workflow + assert "- main" in workflow + assert 'cron: "38 6 * * 1"' in codeql + assert 'cron: "17 4 * * 3"' in benchmark + assert 'cron: "17 11 * * *"' in live_typed + assert 'cron: "43 10 * * *"' in live_web + assert 'cron: "12 9 * * 1"' in metrics + + +def test_uv_lock_is_committed_and_used() -> None: + assert (REPO_ROOT / "uv.lock").is_file() + assert "uv.lock" not in (REPO_ROOT / ".gitignore").read_text().splitlines() def test_ci_builds_checks_and_smoke_installs_distribution() -> None: @@ -141,7 +167,7 @@ def test_publish_workflow_builds_artifact_before_locked_release_gates() -> None: assert "retention-days: 7" in build_section assert 'pip install --no-build-isolation -e ".[all,dev]"' not in build_section - assert "uv sync --locked --all-extras --dev" in gate_section + assert "uv sync --locked --all-extras" in gate_section assert "uv run --locked python scripts/sync_release_metadata.py --check" in publish assert "actions/download-artifact" in gate_section assert "uv venv .release-smoke" in publish @@ -185,13 +211,16 @@ def test_security_and_publish_bandit_scan_scripts() -> None: assert "python -m bandit -q -c pyproject.toml -r src scripts" in publish -def test_security_workflow_uses_patched_release_backend() -> None: +def test_security_workflow_uses_locked_dependencies_and_checks_web() -> None: security = (WORKFLOW_DIR / "security.yml").read_text() release_requirements = (REPO_ROOT / "requirements-release.txt").read_text() - assert "setuptools==83.0.0" in security + assert "uv sync --locked --extra dev" in security assert "setuptools==83.0.0" in release_requirements - assert "working-directory: web" not in security + assert "working-directory: web" in security + assert "Audit web dependencies" in security + assert "Lint web app" in security + assert "Build web app" in security def test_workflows_use_module_entrypoints_for_python_tooling() -> None: diff --git a/tests/test_release_a_plus_check_script.py b/tests/test_release_a_plus_check_script.py index 7ea3f81..65b268f 100644 --- a/tests/test_release_a_plus_check_script.py +++ b/tests/test_release_a_plus_check_script.py @@ -44,9 +44,9 @@ def test_release_a_plus_plan_mode_is_side_effect_free() -> None: assert completed.returncode == 0 payload = json.loads(completed.stdout) assert "Core fetch/output" in payload["areas"] - assert "Web/docs copy" not in payload["areas"] + assert "Web/docs copy" in payload["areas"] assert "claim_audit" in payload["commands"] - assert not any(command.startswith("web_") for command in payload["commands"]) + assert {"web_typecheck", "web_lint", "web_build", "web_bun_audit"}.issubset(payload["commands"]) assert "--full-mcp" in payload["smoke_command"] diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..db849bd --- /dev/null +++ b/uv.lock @@ -0,0 +1,7645 @@ +version = 1 +revision = 3 +requires-python = ">=3.10" +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform == 'win32'", + "python_full_version == '3.14.*' and sys_platform == 'win32'", + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] + +[[package]] +name = "accelerate" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "packaging", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "psutil", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pyyaml", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "safetensors", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "torch", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8d/75/94cd5d389649578aca399e5aa822637eec18319a1dadc400ffe2f9a7493f/accelerate-1.14.0.tar.gz", hash = "sha256:41b9c4377a54e0b460a959b0defa1b736e4ca0a2373252d9a539964c2afe3c8d", size = 412167, upload-time = "2026-06-11T13:45:52.326Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/db/253133d7e7cb40d3af384bb2f5c0b4a2b7fdcffbc95c688cc67a20a3c103/accelerate-1.14.0-py3-none-any.whl", hash = "sha256:e94390c2863b873be18f623f9df48a0d8fe5eff13ea7f1a00092b0a7904888c6", size = 389246, upload-time = "2026-06-11T13:45:50.477Z" }, +] + +[[package]] +name = "aiofiles" +version = "25.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/c3/534eac40372d8ee36ef40df62ec129bee4fdb5ad9706e58a29be53b2c970/aiofiles-25.1.0.tar.gz", hash = "sha256:a8d728f0a29de45dc521f18f07297428d56992a742f0cd2701ba86e44d23d5b2", size = 46354, upload-time = "2025-10-09T20:51:04.358Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/8a/340a1555ae33d7354dbca4faa54948d76d89a27ceef032c8c3bc661d003e/aiofiles-25.1.0-py3-none-any.whl", hash = "sha256:abe311e527c862958650f9438e859c1fa7568a141b22abcd015e120e86a85695", size = 14668, upload-time = "2025-10-09T20:51:03.174Z" }, +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ce/f4/eec0465c2f67b2664688d0240b3212d5196fd89e741df67ddb81f8d35658/aiohappyeyeballs-2.7.1.tar.gz", hash = "sha256:065665c041c42a5938ed220bdcd7230f22527fbec085e1853d2402c8a3615d9d", size = 24757, upload-time = "2026-07-01T17:11:55.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/43/1947f06babed6b3f1d7f38b0c767f52df66bfb2bc10b468c4a7de9eceff2/aiohappyeyeballs-2.7.1-py3-none-any.whl", hash = "sha256:9243213661e29250eb41368e5daa826fc017156c3b8a11440826b2e3ed376472", size = 15038, upload-time = "2026-07-01T17:11:54.055Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "async-timeout", marker = "python_full_version < '3.11'" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/78/8ea7308cac6934de8c74a14f3d5f65d1c89287426688be79538d0e5c013d/aiohttp-3.14.1.tar.gz", hash = "sha256:307f2cff90a764d329e77040603fa032db89c5c24fdad50c4c15334cba744035", size = 7955794, upload-time = "2026-06-07T21:09:35.529Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/67/58ded4b3f2e10f94972d8928050c85330e249a31dd45a0e5f3c0e9c3fa05/aiohttp-3.14.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8f6bb621e5863cfe8fe5ff5468002d200ec31f30f1280b259dc505b02595099e", size = 766140, upload-time = "2026-06-07T21:05:37.471Z" }, + { url = "https://files.pythonhosted.org/packages/18/68/4ae5b4e08943f316594bb68da89957d3baf5760588fa09509594bd777e4b/aiohttp-3.14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f7215cb3933784f79ed20e5f050e15984f390424339b22375d5a53c933a0491", size = 519430, upload-time = "2026-06-07T21:05:40.751Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c1/316c8f3549dbe5245f92bfd523ec6f32dd4d98cafe21df3f6a19b1184c75/aiohttp-3.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d9d4e294455b23a68c9b8f042d0e8e377a265bcb15332753695f6e5b6819e0ce", size = 514406, upload-time = "2026-06-07T21:05:42.111Z" }, + { url = "https://files.pythonhosted.org/packages/5a/ee/fb0ac28684e8d753b83c8a4eebc19a5846912aa0a4daaabb6a9936363840/aiohttp-3.14.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b238af795833d5731d049d82bc84b768ae6f8f97f0495963b3ed9935c5901cc3", size = 1703649, upload-time = "2026-06-07T21:05:43.427Z" }, + { url = "https://files.pythonhosted.org/packages/3b/57/aa2beab673331f111885db8a7b69dfe3ab0e53e446a0ace18ca694b4dc58/aiohttp-3.14.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e4e5e0ae56914ecdbf446493addefc0159053dd53962cef37d7839f37f73d505", size = 1675126, upload-time = "2026-06-07T21:05:44.897Z" }, + { url = "https://files.pythonhosted.org/packages/47/ea/dad128abe365e79be03b16ed464198ac73e0d257e8260c6f7d6f31cbef26/aiohttp-3.14.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:092e4ce3619a7c6dee52a6bdabda973d9b34b66781f840ce93c7e0cec30cf521", size = 1771558, upload-time = "2026-06-07T21:05:46.405Z" }, + { url = "https://files.pythonhosted.org/packages/63/f3/b5b4e10327cb85d34d24232c6b71b64602f190b3ccb238a043ac6b187dac/aiohttp-3.14.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bb33777ea21e8b7ecde0e6fc84f598be0a1192eab1a63bc746d75aa75d38e7bd", size = 1856631, upload-time = "2026-06-07T21:05:47.844Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9d/93294c3045775c708ac8310eb3d3622a11d2951345ad590d532d62a1faa4/aiohttp-3.14.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23119f8fd4f5d16902ed459b63b100bcd269628075162bddac56cc7b5273b3fb", size = 1714139, upload-time = "2026-06-07T21:05:49.982Z" }, + { url = "https://files.pythonhosted.org/packages/29/c4/93067c85a0373492ce8e577435203c5947c454af074ac48ed4f3a1b9dd4a/aiohttp-3.14.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:57fc6745a4b7d0f5a9eb4f40a69718be6c0bc1b8368cc9fe89e90118719f4f42", size = 1588321, upload-time = "2026-06-07T21:05:51.431Z" }, + { url = "https://files.pythonhosted.org/packages/c4/39/9ff91aaf02af8b7b8222a987466da539f154c3e01732c22b5f5a20a8ee66/aiohttp-3.14.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6fd35beba67c4183b09375c5fff9accb47524191a244a99f95fd4472f5402c2b", size = 1670375, upload-time = "2026-06-07T21:05:53.109Z" }, + { url = "https://files.pythonhosted.org/packages/aa/e4/77452a3676b8d99ac1375f77691d6bf65ea6e9f4b201b82ef77c916dc767/aiohttp-3.14.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:672b9d65f42eb877f5c3f234a4547e4e1a226ca8c2eed879bb34670a0ce51192", size = 1690933, upload-time = "2026-06-07T21:05:54.902Z" }, + { url = "https://files.pythonhosted.org/packages/7d/84/b0059a7c7fc05ea23f3bc1596ba91c12f79588b9450564a24cac37536d0a/aiohttp-3.14.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:24ba13339fed9251d9b1a1bec8c7ab84c0d1675d79d33501e11f94f8b9a84e05", size = 1740798, upload-time = "2026-06-07T21:05:56.458Z" }, + { url = "https://files.pythonhosted.org/packages/8f/3a/e2a513ecbfc362591caa51a7f7e011b3bfc8938b388ae44cd95560d36999/aiohttp-3.14.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:94da27378da0610e341c4d30de29a191672683cc82b8f9556e8f7c7212a020fe", size = 1576412, upload-time = "2026-06-07T21:05:57.953Z" }, + { url = "https://files.pythonhosted.org/packages/a1/10/08f1654f538f93d36dcac66310a06eefce4641cdafca83f9f0a5317be254/aiohttp-3.14.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:52cdac9432d8b4a719f35094a818d95adcae0f0b4fe9b9b921909e0c87de9e7d", size = 1750199, upload-time = "2026-06-07T21:05:59.488Z" }, + { url = "https://files.pythonhosted.org/packages/99/e4/d91b70c57d8b8e9611e4a2e52238ca3698d3dc1c2efe25b7a9bf594ac584/aiohttp-3.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:672ac254412a24d0d0cf00a9e6c238877e4be5e5fa2d188832c1244f45f31966", size = 1699356, upload-time = "2026-06-07T21:06:01.131Z" }, + { url = "https://files.pythonhosted.org/packages/3d/f1/15340176f35ff61b95dbe34020bcf43f9e624a2d7bbac934715ff97d2033/aiohttp-3.14.1-cp310-cp310-win32.whl", hash = "sha256:2fe3607e71acc6ebb0ec8e492a247bf7a291226192dc0084236dfc12478916f6", size = 458939, upload-time = "2026-06-07T21:06:02.86Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c2/a2f1ec5b37f903109e43ae2862268cfe4a67a60c1b2cf43169fcdff5995f/aiohttp-3.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:30099eda75a53c32efb0920e9c33c195314d2cc1c680fbfd30894932ac5f27df", size = 482583, upload-time = "2026-06-07T21:06:04.666Z" }, + { url = "https://files.pythonhosted.org/packages/d0/7a/7b56f6732ef79530afaa72aa335d41b67c8d79b946995f0b11ad72985435/aiohttp-3.14.1-cp310-cp310-win_arm64.whl", hash = "sha256:5a837f49d901f9e368651b676912bff1104ed8c1a83b280bcd7b29adccef5c9c", size = 453470, upload-time = "2026-06-07T21:06:06.322Z" }, + { url = "https://files.pythonhosted.org/packages/26/dd/bf526e6f0a1120dd6f2df2e97bacfe4d358f13d17a0ff5847301a1375a51/aiohttp-3.14.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:aa00140699487bd435fde4342d85c94cb256b7cd3a5b9c3396c67f19922afda2", size = 765225, upload-time = "2026-06-07T21:06:07.957Z" }, + { url = "https://files.pythonhosted.org/packages/8f/e1/a2872aa55495a70f61310d411541c6ee23812d9a884e000c716e1bc3edbf/aiohttp-3.14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c1af67559445498b502030c35c59db59966f47041ca9de5b4e707f86bd10b5f", size = 518743, upload-time = "2026-06-07T21:06:09.749Z" }, + { url = "https://files.pythonhosted.org/packages/5b/e7/c60c7b209e509cc787de3cea0550a518538cfc08003e1c1e14c1c63fff71/aiohttp-3.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d44ec478e713ee7f29b439f7eb8dc2b9d4079e11ae114d2c2ac3d5daf30516c8", size = 514139, upload-time = "2026-06-07T21:06:11.26Z" }, + { url = "https://files.pythonhosted.org/packages/5b/8d/614ace2f579702c9840ab1e1447fd8509e35b0b904f7196418fa2f57b25d/aiohttp-3.14.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d3b1a184a9a8f548a6b73f1e26b96b052193e4b3175ed7342aaf1151a1f00a04", size = 1784088, upload-time = "2026-06-07T21:06:12.887Z" }, + { url = "https://files.pythonhosted.org/packages/49/e0/726e90f99542bf292f81a96a12cc4847deb86f3ccf62c6f4014a201f4d33/aiohttp-3.14.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5f2504bc0322437c9a1ff6d3333ca56c7477b727c995f036b976ae17b98372c8", size = 1737835, upload-time = "2026-06-07T21:06:14.564Z" }, + { url = "https://files.pythonhosted.org/packages/0b/4b/d176d5c4db9d33dacf0543102ea59503bc1d528af4cfd0b719949ca49389/aiohttp-3.14.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:73f05ea02013e02512c3bf42714f1208c57168c779cc6fe23516e4543089d0a6", size = 1842801, upload-time = "2026-06-07T21:06:16.228Z" }, + { url = "https://files.pythonhosted.org/packages/dc/d6/5a99b563690ea0cbed912ae94a2ce33993a5709a651a3a4fe761e7dd973a/aiohttp-3.14.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:797457503c2d426bee06eef808d07b31ede30b65e054444e7de64cad0061b7af", size = 1929992, upload-time = "2026-06-07T21:06:17.947Z" }, + { url = "https://files.pythonhosted.org/packages/76/7f/a987b14a3859094b3cea3f4825219c3e5536242564af6e3f9c2f6c994eb2/aiohttp-3.14.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b821a1f7dedf7e37450654e620038ac3b2e81e8fa6ea269337e97101978ec730", size = 1786989, upload-time = "2026-06-07T21:06:19.677Z" }, + { url = "https://files.pythonhosted.org/packages/f1/1a/420e5c85a3e73349372ed22ce0b6af86bfa6ce16a4b20a64a2e94608c781/aiohttp-3.14.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4cd96b5ba05d67ed0cf00b5b405c8cd99586d8e3481e8ee0a831057591af7621", size = 1640129, upload-time = "2026-06-07T21:06:22.558Z" }, + { url = "https://files.pythonhosted.org/packages/a7/80/18a592ed3be0a402cc03670bd72ee1f8563ddbe1d8d5542dbf868f274136/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d459b98a932296c6f0e94f87511a0b1b90a8a02c30a50e60a297619cd5a58ee", size = 1756576, upload-time = "2026-06-07T21:06:24.8Z" }, + { url = "https://files.pythonhosted.org/packages/ec/0b/8b3d5713373858ff71a617daf6e3b0e81ad63e79d09a3cf2f6b6b983939c/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:764457a7be60825fb770a644852ff717bcbb5042f189f2bd16df61a81b3f6573", size = 1754668, upload-time = "2026-06-07T21:06:26.528Z" }, + { url = "https://files.pythonhosted.org/packages/9f/49/fd564575cf225821d7ba5a117cb8bc27213d8a7e1811162afb43ae077039/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f7a16ef45b081454ef844502d87a848876c490c4cb5c650c230f6ec79ed2c1e7", size = 1817019, upload-time = "2026-06-07T21:06:28.297Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1b/e850c9ae6fc91356552ae668bb6c51e93fa29c8aef13398a10b56678557f/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2fbc3ed048b3475b9f0cbcb9978e9d2d3511acd91ead203af26ed9f0056004cf", size = 1631638, upload-time = "2026-06-07T21:06:30.242Z" }, + { url = "https://files.pythonhosted.org/packages/eb/94/3c337ba72451a89806ace6f75bddc92bafc5b8d53d90115a512858024b63/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bedb0cd073cc2dc035e30aeb99444389d3cd2113afe4ef9fcd23d439f5bade85", size = 1835660, upload-time = "2026-06-07T21:06:31.943Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9c/9c18cf367a0498212d9ba7daf990b504a5e8ae064cda4b504e2647c89c03/aiohttp-3.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b6feea921016eb3d4e04d65fc4e9ca402d1a3801f562aef94989f54694917af3", size = 1775698, upload-time = "2026-06-07T21:06:33.72Z" }, + { url = "https://files.pythonhosted.org/packages/b5/63/a251a9d2a6cb45065b2ddc0bde2b3dd10108740a9a42f632c66405a761a2/aiohttp-3.14.1-cp311-cp311-win32.whl", hash = "sha256:313701e488100074ce99850404ee36e741abf6330179fec908a1944ecf570126", size = 458386, upload-time = "2026-06-07T21:06:35.279Z" }, + { url = "https://files.pythonhosted.org/packages/17/ca/69274c51dcd6e8947d77b2806cf47a4a15f2c846e2cbeb1882547d3da283/aiohttp-3.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:03ab4530fdcb3a543a122ba4b65ac9919da9fe9f78a03d328a6e38ff962f7aa5", size = 483406, upload-time = "2026-06-07T21:06:36.824Z" }, + { url = "https://files.pythonhosted.org/packages/2c/8a/c25904f77690c3688ec140f87591ef11a0cfe36bf3d5c0f1f38056fb62b3/aiohttp-3.14.1-cp311-cp311-win_arm64.whl", hash = "sha256:486f7d16ed54c39c2cbd7ca71fd8ba2b8bb7860df65bd7b6ed640bab96a38a8b", size = 452987, upload-time = "2026-06-07T21:06:38.371Z" }, + { url = "https://files.pythonhosted.org/packages/1d/21/151624b51cd92553d95424daf4bf19f19ce9be9002d19253e7e7ce67197b/aiohttp-3.14.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d35143e27778b4bb0fb189562d7f275bff79c62ab8e98459717c0ea617ff2480", size = 757402, upload-time = "2026-06-07T21:06:40.311Z" }, + { url = "https://files.pythonhosted.org/packages/c2/82/280619e0bd7bf2454987e19282616e84762255dd9c8468f62382e8c191f1/aiohttp-3.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bcfb80a2cc36fba2534e5e5b5264dc7ae6fcd9bf15256da3e53d2f499e6fa29d", size = 512310, upload-time = "2026-06-07T21:06:42.207Z" }, + { url = "https://files.pythonhosted.org/packages/55/b2/2aac325583aaa1353045f96dffa586d8a34e8322e14a7ba49cffeb103ab4/aiohttp-3.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:27fd7c91e51729b4f7e1577865fa6d34c9adccbc39aabe9000285b48af9f0ec2", size = 512448, upload-time = "2026-06-07T21:06:43.813Z" }, + { url = "https://files.pythonhosted.org/packages/8a/72/a60607cb849faa8af8a356c9329ea2eb6f395d49e82cc82ccba1fd8deb8f/aiohttp-3.14.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:64c567bf9eaf664280116a8688f63016e6b32db2505908e2bdaca1b6438142f2", size = 1766854, upload-time = "2026-06-07T21:06:45.391Z" }, + { url = "https://files.pythonhosted.org/packages/b5/d3/d9fe1c9ec7557ab4d0d82bebaa728c6418f0b93295ec2f4ab015f7710cc7/aiohttp-3.14.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f5e6ff2bdbb8f4cd3fbe41f99e25bbcd58e3bf9f13d3dd31a11e7917251cc77a", size = 1740884, upload-time = "2026-06-07T21:06:47.413Z" }, + { url = "https://files.pythonhosted.org/packages/c1/dc/f2cecfaf9337ba3e63f181500814ff502aa3d00d9c7ec93a9d23d10a27b2/aiohttp-3.14.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2f73e01dc37122325caf079982621262f96d74823c179038a82fddfc50359264", size = 1810034, upload-time = "2026-06-07T21:06:50.165Z" }, + { url = "https://files.pythonhosted.org/packages/66/d7/2ff65c5e65c0d7476daf7e15c032e0805e36811185b9623e3238ad6c763e/aiohttp-3.14.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bb2c0c80d431c0d03f2c7dbf125150fedd4f0de17366a7ca33f7ccb822391842", size = 1904054, upload-time = "2026-06-07T21:06:52.035Z" }, + { url = "https://files.pythonhosted.org/packages/20/9c/d445818389df371f56d141d881153ba23183c4735a03f7356ffb43f7757d/aiohttp-3.14.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e6fc1a85fa7194a1a7d19f44e8609180f4a8eb5fa4c7ed8b4355f080fad235c", size = 1790278, upload-time = "2026-06-07T21:06:54.049Z" }, + { url = "https://files.pythonhosted.org/packages/4d/aa/bf04cb4d865fc6101c2229a294ad744973b72e513fdc5a6b791e6983d72a/aiohttp-3.14.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:686b6c0d3911ec387b444ddf5dc62fb7f7c0a7d5186a7861626496a5ab4aff95", size = 1591795, upload-time = "2026-06-07T21:06:55.911Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b4/4dac0038960427ba832f6609dfb4ea5437d7fd80c72001b9e48f834f428b/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c6fa4dc7ad6f8109c70bb1499e589f76b0b792baf39f9b017eb92c8a81d0a199", size = 1728397, upload-time = "2026-06-07T21:06:57.777Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f9/7cd4e8ad7aa3b75f17d56bb5498dd604a93d4e6eece822ba0568c413fff0/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:87a5eea1b2a5e21e1ebdbb33ad4165359189327e63fc4e4894693e7f821ac817", size = 1766504, upload-time = "2026-06-07T21:07:00.009Z" }, + { url = "https://files.pythonhosted.org/packages/f9/df/fc01d9fcad0f73fed3f3d361f1f94f975947b50dff82919f6dc2bf4316cc/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1c1421eb01d4fd608d88cc8290211d177a58532b55ad94076fb349c5bf467f0a", size = 1777806, upload-time = "2026-06-07T21:07:02.064Z" }, + { url = "https://files.pythonhosted.org/packages/41/09/47e2d090bddcc8fb4ccb4c314aadc32d7c5d9bb55f50f6ad1c92fc15d501/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:34b257ec41345c1e8f2df68fa908a7952f5de932723871eb633ecbbff396c9a4", size = 1580707, upload-time = "2026-06-07T21:07:03.942Z" }, + { url = "https://files.pythonhosted.org/packages/3d/36/f1a4ce904ae0b6930cfe9afc96d0896f7ec1a620c400405d63783bb95a9c/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:de538791a80e5d862addbc183f70f0158ac9b9bb872bb147f1fd2a683691e087", size = 1798121, upload-time = "2026-06-07T21:07:05.987Z" }, + { url = "https://files.pythonhosted.org/packages/70/0a/e0075ce9ca0279ee1d4f0c0b85f54fea02ebc83c3007651a72bece658fec/aiohttp-3.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f71173be42d3241d428f760122febb748de0623f44308a6f120d0dd9ec572e3", size = 1767580, upload-time = "2026-06-07T21:07:07.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/a0c0a8f327a9c52095cdd8e312391b00d3ed64ab6c72bb5c33d8ec251cf7/aiohttp-3.14.1-cp312-cp312-win32.whl", hash = "sha256:ec8dc383ee57ea3e883477dcca3f11b65d58199f1080acaf4cd6ad9a99698be4", size = 452771, upload-time = "2026-06-07T21:07:09.669Z" }, + { url = "https://files.pythonhosted.org/packages/df/d9/ea367c75f16ac9c6cdc8febb25e8318fa21a2b1bc8d6514d4b2d890bface/aiohttp-3.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2aa92c87868cd13674989f9ee83e5f9f7ea4237589b728048e1f0c8f6caa3271", size = 479873, upload-time = "2026-06-07T21:07:11.538Z" }, + { url = "https://files.pythonhosted.org/packages/03/64/8d96784a7851156db8a4c6c3f6f91042fdf39fb15a4cc38c8b3c14833c45/aiohttp-3.14.1-cp312-cp312-win_arm64.whl", hash = "sha256:2c840c90759922cb5e6dda94596e079a30fb5a5ba548e7e0dc00574703940847", size = 448073, upload-time = "2026-06-07T21:07:13.637Z" }, + { url = "https://files.pythonhosted.org/packages/bc/97/bd137012dd97e1649162b099135a80e1fd59aaa807b2430fc448d1029aff/aiohttp-3.14.1-cp313-cp313-android_21_arm64_v8a.whl", hash = "sha256:b3a03285a7f9c7b016324574a6d92a1c895da6b978cb8f1deee3ac72bc6da178", size = 506882, upload-time = "2026-06-07T21:07:15.501Z" }, + { url = "https://files.pythonhosted.org/packages/ef/79/e5cc690e9d922a66887ceeaca53a8ffd5a7b0be3816142b7abc433742d89/aiohttp-3.14.1-cp313-cp313-android_21_x86_64.whl", hash = "sha256:2a73f487ab8ef5abbb24b7aa9b73e98eaba9e9e031804ff2416f02eca315ccaf", size = 515270, upload-time = "2026-06-07T21:07:17.53Z" }, + { url = "https://files.pythonhosted.org/packages/fe/22/a73ccbf9dbd6e26dda0b24d5fd5db7da92ee3383a79f47677ffb834c5c5b/aiohttp-3.14.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:915fbb7b41b115192259f8c9ae58f3ddc444d2b5579917270211858e606a4afd", size = 485841, upload-time = "2026-06-07T21:07:19.555Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b9/57ed8eaf596321c2ad747bd480fb1700dbd7177c60dfc9e4c187f629662e/aiohttp-3.14.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:7fb4bdf95b0561a79f259f9d28fbc109728c5ee7f27aff6391f0ca703a329abe", size = 492088, upload-time = "2026-06-07T21:07:21.581Z" }, + { url = "https://files.pythonhosted.org/packages/78/c0/5ebe5270a7c140d7c6f79dcb018640225f14d406c149e4eec04a7d82fe71/aiohttp-3.14.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1b9748363260121d2927704f5d4fc498150669ca3ae93625986ee89c8f80dcd4", size = 501564, upload-time = "2026-06-07T21:07:23.388Z" }, + { url = "https://files.pythonhosted.org/packages/75/7f/8cdaa24fc7983865e0915153b96a9ac5bcdd3548d64c5a27d17cecccad2d/aiohttp-3.14.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:86a6dab78b0e43e2897a3bbe15745aa60dc5423ca437b7b0b164c069bf91b876", size = 751998, upload-time = "2026-06-07T21:07:25.046Z" }, + { url = "https://files.pythonhosted.org/packages/b2/f4/c4227aacfacc5cb0cc2d119b65301d177912a6842cd64e120c47af76064f/aiohttp-3.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4dfd6e47d3c44c2279907607f73a4240b88c69eb8b90da7e2441a8045dfd21da", size = 510918, upload-time = "2026-06-07T21:07:27.28Z" }, + { url = "https://files.pythonhosted.org/packages/ab/01/a2d5f96cd4e74424864d30bc0a7e44d0a12dacdcfa91b5b2d1bd3dca6bf3/aiohttp-3.14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:317acd9f8602858dc7d59679812c376c7f0b97bcbbf16e0d6237f54141d8a8a6", size = 508657, upload-time = "2026-06-07T21:07:29.252Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ed/3c0fb5c500fdd8e7ebc10d1889c04384fffa1a9163eac1356088ca9da1b1/aiohttp-3.14.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd869c427324e5cb15195793de951295710db28be7d818247f3097b4ab5d4b96", size = 1757907, upload-time = "2026-06-07T21:07:31.03Z" }, + { url = "https://files.pythonhosted.org/packages/0b/ab/d4c924d9bd5be3050c226612413ce68cb54c70d2c31b661bfc8d9a5b6a70/aiohttp-3.14.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:93b032b5ec3255473c143627d21a69ac74ae12f7f33974cb587c564d11b1066f", size = 1737565, upload-time = "2026-06-07T21:07:33.031Z" }, + { url = "https://files.pythonhosted.org/packages/19/2a/37326821ff779084020cdc33224d20b19f42f4183a500ff92022a739eda7/aiohttp-3.14.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f234b4deb12f3ad59127e037bc57c40c21e45b45282df7d3a55a0f409f595296", size = 1799018, upload-time = "2026-06-07T21:07:35.003Z" }, + { url = "https://files.pythonhosted.org/packages/b3/4f/6e947ba73e4ce09070761c05ed3a8ceb7c21f5e46798671d8b2aac0e4626/aiohttp-3.14.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9af6779bfb46abf124068327abcdf9ce95c9ef8287a3e8da76ccf2d0f16c28fa", size = 1894416, upload-time = "2026-06-07T21:07:36.956Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6e/dbf1d0625dc711fb2851f4f3c3055c39ed58bae92082d8c627dbe6013736/aiohttp-3.14.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:faccab372e66bc76d5731525e7f1143c922271725b9d38c9f97edcc66266b451", size = 1783881, upload-time = "2026-06-07T21:07:39.063Z" }, + { url = "https://files.pythonhosted.org/packages/44/c2/5e25098a67268ed369483ae7d1a58bd0a13d03aab860d2a0e4a6eb25b046/aiohttp-3.14.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f380468b09d2a81633ee863b0ec5648d364bd17bb8ecfb8c2f387f7ac1faf42c", size = 1587572, upload-time = "2026-06-07T21:07:41.058Z" }, + { url = "https://files.pythonhosted.org/packages/2a/bd/cf9cee17e140f942a3de73e658a543aa8fbf35a5fc67a9d2538d52d77f0b/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:97e704dcd26271f5bda3fa07c3ce0fb76d6d3f8659f4baa1a24442cc9ba177ca", size = 1722137, upload-time = "2026-06-07T21:07:43.014Z" }, + { url = "https://files.pythonhosted.org/packages/89/6d/5684f8c59045c96f81a18cefbc1fbbd79d25b88f1c622f2a5c5c08fcb632/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:269b76ac5394092b95bc4a098f4fc6c191c083c3bd12775d1e30e663132f6a09", size = 1755953, upload-time = "2026-06-07T21:07:45.933Z" }, + { url = "https://files.pythonhosted.org/packages/a8/40/35caf3170f8359760740a7d9aa0fff2e344bef98e1d1186f5a0f6dec17e6/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c0b3e614340c889d575451696374c9d17affd54cd607ca0babed8f8c37b9397", size = 1766479, upload-time = "2026-06-07T21:07:48.047Z" }, + { url = "https://files.pythonhosted.org/packages/6d/a1/b0c61e7a137f0d81de49a82023a6df73c3c16d6fefb0f8e4a93d21639002/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:5663ee9257cfa1add7253a7da3035a02f31b6600ec48261585e1800a81533080", size = 1580077, upload-time = "2026-06-07T21:07:50.069Z" }, + { url = "https://files.pythonhosted.org/packages/0b/41/194ea4623693009fcefebef7aef63c141754f153e9cd0d39d3b9e36c175c/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:603a2c834142172ffddc054067f5ec0ca65d57a0aa98a71bc81952573208e345", size = 1791688, upload-time = "2026-06-07T21:07:52.106Z" }, + { url = "https://files.pythonhosted.org/packages/ba/45/4de841f005cfe1fd63e2a2fe011262c515e2a62aa6994b15947e7d717ac9/aiohttp-3.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cb21957bb8aca671c1765e32f58164cf0c50e6bf41c0bbbd16da20732ecaf588", size = 1761094, upload-time = "2026-06-07T21:07:54.113Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ae/dbce10533d3896d544d5053939ed75b7dc31a1b0973d959b1b5ae21028d6/aiohttp-3.14.1-cp313-cp313-win32.whl", hash = "sha256:e509a55f681e6158c20f70f102f9cf61fb20fbc382272bc6d94b7343f2582780", size = 452662, upload-time = "2026-06-07T21:07:56.06Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d9/0bf1a19362c32f06229da5e7ddfcec91f93474d6307f7a2d3135e9c674dc/aiohttp-3.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:1ac8531b638959718e18c2207fbfe297819875da46a740b29dfa29beba64355a", size = 479748, upload-time = "2026-06-07T21:07:58.319Z" }, + { url = "https://files.pythonhosted.org/packages/22/0a/62e7232dc9484fbec112ceb32efb6a624cc7994ec6e2b019286f17c4e8f2/aiohttp-3.14.1-cp313-cp313-win_arm64.whl", hash = "sha256:250d14af67f6b6a1a4a811049b1afa69d61d617fca6bf33149b3ab1a6dbcf7b8", size = 447723, upload-time = "2026-06-07T21:08:00.154Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a1/5fafa04e1ca91ddb47608699d60649c1c6db3cf41c99e78fc4056f9513db/aiohttp-3.14.1-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:7c106c26852ca1c2047c6b80384f17100b4e439af276f21ef3d4e2f450ae7e15", size = 508531, upload-time = "2026-06-07T21:08:02.093Z" }, + { url = "https://files.pythonhosted.org/packages/fa/2e/bfa02f699d87ffc86d5959270b28f1cb410add3ccaced8ed2e0b8a5238fc/aiohttp-3.14.1-cp314-cp314-android_24_x86_64.whl", hash = "sha256:20205f7f5ade7aaec9f4b500549bbc071b046453aed72f9c06dcab87896a83e8", size = 514718, upload-time = "2026-06-07T21:08:04.476Z" }, + { url = "https://files.pythonhosted.org/packages/85/a5/9594ad6289eebbc97d167c44213d557807f90e59115caad24de21ad2c3b1/aiohttp-3.14.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:62a759436b29e677181a9e76bab8b8f689a29cb9c535f45f7c48c9c830d3f8c3", size = 487918, upload-time = "2026-06-07T21:08:06.377Z" }, + { url = "https://files.pythonhosted.org/packages/b4/61/16a32c36c3c49edec122a3dc811f2057df2f94d3b14aa107c8017d981618/aiohttp-3.14.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:2964cbf553df4d7a57348da44d961d871895fc1ee4e8c322b2a95612c7b17fba", size = 494014, upload-time = "2026-06-07T21:08:08.263Z" }, + { url = "https://files.pythonhosted.org/packages/9b/89/3ebcf96ed99c05bec9c434aaac6963fd3cbab4a786ae739908a144d9ce44/aiohttp-3.14.1-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:237651caadc3a59badd39319c54642b5299e9cc98a3a194310e55d5bb9f5e397", size = 502398, upload-time = "2026-06-07T21:08:10.244Z" }, + { url = "https://files.pythonhosted.org/packages/fd/3d/b74870a0c2d40c355928cd5b96c7a11fa821b8a40fc41365e64479b151fb/aiohttp-3.14.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:896e12dfdbbab9d8f7e16d2b28c6769a60126fa92095d1ebf9473d02593a2448", size = 758018, upload-time = "2026-06-07T21:08:12.447Z" }, + { url = "https://files.pythonhosted.org/packages/d3/66/f42f5c984d99e49c6cff5f26f590750f2e2f7ef1fcfb99966ab5be1b632e/aiohttp-3.14.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d03f281ed22579314ba00821ce20115a7c0ac430660b4cc05704a3f818b3e004", size = 512462, upload-time = "2026-06-07T21:08:14.624Z" }, + { url = "https://files.pythonhosted.org/packages/e9/a7/248e1aebe0c7810b0271e021a0f2a5eb6e78a051885b3c9df49f42a5802d/aiohttp-3.14.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:07eabb979d236335fed927e137a928c9adfb7df3b9ec7aa31726f133a62be983", size = 512824, upload-time = "2026-06-07T21:08:16.572Z" }, + { url = "https://files.pythonhosted.org/packages/26/97/2aa0e5ba0727dc3bd5aaebb7ccbc510f7dfb7fb961ec87497cd496635ab1/aiohttp-3.14.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4fe1f1087cbadb280b5e1bb054a4f00d1423c74d6626c5e48400d871d34ecefe", size = 1749898, upload-time = "2026-06-07T21:08:18.635Z" }, + { url = "https://files.pythonhosted.org/packages/00/8d/e97f6c96c891d457c8479d92a514ba194d0412f981d72c70341ee18488ed/aiohttp-3.14.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:367a9314fdc79dab0fac96e216cb41dd73c85bdca85306ce8999118ba7e0f333", size = 1710114, upload-time = "2026-06-07T21:08:20.892Z" }, + { url = "https://files.pythonhosted.org/packages/6f/e6/aa8d7e863048c8fceb5cd6ce74017311cec3ead07847387e12265fb4444e/aiohttp-3.14.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a24f677ebe83749039e7bdf862ff0bbb16818ae4193d4ef96505e269375bcce0", size = 1802541, upload-time = "2026-06-07T21:08:23.044Z" }, + { url = "https://files.pythonhosted.org/packages/83/a8/72193137de57fda4ebfae4563182d082c8856e3b6e9871d0b46f028fb369/aiohttp-3.14.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c83afe0ba876be7e943d2e0ba645809ad441575d2840c895c21ee5de93b9377a", size = 1875776, upload-time = "2026-06-07T21:08:25.288Z" }, + { url = "https://files.pythonhosted.org/packages/a0/18/938441025db6769a3464596b2410af3afde0b21eb2f204c6f766f68af4bd/aiohttp-3.14.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:634e385930fb6d2d479cf3aa66515955863b77a5e3c2b5894ca259a25b308602", size = 1760329, upload-time = "2026-06-07T21:08:27.363Z" }, + { url = "https://files.pythonhosted.org/packages/60/29/bf2496b4065e76e09fe48015aaffe5ce161d8f089b06ac6982070f653076/aiohttp-3.14.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:eeea07c4397bbc57719c4eed8f9c284874d4f175f9b6d57f7a1546b976d455ca", size = 1587293, upload-time = "2026-06-07T21:08:29.805Z" }, + { url = "https://files.pythonhosted.org/packages/49/a2/2136674d52123b1354bd05dd5753c318db47dc0c927cc70b27bab3755456/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:335c0cc3e3545ce98dcb9cfcb836f40c3411f43fa03dab757597d80c89af8a35", size = 1714756, upload-time = "2026-06-07T21:08:32.094Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b9/e5fd2e6f915503081c0f9b1e8540947037929c70c191da2e4d54b31a21a1/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:ae6be797afdef264e8a84864a85b196ca06045586481b3df8a967322fd2fa844", size = 1721052, upload-time = "2026-06-07T21:08:34.167Z" }, + { url = "https://files.pythonhosted.org/packages/63/5a/2833e324a2263e104e31e2e91bc5bbee81bc499afd32203faee048a883f0/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:8560b4d712474335d08907db7973f71912d3a9a8f1dee992ec06b5d2fe359496", size = 1766888, upload-time = "2026-06-07T21:08:36.95Z" }, + { url = "https://files.pythonhosted.org/packages/57/fa/dea6511870913162f3b2e8c42a7614eb203a4540b8c2da43e0bfb0548f3c/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7edd08e0a5deb1e8564a2fcd8f4561014a3f05252334671bbf55ddd47db0e5", size = 1581679, upload-time = "2026-06-07T21:08:39.292Z" }, + { url = "https://files.pythonhosted.org/packages/14/bd/3cf0d55e71784b33534e9710a67d382d900598b4787fbce6cc7317f8c42a/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:b6ff7fcee63287ae57b5df3e4f5957ce032122802509246dec1a5bcc55904c95", size = 1782021, upload-time = "2026-06-07T21:08:41.407Z" }, + { url = "https://files.pythonhosted.org/packages/c1/af/14bb5843eccbe234f4dfb78ab73e549d99727247e62ae5d62cbd22eaf5b0/aiohttp-3.14.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6ffbb2f4ec1ceaff7e07d43922954da26b223d188bf30658e561b98e23089444", size = 1742574, upload-time = "2026-06-07T21:08:43.795Z" }, + { url = "https://files.pythonhosted.org/packages/f2/1e/fbeb7af9210a67ac0f9c9bec0f8f4568497924e33137a3d5b48e1cf85f3f/aiohttp-3.14.1-cp314-cp314-win32.whl", hash = "sha256:a9875b46d910cff3ea2f5962f9d266b465459fe634e22556ab9bd6fc1192eea0", size = 457773, upload-time = "2026-06-07T21:08:46.168Z" }, + { url = "https://files.pythonhosted.org/packages/f0/2b/13e8d741a9ec5db7d900c060554cf8352ab85e44e2a4469ebb9d377bda17/aiohttp-3.14.1-cp314-cp314-win_amd64.whl", hash = "sha256:af8b4b81a960eeaf1234971ac3cd0ba5901f3cd42eae42a46b4d089a8b492719", size = 485001, upload-time = "2026-06-07T21:08:48.401Z" }, + { url = "https://files.pythonhosted.org/packages/df/30/491acfa2c4d6c3ff59c49a14fc1b50be3241e25bbb0c84c09e2da4d11395/aiohttp-3.14.1-cp314-cp314-win_arm64.whl", hash = "sha256:cf4491381b1b57425c315a56a439251b1bdac07b2275f19a8c44bc57744532ec", size = 453809, upload-time = "2026-06-07T21:08:50.7Z" }, + { url = "https://files.pythonhosted.org/packages/34/e3/19dbe1a1f4cc6230eb9e314de7fe68053b0992f9302b27d12141a0b5db53/aiohttp-3.14.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:819c054312f1af92947e6a55883d1b66feefab11531a7fc45e0fb9b63880b5c2", size = 793320, upload-time = "2026-06-07T21:08:52.775Z" }, + { url = "https://files.pythonhosted.org/packages/7f/20/1b7182219ba1b108430d6e4dc53d25ae02dcfcf5a045b33af4e8c5167527/aiohttp-3.14.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:10ee9c1753a8f706345b22496c79fbddb5be0599e0823f3738b1534058e25340", size = 529077, upload-time = "2026-06-07T21:08:55Z" }, + { url = "https://files.pythonhosted.org/packages/b9/c8/14ce60ec31a2e5f5274bb17d383a6f7a3aabca31ac04eee05585bbadab16/aiohttp-3.14.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1601cc37baf5750ccacae618ec2daf020769581695550e3b654a911f859c563d", size = 532476, upload-time = "2026-06-07T21:08:57.176Z" }, + { url = "https://files.pythonhosted.org/packages/7e/02/9ac85e081e53da2e061b02fa7758fe0a12d17b8ce2d1f5e6c7cb76730328/aiohttp-3.14.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4d6e0ac9da31c9c04c84e1c0182ad8d6df35965a85cae29cd71d089621b3ae94", size = 1922347, upload-time = "2026-06-07T21:08:59.563Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3e/d3ba07a0ab38b5389e10bec4362d21e10a4f667cba2d79ba30837b3a5059/aiohttp-3.14.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9e8f2d660c350b3d0e259c7a7e3d9b7fc8b41210cbcc3d4a7076ff0a5e5c2fdc", size = 1786465, upload-time = "2026-06-07T21:09:01.909Z" }, + { url = "https://files.pythonhosted.org/packages/0b/cb/e2ee978a00cfb2df829704a69528b18154eba5939f45bc1efa8f33aee4c5/aiohttp-3.14.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4691802dda97be727f79d86818acaad7eb8e9252626a1d6b519fedbb92d5e251", size = 1909423, upload-time = "2026-06-07T21:09:04.357Z" }, + { url = "https://files.pythonhosted.org/packages/73/5d/1430334858b1022b58ae50399a918f0bd6fe8fa7fa183598d657ff61e040/aiohttp-3.14.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c389c482a7e9b9dc3ee2701ac46c4125297a3818875b9c305ddb603c04828fd1", size = 2001906, upload-time = "2026-06-07T21:09:06.722Z" }, + { url = "https://files.pythonhosted.org/packages/66/4e/560c7472d3d198a23aa5c8b19a5115bf6a9b77b7d3e4bb363da320430ad2/aiohttp-3.14.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fc0cacab7ba4e56f0f81c82a98c09bed2f39c940107b03a34b168bdf7597edd3", size = 1877095, upload-time = "2026-06-07T21:09:09.011Z" }, + { url = "https://files.pythonhosted.org/packages/0d/f1/4745806578d447db4a784a8591e2dae3afdfc2bcb96f8f81271b13df6543/aiohttp-3.14.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:979ed4717f59b8bb12e3963378fa285d93d367e15bcd66c721311826d3c44a6c", size = 1676222, upload-time = "2026-06-07T21:09:11.461Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c9/48255813cca749a229ef0ab476004ec623728ad79a9c0840616f6c076325/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:38e1e7daaea81df51c952e18483f323d878499a1e2bfe564790e0f9701d6f203", size = 1842922, upload-time = "2026-06-07T21:09:14.118Z" }, + { url = "https://files.pythonhosted.org/packages/3d/c0/bbd054e2bee909f529523a5af3891052606af5143c09f5f183ec3b234676/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:4132e72c608fe9fecb8f409113567605915b83e9bdd3ea56538d2f9cd35002f1", size = 1825035, upload-time = "2026-06-07T21:09:16.447Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ae/90395d4376deceb74e09ec26b6adf7d2015a6f8802d6d84446af860fef04/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:eefd9cc9b6d4a2db5f00a26bc3e4f9acf71926a6ec557cd56c9c6f27c290b665", size = 1849512, upload-time = "2026-06-07T21:09:18.742Z" }, + { url = "https://files.pythonhosted.org/packages/93/bd/fb25f3049957553d4ce0ba6ae480aa2f592a6985497fca590837d16c1be0/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:b165790117eea512d7f3fb22f1f6dad3d55a7189571993eb015591c1401276d1", size = 1668571, upload-time = "2026-06-07T21:09:21.458Z" }, + { url = "https://files.pythonhosted.org/packages/3f/22/7f73303d64dd567ff3addca90b556690ed1233a47b8f55d242fb90af3681/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:ed09c7eb1c391271c2ed0314a51903e72a3acb653d5ccfc264cdf3ef11f8269d", size = 1881159, upload-time = "2026-06-07T21:09:23.813Z" }, + { url = "https://files.pythonhosted.org/packages/44/be/0474c5a8b5640e1e4aa1923430a91f4151be82e511373fe764189b89aef5/aiohttp-3.14.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:99abd37084b82f5830c635fddd0b4993b9742a66eb746dacf433c8590e8f9e3c", size = 1841409, upload-time = "2026-06-07T21:09:26.207Z" }, + { url = "https://files.pythonhosted.org/packages/7b/3c/bb4a7cba26956cb3da4553cc2056cf67be5b5ff6e6d8fa4fbdff73bfb7ae/aiohttp-3.14.1-cp314-cp314t-win32.whl", hash = "sha256:47ddf841cdecc810749921d25606dee45857d12d2ad5ddb7b5bd7eab12e4b365", size = 494166, upload-time = "2026-06-07T21:09:28.505Z" }, + { url = "https://files.pythonhosted.org/packages/8a/84/ec80c2c1f66a952555a9f86df6b33af65108a6febfa0471b69013a12f807/aiohttp-3.14.1-cp314-cp314t-win_amd64.whl", hash = "sha256:5e78b522b7a6e27e0b25d19b247b75039ac4c94f99823e3c9e53ae1603a9f7e9", size = 530255, upload-time = "2026-06-07T21:09:30.843Z" }, + { url = "https://files.pythonhosted.org/packages/2a/71/6e22be134a4061ada85a92951b842f2657f17d926b727f3f94c56ae963d6/aiohttp-3.14.1-cp314-cp314t-win_arm64.whl", hash = "sha256:90d53f1609c29ccc2193945ef732428382a28f78d0456ae4d3daf0d48b74f0f6", size = 469640, upload-time = "2026-06-07T21:09:33.028Z" }, +] + +[[package]] +name = "aiohttp-socks" +version = "0.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "python-socks", extra = ["asyncio"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/cc/e5bbd54f76bd56291522251e47267b645dac76327b2657ade9545e30522c/aiohttp_socks-0.11.0.tar.gz", hash = "sha256:0afe51638527c79077e4bd6e57052c87c4824233d6e20bb061c53766421b10f0", size = 11196, upload-time = "2025-12-09T13:35:52.564Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/7d/4b633d709b8901d59444d2e512b93e72fe62d2b492a040097c3f7ba017bb/aiohttp_socks-0.11.0-py3-none-any.whl", hash = "sha256:9aacce57c931b8fbf8f6d333cf3cafe4c35b971b35430309e167a35a8aab9ec1", size = 10556, upload-time = "2025-12-09T13:35:50.18Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "annotated-doc" +version = "0.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "antlr4-python3-runtime" +version = "4.9.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b", size = 117034, upload-time = "2021-11-06T17:52:23.524Z" } + +[[package]] +name = "anyio" +version = "4.14.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "idna" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/cc/a381afa6efea9f496eff839d4a6a1aed3bfafc7b3ab4b0d1b243a12573dd/anyio-4.14.2.tar.gz", hash = "sha256:cfa139f3ed1a23ee8f88a145ddb5ac7605b8bbfd8592baacd7ce3d8bb4313c7f", size = 260176, upload-time = "2026-07-12T20:29:07.082Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/35/f2287558c17e29fafc8ef3daf819bb9834061cfa43bff8014f7df7f63bdc/anyio-4.14.2-py3-none-any.whl", hash = "sha256:9f505dda5ac9f0c8309b5e8bd445a8c2bf7246f3ce950121e45ea15bc41d1494", size = 125813, upload-time = "2026-07-12T20:29:05.763Z" }, +] + +[[package]] +name = "ast-serialize" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/ad/0d70a3a2d6e01968d985415259e8ec7ad3f777903f9b1c1f3c8c44642c60/ast_serialize-0.6.0.tar.gz", hash = "sha256:aadd3ffcf4858c9726bf3515f7b199c7eadbe504f96028e4a87172c0da65a8fe", size = 61489, upload-time = "2026-06-30T20:02:55.555Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/12/3e5f575f156555547c250a8b0d1347517a3a20fc7f4492e9703a69d4f45e/ast_serialize-0.6.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:a7520b672827885bafeae7501f684d14d47d17e5f45256f9df547686cca52264", size = 1177640, upload-time = "2026-06-30T20:02:06.708Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a4/921a9e27951627983b0f368859ea00f8330a551dc0bf4c2fdcb11855a98b/ast_serialize-0.6.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a14191beec7e0c078d2fc1f6edc0aee88bcd4db9f18e1bc9f8052b559c22dddc", size = 1168111, upload-time = "2026-06-30T20:02:08.366Z" }, + { url = "https://files.pythonhosted.org/packages/00/69/950cf404de7b8782cf95e5c1237e25e2aa46177b287f39f9eeddf481fd6f/ast_serialize-0.6.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32ef62ec34cf6be20ad77d4799556638fbdf187f3ae10698dfb20ef9f2c89516", size = 1227656, upload-time = "2026-06-30T20:02:09.843Z" }, + { url = "https://files.pythonhosted.org/packages/4c/a8/46f8f6a6479d9d2273980957bb091a506c55f5b95d3c029ee58518a78407/ast_serialize-0.6.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:13b7769970a39983b0adf2f38917b1cd3b8946f76df045756c3d741bc689f089", size = 1227706, upload-time = "2026-06-30T20:02:11.367Z" }, + { url = "https://files.pythonhosted.org/packages/b7/b9/9ac415bda0a40e49eab8fea3b2741c19c98bb84d57d62c4cfc6230eb67be/ast_serialize-0.6.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f7a408601bb3edaefb3bc67a4c01f5235e3253653b6a5729a2ee2382b35341c", size = 1431705, upload-time = "2026-06-30T20:02:12.737Z" }, + { url = "https://files.pythonhosted.org/packages/e5/06/8807115d441444879f7561b5eede5ac18fc80392f11826d61ccf31f503b1/ast_serialize-0.6.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8670bfa51208a2c0c8d138928e40e998fab158f9200d53bb80c088b5b8eda7b8", size = 1249533, upload-time = "2026-06-30T20:02:14.571Z" }, + { url = "https://files.pythonhosted.org/packages/3e/c0/c2ba82ef9618650357d9421a1fdb27ffec862a7f57e8e2de82a3ccd11e12/ast_serialize-0.6.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4826809eb8597a8cd59fd924b6d7c285b8969a1e0007e2cb652cab62376270f", size = 1252619, upload-time = "2026-06-30T20:02:16.219Z" }, + { url = "https://files.pythonhosted.org/packages/0f/a7/fa31d52dd4102cede29fb9634e98d214129b2783b4f95528c6dc6a8f6587/ast_serialize-0.6.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:577a6c189068686869f5f1ddc38363f3ae1808a4753b577266f9202071a7bb66", size = 1242983, upload-time = "2026-06-30T20:02:17.813Z" }, + { url = "https://files.pythonhosted.org/packages/b1/20/ddf742b5ad3c4bafd3466f2265037cfd99bc1b9a5ee46a5d58c90d523242/ast_serialize-0.6.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:085de7f62dc9cc247eb01e965a362707d1d90b1d89a82c5bf78301a60a3c417b", size = 1296148, upload-time = "2026-06-30T20:02:19.146Z" }, + { url = "https://files.pythonhosted.org/packages/24/cb/9f6f217cce8b3b632c5568b478d195a35e79dce4dbe309438cb89ba6ea4f/ast_serialize-0.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9f8a8b78b13173de6a9ec22111d9be674874cd5bdccda04f14ae5ebc2bef403a", size = 1403826, upload-time = "2026-06-30T20:02:20.696Z" }, + { url = "https://files.pythonhosted.org/packages/2d/f8/9d16d4f0107a183924425cc0e7618d8bf76f96b45afa9ff19f924ed1ad57/ast_serialize-0.6.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:f2ff3baffc3a29c1f15bc9098aa0c09763410262d5e6cef42116f7356c184554", size = 1502943, upload-time = "2026-06-30T20:02:22.034Z" }, + { url = "https://files.pythonhosted.org/packages/80/dd/bbc1c38756350dddf7e24acae1c9482ef42051c267417e019aecc1ed4075/ast_serialize-0.6.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0067b25fce104eaae5b88383de9ab803faeb671831e14ca698b771b356e2600f", size = 1497632, upload-time = "2026-06-30T20:02:23.517Z" }, + { url = "https://files.pythonhosted.org/packages/42/7e/9daffefcf5b97e6bb4c3e0b3c024c1aee9722f23d3cf7cd2ff80d6fb4a40/ast_serialize-0.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c617417f9cbb0cb144f6283c3cbe0d2e0f01beaf9f608f662b21191058a626ec", size = 1448858, upload-time = "2026-06-30T20:02:24.889Z" }, + { url = "https://files.pythonhosted.org/packages/e5/1f/f9baaab81a677ea0af7d2458cac2f94ebcc85958f8a3c15ba9d9e5dab653/ast_serialize-0.6.0-cp314-cp314t-win32.whl", hash = "sha256:5337cb256dcea3df9288205213d1601581536526b8f4da44b6974f1180f3252a", size = 1052600, upload-time = "2026-06-30T20:02:26.263Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1f/41b535866519512d8cf6669cb2cff7823b7672bb6279c0333b4ff89d7d9f/ast_serialize-0.6.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2d947e45cafc4b09bd7528917fa84c517654a43de173c79785574b7b3068ac24", size = 1095570, upload-time = "2026-06-30T20:02:27.639Z" }, + { url = "https://files.pythonhosted.org/packages/50/64/e472fe3e3a2d33d874b987e8518aedf24562919e3b6161a4fa1797e89c0f/ast_serialize-0.6.0-cp314-cp314t-win_arm64.whl", hash = "sha256:6e15ec740436e1a0d62de848641abe5f3a2f89a7f94907d534795ac91bbacf14", size = 1067267, upload-time = "2026-06-30T20:02:28.949Z" }, + { url = "https://files.pythonhosted.org/packages/52/19/ac8348ae8711c9b5ae834634f635780cab62a0f5e6f988882e048b89c2ae/ast_serialize-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:093cb8bb91b720d8523580498d031791bb1bbaa048599c3d21085d380e11a596", size = 1185367, upload-time = "2026-06-30T20:02:30.427Z" }, + { url = "https://files.pythonhosted.org/packages/c1/f6/ec7ec652c51db77c2f61d8573338e13e4704303265ccc658cb4031d9f354/ast_serialize-0.6.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:e61580a69faf47e3689795367ed211f2a10fd741478cc0f36a0f128793360aad", size = 1178657, upload-time = "2026-06-30T20:02:31.964Z" }, + { url = "https://files.pythonhosted.org/packages/6f/02/613a7534a41d0122f37d1e0c64aa8ac78bfb831f8c92f6db057a311abb3c/ast_serialize-0.6.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:305802f2ce2a7c4e87835078ea85c58b586ddda8095b92fe2ead9364ae19c80a", size = 1238620, upload-time = "2026-06-30T20:02:33.664Z" }, + { url = "https://files.pythonhosted.org/packages/4d/21/087957bba486242afc52f49b2d9e21c9dad00289356cf9efe67084015a9d/ast_serialize-0.6.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c7b8b8f0c42f752ea00b2b7d7c090b3f80d9c1c5c75cadf16423790a0cc74081", size = 1236075, upload-time = "2026-06-30T20:02:34.936Z" }, + { url = "https://files.pythonhosted.org/packages/82/04/78128bbb170071c2c72a210a181f1c00e11cc1cec60a8beef747b07f9201/ast_serialize-0.6.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd5b91b9e6f2356ace3a556963b0cd783b395fbbb0bb17b4defc283415466e77", size = 1441348, upload-time = "2026-06-30T20:02:36.245Z" }, + { url = "https://files.pythonhosted.org/packages/64/64/62fb99d6faf199b4c3e5b08a07136e9a0d7664bb249c6de3670e5b63e9b6/ast_serialize-0.6.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d6ef91590258ada18909b9caea344dac4de2013906b035473cd674a43f4b790", size = 1258580, upload-time = "2026-06-30T20:02:37.53Z" }, + { url = "https://files.pythonhosted.org/packages/ca/87/b4d6c38e0ccd5e85dc54cecdf933a152c60b28fe5d993a6d8a72fa6d5896/ast_serialize-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcbed41e9386059fc0261d602445ede0976c2ecec2939688bcbcb9ed0b6f28b7", size = 1261693, upload-time = "2026-06-30T20:02:39.123Z" }, + { url = "https://files.pythonhosted.org/packages/0e/4b/3676ca2191f39bafb75f93f99b2f429ec464586158fece2165f3572805dc/ast_serialize-0.6.0-cp39-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:cdc4e6f930b9090c2f92c9036ad12ffb8e6e44d4a5ba06f1458a05d60f203f7b", size = 1252517, upload-time = "2026-06-30T20:02:40.511Z" }, + { url = "https://files.pythonhosted.org/packages/f3/58/494ef8c4b4acb2f4a265ac934caf45f792a08fe27d6b853de35ad991941a/ast_serialize-0.6.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:897ac47b5637be41c0c07061c8a912fafa967ef1dc73fa115e4bfa70882a093b", size = 1304843, upload-time = "2026-06-30T20:02:41.961Z" }, + { url = "https://files.pythonhosted.org/packages/b1/f2/13736d920ab3d49bbee80ef1a277dd7b7aaf3b3545efd9d2a8114fe05525/ast_serialize-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c4af9a1386166e40ed01464991806f89038a2d89782576c7774876fa77034e32", size = 1413698, upload-time = "2026-06-30T20:02:44.179Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5a/e046f3899e2acba4677d7427b76431443a1aa1a0e583dfb05b55b69d55cf/ast_serialize-0.6.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:c901adbd750029b9ac4ad3d6aa56853e0ad4875119fbf52b7b8298afc223828b", size = 1512209, upload-time = "2026-06-30T20:02:45.584Z" }, + { url = "https://files.pythonhosted.org/packages/cc/c7/e42aaca7bb2d22a7c06d5a8c7930086c5a334e93d716e6fa5e6647a4515f/ast_serialize-0.6.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:3ae22a366b752ab4496191525b78b097b5b72d531752e3c1dd7e383a8f2c8a1a", size = 1508464, upload-time = "2026-06-30T20:02:46.942Z" }, + { url = "https://files.pythonhosted.org/packages/95/93/5524a3dc6c3f593de3228ed9cbef73afa047625b7000ec21b7f58e6eb4d4/ast_serialize-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4ed29121da8b3fdc291002801a1de0f76248fa07dce89157a5f277842cf6126e", size = 1457164, upload-time = "2026-06-30T20:02:48.294Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c0/36a6ffb4d653cf621427b4c4928671f53ad800c453474de2b82564a44ad9/ast_serialize-0.6.0-cp39-abi3-pyemscripten_2026_0_wasm32.whl", hash = "sha256:b1dac4e09d341c1300ba69cdcbe62867b32a8c75d90db9bf4d083bec3b039f0b", size = 863014, upload-time = "2026-06-30T20:02:49.742Z" }, + { url = "https://files.pythonhosted.org/packages/09/c7/7d5ad8b49e1278e1c2a1e0274bd7850560b3f09313aa00c13bc8d5544792/ast_serialize-0.6.0-cp39-abi3-win32.whl", hash = "sha256:82c312a7844d2fdeb4d5c48bd3d215bf940dafd4704e1a9bcf252a99010a99b1", size = 1063165, upload-time = "2026-06-30T20:02:50.98Z" }, + { url = "https://files.pythonhosted.org/packages/47/ae/6710c14ecb276031cf10249f6adf5a59e2d3fdb3b5183bd59f70524067ee/ast_serialize-0.6.0-cp39-abi3-win_amd64.whl", hash = "sha256:113b58346f9ceb664352032770caca817d4a3c86f611c6088e6ef65ddaa70f0e", size = 1101444, upload-time = "2026-06-30T20:02:52.554Z" }, + { url = "https://files.pythonhosted.org/packages/66/40/c53deb2cd0c9b0fb636d24d9f40924cf2e65028e6b20b10cd5c1eeb2c730/ast_serialize-0.6.0-cp39-abi3-win_arm64.whl", hash = "sha256:ccd132fe8db56f61fe743b1f644d01b8d65b83248a8da506f3132bda86d6ed5e", size = 1072965, upload-time = "2026-06-30T20:02:54.097Z" }, +] + +[[package]] +name = "async-timeout" +version = "5.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274, upload-time = "2024-11-06T16:41:39.6Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233, upload-time = "2024-11-06T16:41:37.9Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "babel" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, +] + +[[package]] +name = "backoff" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba", size = 17001, upload-time = "2022-10-05T19:19:32.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8", size = 15148, upload-time = "2022-10-05T19:19:30.546Z" }, +] + +[[package]] +name = "backports-asyncio-runner" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/ff/70dca7d7cb1cbc0edb2c6cc0c38b65cba36cccc491eca64cabd5fe7f8670/backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162", size = 69893, upload-time = "2025-07-02T02:27:15.685Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/59/76ab57e3fe74484f48a53f8e337171b4a2349e506eabe136d7e01d059086/backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5", size = 12313, upload-time = "2025-07-02T02:27:14.263Z" }, +] + +[[package]] +name = "bandit" +version = "1.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "stevedore", version = "5.8.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "stevedore", version = "5.9.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/aa/c3/0cb80dfe0f3076e5da7e4c5ad8e57bac6ac357ff4a6406205501cade4965/bandit-1.9.4.tar.gz", hash = "sha256:b589e5de2afe70bd4d53fa0c1da6199f4085af666fde00e8a034f152a52cd628", size = 4242677, upload-time = "2026-02-25T06:44:15.503Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/a4/a26d5b25671d27e03afb5401a0be5899d94ff8fab6a698b1ac5be3ec29ef/bandit-1.9.4-py3-none-any.whl", hash = "sha256:f89ffa663767f5a0585ea075f01020207e966a9c0f2b9ef56a57c7963a3f6f8e", size = 134741, upload-time = "2026-02-25T06:44:13.694Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/65/318323f98dbee45d42dff61d8f047181bc6f2268a9068cfad035a46be5af/beautifulsoup4-4.15.0.tar.gz", hash = "sha256:288e3ca7d54b06f2ac191970bc275c1939cb46d450b255bf6718b04aa37ab4f7", size = 632571, upload-time = "2026-06-07T16:44:20.453Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/c6/92fcd42f1ba33e1184263f25bfabf3d27c383410470f169e4b8163bf9c17/beautifulsoup4-4.15.0-py3-none-any.whl", hash = "sha256:d6f88de62e1d4e38ecb1077eb9724cd0eff29d2a08ca16a401e9b9e93f117cf9", size = 109924, upload-time = "2026-06-07T16:44:21.566Z" }, +] + +[[package]] +name = "blis" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d0/d0/d8cc8c9a4488a787e7fa430f6055e5bd1ddb22c340a751d9e901b82e2efe/blis-1.3.3.tar.gz", hash = "sha256:034d4560ff3cc43e8aa37e188451b0440e3261d989bb8a42ceee865607715ecd", size = 2644873, upload-time = "2025-11-17T12:28:30.511Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/db/d80daf6c060618c72acecf026410b806f620cdea62b2e72f3235d7389d05/blis-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:650f1d2b28e3c875927c63deebda463a6f9d237dff30e445bfe2127718c1a344", size = 6925724, upload-time = "2025-11-17T12:27:14.23Z" }, + { url = "https://files.pythonhosted.org/packages/06/cd/7ac854c92e33cfccc0eded48e979a9fc26a447952d07a9c7c7da7c1d6eec/blis-1.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b0d42420ddd543eec51ccb99d38364a0c0833b6895eced37127822de6ecacff", size = 1233606, upload-time = "2025-11-17T12:27:16.107Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ae/ad3165fdbc4ef6afef585686a778c72cd67fb5aa16ab2fd2f4494186705e/blis-1.3.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f0628a030d44aa71cac5973e40c9e95ec767abaaf2fd366a094b9398885f82f2", size = 2769094, upload-time = "2025-11-17T12:27:17.883Z" }, + { url = "https://files.pythonhosted.org/packages/25/d4/7b0820f139b4ea67606d01b59ba6afbee4552ce7b2fd179f2fb7908e294f/blis-1.3.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0114cf2d8f19e0ed210f9ae92594cd0a12efa1bbbce444028b0fc365bbbb8af", size = 11300520, upload-time = "2025-11-17T12:27:20.058Z" }, + { url = "https://files.pythonhosted.org/packages/85/f3/865a4322bdbeb944744c1908e67fdabecd476613a17204956cff12d568c9/blis-1.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7e88181e9dd8430029ebaf22d41bf79e756e8c95363e9471717102c66beb4a6d", size = 2962083, upload-time = "2025-11-17T12:27:22.098Z" }, + { url = "https://files.pythonhosted.org/packages/65/a2/c2842fa1e2e6bd56eb93e41b34859a9af8b5b63669ee0442bea585d8f607/blis-1.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:62fb8c731347b0f98f5f81d19d339049e61489798738467d156c66cc329b0754", size = 14177001, upload-time = "2025-11-17T12:27:24.345Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9b/3b1532f23db8bdddf3a976e9acf51e8debd94c63be5dafb8ccbab3e62935/blis-1.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:631836d4f335e62c30aa50a1aa0170773265c73654d296361f95180006e88c04", size = 6184429, upload-time = "2025-11-17T12:27:27.054Z" }, + { url = "https://files.pythonhosted.org/packages/a1/0a/a4c8736bc497d386b0ffc76d321f478c03f1a4725e52092f93b38beb3786/blis-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e10c8d3e892b1dbdff365b9d00e08291876fc336915bf1a5e9f188ed087e1a91", size = 6925522, upload-time = "2025-11-17T12:27:29.199Z" }, + { url = "https://files.pythonhosted.org/packages/83/5a/3437009282f23684ecd3963a8b034f9307cdd2bf4484972e5a6b096bf9ac/blis-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66e6249564f1db22e8af1e0513ff64134041fa7e03c8dd73df74db3f4d8415a7", size = 1232787, upload-time = "2025-11-17T12:27:30.996Z" }, + { url = "https://files.pythonhosted.org/packages/d1/0e/82221910d16259ce3017c1442c468a3f206a4143a96fbba9f5b5b81d62e8/blis-1.3.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7260da065958b4e5475f62f44895ef9d673b0f47dcf61b672b22b7dae1a18505", size = 2844596, upload-time = "2025-11-17T12:27:32.601Z" }, + { url = "https://files.pythonhosted.org/packages/6c/93/ab547f1a5c23e20bca16fbcf04021c32aac3f969be737ea4980509a7ca90/blis-1.3.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9327a6ca67de8ae76fe071e8584cc7f3b2e8bfadece4961d40f2826e1cda2df", size = 11377746, upload-time = "2025-11-17T12:27:35.342Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a6/7733820aa62da32526287a63cd85c103b2b323b186c8ee43b7772ff7017c/blis-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c4ae70629cf302035d268858a10ca4eb6242a01b2dc8d64422f8e6dcb8a8ee74", size = 3041954, upload-time = "2025-11-17T12:27:37.479Z" }, + { url = "https://files.pythonhosted.org/packages/87/53/e39d67fd3296b649772780ca6aab081412838ecb54e0b0c6432d01626a50/blis-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:45866a9027d43b93e8b59980a23c5d7358b6536fc04606286e39fdcfce1101c2", size = 14251222, upload-time = "2025-11-17T12:27:39.705Z" }, + { url = "https://files.pythonhosted.org/packages/ea/44/b749f8777b020b420bceaaf60f66432fc30cc904ca5b69640ec9cbef11ed/blis-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:27f82b8633030f8d095d2b412dffa7eb6dbc8ee43813139909a20012e54422ea", size = 6171233, upload-time = "2025-11-17T12:27:41.921Z" }, + { url = "https://files.pythonhosted.org/packages/16/d1/429cf0cf693d4c7dc2efed969bd474e315aab636e4a95f66c4ed7264912d/blis-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2a1c74e100665f8e918ebdbae2794576adf1f691680b5cdb8b29578432f623ef", size = 6929663, upload-time = "2025-11-17T12:27:44.482Z" }, + { url = "https://files.pythonhosted.org/packages/11/69/363c8df8d98b3cc97be19aad6aabb2c9c53f372490d79316bdee92d476e7/blis-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3f6c595185176ce021316263e1a1d636a3425b6c48366c1fd712d08d0b71849a", size = 1230939, upload-time = "2025-11-17T12:27:46.19Z" }, + { url = "https://files.pythonhosted.org/packages/96/2a/fbf65d906d823d839076c5150a6f8eb5ecbc5f9135e0b6510609bda1e6b7/blis-1.3.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d734b19fba0be7944f272dfa7b443b37c61f9476d9ab054a9ac53555ceadd2e0", size = 2818835, upload-time = "2025-11-17T12:27:48.167Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ad/58deaa3ad856dd3cc96493e40ffd2ed043d18d4d304f85a65cde1ccbf644/blis-1.3.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ef6d6e2b599a3a2788eb6d9b443533961265aa4ec49d574ed4bb846e548dcdb", size = 11366550, upload-time = "2025-11-17T12:27:49.958Z" }, + { url = "https://files.pythonhosted.org/packages/78/82/816a7adfe1f7acc8151f01ec86ef64467a3c833932d8f19f8e06613b8a4e/blis-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8c888438ae99c500422d50698e3028b65caa8ebb44e24204d87fda2df64058f7", size = 3023686, upload-time = "2025-11-17T12:27:52.062Z" }, + { url = "https://files.pythonhosted.org/packages/1e/e2/0e93b865f648b5519360846669a35f28ee8f4e1d93d054f6850d8afbabde/blis-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8177879fd3590b5eecdd377f9deafb5dc8af6d684f065bd01553302fb3fcf9a7", size = 14250939, upload-time = "2025-11-17T12:27:53.847Z" }, + { url = "https://files.pythonhosted.org/packages/20/07/fb43edc2ff0a6a367e4a94fc39eb3b85aa1e55e24cc857af2db145ce9f0d/blis-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:f20f7ad69aaffd1ce14fe77de557b6df9b61e0c9e582f75a843715d836b5c8af", size = 6192759, upload-time = "2025-11-17T12:27:56.176Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f7/d26e62d9be3d70473a63e0a5d30bae49c2fe138bebac224adddcdef8a7ce/blis-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1e647341f958421a86b028a2efe16ce19c67dba2a05f79e8f7e80b1ff45328aa", size = 6928322, upload-time = "2025-11-17T12:27:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/4a/78/750d12da388f714958eb2f2fd177652323bbe7ec528365c37129edd6eb84/blis-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d563160f874abb78a57e346f07312c5323f7ad67b6370052b6b17087ef234a8e", size = 1229635, upload-time = "2025-11-17T12:28:00.118Z" }, + { url = "https://files.pythonhosted.org/packages/e8/36/eac4199c5b200a5f3e93cad197da8d26d909f218eb444c4f552647c95240/blis-1.3.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:30b8a5b90cb6cb81d1ada9ae05aa55fb8e70d9a0ae9db40d2401bb9c1c8f14c4", size = 2815650, upload-time = "2025-11-17T12:28:02.544Z" }, + { url = "https://files.pythonhosted.org/packages/bf/51/472e7b36a6bedb5242a9757e7486f702c3619eff76e256735d0c8b1679c6/blis-1.3.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9f5c53b277f6ac5b3ca30bc12ebab7ea16c8f8c36b14428abb56924213dc127", size = 11359008, upload-time = "2025-11-17T12:28:04.589Z" }, + { url = "https://files.pythonhosted.org/packages/84/da/d0dfb6d6e6321ae44df0321384c32c322bd07b15740d7422727a1a49fc5d/blis-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6297e7616c158b305c9a8a4e47ca5fc9b0785194dd96c903b1a1591a7ca21ddf", size = 3011959, upload-time = "2025-11-17T12:28:06.862Z" }, + { url = "https://files.pythonhosted.org/packages/20/c5/2b0b5e556fa0364ed671051ea078a6d6d7b979b1cfef78d64ad3ca5f0c7f/blis-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3f966ca74f89f8a33e568b9a1d71992fc9a0d29a423e047f0a212643e21b5458", size = 14232456, upload-time = "2025-11-17T12:28:08.779Z" }, + { url = "https://files.pythonhosted.org/packages/31/07/4cdc81a47bf862c0b06d91f1bc6782064e8b69ac9b5d4ff51d97e4ff03da/blis-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:7a0fc4b237a3a453bdc3c7ab48d91439fcd2d013b665c46948d9eaf9c3e45a97", size = 6192624, upload-time = "2025-11-17T12:28:14.197Z" }, + { url = "https://files.pythonhosted.org/packages/5f/8a/80f7c68fbc24a76fc9c18522c46d6d69329c320abb18e26a707a5d874083/blis-1.3.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c3e33cfbf22a418373766816343fcfcd0556012aa3ffdf562c29cddec448a415", size = 6934081, upload-time = "2025-11-17T12:28:16.436Z" }, + { url = "https://files.pythonhosted.org/packages/e5/52/d1aa3a51a7fc299b0c89dcaa971922714f50b1202769eebbdaadd1b5cff7/blis-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6f165930e8d3a85c606d2003211497e28d528c7416fbfeafb6b15600963f7c9b", size = 1231486, upload-time = "2025-11-17T12:28:18.008Z" }, + { url = "https://files.pythonhosted.org/packages/99/4f/badc7bd7f74861b26c10123bba7b9d16f99cd9535ad0128780360713820f/blis-1.3.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:878d4d96d8f2c7a2459024f013f2e4e5f46d708b23437dae970d998e7bff14a0", size = 2814944, upload-time = "2025-11-17T12:28:19.654Z" }, + { url = "https://files.pythonhosted.org/packages/72/a6/f62a3bd814ca19ec7e29ac889fd354adea1217df3183e10217de51e2eb8b/blis-1.3.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f36c0ca84a05ee5d3dbaa38056c4423c1fc29948b17a7923dd2fed8967375d74", size = 11345825, upload-time = "2025-11-17T12:28:21.354Z" }, + { url = "https://files.pythonhosted.org/packages/d4/6c/671af79ee42bc4c968cae35c091ac89e8721c795bfa4639100670dc59139/blis-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e5a662c48cd4aad5dae1a950345df23957524f071315837a4c6feb7d3b288990", size = 3008771, upload-time = "2025-11-17T12:28:23.637Z" }, + { url = "https://files.pythonhosted.org/packages/be/92/7cd7f8490da7c98ee01557f2105885cc597217b0e7fd2eeb9e22cdd4ef23/blis-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9de26fbd72bac900c273b76d46f0b45b77a28eace2e01f6ac6c2239531a413bb", size = 14219213, upload-time = "2025-11-17T12:28:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/0a/de/acae8e9f9a1f4bb393d41c8265898b0f29772e38eac14e9f69d191e2c006/blis-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:9e5fdf4211b1972400f8ff6dafe87cb689c5d84f046b4a76b207c0bd2270faaf", size = 6324695, upload-time = "2025-11-17T12:28:28.401Z" }, +] + +[[package]] +name = "boolean-py" +version = "5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c4/cf/85379f13b76f3a69bca86b60237978af17d6aa0bc5998978c3b8cf05abb2/boolean_py-5.0.tar.gz", hash = "sha256:60cbc4bad079753721d32649545505362c754e121570ada4658b852a3a318d95", size = 37047, upload-time = "2025-04-03T10:39:49.734Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/ca/78d423b324b8d77900030fa59c4aa9054261ef0925631cd2501dd015b7b7/boolean_py-5.0-py3-none-any.whl", hash = "sha256:ef28a70bd43115208441b53a045d1549e2f0ec6e3d08a9d142cbc41c1938e8d9", size = 26577, upload-time = "2025-04-03T10:39:48.449Z" }, +] + +[[package]] +name = "bracex" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/f5/4473ad9b48cd0420a2d762a3750fa0e078e23e060b1af72662e5987e5530/bracex-3.0.tar.gz", hash = "sha256:b73f718d6bd98d8419e45df02426c86e9967c179949f779340d6c3a8c83b9111", size = 43162, upload-time = "2026-06-30T00:43:35.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f5/2e/68781b78e764e5ccc4af1e3d27e060069c73af90234853fa80000e7ee79d/bracex-3.0-py3-none-any.whl", hash = "sha256:3833e61c2f092d5aa0468fa2e6c6e990a306185abf763b6d122f0158e59c58a5", size = 11738, upload-time = "2026-06-30T00:43:34.196Z" }, +] + +[[package]] +name = "cachecontrol" +version = "0.14.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "msgpack" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2d/f6/c972b32d80760fb79d6b9eeb0b3010a46b89c0b23cf6329417ff7886cd22/cachecontrol-0.14.4.tar.gz", hash = "sha256:e6220afafa4c22a47dd0badb319f84475d79108100d04e26e8542ef7d3ab05a1", size = 16150, upload-time = "2025-11-14T04:32:13.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/79/c45f2d53efe6ada1110cf6f9fca095e4ff47a0454444aefdde6ac4789179/cachecontrol-0.14.4-py3-none-any.whl", hash = "sha256:b7ac014ff72ee199b5f8af1de29d60239954f223e948196fa3d84adaffc71d2b", size = 22247, upload-time = "2025-11-14T04:32:11.733Z" }, +] + +[package.optional-dependencies] +filecache = [ + { name = "filelock" }, +] + +[[package]] +name = "catalogue" +version = "2.0.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/38/b4/244d58127e1cdf04cf2dc7d9566f0d24ef01d5ce21811bab088ecc62b5ea/catalogue-2.0.10.tar.gz", hash = "sha256:4f56daa940913d3f09d589c191c74e5a6d51762b3a9e37dd53b7437afd6cda15", size = 19561, upload-time = "2023-09-25T06:29:24.962Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/96/d32b941a501ab566a16358d68b6eb4e4acc373fab3c3c4d7d9e649f7b4bb/catalogue-2.0.10-py3-none-any.whl", hash = "sha256:58c2de0020aa90f4a2da7dfad161bf7b3b054c86a5f09fcedc0b2b740c109a9f", size = 17325, upload-time = "2023-09-25T06:29:23.337Z" }, +] + +[[package]] +name = "certifi" +version = "2026.6.17" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/c7/424b75da314c1045981bd9777432fad05a9e0c69daa4ed7e308bbaffe405/certifi-2026.6.17.tar.gz", hash = "sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432", size = 134594, upload-time = "2026-06-17T10:31:07.894Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/2f/c5464532e965badff2f4c4c1a3a83f5697f0d7c407ed0cda44aaa99bb451/certifi-2026.6.17-py3-none-any.whl", hash = "sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db", size = 133289, upload-time = "2026-06-17T10:31:06.348Z" }, +] + +[[package]] +name = "cffi" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/5f/ff100cae70ebe9d8df1c01a00e510e45d9adb5c1fdda84791b199141de97/cffi-2.1.0.tar.gz", hash = "sha256:efc1cdd798b1aaf39b4610bba7aad28c9bea9b910f25c784ccf9ec1fa719d1f9", size = 531036, upload-time = "2026-07-06T21:34:30.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/e9/6d7724983b3d5a0908dbf74f64038ade77c18646ff6636ec7894fd392ce1/cffi-2.1.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:b65f590ef2a44640f9a05dbb548a429b4ade77913ce683ac8b1480777658a6c0", size = 183837, upload-time = "2026-07-06T21:32:09.655Z" }, + { url = "https://files.pythonhosted.org/packages/69/aa/24580a278de21fd7322635556334d9b535f1cbc00b0a3919447cdf464c65/cffi-2.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164bff1657b2a74f0b6d54e11c9b375bc97b931f2ca9c43fcf875838da1570dd", size = 184226, upload-time = "2026-07-06T21:32:11.196Z" }, + { url = "https://files.pythonhosted.org/packages/88/a9/02cae418ec4beb282ace11958d9d4737793439d561fadc7e6d56f2e2b354/cffi-2.1.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:c941bb58d5a6e1c3892d86e42927ed6c180302f07e6d395d08c416e594b98b46", size = 211107, upload-time = "2026-07-06T21:32:12.328Z" }, + { url = "https://files.pythonhosted.org/packages/3b/30/c806937ed5e4c2c7ac30d9d6b76b5dc57ff8b75d83800d9bb11a8253cf2a/cffi-2.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a016194dbe13d14ee9556e734b772d8d67b947092b268d757fd4290e3ba2dfc2", size = 218733, upload-time = "2026-07-06T21:32:13.67Z" }, + { url = "https://files.pythonhosted.org/packages/f9/cf/398272b8bbfd58aa314fda5a7f1cdbb26d1d78ae324a11211521315dd1f0/cffi-2.1.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:03e9810d18c646077e501f661b682fbf5dee4676048527ca3cffe66faa9960dd", size = 205543, upload-time = "2026-07-06T21:32:15.148Z" }, + { url = "https://files.pythonhosted.org/packages/45/ca/f91641185cdd90c36d317a9dc7f85e88ef8682d8b300977baff5e23c35d8/cffi-2.1.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:19c54ac121cad98450b4896fa9a43ee0180d57bc4bc911a33db6cab1efab6cd3", size = 205460, upload-time = "2026-07-06T21:32:16.479Z" }, + { url = "https://files.pythonhosted.org/packages/38/66/04781a77b411f0bb5b234d62c1814754ab75ebe455ccff1b08e8d7aae98f/cffi-2.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d433a51f1870e43a13b6732f92aaf540ff77c2015097c78556f75a2d6c030e0", size = 218760, upload-time = "2026-07-06T21:32:17.98Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9a/bb1d5ed9c3fcae158e9f6391bf309c95d98c2ac37ed56573228471d0af5e/cffi-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3d7f118b5adbfdfead90c25822690b02bc8074fba949bb7858bec4ebd55adb43", size = 221230, upload-time = "2026-07-06T21:32:19.407Z" }, + { url = "https://files.pythonhosted.org/packages/41/aa/3c1409cdd26094efacd1c36c66e0a6eb9d4296e4fd4f9901b8b2042f4323/cffi-2.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c5f5df567f6eb216de69be06ce55c8b714090fae02b18a3b40da8163b8c5fa9c", size = 213524, upload-time = "2026-07-06T21:32:20.828Z" }, + { url = "https://files.pythonhosted.org/packages/fa/75/74dfb7c3fc6ebbd408038476bd4c1d7e925c62614e7b9c534ecc34218288/cffi-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:11b3fb55f4f8ad92274ed26705f65d8f91457de71f5380061eb6d125a768fecd", size = 220341, upload-time = "2026-07-06T21:32:21.9Z" }, + { url = "https://files.pythonhosted.org/packages/70/b6/9003c33a3e7d2c1306f5962e646457dcfe5a8cd8fce6bbe02d7af25db783/cffi-2.1.0-cp310-cp310-win32.whl", hash = "sha256:9d72af0cf10a76a600a9690078fe31c63b9588c8e86bf9fd353f713c84b5db0f", size = 174578, upload-time = "2026-07-06T21:32:23.073Z" }, + { url = "https://files.pythonhosted.org/packages/8a/26/710688310447531c7a22f857c7f79d9855ec18b03e04494ced723fb37e2f/cffi-2.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb62edb5bb52cca65fab91a63afa7561607120d26090a7e8fda6fb9f064726da", size = 185071, upload-time = "2026-07-06T21:32:24.671Z" }, + { url = "https://files.pythonhosted.org/packages/d3/67/85c89a59ba36a671e79638f44d466749f08179266a57e4f2ffdf92174072/cffi-2.1.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:02cb7ff33ded4f1532476731f89ede53e2e488a8e6205515a82144246ffa7dcc", size = 183845, upload-time = "2026-07-06T21:32:26.32Z" }, + { url = "https://files.pythonhosted.org/packages/ea/dd/e3b0baa2d3d6a857ac72b7efbf18e32e487c9cdafcc13049ad765495b15e/cffi-2.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5bce581e6b8c235e566a14768a943b172ada3ed73537bb0c0be1edee312d4e7", size = 184186, upload-time = "2026-07-06T21:32:28.025Z" }, + { url = "https://files.pythonhosted.org/packages/65/68/9f3ef890cf3c6ab97bd531c5677f67613d302165d16f8142b2811782a614/cffi-2.1.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:30b65779d598c370374fefabf138d456fd6f3216bfa7bedfab1ba82025b0cd93", size = 211892, upload-time = "2026-07-06T21:32:29.565Z" }, + { url = "https://files.pythonhosted.org/packages/22/d7/1a74539db16d8bfd839ff1515948948efbb162e574650fd3d846896eea95/cffi-2.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88023dfe18799507b73f1dbb0d14326a17465de1bc9c9c7655c22845e9ddc3a2", size = 218793, upload-time = "2026-07-06T21:32:30.951Z" }, + { url = "https://files.pythonhosted.org/packages/ec/d1/9a5b7169499e8e8d8e636de70b97ac7c9447104d2ff1a2cd94790cea5162/cffi-2.1.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:0a96b74cda968eebbad56d973efe5098974f0a9fb323865bf99ea1fd24e3e64c", size = 205737, upload-time = "2026-07-06T21:32:32.216Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b0/e131a9c41f10607926278453d9596163594fe1c4ebc46efe3b5e5b34eb84/cffi-2.1.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:a5781494d4d400a3f47f8f1da94b324f6e6b440a53387774002890a2a2f4b50f", size = 204909, upload-time = "2026-07-06T21:32:33.655Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d2/4398416cd699b35167947c6e22aca52c47e69ad5695073c9f1f2c52e04aa/cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aa7a1b53a2a4452ada2d1b5dade9960b2522f1e61293a811a077439e39029565", size = 217883, upload-time = "2026-07-06T21:32:35.173Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a5/d4fe77b589e5e82d43ebc809bf2e6474afe8e48e32ea050b9357645b6471/cffi-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d8272c0e483b024e1b9ad029821470ed8ec65631dbd90217469da0e7cd89f1c", size = 221251, upload-time = "2026-07-06T21:32:36.527Z" }, + { url = "https://files.pythonhosted.org/packages/22/f0/a2fc43084c0433caf7f461bccc013e28f848d04ee1c5ed7fce71423cf4d9/cffi-2.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7762faa47e8ff7eb80bd261d9a7d8eea2d8baa69de5e95b70c1f338bbe712f02", size = 214250, upload-time = "2026-07-06T21:32:37.852Z" }, + { url = "https://files.pythonhosted.org/packages/04/8c/b925975448cf20634a9fbd5efceb807219db452653648d2897c0989cab2d/cffi-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89095c1968b4ba8285840e131bf2891b09ae137fe2146905acae0354fbce1b5e", size = 219441, upload-time = "2026-07-06T21:32:39.146Z" }, + { url = "https://files.pythonhosted.org/packages/eb/da/5c4918a2d61d86fa927d716cb3d8e4626ef8dc8f605a599d32f33897f59a/cffi-2.1.0-cp311-cp311-win32.whl", hash = "sha256:64c753a0f87a256020004f37a1c8c02c480e725f910f0b2a0f3f07debd1b2479", size = 174496, upload-time = "2026-07-06T21:32:40.467Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c8/6c2de1d55cf35ef8b92885d5ef280790f0fb9634d87ea1cc315176aecd61/cffi-2.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:4f26194e3d95e06501b942642855aed4f953d55e95d7d01b7c4483db3ecff458", size = 185113, upload-time = "2026-07-06T21:32:41.761Z" }, + { url = "https://files.pythonhosted.org/packages/9e/4e/e8d7cb5783f1841a3c8fb3a7735838d7484d08ec08c9f984b14cac1ac0e9/cffi-2.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:35aaea0c7ee0e58a5cd8c2fd1a48fdf7ece0d2699b7ecdda08194e9ce5dd9b3d", size = 179927, upload-time = "2026-07-06T21:32:42.961Z" }, + { url = "https://files.pythonhosted.org/packages/1e/85/990925db5df586ec90beb97529c853497e7f85ba0234830447faf41c3057/cffi-2.1.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:df2b82571a1b30f58a87bf4e5a9e78d2b1eff6c6ce8fd3aa3757221f93f0863f", size = 184829, upload-time = "2026-07-06T21:32:44.324Z" }, + { url = "https://files.pythonhosted.org/packages/4b/92/e7bb136ad6b5352603732cf907ef862ca103f20f2031c1735a46300c20c9/cffi-2.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78474632761faa0fb96f30b1c928c84ebcf68713cbb80d15bab09dfe61640fde", size = 184728, upload-time = "2026-07-06T21:32:45.683Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c0/d1ec30ffb370f748f2fb54425972bfef9871e0132e82fb589c46b6676049/cffi-2.1.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:5972433ad71a9e46516584ef60a0fda12d9dc459938d1539c3ddecf9bdc1368d", size = 214815, upload-time = "2026-07-06T21:32:48.557Z" }, + { url = "https://files.pythonhosted.org/packages/1b/dc/5620cf930688be01f2d673804291de757a934c90b946dbdc3d84130c2ea4/cffi-2.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b6422532152adf4e59b110cb2808cee7a033800952f5c036b4af047ee43199e7", size = 222429, upload-time = "2026-07-06T21:32:49.848Z" }, + { url = "https://files.pythonhosted.org/packages/4b/a4/77b53abbf7a1e0beb9637edbef2a94d15f9c822f591e85d439ffd91519a6/cffi-2.1.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:46b1c8db8f6122420f32d02fffb924c2fe9bc772d228c7c711748fff56aabb2b", size = 210315, upload-time = "2026-07-06T21:32:51.221Z" }, + { url = "https://files.pythonhosted.org/packages/58/0c/f528df19cc94b675087324d4760d9e6d5bfae97d6217aa4fac43de4f5fcc/cffi-2.1.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9fafc5aa2e2a39aaf7f8cc0c1f044a9b07fca12e558dca53a3cc5c654ad67a7", size = 208859, upload-time = "2026-07-06T21:32:52.512Z" }, + { url = "https://files.pythonhosted.org/packages/62/f2/c9522a81c32132799a1972c39f5c5f8b4c8b9f00488a23feaa6c06f07741/cffi-2.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1e9f50d192a3e525b15a75ab5114e442d83d657b7ec29182a991bc9a88fd3a66", size = 221844, upload-time = "2026-07-06T21:32:53.704Z" }, + { url = "https://files.pythonhosted.org/packages/6e/28/bd53988b9833e8f8ad539d26f4c07a6b3f6bcb1e9e02e7ca038250b3428d/cffi-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98fff996e983a36d3aa2eca83af40c5821202e7e6f32d13ae94e3d2286f10cfe", size = 225287, upload-time = "2026-07-06T21:32:54.907Z" }, + { url = "https://files.pythonhosted.org/packages/79/99/0d0fd37f055224085f42bbb2c022d002e17dde4a97972822327b07d84101/cffi-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:379de10ce1ba048b1448599d1b37b24caee16309d1ac98d3982fc997f768700b", size = 223681, upload-time = "2026-07-06T21:32:56.329Z" }, + { url = "https://files.pythonhosted.org/packages/b0/80/c138990aa2a70b1a269f6e06348729836d733d6f970867943f61d367f8cc/cffi-2.1.0-cp312-cp312-win32.whl", hash = "sha256:9b8f0f26ca4e7513c534d351eca551947d053fac438f2a04ac96d882909b0d3a", size = 175269, upload-time = "2026-07-06T21:32:57.777Z" }, + { url = "https://files.pythonhosted.org/packages/a8/eb/f636456ff21a83fc13c032b58cc5dde061691546ac79efa284b2989b7982/cffi-2.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:c97f080ea627e2863524c5af3836e2270b5f5dfff1f104392b959f8df0c5d384", size = 185881, upload-time = "2026-07-06T21:32:59.253Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/400ea43e721727dca8a65c4521390e9196757caba4a45643acb2b63271b8/cffi-2.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:6d194185eabd279f1c05ebe3504265ddfc5ad2b58d0714f7db9f01da592e9eb6", size = 180088, upload-time = "2026-07-06T21:33:02.278Z" }, + { url = "https://files.pythonhosted.org/packages/96/88/a996879e2eeccb815f6e3a5967b12a308257412acec882039d386bd2aa7b/cffi-2.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:10537b1df4967ca26d21e5072d7d54188354483b91dc75058968d3f0cf13fbda", size = 194331, upload-time = "2026-07-06T21:33:03.697Z" }, + { url = "https://files.pythonhosted.org/packages/58/85/7ae00d5c8dd6266f4e944c3db630f3c5c9a98b61d469c714d848b1d8138a/cffi-2.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a95b05f9baf29b91171b3a8bd2020b028835243e7b0ff6bb23e2a3c228518b1b", size = 196966, upload-time = "2026-07-06T21:33:05.353Z" }, + { url = "https://files.pythonhosted.org/packages/8c/e9/45c3a76ad8d43ad9261f4c95436da61128d3ca545d72b9612c0ab5be0b1c/cffi-2.1.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:15faec4adfff450819f3aee0e2e02c812de6edb88203aa58807955db2003472a", size = 184795, upload-time = "2026-07-06T21:33:06.699Z" }, + { url = "https://files.pythonhosted.org/packages/84/4c/82f132cb4418ee6d953d982b19191e87e2a6372c8a4ce36e50b69d6ade4a/cffi-2.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:716ff8ec22f20b4d988b12884086bcef0fc99737043e503f7a3935a6be99b1ea", size = 184746, upload-time = "2026-07-06T21:33:08.071Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1c/4ed5a0e5bdca6cbc275556de3328dd1b76fd0c11cc13c88fe66d1d8715f2/cffi-2.1.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:63960549e4f8dc41e31accb97b975abaecfc44c03e396c093a6436763c2ea7db", size = 214747, upload-time = "2026-07-06T21:33:09.671Z" }, + { url = "https://files.pythonhosted.org/packages/3a/a6/e879bb68cc23a2bc9ba8f4b7d8019f0c2694bad2ab6c4a3701d429439f58/cffi-2.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ff067a8d8d880e7809e4ac88eb009bb848870115317b306666502ccad30b147f", size = 222392, upload-time = "2026-07-06T21:33:10.896Z" }, + { url = "https://files.pythonhosted.org/packages/88/f6/01890cfd63c08f8eb96a8319b0443690197d240a8bd6346048cf7bde9190/cffi-2.1.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3b926723c13eba9f81d2ef3820d63aeceec3b2d4639906047bf675cb8a7a500d", size = 210285, upload-time = "2026-07-06T21:33:12.251Z" }, + { url = "https://files.pythonhosted.org/packages/a6/cf/2b684132056f438567b61e19d690dd31cd0921ace051e0a458be6074369e/cffi-2.1.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:47ff3a8bfd8cb9da1af7524b965127095055654c177fcfc7578debcb015eecd0", size = 208801, upload-time = "2026-07-06T21:33:13.617Z" }, + { url = "https://files.pythonhosted.org/packages/6f/08/f2e7d62c460faae0926f2d6e423694aa409ced3bc1fe2927a0a6e5f05416/cffi-2.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:799416bae98336e400981ff6e532d67d5c709cfb30afb79865a1315f94b0e224", size = 221808, upload-time = "2026-07-06T21:33:15.466Z" }, + { url = "https://files.pythonhosted.org/packages/38/37/04f54b8e63a02f3d908332c9effbf8c366167c6f733ed8a3d4f79b7e2a1e/cffi-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:961be50688f7fba2fa65f63712d3b9b341a22311f5253460ce933f52f0de1c8c", size = 225241, upload-time = "2026-07-06T21:33:16.869Z" }, + { url = "https://files.pythonhosted.org/packages/a9/d6/c72eecca433cd3e681c65ed313ab4835d9d4a379704d0f628a6a05f51c2e/cffi-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf5c6cf48238b0eb4c086978c492ad1cbc22373fc5b2d7353b3a598ce6db887a", size = 223588, upload-time = "2026-07-06T21:33:18.239Z" }, + { url = "https://files.pythonhosted.org/packages/c6/4b/e706f67279140f92939da3475ad610df18bfd52d50f14953a8e5fede71d5/cffi-2.1.0-cp313-cp313-win32.whl", hash = "sha256:db3eb7d46527159a878ec3460e9d40615bc25ba337d477db681aea6e4f05c5d2", size = 175248, upload-time = "2026-07-06T21:33:19.799Z" }, + { url = "https://files.pythonhosted.org/packages/5a/47/59eb7975cb0e4ef0afa764ea945b29a5bb4537a9f771cb7d6c8a5dd74c95/cffi-2.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:8e74a6135550c4748af665b1b1118b6aab33b1fc6a16f9aff630af107c3b4512", size = 185717, upload-time = "2026-07-06T21:33:21.47Z" }, + { url = "https://files.pythonhosted.org/packages/5a/af/34fee85c48f8d94efc8597bc09470c9dd274c145f1c12e0fbc6ab6d38d74/cffi-2.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:2282cd5e38aa8accd03e99d1256af8411c84cdbee6a89d841b563fdbd1f3e50f", size = 180114, upload-time = "2026-07-06T21:33:22.515Z" }, + { url = "https://files.pythonhosted.org/packages/d8/f0/81478e482afa03f6d18dc8f2afb5edc45b3080853b634b5ed91961be0998/cffi-2.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d2117334c3af3bdcb9a88522b844a2bdb5efdc4f71c6c822df55486ae1c3347a", size = 194142, upload-time = "2026-07-06T21:33:23.657Z" }, + { url = "https://files.pythonhosted.org/packages/7d/95/8de304305cd9204974b0ca051b86d307cafca13aa575a0ef1b44d92c0d8c/cffi-2.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:702c436735fbe99d59ada02a1f65cfc0d31c0ee8b7290912f8fbc5cd1e4b16c3", size = 196819, upload-time = "2026-07-06T21:33:25.007Z" }, + { url = "https://files.pythonhosted.org/packages/20/71/7c8372d30e42415602ed9f268f7cfd66f1b855fed881ecd168bcb45dbc0b/cffi-2.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1ff3456eab0d889592d1936d6125bbfbc7ae4d3354a700f8bd80450a66445d4d", size = 184965, upload-time = "2026-07-06T21:33:26.605Z" }, + { url = "https://files.pythonhosted.org/packages/d6/5c/584e626835f0375c928176c04137c96927165cb8733cdb3150ec04e5ee5e/cffi-2.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c4165821e131d6d4ca444347c2b694e2311bcfa3fe5a861cc72968f28867beac", size = 184952, upload-time = "2026-07-06T21:33:27.823Z" }, + { url = "https://files.pythonhosted.org/packages/2e/d2/065fcae1c73979fac8e054462478d0ff8a29c40cdc2ed7ea5676a061df53/cffi-2.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:276f20fffd7b396e12516ba8edf9509210ac248cbbc5acbc39cd512f9f59ebe6", size = 222353, upload-time = "2026-07-06T21:33:29.178Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a5/e8bbb1ce5b3ac2f53ad6a10bde44318a5a8d99d4f4a000d44a6e39aeb3e4/cffi-2.1.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7d5980a3433d4b71a5e120f9dd551403d7824e31e2e67124fe2769c404c06913", size = 210051, upload-time = "2026-07-06T21:33:30.534Z" }, + { url = "https://files.pythonhosted.org/packages/28/ed/c127d3ac36e899c965e3361357c3befacd6578c03f40125183e41c3b219e/cffi-2.1.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6ca4919c6e4f89aa99c42510b42cf54596892c00b3f9077f6bdd1505e24b9c8d", size = 208630, upload-time = "2026-07-06T21:33:31.753Z" }, + { url = "https://files.pythonhosted.org/packages/cc/d7/97d3136f81db489ec8d1d67748c110d6c994268fd7528014aa9f2b085e4e/cffi-2.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d53d10f7da99ae46f7373b9150393e9c5eab9b224909982b43832668de4779f5", size = 221593, upload-time = "2026-07-06T21:33:33.044Z" }, + { url = "https://files.pythonhosted.org/packages/d3/27/93195977168ee63aed233a1a0993a2178798654d1f4bddcdd321d6fd3b21/cffi-2.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c351efb95e832a853a29361675f33a7ce53de1a109cd73fd47af0712213aa4ce", size = 225146, upload-time = "2026-07-06T21:33:34.224Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c1/6dbd291ee2ae5a50a034aa057207081f545923bbf15dad4511e985aafff5/cffi-2.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:dbf7c7a88e2bac086f06d14577332760bdeecc42bdec8ac4077f6260557d9326", size = 223240, upload-time = "2026-07-06T21:33:35.57Z" }, + { url = "https://files.pythonhosted.org/packages/0f/6f/ade5ce9863a57992a6ea3d0d10d7e29b8749fc127204b3d493d667b2815f/cffi-2.1.0-cp314-cp314-win32.whl", hash = "sha256:1854b724d00f6654c742097d5387569021be12d3a0f770eae1df8f8acfcc6acd", size = 177723, upload-time = "2026-07-06T21:33:51.626Z" }, + { url = "https://files.pythonhosted.org/packages/41/de/92b9eeed4ae4a21d6fd9b2a2c8505cbed573299902ea73981cc13f7ff62c/cffi-2.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:1b96bfe2c4bd825681b7d311ad6d9b7280a091f43e8f63da5729638083cd3bfb", size = 187937, upload-time = "2026-07-06T21:33:53.403Z" }, + { url = "https://files.pythonhosted.org/packages/2e/1a/cc6ae6c2913a03aab8898eee57963cf1035b8df5872ed8b9115fcc7e2be8/cffi-2.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:7d28dff1db6764108bc30788d85d61c876beff416d9a49cb9dd7c5a9f34f5804", size = 183001, upload-time = "2026-07-06T21:33:54.74Z" }, + { url = "https://files.pythonhosted.org/packages/14/f0/134c00ce0779ec86dea2aa1aac69339c2741a8045072676763512363a2ea/cffi-2.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7ea6b3e2c4250ff1de21c630fe72d0f63eb95c2c32ffbf64a358cf4a8836d714", size = 188538, upload-time = "2026-07-06T21:33:36.792Z" }, + { url = "https://files.pythonhosted.org/packages/50/d8/3b86aba791cb610d24e8a3e1b2cd529e71fa15096b04e4d4e360049d4a4c/cffi-2.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6af371f3767faeffc6ac1ef57cdfd25844403e9d3f476c5537caee499de96376", size = 188230, upload-time = "2026-07-06T21:33:38.011Z" }, + { url = "https://files.pythonhosted.org/packages/14/d0/117dcd9209255ad8571fbc8c92ef32593a1d294dcec91ddc4e4db50606f2/cffi-2.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb4e8997a49aa2c08a3e43c9045d224448b8941d88e7ac163c7d383e560cbf98", size = 223899, upload-time = "2026-07-06T21:33:39.514Z" }, + { url = "https://files.pythonhosted.org/packages/b6/3d/f20f8b886b254e3ad10e15cd4186d3aed49f3e6a35ab37aab9f8f25f7c03/cffi-2.1.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:bf01d8c84cbea96b944c73b22182e6c7c432b3475632b8111dbfdc95ddad6e13", size = 211652, upload-time = "2026-07-06T21:33:40.851Z" }, + { url = "https://files.pythonhosted.org/packages/28/3b/fad54de07260b93ddeef4b96d0131d57ea900675df1d410ae1deee52d7a6/cffi-2.1.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:33eb1ad83ebe8f313e0df035c406227d55a79456704a863fad9842136af5ad7d", size = 210755, upload-time = "2026-07-06T21:33:42.183Z" }, + { url = "https://files.pythonhosted.org/packages/cc/82/3d5c705acb7abbba9bbd7d79b8e62e0f25b6120eb7ae6ac49f1b721722fe/cffi-2.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ac0f1a2d0cfa7eea3f2aaf006ab6e70e8feeb16b75d65b7e5939982ca2f11056", size = 223933, upload-time = "2026-07-06T21:33:43.603Z" }, + { url = "https://files.pythonhosted.org/packages/6c/d0/47e338384ab6b1004241002fa616301020cea4fc95f283506565d252f276/cffi-2.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c16914df9fb7f500e440e6875fa23ff5e0b31db01fa9c06af98d59a91f0dc2e4", size = 226749, upload-time = "2026-07-06T21:33:45.046Z" }, + { url = "https://files.pythonhosted.org/packages/70/25/65bd5b58ea4bfdfc15cde02cb5365f89ef8ab8b2adfb8fe5c4bd4233382f/cffi-2.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5ecbd0499275d57506d397eebe1981cee87b47fcd9ef5c22cab7ed7644a39a94", size = 225703, upload-time = "2026-07-06T21:33:46.374Z" }, + { url = "https://files.pythonhosted.org/packages/dc/78/aa01ac599a8a4322533d45a1f9bc93b338276d2d59dabbe7c6d92a775c81/cffi-2.1.0-cp314-cp314t-win32.whl", hash = "sha256:7d034dcffa09e9a46c93fa3a3be402096cb5354ac6e41ab8e5cc9cd8b642ad76", size = 182857, upload-time = "2026-07-06T21:33:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/b9/26/d00496b22de4d4228f32dde94ad996f350c8aad676d63bcca0743c8dea4d/cffi-2.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0582a58f3051372229ca8e7f5f589f9e5632678208d8636fea3676711fdf7fe5", size = 194065, upload-time = "2026-07-06T21:33:48.953Z" }, + { url = "https://files.pythonhosted.org/packages/d5/dd/0c7dbf815a579ff005008a2d815a55d6bb047c349eef536d9dc53d3f0a8d/cffi-2.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:510aeeeac94811b138077451da1fb18b308a5feab47dd2b603af55804155e1c8", size = 186404, upload-time = "2026-07-06T21:33:50.309Z" }, + { url = "https://files.pythonhosted.org/packages/55/c7/8c8c50cb11c6750051daf12164098a9a6f027ac4356967fd4d800a07f242/cffi-2.1.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:2e9dabb9abcb7ad15938c7196ad5c1718a4e6d33cc79b4c0209bdb64c4a54a5c", size = 194121, upload-time = "2026-07-06T21:33:56.109Z" }, + { url = "https://files.pythonhosted.org/packages/99/e2/67680bf19a6b60d2bb7ff83baefa2a4c3d2d7dc0f3277034b802e1fc504c/cffi-2.1.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:37f525a7e7e50c017fdebe58b787be310ad59357ae43a053943a6e1a6c526001", size = 196820, upload-time = "2026-07-06T21:33:57.288Z" }, + { url = "https://files.pythonhosted.org/packages/ed/da/4bbe583a3b3a5c8c60892124fe17f3fa3656523faf0d3484eae90f091853/cffi-2.1.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:95f2954c2c9473d892eca6e0409f3568b37ab62a8eedb122461f73cc273476e3", size = 184936, upload-time = "2026-07-06T21:33:58.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/4b/1f4c36ab273980d7aa75bb126ea4f8971f24a96108acad3a0a084028c57b/cffi-2.1.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:cdf2448aab5f661c9315308ec8b93f4e8a1a67a3c733f8631067a2b67d5913dc", size = 185045, upload-time = "2026-07-06T21:34:00.085Z" }, + { url = "https://files.pythonhosted.org/packages/ef/c3/ad299dc38f3583f8d916b299f028af418a9ec98bc695fcbebeae7420691c/cffi-2.1.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:90bec57cf82089383bd06a605b3eb8daebf7e5a668520beaf6e327a83a947699", size = 222342, upload-time = "2026-07-06T21:34:01.814Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d8/df4543cc087245044ed02ef3ad8e0a26619d0075ac7a77a12dc81177851b/cffi-2.1.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6274dcb2d15cef48daa73ed1be5a40d501d74dccd0cd6db364776d12cb6ba022", size = 210073, upload-time = "2026-07-06T21:34:03.255Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/fac738d73728c6cea2a88a2883dca54892496cbba88a1dc1f2909cb8a6f5/cffi-2.1.0-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:2b71d409cccee78310ab5dec549aed052aaea483346e282c7b02362596e01bb0", size = 208551, upload-time = "2026-07-06T21:34:04.433Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3f/0b04a700dd64f465c93020253a793a82c9b4dff9961f48facd0df945d9b8/cffi-2.1.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d3538f9c0e50670f4deb93dbb696576e60590369cae2faf7de681e597a8a1f1", size = 221649, upload-time = "2026-07-06T21:34:06.157Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/b7379a5704c79eda57ce075869ba70a0368d1c850f803b3c0d078d39dcaf/cffi-2.1.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:8f9ec95b8a043d3dfbc74d9abc6f7baf524dd27a8dc160b0a32ff9cdab650c28", size = 225203, upload-time = "2026-07-06T21:34:07.489Z" }, + { url = "https://files.pythonhosted.org/packages/5a/02/d5e6c43ea85c41bda2a184a3418f195fe7cf602967a8d2b94e085b83deef/cffi-2.1.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:af5e2915d41fe6c961694d7bfdc8562942638200f3ce2765dfb8b745cf997629", size = 223263, upload-time = "2026-07-06T21:34:08.712Z" }, + { url = "https://files.pythonhosted.org/packages/2c/d8/772b8259bf75749adffb1c546828978381fb516f60cf701f6c83daf60c85/cffi-2.1.0-cp315-cp315-win32.whl", hash = "sha256:0a42c688d19fca6e095a53c6a6e2295a5b050a8b289f109adab02a9e61a25de6", size = 177696, upload-time = "2026-07-06T21:34:26.355Z" }, + { url = "https://files.pythonhosted.org/packages/2f/dd/afa2191fc6d57fedd26e5844a2fe2fcc0bbfa00961bbaa5a41e4921e7cca/cffi-2.1.0-cp315-cp315-win_amd64.whl", hash = "sha256:bccbbb5ee76a61f9d99b5bf3846a51d7fca4b6a732fe46f89295610edaf41853", size = 187914, upload-time = "2026-07-06T21:34:27.58Z" }, + { url = "https://files.pythonhosted.org/packages/05/ef/6cd4f8c671517162379dc79cfae5aea9106bc38abb89628d5c16adf6a838/cffi-2.1.0-cp315-cp315-win_arm64.whl", hash = "sha256:8d35c139744adb3e727cd51b1a18324bbe44b8bd41bf8322bca4d41289f48eda", size = 183004, upload-time = "2026-07-06T21:34:28.905Z" }, + { url = "https://files.pythonhosted.org/packages/11/b6/12fc55092817a5faa26fb8c40c7f9d662e11a46ee248c137aafc42517d92/cffi-2.1.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:f9912624a0c0b834b7520d7769b3644453aabc0a7e1c839da7359f050750e9bc", size = 188378, upload-time = "2026-07-06T21:34:09.926Z" }, + { url = "https://files.pythonhosted.org/packages/8d/2e/cdac88979f295fde5daa69622c7d2111e56e7ceb94f211357fbe452339e4/cffi-2.1.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:df92f2aba50eb4d96718b68ef76f2e57a57b54f2fa62333496d16c6d585a85ca", size = 188319, upload-time = "2026-07-06T21:34:11.101Z" }, + { url = "https://files.pythonhosted.org/packages/e0/27/1d0b408497e41a74795af122d7b603c418c5fed0171450f899afd04e594f/cffi-2.1.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0520e1f4c35f44e209cbbb421b67eec42e6a157f59444dfb6058874ff3610e5d", size = 223904, upload-time = "2026-07-06T21:34:12.606Z" }, + { url = "https://files.pythonhosted.org/packages/8b/31/e115c985105dd7ffb32444505f18ceb874bb42d992af05d5dced7ecf1980/cffi-2.1.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3681e031db29958a7502f5c0c9d6bbc4c36cb20f7b104086fa642d1799631ff8", size = 211554, upload-time = "2026-07-06T21:34:13.987Z" }, + { url = "https://files.pythonhosted.org/packages/5a/67/9e6e09409336d9e515c58367e7cfcf4f89df06ad25252675595a58eb59d5/cffi-2.1.0-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:762f99479dcb369f60ab9017ad4ab97a36a1dd7c1ee5a3b15db0f4b8659120cd", size = 210795, upload-time = "2026-07-06T21:34:15.972Z" }, + { url = "https://files.pythonhosted.org/packages/19/e5/d3cc82a4a0be7902af279c04181ad038449c096734464a5ae1de3e1401bd/cffi-2.1.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0611e7ebf90573a535ebdc33ae9da222d037853983e13359f580fab781ca017f", size = 223843, upload-time = "2026-07-06T21:34:17.509Z" }, + { url = "https://files.pythonhosted.org/packages/b9/65/b434abc97ce7cecc2c640fde160507c0ecc7e21544b483ba3325d2e2ea17/cffi-2.1.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:86cf8755a791f72c85dc287128cc62d4f24d392e3f1e15837245623f4a33cccc", size = 226773, upload-time = "2026-07-06T21:34:19.05Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9f/d4dc66ca651eb1145a133314cda721abf13cfac3d28c4a0402263ae6ad75/cffi-2.1.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:ba00f661f8ba35d075c937174e27c2c421cec3942fd2e0ea3e66996757c0fdd9", size = 225719, upload-time = "2026-07-06T21:34:20.576Z" }, + { url = "https://files.pythonhosted.org/packages/68/5a/e536c528bc8057496c360c0978559a2dc45653f89dd6151078aa7d8fca1a/cffi-2.1.0-cp315-cp315t-win32.whl", hash = "sha256:cb96698e3c7413d906ce83f8ffd245ec1bd94707541f299d0ce4d6b0193e982b", size = 182760, upload-time = "2026-07-06T21:34:22.059Z" }, + { url = "https://files.pythonhosted.org/packages/d3/0b/0ffe8b82d3875bced5fa1e7986a7a46b748262a40ab7f60b475eb9fb1bb3/cffi-2.1.0-cp315-cp315t-win_amd64.whl", hash = "sha256:f146d154428a2523f9cc7936c02353c2459b8f6cf07d3cd1ee1c0a611109c5d5", size = 193769, upload-time = "2026-07-06T21:34:23.589Z" }, + { url = "https://files.pythonhosted.org/packages/a0/17/1073b53b68c9b5ca6914adf5f8bf55aacc2d3be102418c90700160ea8605/cffi-2.1.0-cp315-cp315t-win_arm64.whl", hash = "sha256:cbb7640ce37159548d2147b5b8c241f962143d4c71231431820783f4dc78f210", size = 186405, upload-time = "2026-07-06T21:34:24.857Z" }, +] + +[[package]] +name = "cfgv" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz", hash = "sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132", size = 7334, upload-time = "2025-11-19T20:55:51.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5/cfgv-3.5.0-py2.py3-none-any.whl", hash = "sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0", size = 7445, upload-time = "2025-11-19T20:55:50.744Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/2a/23f34ec9d04624958e137efdc394888716353190e75f25dd22c7a2c7a8aa/charset_normalizer-3.4.9.tar.gz", hash = "sha256:673611bbd43f0810bec0b0f028ddeaaa501190339cac411f347ac76917c3ae7b", size = 152439, upload-time = "2026-07-07T14:34:58.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/81/8e983840c6e5b93b33c2ba81aa3d52c2e42f0e9a690ce7607a2e61da4a5c/charset_normalizer-3.4.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd6280cf040f233bd7d3407b743b4b4c74f70e8e1c4199cb112a62c941c0772a", size = 322240, upload-time = "2026-07-07T14:32:36.236Z" }, + { url = "https://files.pythonhosted.org/packages/de/d1/b4319dc3229d8272fba305e206fc0a148e2de8d4087917ce62ae6382f359/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa99adc8f081b475a12843953db36831eaf83ec33eb46a90629ca6a5de45a616", size = 216475, upload-time = "2026-07-07T14:32:38.142Z" }, + { url = "https://files.pythonhosted.org/packages/80/33/6c99c1b3e6b8bf730e1bc809b9a2608f224145069114c479a2e9e1494346/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c1225416b463483160e4af85d5fc3a9690ccb53fd4b1865a6437825f5ede3209", size = 238670, upload-time = "2026-07-07T14:32:39.658Z" }, + { url = "https://files.pythonhosted.org/packages/7f/f4/ffbb83546e1f198ecc70ecd372b65cf2b50f9068b380abd67640f17a8e18/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:16d10d789dd9bcca1173c95af82c58433122564b7bc39385124be735a35cbe99", size = 233476, upload-time = "2026-07-07T14:32:41.155Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5f/b98b8da398637b551e427e7be922bdec19177dc54d6811dcdaa503f23aac/charset_normalizer-3.4.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bb41182d93ea91f60b4bc8fbf4c820c69ef8a12ab2d917f3f1834f1acad07e8", size = 223817, upload-time = "2026-07-07T14:32:42.592Z" }, + { url = "https://files.pythonhosted.org/packages/36/31/a276bb2e66243072a3fd06fdcab9cbb61a305b02143d70d2bda21d888fa8/charset_normalizer-3.4.9-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:bcf74c1df76758a395bf0af608c04c82257523f55c9868b334f06270d0f2112b", size = 207974, upload-time = "2026-07-07T14:32:44.258Z" }, + { url = "https://files.pythonhosted.org/packages/5e/be/7ee4453d7e88dfbc4104ccd34900b9f2c7c17dac22881865fe0e82424a25/charset_normalizer-3.4.9-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b5314963fce9b0b12743891de876e724997864ee22aa496f903f426c7e2fa5b2", size = 221655, upload-time = "2026-07-07T14:32:45.64Z" }, + { url = "https://files.pythonhosted.org/packages/1d/85/181c652953eb5276d198f375b1dd641047392050098100a3a02d6534f657/charset_normalizer-3.4.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e9701d0049d92c16703a42771b98d560b95248949f23f8cf7b4eddd201814fb9", size = 219229, upload-time = "2026-07-07T14:32:47.376Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e7/aaf6da33fc9f4691cda8f7efbc9f69179d3d39ec8a4799baf273ee1d8db0/charset_normalizer-3.4.9-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:65a7ff3f705e57d392f7261b6d0550fe137c3019477431f1c355e0db0a7d3e15", size = 209704, upload-time = "2026-07-07T14:32:48.855Z" }, + { url = "https://files.pythonhosted.org/packages/63/01/f2fb3bd3a73be48b173ee0c6aa8d2497af97d5663a8c4c4b491de4c62f7a/charset_normalizer-3.4.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79580094b00d1789d1f93ea55bc43cb2f611910c72235b7657f3482ddcc1b22d", size = 226243, upload-time = "2026-07-07T14:32:50.239Z" }, + { url = "https://files.pythonhosted.org/packages/c4/02/c57a22739fe05246b0b5783b3bfb6afaac4eebb46f3ececdfb2f048f780e/charset_normalizer-3.4.9-cp310-cp310-win32.whl", hash = "sha256:432786d3561e69aeeae6c7e8648964ce0ad05736120135601f87ac26b9c83381", size = 150935, upload-time = "2026-07-07T14:32:51.676Z" }, + { url = "https://files.pythonhosted.org/packages/37/8d/ca39a7559a4797505530d084fd3a49a2c959efbbbff146302fb7be4e3b35/charset_normalizer-3.4.9-cp310-cp310-win_amd64.whl", hash = "sha256:8c041122946b7ba21bb32c45b1aa57b1be35527690aeb3c5c234521085632eee", size = 162314, upload-time = "2026-07-07T14:32:53.193Z" }, + { url = "https://files.pythonhosted.org/packages/01/da/a44bd7a13d426e69e4894557106cd58669097bfad4a8681123b618fbfc5d/charset_normalizer-3.4.9-cp310-cp310-win_arm64.whl", hash = "sha256:375b83ed0aecfce76c16d198fbc21f3b11b337d68662bea0a995046682a11419", size = 153075, upload-time = "2026-07-07T14:32:54.554Z" }, + { url = "https://files.pythonhosted.org/packages/0b/e3/85ec501f206fb049259288c1f3506e53876937fb00edb47009348e66756b/charset_normalizer-3.4.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0e94703ec9684807f20cfb5eed95c70f67f2a8f21ad620146d7b5a13677b93e5", size = 317075, upload-time = "2026-07-07T14:32:56.021Z" }, + { url = "https://files.pythonhosted.org/packages/c3/69/2a5385192e67175f7d8bd5ce4f57c24bc956439adeae5c13a99aa28a53d1/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a441ea71902098ffe78c5abe6c494f44160b4af614ed16c3d9a3b1d17fd8ee2", size = 213837, upload-time = "2026-07-07T14:32:57.78Z" }, + { url = "https://files.pythonhosted.org/packages/b3/46/03ddc7da576d814fe0a36dd1f0fd3258e95404b4b2e3c026b7923d7e133f/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:304b13570067b2547562e308af560b3963857b1fa90bd6afd978130130fe2d6a", size = 235503, upload-time = "2026-07-07T14:32:59.205Z" }, + { url = "https://files.pythonhosted.org/packages/4e/6e/de0229a7ef40f6f9d28a837eebf4ec47bdca5dab4e900c84f22919af636a/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4773092f8019072343a7447203308b176e10199920eb02d6195e81bbb3274c29", size = 229944, upload-time = "2026-07-07T14:33:00.803Z" }, + { url = "https://files.pythonhosted.org/packages/a5/34/49b9060e8418b14fb5cba9cf6bfb383111e2538a03a1fb18e66a95aeb3d5/charset_normalizer-3.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:04ce310cb89c15df659582aee80a0603788732a5e017d5bd5c81158106ce249c", size = 221276, upload-time = "2026-07-07T14:33:02.199Z" }, + { url = "https://files.pythonhosted.org/packages/44/95/80282cce0fae9c3061203d723ee87da996aed79679e65d8935050ee7ca1f/charset_normalizer-3.4.9-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:c0323c9daef75ef2e5083624b4585018a0c9d5e3b40f607eed81a311270b934b", size = 205260, upload-time = "2026-07-07T14:33:03.698Z" }, + { url = "https://files.pythonhosted.org/packages/0c/74/2f62c8821b969ea3bd67cc2e6976834f48ca5d12664d2559ebcd9bcfbed7/charset_normalizer-3.4.9-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:871ff67ea1aad4dfd91736464934d56b32dac49f9fbe16cddba36198a7b3a0db", size = 217786, upload-time = "2026-07-07T14:33:05.12Z" }, + { url = "https://files.pythonhosted.org/packages/d9/8d/feabb82cb49fcad14515b1d7d1ca4787b0da7fc723a212bf89bc9e0fac52/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:67830fc78e67501f47bb950471b2dcb9b35b140084429318e862895a8e89c993", size = 216798, upload-time = "2026-07-07T14:33:06.629Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ff/c946d63bc3786d5b84d960b0f7ab7e25b828486a946b5aa997625bcaf6a6/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3d92613ec25e43b05f042302531ec0f00b8445190e43325880cbd6ab7c2581da", size = 206429, upload-time = "2026-07-07T14:33:08.006Z" }, + { url = "https://files.pythonhosted.org/packages/af/ba/5e5007c370702f85d2ef75791fac7943ed41e080364a673b20142e430e3e/charset_normalizer-3.4.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:280081916dc341820640489a66e4696049401ef1cf6dd672f672e70ad915aca3", size = 223066, upload-time = "2026-07-07T14:33:09.783Z" }, + { url = "https://files.pythonhosted.org/packages/83/d5/9096aa3cf532dfad237861544eb47a0f20d5adbf1039760fed8eaae935d9/charset_normalizer-3.4.9-cp311-cp311-win32.whl", hash = "sha256:ac351b3b8014eead140e77e9717e2992c6bbe30b63bc3422422eb84865412e3d", size = 150456, upload-time = "2026-07-07T14:33:11.217Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a1/e29995109e455dc8eff8d0fac6ae509be39561318a7cfeac5d33ad029213/charset_normalizer-3.4.9-cp311-cp311-win_amd64.whl", hash = "sha256:6366a16e1a25018694d6a5d784d09b046edc9eac40ea2b54065c3052672516a1", size = 161410, upload-time = "2026-07-07T14:33:12.743Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8d/1569f4d0032d6ba2a4fe4591c35bf87868c600c41a71eb5c2e1ffa8464c2/charset_normalizer-3.4.9-cp311-cp311-win_arm64.whl", hash = "sha256:1d22856ffbe153a602df38e4a5464f0b748a54002e0d69ac6d2ad0a197cc99ec", size = 152649, upload-time = "2026-07-07T14:33:14.173Z" }, + { url = "https://files.pythonhosted.org/packages/70/4a/ecbd131485c07fcdfad54e28946d513e3da22ef3b4bd854dcafae54ec739/charset_normalizer-3.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:45b0cc4e3556cd875e09102988d1ab8356c998b596c9fced84547c8138b487a0", size = 319300, upload-time = "2026-07-07T14:33:15.666Z" }, + { url = "https://files.pythonhosted.org/packages/ec/96/5d9364e3342d69f3a045e1777bc47c85c383e6e9466d561b33fdb419d1f9/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9b2aff1c7b3884512b9512c3eaadd9bab39fb45042ffaaa1dd08ff2b9f8109d9", size = 215802, upload-time = "2026-07-07T14:33:17.031Z" }, + { url = "https://files.pythonhosted.org/packages/4b/4c/5361f9aa7f2cb58d94f2ab831b3d493f69efb1d239654b4744e3c09527cb/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9104ed0bd76a429d46f9ec0dbc9b08ad1d2dcdf2b00a5a0daa1c145329b35b44", size = 237171, upload-time = "2026-07-07T14:33:18.576Z" }, + { url = "https://files.pythonhosted.org/packages/50/78/ce342ca4ff30b2eb49fe6d9578df85974f90c67d294113e94efdd9664cbd/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7b86a2b16095d250c6f58b3d9b2eee6f4147754344f3dab0922f7c9bf7d226c9", size = 233075, upload-time = "2026-07-07T14:33:20.084Z" }, + { url = "https://files.pythonhosted.org/packages/01/c4/4fa4c8b3097a11f3c5f09a35b72ed6855fb1d332469504962ab7bafcc702/charset_normalizer-3.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e226f6218febc71f6c1fc2fafb91c226f75bdc1d8fb12d66823716e891608fd", size = 224256, upload-time = "2026-07-07T14:33:21.747Z" }, + { url = "https://files.pythonhosted.org/packages/87/3a/ad914516df7e358a81aae018caa5e0470ba827fa6d763b1d2e87d920a5f6/charset_normalizer-3.4.9-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:90c44bc373b7687f6948b693cceaea1348ae0975d7474746559494468e3c1d84", size = 208784, upload-time = "2026-07-07T14:33:23.313Z" }, + { url = "https://files.pythonhosted.org/packages/d7/74/3c12f9755717dfe5c5c87da63f35d765fa0c00382ec26bf23f7fae34f2ba/charset_normalizer-3.4.9-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cdef90ae47919cae358d8ab15797a800ed41da7aba5d72419fb510729e2ed4b", size = 219928, upload-time = "2026-07-07T14:33:24.814Z" }, + { url = "https://files.pythonhosted.org/packages/33/9a/895095b83e7907abd6d3d99aad3a38ad0d9686cc186cb0c94c24320fe63e/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:60f44ade2cf573dad7a277e6f8ca9a51a21dda572b13bd7d8539bb3cd5dbedde", size = 218489, upload-time = "2026-07-07T14:33:26.42Z" }, + { url = "https://files.pythonhosted.org/packages/a1/34/ef5c05f412f42520d7709b7d3784d19640839eb7366ded1755511585429f/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:a1786910334ed46ab1dd73222f2cd1e05c2c3bb39f6dddb4f8b36fc382058a39", size = 210267, upload-time = "2026-07-07T14:33:27.952Z" }, + { url = "https://files.pythonhosted.org/packages/83/dc/9b29fa4412b318bf3bfea985c35d67eb55e04b59a7c3f2237168b0e0be6f/charset_normalizer-3.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:03d07803992c6c7bbc976327f34b18b6160327fc81cb82c9d504720ac0be3b62", size = 226030, upload-time = "2026-07-07T14:33:29.397Z" }, + { url = "https://files.pythonhosted.org/packages/0e/42/6dbc00b8cd16011691203e33570fa42ed5746599a2e878112d16eab403a3/charset_normalizer-3.4.9-cp312-cp312-win32.whl", hash = "sha256:78841cccf1af7b40f6f716338d50c0902dbe88d9f800b3c973b7a9a0a693a642", size = 151185, upload-time = "2026-07-07T14:33:30.781Z" }, + { url = "https://files.pythonhosted.org/packages/80/cc/f920afd1a23c58ccd53c1d36085a71893a4737ff5e66e0371efab6809850/charset_normalizer-3.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:4b3dac63058cc36820b0dd072f89898604e2d39686fe05321729d00d8ac185a0", size = 162557, upload-time = "2026-07-07T14:33:32.176Z" }, + { url = "https://files.pythonhosted.org/packages/f0/e6/0386d43a261ff4e4b30c5857af7df877254b46bec7b9d1b74b6bf969a90b/charset_normalizer-3.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:78fa18e436a1a0e58dbd7e02fc4473f3f32cceb12df9dfca542d075961c307d2", size = 152665, upload-time = "2026-07-07T14:33:33.711Z" }, + { url = "https://files.pythonhosted.org/packages/b2/06/97ec2aeae780b31d742b6352218b43841a6871e2564578ca522dce4a45c3/charset_normalizer-3.4.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:440eede837960000d74978f0eba527be106b5b9aee0daf779d395276ed0b0614", size = 317688, upload-time = "2026-07-07T14:33:35.408Z" }, + { url = "https://files.pythonhosted.org/packages/d0/39/8ff066c672434225f8d25f8b739f992af250944392173dcc88362681c9bf/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21e764fd1e70b6a3e205a0e46f3051701f98a8cb3fad66eeb80e48bb502f8698", size = 214982, upload-time = "2026-07-07T14:33:36.996Z" }, + { url = "https://files.pythonhosted.org/packages/92/8f/3a47a3667c83c2df9483d91644c6c107de3bf8874aa1793da9d3012eb986/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e4fd89cc178bced6ad29cb3e6dd4aa63fa5017c3524dbd0b25998fb64a87cc8b", size = 236460, upload-time = "2026-07-07T14:33:38.536Z" }, + { url = "https://files.pythonhosted.org/packages/f1/60/b22cdbee7e4013dab8b0d7647fc6181120fbbbc8f7025c226d15bd5a47fc/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bd47ba7fc3ca94896759ea0109775132d3e7ab921fbf54038e1bab2e46c313c9", size = 232003, upload-time = "2026-07-07T14:33:40.059Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f8/72eb13dcabe7257035cea8aefd922caad2f110d252bf9f67c4c2ca763aee/charset_normalizer-3.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:84fd18bcc17526fc2b3c1af7d2b9217d32c9c04448c16ec693b9b4f1985c3d33", size = 223149, upload-time = "2026-07-07T14:33:41.631Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3e/faee8f9de92b14ee1198e9163252bb15efee7301b31256a3b6d9ebfdd0dd/charset_normalizer-3.4.9-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:5b10cd92fc5c498b35a8635df6d5a100207f88b63a4dc1de7ef9a548e1e2cd63", size = 207901, upload-time = "2026-07-07T14:33:43.209Z" }, + { url = "https://files.pythonhosted.org/packages/3a/25/45f30093ae27dd7b92a793b61882a38685f993700113ca36e0c9c14965e1/charset_normalizer-3.4.9-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a4fbdde9dd4a9ce5fd52c2b3a347bb50cc89483ef783f1cb00d408c13f7a96c0", size = 219176, upload-time = "2026-07-07T14:33:44.725Z" }, + { url = "https://files.pythonhosted.org/packages/48/18/c8f397329c35e32f6a837e488986f4ae03bd2abebc453b48714991630c2f/charset_normalizer-3.4.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:416c229f77e5ea25b3dfd4b582f8d73d7e43c22320302b9ab128a2d3a0b38efe", size = 217356, upload-time = "2026-07-07T14:33:46.192Z" }, + { url = "https://files.pythonhosted.org/packages/86/7e/5ce0bba863470fd1902d5e5843968951bddf38abe4742fc97116ef4598b3/charset_normalizer-3.4.9-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:75286256590a6320cf106a0d28970d3560aad9ee09aa7b34fb40524792436d35", size = 209614, upload-time = "2026-07-07T14:33:47.705Z" }, + { url = "https://files.pythonhosted.org/packages/6c/ef/2473d3c4d869155be4af1191111d59c4d5c4e0173026f7e85b176e23bf65/charset_normalizer-3.4.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:69b157c5d3292bcd443faca052f3096f637f1e074b98212a933c074ae23dc3b8", size = 224991, upload-time = "2026-07-07T14:33:49.238Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a3/53ddae3db108a088156aa8ddfafd411ebbc1340f48c5573f697b27f69a39/charset_normalizer-3.4.9-cp313-cp313-win32.whl", hash = "sha256:51307f5c71007673a2bf8232ad973483d281e74cb99c8c5a990af1eefa6277d9", size = 150622, upload-time = "2026-07-07T14:33:50.711Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ef/6953a77c7cf2c2ff9998e6f575ab3e380119f100223381565a4f94c1f836/charset_normalizer-3.4.9-cp313-cp313-win_amd64.whl", hash = "sha256:fe2c7201c642b7c308f1675355ad7ff7b66acfe3541625efe5a3ad38f29d6115", size = 161947, upload-time = "2026-07-07T14:33:52.197Z" }, + { url = "https://files.pythonhosted.org/packages/6e/fb/d560d1d1555debbfe7849d9cac6145c1b537709d79576bf22557ed803b82/charset_normalizer-3.4.9-cp313-cp313-win_arm64.whl", hash = "sha256:611057cc5d5c0afc743ba8be6bd828c17e0aaa8643f9d0a9b9bb7dea80eb8012", size = 152594, upload-time = "2026-07-07T14:33:53.486Z" }, + { url = "https://files.pythonhosted.org/packages/7e/8d/496817fa0944239ecae662dd57ea765cfeaec6a735f9f025d4b7b72e7143/charset_normalizer-3.4.9-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:0327fcd59a935777d83410750c50600ee9571af2846f71ce40f25b13da1ef380", size = 317253, upload-time = "2026-07-07T14:33:54.994Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f9/ef4a69ea338ad3c0deceea0f5f7d2380ae8b52132b06d652cb0d2cd86706/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a79d9f4d8001473a30c163556b3c3bfebec837495a412dde78b51672f6134f9", size = 215898, upload-time = "2026-07-07T14:33:56.334Z" }, + { url = "https://files.pythonhosted.org/packages/8c/e7/5ddfd76fc061eb52de219658a4aa431cbacadf0a0219c8854f00da50d289/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:33bdcc2a32c0a0e861f60841a512c8acc658c87c2ac59d89e3a46dacf7d866e4", size = 236718, upload-time = "2026-07-07T14:33:57.9Z" }, + { url = "https://files.pythonhosted.org/packages/49/ba/768fa3f36048d81c477a0ce61f813bc1454d80917ccfe550abd9f44f5e24/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f840ed6d8ecba8255df8c42b87fadeda98ddfc6eeec05e2dc66e26d46dd6f58a", size = 232519, upload-time = "2026-07-07T14:33:59.811Z" }, + { url = "https://files.pythonhosted.org/packages/f4/c4/b3e049d2aa3766180c78507110543d9d50894cc97f57de543f1be521dcdc/charset_normalizer-3.4.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c25fe15c70c59eb7c5ce8c06a1f3fa1da0ecc5ea1e7a5922c40fd2fa9b0d5046", size = 223143, upload-time = "2026-07-07T14:34:01.517Z" }, + { url = "https://files.pythonhosted.org/packages/19/79/55c32d06d76ae4feafe053f061f3e3ab70bcf19f4007797ce8c3efda7830/charset_normalizer-3.4.9-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:f7fb7d750cfa0a070d2c24e831fd3481019a60dd317ea2b39acbcebc08b6ed81", size = 206742, upload-time = "2026-07-07T14:34:03.04Z" }, + { url = "https://files.pythonhosted.org/packages/10/e0/47c079dd82d217c807479cd59ffd30af56307ea31c108b75758970459ad3/charset_normalizer-3.4.9-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d1c96a7a18b9690a4d46df09e3e3382406ae3213727cd1019ebade1c4a81917", size = 219191, upload-time = "2026-07-07T14:34:04.657Z" }, + { url = "https://files.pythonhosted.org/packages/42/ab/b9bc2e77d6b44a7e46ef62ec5cac1c9a6ba7b9135a5d560f002696ec9995/charset_normalizer-3.4.9-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a4cfde78a9f2880208d16a93b795726a3017d5977e08d1e162a7a31322479c41", size = 218328, upload-time = "2026-07-07T14:34:06.115Z" }, + { url = "https://files.pythonhosted.org/packages/f1/78/c9c71d599f5aa2d42bcdd35cbbd46d7f535351a57e40ff7d8e5a7e219401/charset_normalizer-3.4.9-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d4d6fcde76f94f5cb9e43e9e9a61f16dacefd228cbbf6f1a09bd9b219a92f1a1", size = 207406, upload-time = "2026-07-07T14:34:07.554Z" }, + { url = "https://files.pythonhosted.org/packages/f6/39/c914445c321a845097ce4f6ac7de9a18228a77b766272125a1ce00d851eb/charset_normalizer-3.4.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:898f0e9068ca27d37f8e83a5b962821df851532e6c4a7d615c1c033f9da6eedf", size = 225157, upload-time = "2026-07-07T14:34:09.061Z" }, + { url = "https://files.pythonhosted.org/packages/9b/f2/c0d4b8508565a36bc5c624e88ed297f5b0b1095011034d7f5b83a69908b5/charset_normalizer-3.4.9-cp314-cp314-win32.whl", hash = "sha256:c1c948747b03be832dceed96ca815cef7360de9aa19d37c730f8e3f6101aca48", size = 151095, upload-time = "2026-07-07T14:34:10.901Z" }, + { url = "https://files.pythonhosted.org/packages/49/fd/a1d26144398c67486422a72bf5812cda22cb4ccfcd95a290fb41ceb4b8e2/charset_normalizer-3.4.9-cp314-cp314-win_amd64.whl", hash = "sha256:16b65ea0f2465b6fb52aa22de5eca612aa964ddfec00a912e26f4656cbef890b", size = 162796, upload-time = "2026-07-07T14:34:12.47Z" }, + { url = "https://files.pythonhosted.org/packages/20/95/d75e82f8ce9fd323ebf059c16c9aadefb22a1ecde13b7840b35835e4886c/charset_normalizer-3.4.9-cp314-cp314-win_arm64.whl", hash = "sha256:40a126142a56b2dfc0aacbad1de8310cbf60da7656db0e6b16eebd48e3e93519", size = 153334, upload-time = "2026-07-07T14:34:14.044Z" }, + { url = "https://files.pythonhosted.org/packages/00/5e/17398df3a139985ba9d11ed072531986f408c8fca952835ef1ab1820c02b/charset_normalizer-3.4.9-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:609b3ba8fcc0fb5ab7af00719d0fb6ad0cb518e48e7712d12fd68f1327951198", size = 338848, upload-time = "2026-07-07T14:34:15.688Z" }, + { url = "https://files.pythonhosted.org/packages/cd/91/7253a32e86b7e1d1239b1b36ba6dd0f021a21107ab33054b53119cc083b9/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51447e9aa2684679af07ca5021c3db526e0284347ebf4ffcec1154c3350cfe32", size = 223022, upload-time = "2026-07-07T14:34:17.248Z" }, + { url = "https://files.pythonhosted.org/packages/cb/32/2e64bd2be10e89c61e57ebe6a93fd98ae88eb7ebe414b5121f22c96c69eb/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cc1b0fff8ead343dae06305f954eb8468ba0ec1a97881f42489d198e4ce3c632", size = 241590, upload-time = "2026-07-07T14:34:18.813Z" }, + { url = "https://files.pythonhosted.org/packages/3d/ef/d96ec496cfea0c21db43b0ad03891308b02388d054cc902cf0e5a1ad6a88/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fa36ec09ef71d158186bc79e359ff5fdd6e7996fe8ab638f00d6b93139ba4fcf", size = 239584, upload-time = "2026-07-07T14:34:20.52Z" }, + { url = "https://files.pythonhosted.org/packages/d4/ce/9af95f7876194bd7a14e3dfe4a4de2e0bff02666a3910d72beafd06cc297/charset_normalizer-3.4.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:df115d4d83168fdf2cae48ef1ff6d1cb4c466364e30861b37121de0f3bf1b990", size = 230224, upload-time = "2026-07-07T14:34:22.189Z" }, + { url = "https://files.pythonhosted.org/packages/52/94/af74dde74a3996bd959c350709bfe50e297823d70a8c1cbd54b838880863/charset_normalizer-3.4.9-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:f86c6358749bd4fda175388691e3ba8c46e24c5347d0afd20f9b7edfc9faf07d", size = 212667, upload-time = "2026-07-07T14:34:23.857Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f0/f1c4fe746c395922961b5916ed1d7d6e7d4c84851d19ed43cc89980ec953/charset_normalizer-3.4.9-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:32286a2c8d167e897177b673176c1e3e00d4057caf5d2b64eef9a3666b03018e", size = 227179, upload-time = "2026-07-07T14:34:25.586Z" }, + { url = "https://files.pythonhosted.org/packages/e4/56/6c745619ac397e8871e2bcd3cea1eec86b877488f33888b3aef5c3ed506e/charset_normalizer-3.4.9-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:83aed2c10721ddd90f68140685391b50811a880af20654c59af6b6c66c40513c", size = 225372, upload-time = "2026-07-07T14:34:27.212Z" }, + { url = "https://files.pythonhosted.org/packages/78/ad/98aae8630ac71f16711968e38a5acfecce41b778bf2f0312851020f565a8/charset_normalizer-3.4.9-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cd6c3d4b783c556fa00bf540854e42f135e2f256abd29669fcd0da0f2dec79c2", size = 215222, upload-time = "2026-07-07T14:34:28.774Z" }, + { url = "https://files.pythonhosted.org/packages/f7/40/9593d54209765207a7f11073c06494c1721e4ca4a0a426c597679bf7f91e/charset_normalizer-3.4.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ee2f2a527e3c1a6e6411eb4209642e138b544a2d72fe5d0d76daf77b24063534", size = 231958, upload-time = "2026-07-07T14:34:30.345Z" }, + { url = "https://files.pythonhosted.org/packages/b1/27/693ee5e8a18191eb38647360c51cd505013e2bd3b366aa43fd5344c21e3c/charset_normalizer-3.4.9-cp314-cp314t-win32.whl", hash = "sha256:0d861473f743244d349b50f850d10eb87aeb22bbdcc8e64f79273c94af5a8226", size = 155580, upload-time = "2026-07-07T14:34:31.884Z" }, + { url = "https://files.pythonhosted.org/packages/80/3f/bd97d3d9c613013d07cb7733d299385b41df37f0471310f5a73dc359f0b8/charset_normalizer-3.4.9-cp314-cp314t-win_amd64.whl", hash = "sha256:9b8e0f3107e2200b76f6054de99016eac3ee6762713587b36baaa7e4bd2ae177", size = 167620, upload-time = "2026-07-07T14:34:33.438Z" }, + { url = "https://files.pythonhosted.org/packages/3d/c6/eee9dca4439b1061f76373f06ea855678cc4a64c1c3c90b50e479edbb8eb/charset_normalizer-3.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:19ac87f93086ce37b86e098888555c4b4bc48102279bae3350098c0ed664b501", size = 158037, upload-time = "2026-07-07T14:34:35.018Z" }, + { url = "https://files.pythonhosted.org/packages/98/2b/f97f1c193fb855c345d678f5077d6926034db0722df74c8f057020e05a25/charset_normalizer-3.4.9-py3-none-any.whl", hash = "sha256:68e5f26a1ad57ded6d1cfb85331d1c1a195314756471d97758c48498bb4dcdf5", size = 64538, upload-time = "2026-07-07T14:34:56.993Z" }, +] + +[[package]] +name = "click" +version = "8.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/d4/81420972a676e8ffea40450d8c8c92943e7218a78fe9b64359836cc9876b/click-8.4.2.tar.gz", hash = "sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6", size = 338000, upload-time = "2026-06-24T17:45:15.148Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/e2/79c688af8b210d232694e31e59da9f6ec747bae31c3f5946e4e9b98860d5/click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76", size = 119243, upload-time = "2026-06-24T17:45:13.73Z" }, +] + +[[package]] +name = "cloudpathlib" +version = "0.24.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/19/58bc6b5d7d0f81c7209b05445af477e147c486552f96665a5912211839b9/cloudpathlib-0.24.0.tar.gz", hash = "sha256:c521a984e77b47e656fe78e20a7e3e260e0ab45fc69e33ac01094227c979e34a", size = 53600, upload-time = "2026-04-30T00:54:43.265Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/5b/ba933f896d9b0b07608d575a8501e2b4e32166b60d84c430a4a7285ebe64/cloudpathlib-0.24.0-py3-none-any.whl", hash = "sha256:b1c51e2d2ec7dc4fed6538991f4aea849d6cf11a7e6b9069f86e461aa1f9b5b4", size = 63214, upload-time = "2026-04-30T00:54:42.06Z" }, +] + +[[package]] +name = "cobble" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/7a/a507c709be2c96e1bb6102eb7b7f4026c5e5e223ef7d745a17d239e9d844/cobble-0.1.4.tar.gz", hash = "sha256:de38be1539992c8a06e569630717c485a5f91be2192c461ea2b220607dfa78aa", size = 3805, upload-time = "2024-06-01T18:11:09.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/e1/3714a2f371985215c219c2a70953d38e3eed81ef165aed061d21de0e998b/cobble-0.1.4-py3-none-any.whl", hash = "sha256:36c91b1655e599fd428e2b95fdd5f0da1ca2e9f1abb0bc871dec21a0e78a2b44", size = 3984, upload-time = "2024-06-01T18:11:07.911Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coloredlogs" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "humanfriendly", marker = "(python_full_version < '3.11' and sys_platform != 'win32') or (python_full_version != '3.12.*' and sys_platform == 'win32')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0", size = 278520, upload-time = "2021-06-11T10:22:45.202Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018, upload-time = "2021-06-11T10:22:42.561Z" }, +] + +[[package]] +name = "confection" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/65/efd0fe8a936fc8ca2978cb7b82581fb20d901c6039e746a808f746b7647b/confection-1.3.3.tar.gz", hash = "sha256:f0f6810d567ff73993fe74d218ca5e1ffb6a44fb03f391257fc5d033546cbfaa", size = 54895, upload-time = "2026-03-24T18:45:24.331Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/e4/d66708bdf0d92fb4d49b22cdff4b10cec38aca5dcd7e81d909bb55c65cd7/confection-1.3.3-py3-none-any.whl", hash = "sha256:b9fef9ee84b237ef4611ec3eb5797b70e13063e6310ad9f15536373f5e313c82", size = 35902, upload-time = "2026-03-24T18:45:22.664Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/54/eb9bfc647b19f2009dd5c7f5ec51c4e6ca831725f1aea7a993034f483147/contourpy-1.3.2.tar.gz", hash = "sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54", size = 13466130, upload-time = "2025-04-15T17:47:53.79Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/a3/da4153ec8fe25d263aa48c1a4cbde7f49b59af86f0b6f7862788c60da737/contourpy-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ba38e3f9f330af820c4b27ceb4b9c7feee5fe0493ea53a8720f4792667465934", size = 268551, upload-time = "2025-04-15T17:34:46.581Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6c/330de89ae1087eb622bfca0177d32a7ece50c3ef07b28002de4757d9d875/contourpy-1.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dc41ba0714aa2968d1f8674ec97504a8f7e334f48eeacebcaa6256213acb0989", size = 253399, upload-time = "2025-04-15T17:34:51.427Z" }, + { url = "https://files.pythonhosted.org/packages/c1/bd/20c6726b1b7f81a8bee5271bed5c165f0a8e1f572578a9d27e2ccb763cb2/contourpy-1.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9be002b31c558d1ddf1b9b415b162c603405414bacd6932d031c5b5a8b757f0d", size = 312061, upload-time = "2025-04-15T17:34:55.961Z" }, + { url = "https://files.pythonhosted.org/packages/22/fc/a9665c88f8a2473f823cf1ec601de9e5375050f1958cbb356cdf06ef1ab6/contourpy-1.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8d2e74acbcba3bfdb6d9d8384cdc4f9260cae86ed9beee8bd5f54fee49a430b9", size = 351956, upload-time = "2025-04-15T17:35:00.992Z" }, + { url = "https://files.pythonhosted.org/packages/25/eb/9f0a0238f305ad8fb7ef42481020d6e20cf15e46be99a1fcf939546a177e/contourpy-1.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e259bced5549ac64410162adc973c5e2fb77f04df4a439d00b478e57a0e65512", size = 320872, upload-time = "2025-04-15T17:35:06.177Z" }, + { url = "https://files.pythonhosted.org/packages/32/5c/1ee32d1c7956923202f00cf8d2a14a62ed7517bdc0ee1e55301227fc273c/contourpy-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad687a04bc802cbe8b9c399c07162a3c35e227e2daccf1668eb1f278cb698631", size = 325027, upload-time = "2025-04-15T17:35:11.244Z" }, + { url = "https://files.pythonhosted.org/packages/83/bf/9baed89785ba743ef329c2b07fd0611d12bfecbedbdd3eeecf929d8d3b52/contourpy-1.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cdd22595308f53ef2f891040ab2b93d79192513ffccbd7fe19be7aa773a5e09f", size = 1306641, upload-time = "2025-04-15T17:35:26.701Z" }, + { url = "https://files.pythonhosted.org/packages/d4/cc/74e5e83d1e35de2d28bd97033426b450bc4fd96e092a1f7a63dc7369b55d/contourpy-1.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b4f54d6a2defe9f257327b0f243612dd051cc43825587520b1bf74a31e2f6ef2", size = 1374075, upload-time = "2025-04-15T17:35:43.204Z" }, + { url = "https://files.pythonhosted.org/packages/0c/42/17f3b798fd5e033b46a16f8d9fcb39f1aba051307f5ebf441bad1ecf78f8/contourpy-1.3.2-cp310-cp310-win32.whl", hash = "sha256:f939a054192ddc596e031e50bb13b657ce318cf13d264f095ce9db7dc6ae81c0", size = 177534, upload-time = "2025-04-15T17:35:46.554Z" }, + { url = "https://files.pythonhosted.org/packages/54/ec/5162b8582f2c994721018d0c9ece9dc6ff769d298a8ac6b6a652c307e7df/contourpy-1.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c440093bbc8fc21c637c03bafcbef95ccd963bc6e0514ad887932c18ca2a759a", size = 221188, upload-time = "2025-04-15T17:35:50.064Z" }, + { url = "https://files.pythonhosted.org/packages/b3/b9/ede788a0b56fc5b071639d06c33cb893f68b1178938f3425debebe2dab78/contourpy-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6a37a2fb93d4df3fc4c0e363ea4d16f83195fc09c891bc8ce072b9d084853445", size = 269636, upload-time = "2025-04-15T17:35:54.473Z" }, + { url = "https://files.pythonhosted.org/packages/e6/75/3469f011d64b8bbfa04f709bfc23e1dd71be54d05b1b083be9f5b22750d1/contourpy-1.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b7cd50c38f500bbcc9b6a46643a40e0913673f869315d8e70de0438817cb7773", size = 254636, upload-time = "2025-04-15T17:35:58.283Z" }, + { url = "https://files.pythonhosted.org/packages/8d/2f/95adb8dae08ce0ebca4fd8e7ad653159565d9739128b2d5977806656fcd2/contourpy-1.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6658ccc7251a4433eebd89ed2672c2ed96fba367fd25ca9512aa92a4b46c4f1", size = 313053, upload-time = "2025-04-15T17:36:03.235Z" }, + { url = "https://files.pythonhosted.org/packages/c3/a6/8ccf97a50f31adfa36917707fe39c9a0cbc24b3bbb58185577f119736cc9/contourpy-1.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:70771a461aaeb335df14deb6c97439973d253ae70660ca085eec25241137ef43", size = 352985, upload-time = "2025-04-15T17:36:08.275Z" }, + { url = "https://files.pythonhosted.org/packages/1d/b6/7925ab9b77386143f39d9c3243fdd101621b4532eb126743201160ffa7e6/contourpy-1.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65a887a6e8c4cd0897507d814b14c54a8c2e2aa4ac9f7686292f9769fcf9a6ab", size = 323750, upload-time = "2025-04-15T17:36:13.29Z" }, + { url = "https://files.pythonhosted.org/packages/c2/f3/20c5d1ef4f4748e52d60771b8560cf00b69d5c6368b5c2e9311bcfa2a08b/contourpy-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3859783aefa2b8355697f16642695a5b9792e7a46ab86da1118a4a23a51a33d7", size = 326246, upload-time = "2025-04-15T17:36:18.329Z" }, + { url = "https://files.pythonhosted.org/packages/8c/e5/9dae809e7e0b2d9d70c52b3d24cba134dd3dad979eb3e5e71f5df22ed1f5/contourpy-1.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eab0f6db315fa4d70f1d8ab514e527f0366ec021ff853d7ed6a2d33605cf4b83", size = 1308728, upload-time = "2025-04-15T17:36:33.878Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4a/0058ba34aeea35c0b442ae61a4f4d4ca84d6df8f91309bc2d43bb8dd248f/contourpy-1.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d91a3ccc7fea94ca0acab82ceb77f396d50a1f67412efe4c526f5d20264e6ecd", size = 1375762, upload-time = "2025-04-15T17:36:51.295Z" }, + { url = "https://files.pythonhosted.org/packages/09/33/7174bdfc8b7767ef2c08ed81244762d93d5c579336fc0b51ca57b33d1b80/contourpy-1.3.2-cp311-cp311-win32.whl", hash = "sha256:1c48188778d4d2f3d48e4643fb15d8608b1d01e4b4d6b0548d9b336c28fc9b6f", size = 178196, upload-time = "2025-04-15T17:36:55.002Z" }, + { url = "https://files.pythonhosted.org/packages/5e/fe/4029038b4e1c4485cef18e480b0e2cd2d755448bb071eb9977caac80b77b/contourpy-1.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:5ebac872ba09cb8f2131c46b8739a7ff71de28a24c869bcad554477eb089a878", size = 222017, upload-time = "2025-04-15T17:36:58.576Z" }, + { url = "https://files.pythonhosted.org/packages/34/f7/44785876384eff370c251d58fd65f6ad7f39adce4a093c934d4a67a7c6b6/contourpy-1.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4caf2bcd2969402bf77edc4cb6034c7dd7c0803213b3523f111eb7460a51b8d2", size = 271580, upload-time = "2025-04-15T17:37:03.105Z" }, + { url = "https://files.pythonhosted.org/packages/93/3b/0004767622a9826ea3d95f0e9d98cd8729015768075d61f9fea8eeca42a8/contourpy-1.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:82199cb78276249796419fe36b7386bd8d2cc3f28b3bc19fe2454fe2e26c4c15", size = 255530, upload-time = "2025-04-15T17:37:07.026Z" }, + { url = "https://files.pythonhosted.org/packages/e7/bb/7bd49e1f4fa805772d9fd130e0d375554ebc771ed7172f48dfcd4ca61549/contourpy-1.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:106fab697af11456fcba3e352ad50effe493a90f893fca6c2ca5c033820cea92", size = 307688, upload-time = "2025-04-15T17:37:11.481Z" }, + { url = "https://files.pythonhosted.org/packages/fc/97/e1d5dbbfa170725ef78357a9a0edc996b09ae4af170927ba8ce977e60a5f/contourpy-1.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d14f12932a8d620e307f715857107b1d1845cc44fdb5da2bc8e850f5ceba9f87", size = 347331, upload-time = "2025-04-15T17:37:18.212Z" }, + { url = "https://files.pythonhosted.org/packages/6f/66/e69e6e904f5ecf6901be3dd16e7e54d41b6ec6ae3405a535286d4418ffb4/contourpy-1.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:532fd26e715560721bb0d5fc7610fce279b3699b018600ab999d1be895b09415", size = 318963, upload-time = "2025-04-15T17:37:22.76Z" }, + { url = "https://files.pythonhosted.org/packages/a8/32/b8a1c8965e4f72482ff2d1ac2cd670ce0b542f203c8e1d34e7c3e6925da7/contourpy-1.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b383144cf2d2c29f01a1e8170f50dacf0eac02d64139dcd709a8ac4eb3cfe", size = 323681, upload-time = "2025-04-15T17:37:33.001Z" }, + { url = "https://files.pythonhosted.org/packages/30/c6/12a7e6811d08757c7162a541ca4c5c6a34c0f4e98ef2b338791093518e40/contourpy-1.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c49f73e61f1f774650a55d221803b101d966ca0c5a2d6d5e4320ec3997489441", size = 1308674, upload-time = "2025-04-15T17:37:48.64Z" }, + { url = "https://files.pythonhosted.org/packages/2a/8a/bebe5a3f68b484d3a2b8ffaf84704b3e343ef1addea528132ef148e22b3b/contourpy-1.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3d80b2c0300583228ac98d0a927a1ba6a2ba6b8a742463c564f1d419ee5b211e", size = 1380480, upload-time = "2025-04-15T17:38:06.7Z" }, + { url = "https://files.pythonhosted.org/packages/34/db/fcd325f19b5978fb509a7d55e06d99f5f856294c1991097534360b307cf1/contourpy-1.3.2-cp312-cp312-win32.whl", hash = "sha256:90df94c89a91b7362e1142cbee7568f86514412ab8a2c0d0fca72d7e91b62912", size = 178489, upload-time = "2025-04-15T17:38:10.338Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/fadd0b92ffa7b5eb5949bf340a63a4a496a6930a6c37a7ba0f12acb076d6/contourpy-1.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:8c942a01d9163e2e5cfb05cb66110121b8d07ad438a17f9e766317bcb62abf73", size = 223042, upload-time = "2025-04-15T17:38:14.239Z" }, + { url = "https://files.pythonhosted.org/packages/2e/61/5673f7e364b31e4e7ef6f61a4b5121c5f170f941895912f773d95270f3a2/contourpy-1.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:de39db2604ae755316cb5967728f4bea92685884b1e767b7c24e983ef5f771cb", size = 271630, upload-time = "2025-04-15T17:38:19.142Z" }, + { url = "https://files.pythonhosted.org/packages/ff/66/a40badddd1223822c95798c55292844b7e871e50f6bfd9f158cb25e0bd39/contourpy-1.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f9e896f447c5c8618f1edb2bafa9a4030f22a575ec418ad70611450720b5b08", size = 255670, upload-time = "2025-04-15T17:38:23.688Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c7/cf9fdee8200805c9bc3b148f49cb9482a4e3ea2719e772602a425c9b09f8/contourpy-1.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71e2bd4a1c4188f5c2b8d274da78faab884b59df20df63c34f74aa1813c4427c", size = 306694, upload-time = "2025-04-15T17:38:28.238Z" }, + { url = "https://files.pythonhosted.org/packages/dd/e7/ccb9bec80e1ba121efbffad7f38021021cda5be87532ec16fd96533bb2e0/contourpy-1.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de425af81b6cea33101ae95ece1f696af39446db9682a0b56daaa48cfc29f38f", size = 345986, upload-time = "2025-04-15T17:38:33.502Z" }, + { url = "https://files.pythonhosted.org/packages/dc/49/ca13bb2da90391fa4219fdb23b078d6065ada886658ac7818e5441448b78/contourpy-1.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:977e98a0e0480d3fe292246417239d2d45435904afd6d7332d8455981c408b85", size = 318060, upload-time = "2025-04-15T17:38:38.672Z" }, + { url = "https://files.pythonhosted.org/packages/c8/65/5245ce8c548a8422236c13ffcdcdada6a2a812c361e9e0c70548bb40b661/contourpy-1.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:434f0adf84911c924519d2b08fc10491dd282b20bdd3fa8f60fd816ea0b48841", size = 322747, upload-time = "2025-04-15T17:38:43.712Z" }, + { url = "https://files.pythonhosted.org/packages/72/30/669b8eb48e0a01c660ead3752a25b44fdb2e5ebc13a55782f639170772f9/contourpy-1.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c66c4906cdbc50e9cba65978823e6e00b45682eb09adbb78c9775b74eb222422", size = 1308895, upload-time = "2025-04-15T17:39:00.224Z" }, + { url = "https://files.pythonhosted.org/packages/05/5a/b569f4250decee6e8d54498be7bdf29021a4c256e77fe8138c8319ef8eb3/contourpy-1.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8b7fc0cd78ba2f4695fd0a6ad81a19e7e3ab825c31b577f384aa9d7817dc3bef", size = 1379098, upload-time = "2025-04-15T17:43:29.649Z" }, + { url = "https://files.pythonhosted.org/packages/19/ba/b227c3886d120e60e41b28740ac3617b2f2b971b9f601c835661194579f1/contourpy-1.3.2-cp313-cp313-win32.whl", hash = "sha256:15ce6ab60957ca74cff444fe66d9045c1fd3e92c8936894ebd1f3eef2fff075f", size = 178535, upload-time = "2025-04-15T17:44:44.532Z" }, + { url = "https://files.pythonhosted.org/packages/12/6e/2fed56cd47ca739b43e892707ae9a13790a486a3173be063681ca67d2262/contourpy-1.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e1578f7eafce927b168752ed7e22646dad6cd9bca673c60bff55889fa236ebf9", size = 223096, upload-time = "2025-04-15T17:44:48.194Z" }, + { url = "https://files.pythonhosted.org/packages/54/4c/e76fe2a03014a7c767d79ea35c86a747e9325537a8b7627e0e5b3ba266b4/contourpy-1.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0475b1f6604896bc7c53bb070e355e9321e1bc0d381735421a2d2068ec56531f", size = 285090, upload-time = "2025-04-15T17:43:34.084Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e2/5aba47debd55d668e00baf9651b721e7733975dc9fc27264a62b0dd26eb8/contourpy-1.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c85bb486e9be652314bb5b9e2e3b0d1b2e643d5eec4992c0fbe8ac71775da739", size = 268643, upload-time = "2025-04-15T17:43:38.626Z" }, + { url = "https://files.pythonhosted.org/packages/a1/37/cd45f1f051fe6230f751cc5cdd2728bb3a203f5619510ef11e732109593c/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:745b57db7758f3ffc05a10254edd3182a2a83402a89c00957a8e8a22f5582823", size = 310443, upload-time = "2025-04-15T17:43:44.522Z" }, + { url = "https://files.pythonhosted.org/packages/8b/a2/36ea6140c306c9ff6dd38e3bcec80b3b018474ef4d17eb68ceecd26675f4/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:970e9173dbd7eba9b4e01aab19215a48ee5dd3f43cef736eebde064a171f89a5", size = 349865, upload-time = "2025-04-15T17:43:49.545Z" }, + { url = "https://files.pythonhosted.org/packages/95/b7/2fc76bc539693180488f7b6cc518da7acbbb9e3b931fd9280504128bf956/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6c4639a9c22230276b7bffb6a850dfc8258a2521305e1faefe804d006b2e532", size = 321162, upload-time = "2025-04-15T17:43:54.203Z" }, + { url = "https://files.pythonhosted.org/packages/f4/10/76d4f778458b0aa83f96e59d65ece72a060bacb20cfbee46cf6cd5ceba41/contourpy-1.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc829960f34ba36aad4302e78eabf3ef16a3a100863f0d4eeddf30e8a485a03b", size = 327355, upload-time = "2025-04-15T17:44:01.025Z" }, + { url = "https://files.pythonhosted.org/packages/43/a3/10cf483ea683f9f8ab096c24bad3cce20e0d1dd9a4baa0e2093c1c962d9d/contourpy-1.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d32530b534e986374fc19eaa77fcb87e8a99e5431499949b828312bdcd20ac52", size = 1307935, upload-time = "2025-04-15T17:44:17.322Z" }, + { url = "https://files.pythonhosted.org/packages/78/73/69dd9a024444489e22d86108e7b913f3528f56cfc312b5c5727a44188471/contourpy-1.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e298e7e70cf4eb179cc1077be1c725b5fd131ebc81181bf0c03525c8abc297fd", size = 1372168, upload-time = "2025-04-15T17:44:33.43Z" }, + { url = "https://files.pythonhosted.org/packages/0f/1b/96d586ccf1b1a9d2004dd519b25fbf104a11589abfd05484ff12199cca21/contourpy-1.3.2-cp313-cp313t-win32.whl", hash = "sha256:d0e589ae0d55204991450bb5c23f571c64fe43adaa53f93fc902a84c96f52fe1", size = 189550, upload-time = "2025-04-15T17:44:37.092Z" }, + { url = "https://files.pythonhosted.org/packages/b0/e6/6000d0094e8a5e32ad62591c8609e269febb6e4db83a1c75ff8868b42731/contourpy-1.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:78e9253c3de756b3f6a5174d024c4835acd59eb3f8e2ca13e775dbffe1558f69", size = 238214, upload-time = "2025-04-15T17:44:40.827Z" }, + { url = "https://files.pythonhosted.org/packages/33/05/b26e3c6ecc05f349ee0013f0bb850a761016d89cec528a98193a48c34033/contourpy-1.3.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:fd93cc7f3139b6dd7aab2f26a90dde0aa9fc264dbf70f6740d498a70b860b82c", size = 265681, upload-time = "2025-04-15T17:44:59.314Z" }, + { url = "https://files.pythonhosted.org/packages/2b/25/ac07d6ad12affa7d1ffed11b77417d0a6308170f44ff20fa1d5aa6333f03/contourpy-1.3.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:107ba8a6a7eec58bb475329e6d3b95deba9440667c4d62b9b6063942b61d7f16", size = 315101, upload-time = "2025-04-15T17:45:04.165Z" }, + { url = "https://files.pythonhosted.org/packages/8f/4d/5bb3192bbe9d3f27e3061a6a8e7733c9120e203cb8515767d30973f71030/contourpy-1.3.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ded1706ed0c1049224531b81128efbd5084598f18d8a2d9efae833edbd2b40ad", size = 220599, upload-time = "2025-04-15T17:45:08.456Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c0/91f1215d0d9f9f343e4773ba6c9b89e8c0cc7a64a6263f21139da639d848/contourpy-1.3.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5f5964cdad279256c084b69c3f412b7801e15356b16efa9d78aa974041903da0", size = 266807, upload-time = "2025-04-15T17:45:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/d4/79/6be7e90c955c0487e7712660d6cead01fa17bff98e0ea275737cc2bc8e71/contourpy-1.3.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49b65a95d642d4efa8f64ba12558fcb83407e58a2dfba9d796d77b63ccfcaff5", size = 318729, upload-time = "2025-04-15T17:45:20.166Z" }, + { url = "https://files.pythonhosted.org/packages/87/68/7f46fb537958e87427d98a4074bcde4b67a70b04900cfc5ce29bc2f556c1/contourpy-1.3.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8c5acb8dddb0752bf252e01a3035b21443158910ac16a3b0d20e7fed7d534ce5", size = 221791, upload-time = "2025-04-15T17:45:24.794Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +dependencies = [ + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/2e/c4390a31919d8a78b90e8ecf87cd4b4c4f05a5b48d05ec17db8e5404c6f4/contourpy-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1", size = 288773, upload-time = "2025-07-26T12:01:02.277Z" }, + { url = "https://files.pythonhosted.org/packages/0d/44/c4b0b6095fef4dc9c420e041799591e3b63e9619e3044f7f4f6c21c0ab24/contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381", size = 270149, upload-time = "2025-07-26T12:01:04.072Z" }, + { url = "https://files.pythonhosted.org/packages/30/2e/dd4ced42fefac8470661d7cb7e264808425e6c5d56d175291e93890cce09/contourpy-1.3.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7", size = 329222, upload-time = "2025-07-26T12:01:05.688Z" }, + { url = "https://files.pythonhosted.org/packages/f2/74/cc6ec2548e3d276c71389ea4802a774b7aa3558223b7bade3f25787fafc2/contourpy-1.3.3-cp311-cp311-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1", size = 377234, upload-time = "2025-07-26T12:01:07.054Z" }, + { url = "https://files.pythonhosted.org/packages/03/b3/64ef723029f917410f75c09da54254c5f9ea90ef89b143ccadb09df14c15/contourpy-1.3.3-cp311-cp311-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a", size = 380555, upload-time = "2025-07-26T12:01:08.801Z" }, + { url = "https://files.pythonhosted.org/packages/5f/4b/6157f24ca425b89fe2eb7e7be642375711ab671135be21e6faa100f7448c/contourpy-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db", size = 355238, upload-time = "2025-07-26T12:01:10.319Z" }, + { url = "https://files.pythonhosted.org/packages/98/56/f914f0dd678480708a04cfd2206e7c382533249bc5001eb9f58aa693e200/contourpy-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620", size = 1326218, upload-time = "2025-07-26T12:01:12.659Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d7/4a972334a0c971acd5172389671113ae82aa7527073980c38d5868ff1161/contourpy-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f", size = 1392867, upload-time = "2025-07-26T12:01:15.533Z" }, + { url = "https://files.pythonhosted.org/packages/75/3e/f2cc6cd56dc8cff46b1a56232eabc6feea52720083ea71ab15523daab796/contourpy-1.3.3-cp311-cp311-win32.whl", hash = "sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff", size = 183677, upload-time = "2025-07-26T12:01:17.088Z" }, + { url = "https://files.pythonhosted.org/packages/98/4b/9bd370b004b5c9d8045c6c33cf65bae018b27aca550a3f657cdc99acdbd8/contourpy-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42", size = 225234, upload-time = "2025-07-26T12:01:18.256Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b6/71771e02c2e004450c12b1120a5f488cad2e4d5b590b1af8bad060360fe4/contourpy-1.3.3-cp311-cp311-win_arm64.whl", hash = "sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470", size = 193123, upload-time = "2025-07-26T12:01:19.848Z" }, + { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, + { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, + { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, + { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, + { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, + { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, + { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, + { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, + { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, + { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, + { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, + { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, + { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, + { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, + { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, + { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, + { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, + { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, + { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, + { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, + { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, + { url = "https://files.pythonhosted.org/packages/a5/29/8dcfe16f0107943fa92388c23f6e05cff0ba58058c4c95b00280d4c75a14/contourpy-1.3.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497", size = 278809, upload-time = "2025-07-26T12:02:52.74Z" }, + { url = "https://files.pythonhosted.org/packages/85/a9/8b37ef4f7dafeb335daee3c8254645ef5725be4d9c6aa70b50ec46ef2f7e/contourpy-1.3.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8", size = 261593, upload-time = "2025-07-26T12:02:54.037Z" }, + { url = "https://files.pythonhosted.org/packages/0a/59/ebfb8c677c75605cc27f7122c90313fd2f375ff3c8d19a1694bda74aaa63/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e", size = 302202, upload-time = "2025-07-26T12:02:55.947Z" }, + { url = "https://files.pythonhosted.org/packages/3c/37/21972a15834d90bfbfb009b9d004779bd5a07a0ec0234e5ba8f64d5736f4/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989", size = 329207, upload-time = "2025-07-26T12:02:57.468Z" }, + { url = "https://files.pythonhosted.org/packages/0c/58/bd257695f39d05594ca4ad60df5bcb7e32247f9951fd09a9b8edb82d1daa/contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77", size = 225315, upload-time = "2025-07-26T12:02:58.801Z" }, +] + +[[package]] +name = "courlan" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "tld" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bb/16/2a771612ee0b3acaa95ac21cc7e8a3319e815d6360f8ffc5987d1ce28499/courlan-1.4.0.tar.gz", hash = "sha256:fbbac7b7fcde2195ea08e707609503c81cf39c891e8d26cdb1fed4585782d63d", size = 208997, upload-time = "2026-06-01T17:30:17.306Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/38/ce65091ff20a16e06d17418c4353af5f56d3190821b1a06983c79ae79274/courlan-1.4.0-py3-none-any.whl", hash = "sha256:ad1dbdefd912ca7238d4607dc855df5df097f56bac175dd662c84eed3802f49e", size = 34193, upload-time = "2026-06-01T17:30:14.984Z" }, +] + +[[package]] +name = "coverage" +version = "7.15.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/d0/55fe630f4cf94e3fcba868240fad8c8cdd1f764e2a932f8926347e6ec4cd/coverage-7.15.2.tar.gz", hash = "sha256:3df60dc267f0a2ca23cb7a9ab1109c62b9335ffbf519fcfe167157c28c09b81d", size = 927741, upload-time = "2026-07-15T18:56:19.558Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/03/060ce69008ac97bbc01b1411b3e55b61f6f015659400b46749b662107831/coverage-7.15.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9b5bd92ff1ec22e535eab0de75fa6db021992791f461a2aceb7822c625a1187d", size = 221284, upload-time = "2026-07-15T18:53:29.52Z" }, + { url = "https://files.pythonhosted.org/packages/fc/a3/d936e8b53edd9684100a6aefaf3fcabaa54728fe33324436c8d279c047aa/coverage-7.15.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:44826758cfe73fcd0e6af5deb4ba6d5417cc1d13df3acb35c93484a11160f846", size = 221799, upload-time = "2026-07-15T18:53:31.708Z" }, + { url = "https://files.pythonhosted.org/packages/ae/a3/ca234b06aec7ee28226f11d39a696b4481fe5eddfce8e03bf39979bb8ffb/coverage-7.15.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:09f5c6ec5901f667bd97dd140b5b9a2586b10efec66f46fb1e6d8135f8b95bdf", size = 248544, upload-time = "2026-07-15T18:53:33.212Z" }, + { url = "https://files.pythonhosted.org/packages/2b/89/dda79527bb7573ba91828b2fb91b3105d87378d6a2749ca0c0924ce0addd/coverage-7.15.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1d16e3a7104ea84f03e614611b3edbf6fb6892554b3ab0fe7fbb3f2b2ef04376", size = 250374, upload-time = "2026-07-15T18:53:34.683Z" }, + { url = "https://files.pythonhosted.org/packages/67/c6/c33755a34572f81f49a8c0cdf6b622f35ccb3238b136e1909daf0cdd4319/coverage-7.15.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d46e62cb35d91e6e2589fda6d28074426b0e276422b5d2ebef2c6b11dc60dbfd", size = 252239, upload-time = "2026-07-15T18:53:36.205Z" }, + { url = "https://files.pythonhosted.org/packages/b9/6f/dc341741b375be53a5baeee5b4bf0f0e525d38caed428f7932d23bb7bcb1/coverage-7.15.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dfd3db045e95960ae3683059571e597fda7cc610106a8916f77c5839048c1deb", size = 254150, upload-time = "2026-07-15T18:53:37.863Z" }, + { url = "https://files.pythonhosted.org/packages/e9/8d/966a18a5b195cb4e77b14c53f5f3dce22b5da05e6de7fafd1e08f2d2067a/coverage-7.15.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:affd532502d34c0472d0cdb181325c89f1d2c44992fef0c17e88e7b1576259a1", size = 249234, upload-time = "2026-07-15T18:53:39.394Z" }, + { url = "https://files.pythonhosted.org/packages/c5/8b/8b2e367496ab48484d48e79984fec76cdc1b7cb5d3a00ee799a5602e3ec9/coverage-7.15.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d17d7512151fedfcc64c1821a8977fc9be0dbf495754669afcab7b57abc98ae9", size = 250276, upload-time = "2026-07-15T18:53:41.027Z" }, + { url = "https://files.pythonhosted.org/packages/63/92/1199318a200eb6c8c6ce0192c892c8710ac791abbe0f35099294620bbfda/coverage-7.15.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e26ff680768b8095e8874aabe0e9d3a47a2a9f176a8340d05f8604c56457c23a", size = 248283, upload-time = "2026-07-15T18:53:42.557Z" }, + { url = "https://files.pythonhosted.org/packages/56/da/be284a55c5619bda891a89c27dfd59324a2c6a14d755cf6aac6960ceebeb/coverage-7.15.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:7e8f27131dc7cd53de2c137dd207b3720919320b3c20d499dc30aa9ee6173287", size = 252093, upload-time = "2026-07-15T18:53:44.271Z" }, + { url = "https://files.pythonhosted.org/packages/d4/53/ee112da833ddd77b73c6d781a98029b45b584b136615b4900ed0569f887e/coverage-7.15.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:728a33676d4c3f0db977990a4bd421dcaa3be3e53b5b6273036fff6666008e89", size = 248552, upload-time = "2026-07-15T18:53:45.7Z" }, + { url = "https://files.pythonhosted.org/packages/82/6a/802cfc802e9113494c80bf3f284cd4d72faeb1f24e244f61046af364f2ca/coverage-7.15.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:29c052f7c83ccfcc5c577eaae025d2e4a9bb80daf03c0ac31c996e83b000ce88", size = 249154, upload-time = "2026-07-15T18:53:47.256Z" }, + { url = "https://files.pythonhosted.org/packages/2c/65/529808e91d651147edae408fd9e894abc3b8cad7f3e594bbc36719a3e13a/coverage-7.15.2-cp310-cp310-win32.whl", hash = "sha256:1268ac8fb9ddcd783d3948dbabaf80a5d53bfdaa0575e873e2139a692f797443", size = 223334, upload-time = "2026-07-15T18:53:48.768Z" }, + { url = "https://files.pythonhosted.org/packages/68/0f/0e1829d7001130876dfbc0b4e1c737ea7c155b809e3e4a98a0aa268e2369/coverage-7.15.2-cp310-cp310-win_amd64.whl", hash = "sha256:9f4432898c4bf2fba0435bbe35dd4437d7264565e5a88a21f5b49d8662a6b629", size = 223959, upload-time = "2026-07-15T18:53:50.429Z" }, + { url = "https://files.pythonhosted.org/packages/7d/3a/54536704f507d4573bf9161c4d0dd3dd59b6d85e48c664e901b6844d8e33/coverage-7.15.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f1ec6f304b156669cfde653b4e9a953f5de87e247ea02ac599bce0ab2744036", size = 221414, upload-time = "2026-07-15T18:53:51.941Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d9/8ba925d29743e3577b21e4d8c11a702b76bc93c41e7fdfd1177af63d4b8d/coverage-7.15.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4d3361879d736f469f45723c11ea1a5bbdaf1f6928f0e632c940378b5aa9b660", size = 221913, upload-time = "2026-07-15T18:53:53.682Z" }, + { url = "https://files.pythonhosted.org/packages/09/54/a855f3aa0187f2b431ade4e4791b77b56282cfb5d201c83ec26a31b5b36a/coverage-7.15.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c6a98d698f9e2c8008d0370ec7fc452ebfcc530002ae2d0061170d768b992589", size = 252332, upload-time = "2026-07-15T18:53:55.467Z" }, + { url = "https://files.pythonhosted.org/packages/8e/d3/13ac97b4370640ba3452fc8559b06cc2f479ce3ba4a0b632a73e44c38a7d/coverage-7.15.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d50dd325e18ec25bfcc10cd7f99b04df1ab9ec76b0918c260e60817ad0643dee", size = 254243, upload-time = "2026-07-15T18:53:57.055Z" }, + { url = "https://files.pythonhosted.org/packages/88/83/5eca144942d8d0659d3f55176517f4a59cdc65eefd17146a0770935a3ebd/coverage-7.15.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67d7602480a47bdf5b675635403625553ebaa70d5a62a657c035149fd401cea0", size = 256352, upload-time = "2026-07-15T18:53:58.83Z" }, + { url = "https://files.pythonhosted.org/packages/4e/ba/d3db2e01a50fc88cdb4c0f19542bcf6f61489e34dc9aa3538413e2459a38/coverage-7.15.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cee0f89f4767a6057c8fbf168f8135f18be651300496086bd873e3189fed0487", size = 258313, upload-time = "2026-07-15T18:54:00.497Z" }, + { url = "https://files.pythonhosted.org/packages/78/b3/aba83416e9177df28e5186d856c19158c59fc0e7e814aaa61a4a2354ad1b/coverage-7.15.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a29ec5305a7335aacee2d799e3422e91e1c8a12474986e2b3b07e315c91be82f", size = 252449, upload-time = "2026-07-15T18:54:02.456Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a5/4b00ecac0194431ab451b0f6710f8e2517d04cef60f821b14dec4637d575/coverage-7.15.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:48ccc6395958eda89093ecdc35644c86f23a8b23a7f4d44958812b721aad67c1", size = 254043, upload-time = "2026-07-15T18:54:04.072Z" }, + { url = "https://files.pythonhosted.org/packages/75/b6/cfa209b4313ee7f1b34da47efcd789ea51c024ad35af390e00f5a3c10a2e/coverage-7.15.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:81f382c5a94b434ec1f6da607edb904c76d7212e618cd4d1bc9f97bed4120ef5", size = 252107, upload-time = "2026-07-15T18:54:06.745Z" }, + { url = "https://files.pythonhosted.org/packages/36/67/e8cac5a6954038c98d7fe7eb9802afe7ab3ecb637bb7cc00e69b4148b56d/coverage-7.15.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bbc808daf4f5cd567af8075ecc72d21c6dfef9a254709a621a84c217c935ebc0", size = 255873, upload-time = "2026-07-15T18:54:08.48Z" }, + { url = "https://files.pythonhosted.org/packages/2c/92/395cca9f330a86c3fe3471d73e2c102116c4c58fdc619dbbc125c6e93a54/coverage-7.15.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:a4c46b247b5d4b78f613bd89fea926d32b25c6cc61a50bd1e99ba310348f3dad", size = 251826, upload-time = "2026-07-15T18:54:10.083Z" }, + { url = "https://files.pythonhosted.org/packages/51/60/3e91b20295439652424f426b7086ec5bf4fbe3f604c73eda22b986c4fd6b/coverage-7.15.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:094dd37f3ef7b2da8b068b583d1f4c40f91c65197e16c52a71962d5d537fc5db", size = 252735, upload-time = "2026-07-15T18:54:11.878Z" }, + { url = "https://files.pythonhosted.org/packages/a5/eb/8c07839005e5e3c6b3877d3a6e2a80ce766589f31dd2b6882b78d59a7b8c/coverage-7.15.2-cp311-cp311-win32.whl", hash = "sha256:a63b9e190711134d581c4d703df5df09851b1acf99792c7aacbbe9f41f0283c9", size = 223500, upload-time = "2026-07-15T18:54:13.525Z" }, + { url = "https://files.pythonhosted.org/packages/2e/98/59d83c257cd59f0fbaf9d9ddb26b744a576760dfd1ae16e516408894a02b/coverage-7.15.2-cp311-cp311-win_amd64.whl", hash = "sha256:8bb9f4b4279187560796a4cdaca3b0a93dd97e48ee667df005f4ed9a97403688", size = 223973, upload-time = "2026-07-15T18:54:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/ea/09/2d285c8bef5c4f695d120c1c96dc11715638aa8e134069f210bb6a62a9fe/coverage-7.15.2-cp311-cp311-win_arm64.whl", hash = "sha256:8c726b232659cbd2ae57ade46509eb068c9bd7a06df9fcbff6fe484870006934", size = 223519, upload-time = "2026-07-15T18:54:16.803Z" }, + { url = "https://files.pythonhosted.org/packages/6a/50/eb5bf42e531611a9f8d272556b1ed4de503f84a91413584094487cf69f8f/coverage-7.15.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1adac78e5abc7c5438f7a209c9ca69d06542f0bf481d728b6989ea80b813fdf9", size = 221587, upload-time = "2026-07-15T18:54:18.439Z" }, + { url = "https://files.pythonhosted.org/packages/06/d1/da99af464c335d4e023a6efcd7ec30f63b88a43c93745154ab74ffb31cea/coverage-7.15.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b868acc62aa5de3be7a9d05c2333bf8359ca987e43f9cb30ff8fbda6a024ab73", size = 221943, upload-time = "2026-07-15T18:54:20.062Z" }, + { url = "https://files.pythonhosted.org/packages/5b/8a/13c42723d61ca447eafa18732e8141dd6a63f2732e1c7e1502c182dd88d7/coverage-7.15.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6f6966fc30e6f06ca8f98fb0ce51eda6b111b3ee8d066a8b1ec9e77fa06ab55d", size = 253450, upload-time = "2026-07-15T18:54:21.765Z" }, + { url = "https://files.pythonhosted.org/packages/d7/29/99021303f98fbdcb63504b4d07bea4cc025b9b2dd907c4f07c85d50a0dab/coverage-7.15.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:68af907f595ab01a78f794932ff3bdf929c316d3000810d38dbc247129e26f8b", size = 256187, upload-time = "2026-07-15T18:54:23.4Z" }, + { url = "https://files.pythonhosted.org/packages/f9/a8/fd503715ed6ca9c5d742923aa5209257340b367a867b2ced0c7d4ba8a0b9/coverage-7.15.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:afa29e2eff3d5729267e2cb2fd4ce9d61c952932fb2694e34ccb5d9540c6a296", size = 257301, upload-time = "2026-07-15T18:54:25.183Z" }, + { url = "https://files.pythonhosted.org/packages/da/40/3f4b8fb409810036ebc2857d36adc0498c6e957b5df0290c5036b2e143f1/coverage-7.15.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bbf44513ceb1589e31948e20eafbde9deaface90e1a1afa5f5f77b4423d17ce6", size = 259562, upload-time = "2026-07-15T18:54:27.204Z" }, + { url = "https://files.pythonhosted.org/packages/0b/8a/9bdffbef47db77cce3d6b02a28f7e919b19f0106c4b080c2c2246040f885/coverage-7.15.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9deddf09eecb717b7f980414b43d90a5b22ff3967d2949ab29cb0aa83d9e9098", size = 253841, upload-time = "2026-07-15T18:54:29.134Z" }, + { url = "https://files.pythonhosted.org/packages/1b/1e/9031efde019d31a06646261fce6dfc5c3c74e951e27a71e5c9a424563178/coverage-7.15.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae901f7e55ba405c84ee1cab3d3e962e4e871e4a2bcb9c90911adbd69b42ac5a", size = 255221, upload-time = "2026-07-15T18:54:31.142Z" }, + { url = "https://files.pythonhosted.org/packages/56/db/787acde872389fc84a9ef9d8cd1ccc658e391ab4cb5b28092a714426a394/coverage-7.15.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a0f47002c6eeb7c280228467a4cb0cc15ca2103a8421b986b2d3ec04a0f9bd8b", size = 253366, upload-time = "2026-07-15T18:54:32.886Z" }, + { url = "https://files.pythonhosted.org/packages/2f/9b/6f57bc4b93c842eef1695f8cdaf2318e35e7ba54f5ba80d84be213ab7858/coverage-7.15.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1cd7a5beb7af3e864a13b1f0fb26efd3695da43ef0daf71e586adfffaf34d5b2", size = 257434, upload-time = "2026-07-15T18:54:34.7Z" }, + { url = "https://files.pythonhosted.org/packages/88/26/b3186a21b2acc83e451118978905c81c7072c3333707804db09a78c096a2/coverage-7.15.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:97a5c5457a9fb1d6c4e06cfb5dc835871fbfb6a6a51addc9e925bdeff5ef7440", size = 252935, upload-time = "2026-07-15T18:54:36.548Z" }, + { url = "https://files.pythonhosted.org/packages/20/c2/c9f3376b2e717ea69ed7a6e9a5fcab968fb0b290db6cf4bd9a1fc7541b75/coverage-7.15.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0901cfe6c13bcd2302da4f83e884555d2a22bda6e4c476f09ef204ba20ca536e", size = 254807, upload-time = "2026-07-15T18:54:38.296Z" }, + { url = "https://files.pythonhosted.org/packages/f0/e1/dfc15401f4a8aaeb486e1ba3e9e3c40522a6e38bd0ecf0b3f29cb8082957/coverage-7.15.2-cp312-cp312-win32.whl", hash = "sha256:b171bdd71cb7ff792bf32e376173b0ace7e7963e7e57c58dfc42063a6a7174cd", size = 223641, upload-time = "2026-07-15T18:54:40.103Z" }, + { url = "https://files.pythonhosted.org/packages/91/40/81b6d809d320cd366ec5bdf8176575e897dcb8efe7fb4b489ef9e93e4d13/coverage-7.15.2-cp312-cp312-win_amd64.whl", hash = "sha256:582edc45c2040543fef83341be23c43024a3ab3ae0c2d8bc498a06282905ad40", size = 224172, upload-time = "2026-07-15T18:54:41.882Z" }, + { url = "https://files.pythonhosted.org/packages/ef/28/9f14ec438149f7de557f45518f09b4a7917b795cc37083aa7db482693f8c/coverage-7.15.2-cp312-cp312-win_arm64.whl", hash = "sha256:a638db90c61cd219aeee65e83a24fdaa57269a741ae0cf773309208ac862cee3", size = 223556, upload-time = "2026-07-15T18:54:43.674Z" }, + { url = "https://files.pythonhosted.org/packages/fc/d5/f8c838e6b7282976f7c918884b792df7a0c42c5bba5d99c60ad2d221d56d/coverage-7.15.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1121caa19159a38b5463eaae4b1e1fde81e525b15ecc5e000cd5b1a108f743a8", size = 221606, upload-time = "2026-07-15T18:54:45.448Z" }, + { url = "https://files.pythonhosted.org/packages/bf/37/97c926376364f66298cc44893b89cdf17b8bc406376497c4061ae4b8a8ff/coverage-7.15.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a300c6934e0989c327b9e8a1e110329da4641149f872bbe9f70168be66da76c1", size = 221982, upload-time = "2026-07-15T18:54:47.341Z" }, + { url = "https://files.pythonhosted.org/packages/b7/30/a36050a6e83c2135ee0776f452ca3948224befc6d7f26acecc082d0c106a/coverage-7.15.2-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2617f8799d268fabdeef42a7e89ac3a23e1deee9025427db2df970f99a89a578", size = 252972, upload-time = "2026-07-15T18:54:49.2Z" }, + { url = "https://files.pythonhosted.org/packages/31/d3/06b5f1daf95f0f15ab05bd75f26ba5f3c8b33d0bb72f3aaa3cf41d1bad3a/coverage-7.15.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7dc2950a2992cd676d35c20ae63522836deeb034f08874699d14068710af3dc1", size = 255569, upload-time = "2026-07-15T18:54:51.098Z" }, + { url = "https://files.pythonhosted.org/packages/81/1c/9afb3f8de2b8d36960391c48559a2e3ff96594b58099f115921549ea8d0d/coverage-7.15.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9e36686f7a442185db2400b3df171aac520869faf9deb59df687d28659eda2a6", size = 256806, upload-time = "2026-07-15T18:54:53.145Z" }, + { url = "https://files.pythonhosted.org/packages/64/d8/b989f96061a5e32d82fddd1b1b9ff48a7c8f8ae7606f0e80fd9de54b1e33/coverage-7.15.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7d29ca7bd67af6e12e74632d65f026eabc1364da5c254494cd914446a28a3ef7", size = 258936, upload-time = "2026-07-15T18:54:55.015Z" }, + { url = "https://files.pythonhosted.org/packages/b8/fa/f99771f5110457c7b511c1935ca49ddf288218eaa84322e028b9334146ae/coverage-7.15.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:db9c8438057e5b0f6a22a0af99c0c1d26b57fbbdbd1be5861ddb8f897fcc3a2d", size = 253178, upload-time = "2026-07-15T18:54:57.527Z" }, + { url = "https://files.pythonhosted.org/packages/f6/96/c098a6044d119c751ceede7be91035fa8310170ec24a6523aff72f0a5793/coverage-7.15.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:63022c4c8dec1d0342f05c3ede99842fe3d007689acc45e86f123a1746e4a026", size = 254934, upload-time = "2026-07-15T18:54:59.41Z" }, + { url = "https://files.pythonhosted.org/packages/b2/a2/1457b3a7a50c8d77500103b97a046db863e2f59a1cf6d2f814595f349885/coverage-7.15.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6c0be82b4d4aa5b2704e08518e2252f3e3d110164bcca826816801052e48a7aa", size = 252898, upload-time = "2026-07-15T18:55:01.338Z" }, + { url = "https://files.pythonhosted.org/packages/6c/0e/76958874c471ecfcdde0d2b2747bb2c61bdbf34a40636f4ce9db9923e643/coverage-7.15.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4510fb9cdf6bb02dfa6af0be4a534b8102d086e22e4a33f8836df663da3d660d", size = 257056, upload-time = "2026-07-15T18:55:03.243Z" }, + { url = "https://files.pythonhosted.org/packages/7c/7c/3d7c4e3bf58baa40327dc7edc2272b17cf02299366d52763db1b0ca1556a/coverage-7.15.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:42ec3d989421b174a2ab607c1539f24127ad362757b7f1c0c0d7a2993f7eb37b", size = 252718, upload-time = "2026-07-15T18:55:05.029Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b8/1cecffed9ce14fb25be9ba42d37b6bb61485c9a3ddd43cd3dde36b6087d8/coverage-7.15.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e8f91bce78e32343af184c3b7fa28fcf5a9e2641f4b6623d392038f804939188", size = 254490, upload-time = "2026-07-15T18:55:06.889Z" }, + { url = "https://files.pythonhosted.org/packages/6c/2c/42984561bc7f4c045dca67516a0c50ee5ef8d84352dbeb5559dc86c4823e/coverage-7.15.2-cp313-cp313-win32.whl", hash = "sha256:434e68d531858205895eb0d74b73d20b84260de426387d53c422a5acda2cf050", size = 223647, upload-time = "2026-07-15T18:55:08.941Z" }, + { url = "https://files.pythonhosted.org/packages/41/9f/39c7c9245efc583beddf89a87683574e663ed93637f3afb6cd7b88405676/coverage-7.15.2-cp313-cp313-win_amd64.whl", hash = "sha256:26c3b04a6377fd7c09800921fa934e3a17c0020439cd59df73e73ae1d4b6a78c", size = 224190, upload-time = "2026-07-15T18:55:10.789Z" }, + { url = "https://files.pythonhosted.org/packages/c7/de/3a2883cf8a213659280ef4b403059e17a9acaeb7fc7fd4105e1226ff2e6d/coverage-7.15.2-cp313-cp313-win_arm64.whl", hash = "sha256:3ed010aa1b69cda8e827aabfca9866216c980e2dca82ab9a78c5f83689964c8b", size = 223583, upload-time = "2026-07-15T18:55:12.678Z" }, + { url = "https://files.pythonhosted.org/packages/81/5f/aed265fd7a3551a394f36dfe41868aee709b7f95db4052205b4ad1563ac3/coverage-7.15.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:40f633c5c5fc783732f6312280122e859538fa24461235597c13d803ea9a108a", size = 221650, upload-time = "2026-07-15T18:55:14.527Z" }, + { url = "https://files.pythonhosted.org/packages/6b/2c/222ba12a545189017120f8eddfc1a0bd4616b47d5d4a8d99421edb2fe4c6/coverage-7.15.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:075560438765b7a2ef43bf7aa7758661b53d889df47f062a31bda6c1ade553a2", size = 221988, upload-time = "2026-07-15T18:55:16.674Z" }, + { url = "https://files.pythonhosted.org/packages/aa/38/304b5877ab46e6c290b4292cfcf3fe28245f0e5597cad7f6acc91fc7e0a4/coverage-7.15.2-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:25fd15dd40a0a2c51a500d664ca29053c09c3259d998407bf982b6e114696138", size = 253029, upload-time = "2026-07-15T18:55:18.856Z" }, + { url = "https://files.pythonhosted.org/packages/6c/58/821b533b8db9e44cf1d8a97bd525149ced40dde1d0093da02cb78e715244/coverage-7.15.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b9a6367e4aff723e8ee8190836836124284e8fcd4265e307c844010cfa074f3f", size = 255536, upload-time = "2026-07-15T18:55:21.027Z" }, + { url = "https://files.pythonhosted.org/packages/f1/f2/7aa06604c389d32ea7f0a6a988359a7eafc3cd3f8e7bc2e88cd2fdf0b877/coverage-7.15.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9854ca62c152874b2060772503535be2e8f53f70b8aaa7686b094888d872f984", size = 256881, upload-time = "2026-07-15T18:55:23.125Z" }, + { url = "https://files.pythonhosted.org/packages/a2/4f/1ef342339c7916d0096bc5888cc0f653882cc7bc8f897d5cb89143287c9b/coverage-7.15.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:913b6c56e110da40e035bbd168353bf7aaa2544a5eaccea5d98a4629aac156c7", size = 259196, upload-time = "2026-07-15T18:55:25.099Z" }, + { url = "https://files.pythonhosted.org/packages/fe/f4/7ed055d7a9c5ec13b161773a115a5ccc6b0081d568c31fad830806306cc7/coverage-7.15.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:aaccad4129d735a8a4d526f26929894c9a4e8ef7034566f210b176749d6906e3", size = 253036, upload-time = "2026-07-15T18:55:27.018Z" }, + { url = "https://files.pythonhosted.org/packages/14/79/ea82cca18c242a3a38b6c017da39726aa62dcb64aa635abf79b92009975c/coverage-7.15.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a164b50081fc7357331c4024ef4d17b78ba325f8380d05f5a69599a7e05257ee", size = 254887, upload-time = "2026-07-15T18:55:29.084Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ba/a136db3c0d9562b00e10b72540dbf3a33cd3bc5b95060c9308e247494623/coverage-7.15.2-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:bfd341ccf78128e72c094bc70cc25b3ef309c33c7c2c66ba3ed4309549e02de1", size = 252852, upload-time = "2026-07-15T18:55:31.184Z" }, + { url = "https://files.pythonhosted.org/packages/17/17/ea334246b16b7d059953fad6fdefa11e33c68efbd3fe37b1098120a1fac2/coverage-7.15.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:1473b3ba8e7ee0f076117b1a72c23f579a2b9e2bb742f48a8d86ea27ca93f91a", size = 257128, upload-time = "2026-07-15T18:55:33.163Z" }, + { url = "https://files.pythonhosted.org/packages/ed/c3/074fb66d46d607855f710876b117cbda562c5ab08363528e78820449f937/coverage-7.15.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:17c432b5f73ad52ef46fb06019f6fa7c66ce381961cf0f7dfd1d3a4bd3a98145", size = 252668, upload-time = "2026-07-15T18:55:35.063Z" }, + { url = "https://files.pythonhosted.org/packages/e1/c1/f620850ada9b36435921c9a3a8057013422b1d964eb4bf37fe138724d192/coverage-7.15.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:77f0ef5011df53a4bd1b35211ab122287f8d9b8d7aa1c4553e5c2deb24b1d446", size = 254325, upload-time = "2026-07-15T18:55:37.125Z" }, + { url = "https://files.pythonhosted.org/packages/cc/31/a729ca3689404493af82ef8e6ff70bd88bdda8da89aeef6ca9b387aeb2b4/coverage-7.15.2-cp314-cp314-win32.whl", hash = "sha256:f653e5d7248c1191ec988a85c72edeab46c3ff44f90639a4ed4874ec0be90243", size = 223844, upload-time = "2026-07-15T18:55:39.078Z" }, + { url = "https://files.pythonhosted.org/packages/c6/83/5d809dc808fb1698c671f3e372259bb9158e64b7ea526fc6ab7de64de9fe/coverage-7.15.2-cp314-cp314-win_amd64.whl", hash = "sha256:9911f31aad8906abe337c271343485cf20df5e70df5d2f57f9f136e7b55f26bc", size = 224331, upload-time = "2026-07-15T18:55:41.346Z" }, + { url = "https://files.pythonhosted.org/packages/16/4e/35e488548e952795829e129995c4174df33bf432b591d1aa42c8d9e4e7ad/coverage-7.15.2-cp314-cp314-win_arm64.whl", hash = "sha256:e38def96ad59853824c97953fdcd2c320a84ba3ce99b417db78af8bb6c3db635", size = 223760, upload-time = "2026-07-15T18:55:43.518Z" }, + { url = "https://files.pythonhosted.org/packages/ed/49/dd2c86cd6374038f6e415fb5bfb86db5218553209c081384a020369dee79/coverage-7.15.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:835ec4e20b45f0a7f63ed78f94065aca00de033403df8377bfe8b9c6abc0a7be", size = 222384, upload-time = "2026-07-15T18:55:45.569Z" }, + { url = "https://files.pythonhosted.org/packages/d3/74/173ff17a1c0808e5a438f549f6f145d5ac7528f2791310b63523e3200ac7/coverage-7.15.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7466cc7ab6dc0db871d264bf99e8779f0917ee63d40730af0552f71535a6e072", size = 222647, upload-time = "2026-07-15T18:55:47.544Z" }, + { url = "https://files.pythonhosted.org/packages/84/f8/b8cba872162356fb44ac79c10309d987206a4461e32072fc29228dad7331/coverage-7.15.2-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e370c12133095ff18432de8c044962be85a5a96d90c6fcbce8e17e76236d2328", size = 264013, upload-time = "2026-07-15T18:55:49.768Z" }, + { url = "https://files.pythonhosted.org/packages/ee/67/a807a7586d0b8cae485308ddd55756f0806c92f8e0b411bacbf23c48edf3/coverage-7.15.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fe41909c9515c3bfdb5f02c4d1f857dba322d9a9a1178069b91eea77889df63a", size = 266135, upload-time = "2026-07-15T18:55:51.941Z" }, + { url = "https://files.pythonhosted.org/packages/ce/67/cd78771dc985f7e4ebdcc82b1a96d9a932af9e806f01f2f91a89f4c72e80/coverage-7.15.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6aa28cfb6488e5453b5b762d65f73aa586380f6693a04d58078ce228a29b06c0", size = 268555, upload-time = "2026-07-15T18:55:54.065Z" }, + { url = "https://files.pythonhosted.org/packages/18/3e/10134cf81275188c58568f324fc74aedff32c63ca4d5bbc513a91944a6f0/coverage-7.15.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bcc0aae933921d03096f53b0b03eeb702129fd406dee59f08d2efacc68681fa5", size = 269674, upload-time = "2026-07-15T18:55:56.066Z" }, + { url = "https://files.pythonhosted.org/packages/75/4a/771b77de446cba985dc414bbc5844bd21604da05dbc044286df8318a48a7/coverage-7.15.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7c63387e21ab21f512c69c9756a8c7dadd322c7275edb064064433c9a09c3743", size = 263101, upload-time = "2026-07-15T18:55:58.107Z" }, + { url = "https://files.pythonhosted.org/packages/5f/b5/70a7011da15f4071943361183aefa27847f3e3aec4fd335f1cb3d3a622b1/coverage-7.15.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0e55510bc98ae943cece9e667a6c0fe94c6a92913720dea34243657a17993d0c", size = 266007, upload-time = "2026-07-15T18:56:00.468Z" }, + { url = "https://files.pythonhosted.org/packages/b4/0d/f9547e804ce7ad49646ffeffac26699510efbe6c0f751b66fdc960c4e825/coverage-7.15.2-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:2ff08701be2d1556fc78b326c80a3e8042da09352ecb3819105f8e386c8a3071", size = 263611, upload-time = "2026-07-15T18:56:02.615Z" }, + { url = "https://files.pythonhosted.org/packages/ac/59/f576a396659c0efd351f5c1544f67c3560e89c7761cabf7f65e412beeda5/coverage-7.15.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:38c9518b7103826c403a461544e3c2e77151e8676d06eaed85911a97e962584a", size = 267344, upload-time = "2026-07-15T18:56:04.622Z" }, + { url = "https://files.pythonhosted.org/packages/7c/5d/c2e4fce3579c0cb635024293f1a32bbe26df101b3e3a69f22243d1352b6c/coverage-7.15.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:dee88b1ed88587abd8c0269a1fc1f4cc77f7750d1dfde2869e2a123af420e67d", size = 262456, upload-time = "2026-07-15T18:56:06.641Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/956287d69436b66094bc4b57ac2da71e43bfd2a5524e958900b9f582fcf8/coverage-7.15.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2fbeeeecea279727f8ac16c8e1133ddfeee793e985c86ae343d6a5ce744eef8c", size = 264771, upload-time = "2026-07-15T18:56:08.795Z" }, + { url = "https://files.pythonhosted.org/packages/2c/5a/6f979530c2734c575de77cf58f5f28d51f7123a94b5030fd9156fe5f363c/coverage-7.15.2-cp314-cp314t-win32.whl", hash = "sha256:cb0fddaa6884be6aae36ced9544b5e90f7d5f03845a2853bf47a14953a4e8688", size = 224151, upload-time = "2026-07-15T18:56:10.856Z" }, + { url = "https://files.pythonhosted.org/packages/54/7e/27f6b2a74d484742f4017553e710b01e396b23d809df3e95ca0bb9a2824b/coverage-7.15.2-cp314-cp314t-win_amd64.whl", hash = "sha256:77f091ea3a9cc611cd29f433565476bc1936c084ac8eee00ea0e7e70c27e4199", size = 224981, upload-time = "2026-07-15T18:56:12.928Z" }, + { url = "https://files.pythonhosted.org/packages/b1/48/284863423aa474240f6842bd00d680da22f4e6ea2e466618ef7c9c9e69a9/coverage-7.15.2-cp314-cp314t-win_arm64.whl", hash = "sha256:6fc448c377d6eeb00a47c673494bd9bae29280ca53987e1869e67ebedfe20658", size = 224294, upload-time = "2026-07-15T18:56:15.156Z" }, + { url = "https://files.pythonhosted.org/packages/ec/82/32e3bd191d498e64f6f911ad55d14006a0861e54869d2d32452326399e65/coverage-7.15.2-py3-none-any.whl", hash = "sha256:eb6bcae8d1a9d305351ecb108232441d11c5cfe9de840a04388ba5d2db8d735c", size = 213375, upload-time = "2026-07-15T18:56:17.305Z" }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli", marker = "python_full_version <= '3.11'" }, +] + +[[package]] +name = "cryptography" +version = "49.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/99/d1c90d6041656cc6ee229dc99cd67fd0cd5aec3c5f7d72fffc27cc750054/cryptography-49.0.0.tar.gz", hash = "sha256:f89660a348f4f78a92366240a61404e337586ef7f5909a2fef59ca88ef505493", size = 854345, upload-time = "2026-06-12T20:02:30.512Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/22/adf66990e63584a68dfb50c24f48a125c07b1699899381c8151e63ed458c/cryptography-49.0.0-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:966fe0e9c67490071f14c0d2b1cb2dfb3023c5ce39457343931415f08382f2db", size = 4032100, upload-time = "2026-06-12T20:02:32.143Z" }, + { url = "https://files.pythonhosted.org/packages/09/41/3797cfaf69cae04a13ee78ebd83f0678d9c02b4779d21ce24445326f1a69/cryptography-49.0.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:36d1709f992593689b45bda411498d62c6e365f2ca00b84657d4dadd24de16db", size = 4692978, upload-time = "2026-06-12T20:01:21.305Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8b/43011f7ebe515a8aa20d61f290a326cd890c2e738e16e59eaff8d9c3a412/cryptography-49.0.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0e959b578856a3924bc0cbb710fc12c387b9412a951389f3ca61704a9e25f325", size = 4716422, upload-time = "2026-06-12T20:01:48.566Z" }, + { url = "https://files.pythonhosted.org/packages/4a/91/01ce7303a4579e6d3a6abef01bd322848e9ea7a219adcabc5048b9033571/cryptography-49.0.0-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:53ecee2e23f7169b6117e99fc8a944e5e50f79e69758a83b52a00cb98ab2b2d2", size = 4700503, upload-time = "2026-06-12T20:02:47.091Z" }, + { url = "https://files.pythonhosted.org/packages/62/99/a2c95cf8293f07491e9e27c20cc4dcd18176d944e674679adeb1d0173fd6/cryptography-49.0.0-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:2eda353d8a27bcbcaa4cbed18994a74ab4d19a2ca897db188ea269ab9b71419b", size = 5309779, upload-time = "2026-06-12T20:02:08.987Z" }, + { url = "https://files.pythonhosted.org/packages/20/2c/0622f20ff02b2ef32558733443805dc82fd4c275be01b2d19d14676f3a1b/cryptography-49.0.0-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2afe9051da7ae7bd5905da5a949280c7d2bb75682e188f650a9d0f2756b834c6", size = 4749683, upload-time = "2026-06-12T20:02:03.335Z" }, + { url = "https://files.pythonhosted.org/packages/a3/5b/c5246635d5fd3b64e0d45ae10e99fd32fe9676a79915ccfe5a61ba9af1a5/cryptography-49.0.0-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:0b82e28ee398a386f0807bba7884d30f25218855690f45115831bcce5d90822c", size = 4337874, upload-time = "2026-06-12T20:02:54.323Z" }, + { url = "https://files.pythonhosted.org/packages/6d/88/05563c7fe2e914e87d1a536d06fe83e66b4e1d95cb593e05aea375531da8/cryptography-49.0.0-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ccac2bfebc306b862133e3bb71f3f6ee8bb525240089b2d952e4144b3a6d5da7", size = 4700283, upload-time = "2026-06-12T20:01:34.822Z" }, + { url = "https://files.pythonhosted.org/packages/c4/b6/d7696e4e890d6ae1469935164c9e5215c557671cb78d6e3f458ccceaa632/cryptography-49.0.0-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:d0527ce944105f257f605a827d6ebead966c752038b6e8656abb9c5edee6fc68", size = 5265844, upload-time = "2026-06-12T20:01:24.09Z" }, + { url = "https://files.pythonhosted.org/packages/a9/3c/f3ad17eecc1a57b0ba236dc01f90e783c51f4a2f35f64777cc4f47a184b2/cryptography-49.0.0-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:cbc77da8c523d5abd028635ba850a6966fcee2c82e2bf65a41d1d8afe0f98be9", size = 4749290, upload-time = "2026-06-12T20:01:30.848Z" }, + { url = "https://files.pythonhosted.org/packages/4f/01/339573cf1023163a400b0b5d16f6d507de413b9f60be6fd1b77feeaf6737/cryptography-49.0.0-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b87e65d263b3e5d3bb92a57e2a6638e2f31110fa7aa890c7b2dbba42248d0a3f", size = 4834612, upload-time = "2026-06-12T20:01:29.246Z" }, + { url = "https://files.pythonhosted.org/packages/71/fd/577302e213a1be9468f92d1afef66fcf1ef83d516819d9992ca547f592bd/cryptography-49.0.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:66ec79c3904820572d7e987abdf304281f141d37ad9a489b8e97066e7b9b6459", size = 4980804, upload-time = "2026-06-12T20:01:42.853Z" }, + { url = "https://files.pythonhosted.org/packages/1f/09/f42b1d190c5ba75f72062a387f8030d1d75f6ab035788f1d9c4b01de6525/cryptography-49.0.0-cp311-abi3-win_amd64.whl", hash = "sha256:e5dfc1e64de5677cec922ffa8da89c546d0415bf6efdf081842e5d44c84e1f0e", size = 3810026, upload-time = "2026-06-12T20:02:39.262Z" }, + { url = "https://files.pythonhosted.org/packages/ec/9e/db72b3ae7fc9cfad53e630e56c6ae83b9b6ff0bf3718ffb8012d20b3aabf/cryptography-49.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:73a205dce83953d131a4aa1e0fd917a2fd1c5b1eef251e9d7152efefcbf5caf7", size = 4013892, upload-time = "2026-06-12T20:02:10.735Z" }, + { url = "https://files.pythonhosted.org/packages/86/12/c48a424f38db03027be9f7ed5c7dc5de9933dbee992865f98b13727a009d/cryptography-49.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:196ecd6a36e4e9aa10270393bb98d8df88fccee0bf1e5128b91ae4eb4375896d", size = 4678835, upload-time = "2026-06-12T20:02:48.743Z" }, + { url = "https://files.pythonhosted.org/packages/68/28/8a3ad4653662c93fc44dc4e5d8fd374c25c42e07b34bbfbadf49cf57a5a8/cryptography-49.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7abcee80084cda3f7691f3eb1ce480d8df49cec637b429aa35986c1de71738aa", size = 4697239, upload-time = "2026-06-12T20:02:56.03Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b2/2193fc74f81aee4f9b62733133b73b5176718932ed8f2e4b03fa040480a6/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:4ae387c9cb68ea569ca17e490d66d8142b81c3cc814bf179974b7d146e490bbb", size = 4685593, upload-time = "2026-06-12T20:02:50.666Z" }, + { url = "https://files.pythonhosted.org/packages/47/f1/1d3eaa243bfc5de4a187b22aa8c048b3e4980bfbe830ac46e6bac2e66947/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:f37d847238971164fdbc68ade6f6574aecc9c0af714190e2083429ff68f4ce9d", size = 5289961, upload-time = "2026-06-12T20:01:46.468Z" }, + { url = "https://files.pythonhosted.org/packages/58/39/2d51306721330c486495853eda1c567880ff036de15a14c4b74f399934af/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:c2bc30226390d60ea19d9f82b19db005fe0452154a23c1c410c12ea801e43561", size = 4731145, upload-time = "2026-06-12T20:02:16.832Z" }, + { url = "https://files.pythonhosted.org/packages/17/50/983e838c7fd0d87fd8c969bcdd328edaf5f756e38df5281637424c155873/cryptography-49.0.0-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:07cab27cc7b7e0fd28e5e26bb9eeedde5c135c868b46de4a27845abe94af6122", size = 4321719, upload-time = "2026-06-12T20:02:52.611Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f5/8f571d7e27c55bce9f76f026143bcb1e040a4233149ecca0bea5fa5dd5f7/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:b20133d204d2bb56ba047642199603876c872026ca53e79c35b83772ab2cc505", size = 4685209, upload-time = "2026-06-12T20:02:07.282Z" }, + { url = "https://files.pythonhosted.org/packages/e7/84/0e27016a6fc5a0886f797018b26aa42f40c09a82332bff77822a451deaaa/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b970c6da94d5bb18629db453d14f2a1300f6bf59b61e9b82377931ef95504866", size = 5246285, upload-time = "2026-06-12T20:01:32.439Z" }, + { url = "https://files.pythonhosted.org/packages/11/2d/5e1fb307cb5931881516b464c98774b3f2c36b5d4bb9a2830253cf553cad/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d8ecde755e2e91bf773fc94e8c9d730cd7f2007004cb492263a794ec3899a1c8", size = 4730441, upload-time = "2026-06-12T20:02:01.469Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c0/bff5a02ee731d207d6a1ed51732549d8c53d2bc8da1d10ec6f2844201d68/cryptography-49.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e3fb64c420688e5319ae25113a354015abbd8dffbfbc41781a1ea66fc7622ac3", size = 4815869, upload-time = "2026-06-12T20:01:36.574Z" }, + { url = "https://files.pythonhosted.org/packages/b9/26/814681d14248d95d73d5c3eea0c39a94eb8302df966f670a2c60de90974b/cryptography-49.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32703d93296f5c1f4b53349ad3a250c2cae0fdecd3a3dd5d47e616d8d616af27", size = 4960948, upload-time = "2026-06-12T20:02:18.688Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fe/93ecac273d3738939d023612ad12cca9a3740a5345d69fda04134c43fd96/cryptography-49.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:33cd0565932807baddb67b96dbee92f2c374b5c89dee09fd74079aeb8c8dba61", size = 3799153, upload-time = "2026-06-12T20:01:39.059Z" }, + { url = "https://files.pythonhosted.org/packages/19/2a/5bb823f5bedcf80718cea7fbc95ec5515cca3769633c4b01a32be7f30e7c/cryptography-49.0.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:ec5e529fb80935c94fe7b729f9972b50e351a0e6b50aa294fd5cabb109fcc29a", size = 4025947, upload-time = "2026-06-12T20:01:25.745Z" }, + { url = "https://files.pythonhosted.org/packages/3d/df/40577043ca124e17012f408ddddaeb213b856336ac82ddb3bc915f39e29f/cryptography-49.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f78ff2c9ed8dc2d036b0f4d640e22522213d047c1b14e61205a7e55c80a494d4", size = 4692429, upload-time = "2026-06-12T20:01:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/2c/99/2d13299eb3dd27b02dcfaafcc91d6b5cb3329f7cbd6d8f51921acd566c1a/cryptography-49.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:35b151772baff2c74cba7fa290ceaff4c3b11c0c881eb93eb5dbc05a7cfbba18", size = 4700968, upload-time = "2026-06-12T20:02:45.383Z" }, + { url = "https://files.pythonhosted.org/packages/a5/4d/9c0cd02f95e2602dd5e563da149ee0830abef3537be8b34dc56281ebe27a/cryptography-49.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0f21641cf4b30fca7aee061ced0ec7ad7b073518088b7c9969a297c0ae796c69", size = 4697758, upload-time = "2026-06-12T20:01:41.13Z" }, + { url = "https://files.pythonhosted.org/packages/24/01/186c825898477d77e2324d5360fefe622ff1d8d1963ec0554e2cada8ec77/cryptography-49.0.0-cp39-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:9e82dcc8e56052715fb18b2429e3bca4823b1629136a2084fc45a9a5cecb9b64", size = 5298863, upload-time = "2026-06-12T20:02:24.579Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7b/62cbbab75d0659865bf0273790031544a0b16c8072d258f9428dcd8190dc/cryptography-49.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6f2debedf9ca60cf1d5bd466475638af5130f89965605cd818484d19987d3a21", size = 4735983, upload-time = "2026-06-12T20:01:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/6c/72/3e798c064bc39e471008075d0f9bc9daf77a80879c092e4a8e170c585ed4/cryptography-49.0.0-cp39-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:8c25ceb16df5b9435f3f6a9829204985b0e0cbee3b48aacd432c7d2c850b44d9", size = 4334173, upload-time = "2026-06-12T20:01:44.743Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ee/6fca21d1ac73e06f8bef71940abfd4d2f6472b4bca284d770f32bd4086f6/cryptography-49.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:28d8b15e6275f12c8a207dc309dfa957903c927d08d0cc937ee3f63f200693cc", size = 4697298, upload-time = "2026-06-12T20:02:20.918Z" }, + { url = "https://files.pythonhosted.org/packages/67/d0/a5fcd3515f0bae49a7b6d0413cc1bdccdcc1fc0047037a0d480642cdc5d6/cryptography-49.0.0-cp39-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:6fc361c34fb6aac015ce19435876635e5c6d21db31998b0920f675f131e043b8", size = 5254338, upload-time = "2026-06-12T20:02:22.737Z" }, + { url = "https://files.pythonhosted.org/packages/a0/84/84fe36f19caf857d61cb7fc9c63035a47ffabd84ea12d1d393148efa3615/cryptography-49.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:2400ef9c9e2299a25614eb1dea3db54a69b1349efd043bfac9c67630d136df36", size = 4735650, upload-time = "2026-06-12T20:02:41.389Z" }, + { url = "https://files.pythonhosted.org/packages/6c/a0/db537264e234f7273a73ec020873d6d6b39dfd8a53db78b550ca8320440e/cryptography-49.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:67e1d20ad9ef3a563c59ef22e7a8a0b8210bd26604369ea4a30a7c66aefe504e", size = 4834820, upload-time = "2026-06-12T20:01:51.847Z" }, + { url = "https://files.pythonhosted.org/packages/93/77/8df9eb486495979bccecd1062e2eaf435250e84437040295b57d09048b0b/cryptography-49.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:42b0684e0e40cf26122427802486f6d93aea593612603a94fbf260c7eb1e9c1b", size = 4967968, upload-time = "2026-06-12T20:02:12.524Z" }, + { url = "https://files.pythonhosted.org/packages/c2/e6/f60198ea8d9dfa15fff9ed4ca02ce362f6eadd9ba757dcc50634c4257b63/cryptography-49.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:026ac7423e6fa66872d3bf889be5974507da3944f866f704fa200eadacd00001", size = 3785547, upload-time = "2026-06-12T20:02:26.847Z" }, + { url = "https://files.pythonhosted.org/packages/63/d3/4a83af35d65e3fad632c926fad684c193ea4398569ccb0bbbc7fe8f5dc9a/cryptography-49.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:fc1e275c2f1d97b1a6450b8b0ea3ebfa6e087a611c2b26cb2404d48588abab7b", size = 3993685, upload-time = "2026-06-12T20:02:14.883Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a7/f9dac0ab7f80368c56993a7bf638ef9935f825c91902798481fac0898138/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83782480a4a9da4d0feb51950131ba32e12e70813848b3343f6e18c28a66838", size = 4676239, upload-time = "2026-06-12T20:02:28.793Z" }, + { url = "https://files.pythonhosted.org/packages/d7/70/2ba3769dd0ae167e2f33dfa9592d45db6ff9a61d62ca1a5b3d1bdd09068f/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b39efa323140595abd3ecca8529d321ae50f55f3aa3ba9cc81ea56a6011953d5", size = 4715584, upload-time = "2026-06-12T20:01:27.495Z" }, + { url = "https://files.pythonhosted.org/packages/94/64/2923570ac1c0bd3a737aa366ac3abbbbde273042308b8cde95e2364a6e6a/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:b47db11c2c3525083296069b98ac5221907455e989ae0c2e3008bde851921615", size = 4675885, upload-time = "2026-06-12T20:01:55.49Z" }, + { url = "https://files.pythonhosted.org/packages/ab/f8/614dc7e051418cfe53d55173c1e24c6b0085e89996fe90508c2fdf769aef/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:084ef1af862eb07ec46d25f68689f2102a9fc0e05ce7b80f14f5fe51e4eef0f6", size = 4715449, upload-time = "2026-06-12T20:02:05.469Z" }, + { url = "https://files.pythonhosted.org/packages/aa/50/a9caea39ad19c431c1a3f8a31114df65b260cdfe67786b6c7e7c040c4c44/cryptography-49.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be9fcb48a55f023493482827d4f459bd263cc20efde64f204b97c123201850c6", size = 3783731, upload-time = "2026-06-12T20:02:43.319Z" }, +] + +[[package]] +name = "cuda-bindings" +version = "13.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cuda-pathfinder", marker = "python_full_version < '3.15' and sys_platform != 'win32'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/21/8464d133752951c154feafb3b65c297e7d80f301183d220bec4c830f1441/cuda_bindings-13.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:120fcc53d57903df529c3486962c56528cba5b7d6c57c99537320ed9922c8b86", size = 6073403, upload-time = "2026-05-29T23:11:36.22Z" }, + { url = "https://files.pythonhosted.org/packages/a8/1f/5ef51f5fbaa5d4d3201bb3d7555af028ec1aa4416275ccbf73c9e34e3d2d/cuda_bindings-13.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9851b0caa8bfd3bc6fa054eaf57bea7c8e9c3a62db2d2621224677f49f3c53d0", size = 6675244, upload-time = "2026-05-29T23:11:38.664Z" }, + { url = "https://files.pythonhosted.org/packages/51/6b/457ca12dad3ee9bfcc9a545cfd6b64b359ba49de40f776f6e028e678f262/cuda_bindings-13.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5879712accf6e14bb01aa5e67440eb84998b8d104b509cc7a6dc0b8f656a474", size = 6053539, upload-time = "2026-05-29T23:11:43.19Z" }, + { url = "https://files.pythonhosted.org/packages/95/7a/c5e3c34a409b148f5c0f5a4ea374158f95d488862c1dffedf9aa5c639df9/cuda_bindings-13.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:04436a9364059c84b8f9636f359eccda1cf814341f5b670c71d80d2f79dbc708", size = 6674166, upload-time = "2026-05-29T23:11:45.478Z" }, + { url = "https://files.pythonhosted.org/packages/ce/67/5e7dba1ba576dd73da5dee894ca076ca5e959450dfff66d6d510a255d1f7/cuda_bindings-13.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7855c4868aabc0cfae28abbe83d56734bdfbd08f08fc234ac1912a12858bf49", size = 6025351, upload-time = "2026-05-29T23:11:49.685Z" }, + { url = "https://files.pythonhosted.org/packages/39/2a/6d2e9047d1fb243dbaa364b01e0297534b9ed7fd27dba1c9f361519cf69b/cuda_bindings-13.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e32d08f71ebcdf00f0f41eab2eb37e8da94c8ed411cc9f7f7a019ce6b34abe3a", size = 6657965, upload-time = "2026-05-29T23:11:52.227Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6e/2394f8163360f8391f8f1b7e72d300a82724edb81a7b7084c799fbd4c91f/cuda_bindings-13.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9efb21c1ee64981e184b9e0ba5eb3179e5ba3d4b51665a6cb52b8ef3d01a7cbf", size = 5920504, upload-time = "2026-05-29T23:11:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/34/c2/ef9b6a63f7dc432712a462c816662e662e00d38caa9b861c8c2588195d03/cuda_bindings-13.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2732904099e0a4d4db774a5fc6d91ee95fae065b4d2ecabb4968c5fe2406c9d7", size = 6476660, upload-time = "2026-05-29T23:11:59.188Z" }, + { url = "https://files.pythonhosted.org/packages/b1/81/bff68ce829999c1e4209c761bbf903b1c06ec570416ddb25020864ad5907/cuda_bindings-13.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ab2f74ed65bfef4163ba07a8db16f1085e0729291db12a2423aff84ee8278b8", size = 6013639, upload-time = "2026-05-29T23:12:03.509Z" }, + { url = "https://files.pythonhosted.org/packages/d4/e0/c8a1f0c8f9ffdea4f5fe6dbab89b326cef4d85caf489dad39e209da89416/cuda_bindings-13.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:efd4c814d311ec08c981f6dded1dbe7d4b371067ee4f6c14cccec4bde9590f80", size = 6534419, upload-time = "2026-05-29T23:12:05.633Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/83b1f563925b290f2d11a01a77a84013ba56052fe3653a5bef3ccfbb43d6/cuda_bindings-13.3.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3c772dfff49681541d59630c90f858e173ac926b9c593a2b7123f2a1043cc76", size = 5809771, upload-time = "2026-05-29T23:12:10.422Z" }, + { url = "https://files.pythonhosted.org/packages/12/20/e79b4bfe98f075195afb6343d41c498f9dbd2d161d7021d4d28bceb83581/cuda_bindings-13.3.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:36febb7c1079d68a981dbbd8d5a67235b399802b82075c9388624719607e52b9", size = 6358584, upload-time = "2026-05-29T23:12:12.767Z" }, +] + +[[package]] +name = "cuda-pathfinder" +version = "1.5.6" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/53/8fc9b0cdc5b7f62746e6a01b85b6461e5ae27f871010a5fcf8fa6950766d/cuda_pathfinder-1.5.6-py3-none-any.whl", hash = "sha256:7e4c07c117b78ba1fb35dac4c444d21f3677b1b1ff56175c53a8e3025c5b43c0", size = 52972, upload-time = "2026-06-30T00:58:04.34Z" }, +] + +[[package]] +name = "cuda-toolkit" +version = "13.0.3.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/c7/a79086a62c98befcdb8349656c6f114e2db3b8b2422f6e25c97a7f2a9a3c/cuda_toolkit-13.0.3.0-py2.py3-none-any.whl", hash = "sha256:d693caaa261214ddd7dbb60d68e71cbed884e68c2be7509778f3051da0b91c3f", size = 2512, upload-time = "2026-04-14T00:50:08.173Z" }, +] + +[package.optional-dependencies] +cublas = [ + { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +cudart = [ + { name = "nvidia-cuda-runtime", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +cufft = [ + { name = "nvidia-cufft", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +cufile = [ + { name = "nvidia-cufile", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +cupti = [ + { name = "nvidia-cuda-cupti", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +curand = [ + { name = "nvidia-curand", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +cusolver = [ + { name = "nvidia-cublas", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-cusolver", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +cusparse = [ + { name = "nvidia-cusparse", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +nvjitlink = [ + { name = "nvidia-nvjitlink", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +nvrtc = [ + { name = "nvidia-cuda-nvrtc", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] +nvtx = [ + { name = "nvidia-nvtx", marker = "(platform_machine == 'aarch64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'linux')" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, +] + +[[package]] +name = "cyclonedx-python-lib" +version = "11.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "license-expression" }, + { name = "packageurl-python" }, + { name = "py-serializable" }, + { name = "sortedcontainers" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/75/c9/5d0ccdd19bc7d8ab803b90695c1706aa2ea8529685d18e682dc2524d2630/cyclonedx_python_lib-11.11.0.tar.gz", hash = "sha256:4b3194db72b613717f2912447e67ab618c75ff7dcac6c4af3c0e9e1ac617c102", size = 1442983, upload-time = "2026-06-17T11:57:49.055Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/f3/56ccb2884aaa3db5622368e5191a3384b15f35392aa93df8b2f508c660d2/cyclonedx_python_lib-11.11.0-py3-none-any.whl", hash = "sha256:3049fc83e06a059b5c5907a527625a8ed5073caab10607ed4c9e5503b590fd44", size = 528689, upload-time = "2026-06-17T11:57:47.358Z" }, +] + +[[package]] +name = "cymem" +version = "2.0.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/2f0fbb32535c3731b7c2974c569fb9325e0a38ed5565a08e1139a3b71e82/cymem-2.0.13.tar.gz", hash = "sha256:1c91a92ae8c7104275ac26bd4d29b08ccd3e7faff5893d3858cb6fadf1bc1588", size = 12320, upload-time = "2025-11-14T14:58:36.902Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/14/462018dd384ee1848ac9c1951534a813a325abbfc161a74e2cbcb38d2469/cymem-2.0.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8efc4f308169237aade0e82877a65a563833dec32eb7ab2326120253e0e9e918", size = 43747, upload-time = "2025-11-14T14:57:11.287Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9b/c123ba65dddcd8a2bc0b3c9046766c15abe0e257c315b3040eed22cce1e2/cymem-2.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e03bb575a96c59bc210d7d59862747f0012696b0dac3427ce8af33c7afb3d4a2", size = 43328, upload-time = "2025-11-14T14:57:12.578Z" }, + { url = "https://files.pythonhosted.org/packages/bd/be/7b7a4cf9cd2d37e674612a86fc90b3d59bff12177f83430e62b25afaf7fc/cymem-2.0.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1775d3fd34cf099929b79c3e48469283642463f977af6801231f3c0e5d9c9369", size = 231539, upload-time = "2025-11-14T14:57:14.441Z" }, + { url = "https://files.pythonhosted.org/packages/79/6d/d165c38cd4caaaf60942e2cec9998b667008f2384047ccfe0b4b5f7a1ffe/cymem-2.0.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:84e2976e38cd663f758e40b5497fa5cd183d7c5fb0d04ce81a4b42a1ba124ff0", size = 229674, upload-time = "2025-11-14T14:57:15.685Z" }, + { url = "https://files.pythonhosted.org/packages/95/c1/af83c03a93f890ca81149561b18a4a67a9aa36a1109f15e291dd2703ab12/cymem-2.0.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed9de1b9b042f76fe5c312e4359eab58bf52ac7dfdf6887368a760410d809440", size = 229805, upload-time = "2025-11-14T14:57:17.289Z" }, + { url = "https://files.pythonhosted.org/packages/03/2d/12900758b80345d9aed5892a9d61e8a5f6abbbe5837e4def373a53cd0da2/cymem-2.0.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1366c7437a209230f4b797fae10227a8206d4021d37c9f9c0d31fd97ea4feb35", size = 234018, upload-time = "2025-11-14T14:57:18.512Z" }, + { url = "https://files.pythonhosted.org/packages/a6/8b/5fcf5430fc81098aef58cc20340e51f37b49b9d8c15766e0d5d63e7288a3/cymem-2.0.13-cp310-cp310-win_amd64.whl", hash = "sha256:7700b116524b087e0169f10f267539223b48240ef2734c3a727a9e6b4db9a671", size = 40102, upload-time = "2025-11-14T14:57:19.972Z" }, + { url = "https://files.pythonhosted.org/packages/0d/d3/cb6c83758fe399443b858faafb7096b72535621a7af7dd9a54ff0989fa14/cymem-2.0.13-cp310-cp310-win_arm64.whl", hash = "sha256:c8dbfddfe5c604974e17c6f373cedd4d25cd67f84812ede7dea12128fa0c2015", size = 36282, upload-time = "2025-11-14T14:57:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/10/64/1db41f7576a6b69f70367e3c15e968fd775ba7419e12059c9966ceb826f8/cymem-2.0.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:673183466b0ff2e060d97ec5116711d44200b8f7be524323e080d215ee2d44a5", size = 43587, upload-time = "2025-11-14T14:57:22.39Z" }, + { url = "https://files.pythonhosted.org/packages/81/13/57f936fc08551323aab3f92ff6b7f4d4b89d5b4e495c870a67cb8d279757/cymem-2.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bee2791b3f6fc034ce41268851462bf662ff87e8947e35fb6dd0115b4644a61f", size = 43139, upload-time = "2025-11-14T14:57:23.363Z" }, + { url = "https://files.pythonhosted.org/packages/32/a6/9345754be51e0479aa387b7b6cffc289d0fd3201aaeb8dade4623abd1e02/cymem-2.0.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f3aee3adf16272bca81c5826eed55ba3c938add6d8c9e273f01c6b829ecfde22", size = 245063, upload-time = "2025-11-14T14:57:24.839Z" }, + { url = "https://files.pythonhosted.org/packages/d6/01/6bc654101526fa86e82bf6b05d99b2cd47c30a333cfe8622c26c0592beb2/cymem-2.0.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:30c4e75a3a1d809e89106b0b21803eb78e839881aa1f5b9bd27b454bc73afde3", size = 244496, upload-time = "2025-11-14T14:57:26.42Z" }, + { url = "https://files.pythonhosted.org/packages/c4/fb/853b7b021e701a1f41687f3704d5f469aeb2a4f898c3fbb8076806885955/cymem-2.0.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec99efa03cf8ec11c8906aa4d4cc0c47df393bc9095c9dd64b89b9b43e220b04", size = 243287, upload-time = "2025-11-14T14:57:27.542Z" }, + { url = "https://files.pythonhosted.org/packages/d4/2b/0e4664cafc581de2896d75000651fd2ce7094d33263f466185c28ffc96e4/cymem-2.0.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c90a6ecba994a15b17a3f45d7ec74d34081df2f73bd1b090e2adc0317e4e01b6", size = 248287, upload-time = "2025-11-14T14:57:29.055Z" }, + { url = "https://files.pythonhosted.org/packages/21/0f/f94c6950edbfc2aafb81194fc40b6cacc8e994e9359d3cb4328c5705b9b5/cymem-2.0.13-cp311-cp311-win_amd64.whl", hash = "sha256:ce821e6ba59148ed17c4567113b8683a6a0be9c9ac86f14e969919121efb61a5", size = 40116, upload-time = "2025-11-14T14:57:30.592Z" }, + { url = "https://files.pythonhosted.org/packages/00/df/2455eff6ac0381ff165db6883b311f7016e222e3dd62185517f8e8187ed0/cymem-2.0.13-cp311-cp311-win_arm64.whl", hash = "sha256:0dca715e708e545fd1d97693542378a00394b20a37779c1ae2c8bdbb43acef79", size = 36349, upload-time = "2025-11-14T14:57:31.573Z" }, + { url = "https://files.pythonhosted.org/packages/c9/52/478a2911ab5028cb710b4900d64aceba6f4f882fcb13fd8d40a456a1b6dc/cymem-2.0.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8afbc5162a0fe14b6463e1c4e45248a1b2fe2cbcecc8a5b9e511117080da0eb", size = 43745, upload-time = "2025-11-14T14:57:32.52Z" }, + { url = "https://files.pythonhosted.org/packages/f9/71/f0f8adee945524774b16af326bd314a14a478ed369a728a22834e6785a18/cymem-2.0.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9251d889348fe79a75e9b3e4d1b5fa651fca8a64500820685d73a3acc21b6a8", size = 42927, upload-time = "2025-11-14T14:57:33.827Z" }, + { url = "https://files.pythonhosted.org/packages/62/6d/159780fe162ff715d62b809246e5fc20901cef87ca28b67d255a8d741861/cymem-2.0.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:742fc19764467a49ed22e56a4d2134c262d73a6c635409584ae3bf9afa092c33", size = 258346, upload-time = "2025-11-14T14:57:34.917Z" }, + { url = "https://files.pythonhosted.org/packages/eb/12/678d16f7aa1996f947bf17b8cfb917ea9c9674ef5e2bd3690c04123d5680/cymem-2.0.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f190a92fe46197ee64d32560eb121c2809bb843341733227f51538ce77b3410d", size = 260843, upload-time = "2025-11-14T14:57:36.503Z" }, + { url = "https://files.pythonhosted.org/packages/31/5d/0dd8c167c08cd85e70d274b7235cfe1e31b3cebc99221178eaf4bbb95c6f/cymem-2.0.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d670329ee8dbbbf241b7c08069fe3f1d3a1a3e2d69c7d05ea008a7010d826298", size = 254607, upload-time = "2025-11-14T14:57:38.036Z" }, + { url = "https://files.pythonhosted.org/packages/b7/c9/d6514a412a1160aa65db539836b3d47f9b59f6675f294ec34ae32f867c82/cymem-2.0.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a84ba3178d9128b9ffb52ce81ebab456e9fe959125b51109f5b73ebdfc6b60d6", size = 262421, upload-time = "2025-11-14T14:57:39.265Z" }, + { url = "https://files.pythonhosted.org/packages/dd/fe/3ee37d02ca4040f2fb22d34eb415198f955862b5dd47eee01df4c8f5454c/cymem-2.0.13-cp312-cp312-win_amd64.whl", hash = "sha256:2ff1c41fd59b789579fdace78aa587c5fc091991fa59458c382b116fc36e30dc", size = 40176, upload-time = "2025-11-14T14:57:40.706Z" }, + { url = "https://files.pythonhosted.org/packages/94/fb/1b681635bfd5f2274d0caa8f934b58435db6c091b97f5593738065ddb786/cymem-2.0.13-cp312-cp312-win_arm64.whl", hash = "sha256:6bbd701338df7bf408648191dff52472a9b334f71bcd31a21a41d83821050f67", size = 35959, upload-time = "2025-11-14T14:57:41.682Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0f/95a4d1e3bebfdfa7829252369357cf9a764f67569328cd9221f21e2c952e/cymem-2.0.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:891fd9030293a8b652dc7fb9fdc79a910a6c76fc679cd775e6741b819ffea476", size = 43478, upload-time = "2025-11-14T14:57:42.682Z" }, + { url = "https://files.pythonhosted.org/packages/bf/a0/8fc929cc29ae466b7b4efc23ece99cbd3ea34992ccff319089c624d667fd/cymem-2.0.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:89c4889bd16513ce1644ccfe1e7c473ba7ca150f0621e66feac3a571bde09e7e", size = 42695, upload-time = "2025-11-14T14:57:43.741Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b3/deeb01354ebaf384438083ffe0310209ef903db3e7ba5a8f584b06d28387/cymem-2.0.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:45dcaba0f48bef9cc3d8b0b92058640244a95a9f12542210b51318da97c2cf28", size = 250573, upload-time = "2025-11-14T14:57:44.81Z" }, + { url = "https://files.pythonhosted.org/packages/36/36/bc980b9a14409f3356309c45a8d88d58797d02002a9d794dd6c84e809d3a/cymem-2.0.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e96848faaafccc0abd631f1c5fb194eac0caee4f5a8777fdbb3e349d3a21741c", size = 254572, upload-time = "2025-11-14T14:57:46.023Z" }, + { url = "https://files.pythonhosted.org/packages/fd/dd/a12522952624685bd0f8968e26d2ed6d059c967413ce6eb52292f538f1b0/cymem-2.0.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e02d3e2c3bfeb21185d5a4a70790d9df40629a87d8d7617dc22b4e864f665fa3", size = 248060, upload-time = "2025-11-14T14:57:47.605Z" }, + { url = "https://files.pythonhosted.org/packages/08/11/5dc933ddfeb2dfea747a0b935cb965b9a7580b324d96fc5f5a1b5ff8df29/cymem-2.0.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fece5229fd5ecdcd7a0738affb8c59890e13073ae5626544e13825f26c019d3c", size = 254601, upload-time = "2025-11-14T14:57:48.861Z" }, + { url = "https://files.pythonhosted.org/packages/70/66/d23b06166864fa94e13a98e5922986ce774832936473578febce64448d75/cymem-2.0.13-cp313-cp313-win_amd64.whl", hash = "sha256:38aefeb269597c1a0c2ddf1567dd8605489b661fa0369c6406c1acd433b4c7ba", size = 40103, upload-time = "2025-11-14T14:57:50.396Z" }, + { url = "https://files.pythonhosted.org/packages/2f/9e/c7b21271ab88a21760f3afdec84d2bc09ffa9e6c8d774ad9d4f1afab0416/cymem-2.0.13-cp313-cp313-win_arm64.whl", hash = "sha256:717270dcfd8c8096b479c42708b151002ff98e434a7b6f1f916387a6c791e2ad", size = 36016, upload-time = "2025-11-14T14:57:51.611Z" }, + { url = "https://files.pythonhosted.org/packages/7f/28/d3b03427edc04ae04910edf1c24b993881c3ba93a9729a42bcbb816a1808/cymem-2.0.13-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7e1a863a7f144ffb345397813701509cfc74fc9ed360a4d92799805b4b865dd1", size = 46429, upload-time = "2025-11-14T14:57:52.582Z" }, + { url = "https://files.pythonhosted.org/packages/35/a9/7ed53e481f47ebfb922b0b42e980cec83e98ccb2137dc597ea156642440c/cymem-2.0.13-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c16cb80efc017b054f78998c6b4b013cef509c7b3d802707ce1f85a1d68361bf", size = 46205, upload-time = "2025-11-14T14:57:53.64Z" }, + { url = "https://files.pythonhosted.org/packages/61/39/a3d6ad073cf7f0fbbb8bbf09698c3c8fac11be3f791d710239a4e8dd3438/cymem-2.0.13-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0d78a27c88b26c89bd1ece247d1d5939dba05a1dae6305aad8fd8056b17ddb51", size = 296083, upload-time = "2025-11-14T14:57:55.922Z" }, + { url = "https://files.pythonhosted.org/packages/36/0c/20697c8bc19f624a595833e566f37d7bcb9167b0ce69de896eba7cfc9c2d/cymem-2.0.13-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6d36710760f817194dacb09d9fc45cb6a5062ed75e85f0ef7ad7aeeb13d80cc3", size = 286159, upload-time = "2025-11-14T14:57:57.106Z" }, + { url = "https://files.pythonhosted.org/packages/82/d4/9326e3422d1c2d2b4a8fb859bdcce80138f6ab721ddafa4cba328a505c71/cymem-2.0.13-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c8f30971cadd5dcf73bcfbbc5849b1f1e1f40db8cd846c4aa7d3b5e035c7b583", size = 288186, upload-time = "2025-11-14T14:57:58.334Z" }, + { url = "https://files.pythonhosted.org/packages/ed/bc/68da7dd749b72884dc22e898562f335002d70306069d496376e5ff3b6153/cymem-2.0.13-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9d441d0e45798ec1fd330373bf7ffa6b795f229275f64016b6a193e6e2a51522", size = 290353, upload-time = "2025-11-14T14:58:00.562Z" }, + { url = "https://files.pythonhosted.org/packages/50/23/dbf2ad6ecd19b99b3aab6203b1a06608bbd04a09c522d836b854f2f30f73/cymem-2.0.13-cp313-cp313t-win_amd64.whl", hash = "sha256:d1c950eebb9f0f15e3ef3591313482a5a611d16fc12d545e2018cd607f40f472", size = 44764, upload-time = "2025-11-14T14:58:01.793Z" }, + { url = "https://files.pythonhosted.org/packages/54/3f/35701c13e1fc7b0895198c8b20068c569a841e0daf8e0b14d1dc0816b28f/cymem-2.0.13-cp313-cp313t-win_arm64.whl", hash = "sha256:042e8611ef862c34a97b13241f5d0da86d58aca3cecc45c533496678e75c5a1f", size = 38964, upload-time = "2025-11-14T14:58:02.87Z" }, + { url = "https://files.pythonhosted.org/packages/a7/2e/f0e1596010a9a57fa9ebd124a678c07c5b2092283781ae51e79edcf5cb98/cymem-2.0.13-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d2a4bf67db76c7b6afc33de44fb1c318207c3224a30da02c70901936b5aafdf1", size = 43812, upload-time = "2025-11-14T14:58:04.227Z" }, + { url = "https://files.pythonhosted.org/packages/bc/45/8ccc21df08fcbfa6aa3efeb7efc11a1c81c90e7476e255768bb9c29ba02a/cymem-2.0.13-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:92a2ce50afa5625fb5ce7c9302cee61e23a57ccac52cd0410b4858e572f8614b", size = 42951, upload-time = "2025-11-14T14:58:05.424Z" }, + { url = "https://files.pythonhosted.org/packages/01/8c/fe16531631f051d3d1226fa42e2d76fd2c8d5cfa893ec93baee90c7a9d90/cymem-2.0.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bc116a70cc3a5dc3d1684db5268eff9399a0be8603980005e5b889564f1ea42f", size = 249878, upload-time = "2025-11-14T14:58:06.95Z" }, + { url = "https://files.pythonhosted.org/packages/47/4b/39d67b80ffb260457c05fcc545de37d82e9e2dbafc93dd6b64f17e09b933/cymem-2.0.13-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:68489bf0035c4c280614067ab6a82815b01dc9fcd486742a5306fe9f68deb7ef", size = 252571, upload-time = "2025-11-14T14:58:08.232Z" }, + { url = "https://files.pythonhosted.org/packages/53/0e/76f6531f74dfdfe7107899cce93ab063bb7ee086ccd3910522b31f623c08/cymem-2.0.13-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:03cb7bdb55718d5eb6ef0340b1d2430ba1386db30d33e9134d01ba9d6d34d705", size = 248555, upload-time = "2025-11-14T14:58:09.429Z" }, + { url = "https://files.pythonhosted.org/packages/c7/7c/eee56757db81f0aefc2615267677ae145aff74228f529838425057003c0d/cymem-2.0.13-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1710390e7fb2510a8091a1991024d8ae838fd06b02cdfdcd35f006192e3c6b0e", size = 254177, upload-time = "2025-11-14T14:58:10.594Z" }, + { url = "https://files.pythonhosted.org/packages/77/e0/a4b58ec9e53c836dce07ef39837a64a599f4a21a134fc7ca57a3a8f9a4b5/cymem-2.0.13-cp314-cp314-win_amd64.whl", hash = "sha256:ac699c8ec72a3a9de8109bd78821ab22f60b14cf2abccd970b5ff310e14158ed", size = 40853, upload-time = "2025-11-14T14:58:12.116Z" }, + { url = "https://files.pythonhosted.org/packages/61/81/9931d1f83e5aeba175440af0b28f0c2e6f71274a5a7b688bc3e907669388/cymem-2.0.13-cp314-cp314-win_arm64.whl", hash = "sha256:90c2d0c04bcda12cd5cebe9be93ce3af6742ad8da96e1b1907e3f8e00291def1", size = 36970, upload-time = "2025-11-14T14:58:13.114Z" }, + { url = "https://files.pythonhosted.org/packages/b7/ef/af447c2184dec6dec973be14614df8ccb4d16d1c74e0784ab4f02538433c/cymem-2.0.13-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:ff036bbc1464993552fd1251b0a83fe102af334b301e3896d7aa05a4999ad042", size = 46804, upload-time = "2025-11-14T14:58:14.113Z" }, + { url = "https://files.pythonhosted.org/packages/8c/95/e10f33a8d4fc17f9b933d451038218437f9326c2abb15a3e7f58ce2a06ec/cymem-2.0.13-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fb8291691ba7ff4e6e000224cc97a744a8d9588418535c9454fd8436911df612", size = 46254, upload-time = "2025-11-14T14:58:15.156Z" }, + { url = "https://files.pythonhosted.org/packages/e7/7a/5efeb2d2ea6ebad2745301ad33a4fa9a8f9a33b66623ee4d9185683007a6/cymem-2.0.13-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d8d06ea59006b1251ad5794bcc00121e148434826090ead0073c7b7fedebe431", size = 296061, upload-time = "2025-11-14T14:58:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/2a3f65842cc8443c2c0650cf23d525be06c8761ab212e0a095a88627be1b/cymem-2.0.13-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c0046a619ecc845ccb4528b37b63426a0cbcb4f14d7940add3391f59f13701e6", size = 285784, upload-time = "2025-11-14T14:58:17.412Z" }, + { url = "https://files.pythonhosted.org/packages/98/73/dd5f9729398f0108c2e71d942253d0d484d299d08b02e474d7cfc43ed0b0/cymem-2.0.13-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:18ad5b116a82fa3674bc8838bd3792891b428971e2123ae8c0fd3ca472157c5e", size = 288062, upload-time = "2025-11-14T14:58:20.225Z" }, + { url = "https://files.pythonhosted.org/packages/5a/01/ffe51729a8f961a437920560659073e47f575d4627445216c1177ecd4a41/cymem-2.0.13-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:666ce6146bc61b9318aa70d91ce33f126b6344a25cf0b925621baed0c161e9cc", size = 290465, upload-time = "2025-11-14T14:58:21.815Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ac/c9e7d68607f71ef978c81e334ab2898b426944c71950212b1467186f69f9/cymem-2.0.13-cp314-cp314t-win_amd64.whl", hash = "sha256:84c1168c563d9d1e04546cb65e3e54fde2bf814f7c7faf11fc06436598e386d1", size = 46665, upload-time = "2025-11-14T14:58:23.512Z" }, + { url = "https://files.pythonhosted.org/packages/66/66/150e406a2db5535533aa3c946de58f0371f2e412e23f050c704588023e6e/cymem-2.0.13-cp314-cp314t-win_arm64.whl", hash = "sha256:e9027764dc5f1999fb4b4cabee1d0322c59e330c0a6485b436a68275f614277f", size = 39715, upload-time = "2025-11-14T14:58:24.773Z" }, +] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "marshmallow", marker = "python_full_version < '3.11'" }, + { name = "typing-inspect", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/64/a4/f71d9cf3a5ac257c993b5ca3f93df5f7fb395c725e7f1e6479d2514173c3/dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0", size = 32227, upload-time = "2024-06-09T16:20:19.103Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686, upload-time = "2024-06-09T16:20:16.715Z" }, +] + +[[package]] +name = "dateparser" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "regex" }, + { name = "tzlocal" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d3/f4/561c49bca97af561d34eed27e3e831135eb5cb88e754c1150be41820f5c6/dateparser-1.4.1.tar.gz", hash = "sha256:f265df13c0380e2e07543ba74b67c0681aaa1096981ffcd35227e1aa0cb81c7c", size = 314734, upload-time = "2026-06-15T08:45:47.659Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/7c/2e5dcf53909deddd0bf38cbe277ad9806be038276b1c6c436561b4d9b2e2/dateparser-1.4.1-py3-none-any.whl", hash = "sha256:f25d4e051a84be27a35bd297e3e1dc59ff78373701b89be352ba80372d22d0d0", size = 300503, upload-time = "2026-06-15T08:45:45.951Z" }, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, +] + +[[package]] +name = "distlib" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/02/bd72be9134d25ed783ecbbc38a539ffaefbf90c78418c7fb7229600dbac7/distlib-0.4.3.tar.gz", hash = "sha256:f152097224a0ae24be5a0f6bae1b9359af82133bce63f98a95f86cae1aede9ed", size = 615141, upload-time = "2026-06-12T08:04:52.847Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/08/9c41fb51ab5b43eb21674aff13df270e8ba6c4b29c8624e328dc7a9482af/distlib-0.4.3-py2.py3-none-any.whl", hash = "sha256:4b0ce306c966eb73bc3a7b6abad017c556dadd92c44701562cd528ac7fde4d5b", size = 470628, upload-time = "2026-06-12T08:04:50.506Z" }, +] + +[[package]] +name = "dockerfile-parse" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/92/df/929ee0b5d2c8bd8d713c45e71b94ab57c7e11e322130724d54f469b2cd48/dockerfile-parse-2.0.1.tar.gz", hash = "sha256:3184ccdc513221983e503ac00e1aa504a2aa8f84e5de673c46b0b6eee99ec7bc", size = 24556, upload-time = "2023-07-18T13:36:07.897Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/6c/79cd5bc1b880d8c1a9a5550aa8dacd57353fa3bb2457227e1fb47383eb49/dockerfile_parse-2.0.1-py2.py3-none-any.whl", hash = "sha256:bdffd126d2eb26acf1066acb54cb2e336682e1d72b974a40894fac76a4df17f6", size = 14845, upload-time = "2023-07-18T13:36:06.052Z" }, +] + +[[package]] +name = "docpull" +version = "6.3.0" +source = { editable = "." } +dependencies = [ + { name = "aiohttp" }, + { name = "beautifulsoup4" }, + { name = "defusedxml" }, + { name = "extruct" }, + { name = "html2text" }, + { name = "idna" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "regex" }, + { name = "rich" }, + { name = "urllib3" }, +] + +[package.optional-dependencies] +all = [ + { name = "aiohttp-socks" }, + { name = "cryptography" }, + { name = "e2b" }, + { name = "markitdown", extra = ["docx", "pdf"] }, + { name = "mcp" }, + { name = "presidio-analyzer" }, + { name = "pyarrow" }, + { name = "pydantic-settings" }, + { name = "pyjwt" }, + { name = "pypdf" }, + { name = "python-multipart" }, + { name = "starlette" }, + { name = "tiktoken" }, + { name = "trafilatura" }, + { name = "unstructured", version = "0.18.32", source = { registry = "https://pypi.org/simple" }, extra = ["all-docs"], marker = "python_full_version < '3.11'" }, + { name = "unstructured", version = "0.24.1", source = { registry = "https://pypi.org/simple" }, extra = ["all-docs"], marker = "python_full_version >= '3.11'" }, + { name = "url-normalize" }, + { name = "uvicorn" }, +] +dev = [ + { name = "bandit" }, + { name = "msgpack" }, + { name = "mypy" }, + { name = "pip-audit" }, + { name = "pre-commit" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-cov" }, + { name = "ruff" }, + { name = "types-beautifulsoup4" }, + { name = "types-defusedxml" }, + { name = "types-pyyaml" }, + { name = "types-requests" }, +] +e2b = [ + { name = "e2b" }, +] +llm = [ + { name = "tiktoken" }, +] +markitdown = [ + { name = "markitdown", extra = ["docx", "pdf"] }, + { name = "pypdf" }, +] +mcp = [ + { name = "cryptography" }, + { name = "mcp" }, + { name = "pydantic-settings" }, + { name = "pyjwt" }, + { name = "python-multipart" }, + { name = "starlette" }, +] +normalize = [ + { name = "url-normalize" }, +] +parquet = [ + { name = "pyarrow" }, +] +parse = [ + { name = "markitdown", extra = ["docx", "pdf"] }, + { name = "pypdf" }, + { name = "unstructured", version = "0.18.32", source = { registry = "https://pypi.org/simple" }, extra = ["all-docs"], marker = "python_full_version < '3.11'" }, + { name = "unstructured", version = "0.24.1", source = { registry = "https://pypi.org/simple" }, extra = ["all-docs"], marker = "python_full_version >= '3.11'" }, +] +pdf = [ + { name = "pypdf" }, +] +presidio = [ + { name = "presidio-analyzer" }, +] +proxy = [ + { name = "aiohttp-socks" }, +] +serve = [ + { name = "uvicorn" }, +] +tokens = [ + { name = "tiktoken" }, +] +trafilatura = [ + { name = "trafilatura" }, +] +unstructured = [ + { name = "pypdf" }, + { name = "unstructured", version = "0.18.32", source = { registry = "https://pypi.org/simple" }, extra = ["all-docs"], marker = "python_full_version < '3.11'" }, + { name = "unstructured", version = "0.24.1", source = { registry = "https://pypi.org/simple" }, extra = ["all-docs"], marker = "python_full_version >= '3.11'" }, +] + +[package.metadata] +requires-dist = [ + { name = "aiohttp", specifier = ">=3.14.0" }, + { name = "aiohttp-socks", marker = "extra == 'all'", specifier = ">=0.11.0" }, + { name = "aiohttp-socks", marker = "extra == 'proxy'", specifier = ">=0.11.0" }, + { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.7.0" }, + { name = "beautifulsoup4", specifier = ">=4.12.0" }, + { name = "cryptography", marker = "extra == 'all'", specifier = ">=48.0.1" }, + { name = "cryptography", marker = "extra == 'mcp'", specifier = ">=48.0.1" }, + { name = "defusedxml", specifier = ">=0.7.1" }, + { name = "e2b", marker = "extra == 'all'", specifier = ">=2.0.0" }, + { name = "e2b", marker = "extra == 'e2b'", specifier = ">=2.0.0" }, + { name = "extruct", specifier = ">=0.15.0" }, + { name = "html2text", specifier = ">=2020.1.16" }, + { name = "idna", specifier = ">=3.15" }, + { name = "markitdown", extras = ["docx", "pdf"], marker = "extra == 'all'", specifier = ">=0.1.0" }, + { name = "markitdown", extras = ["docx", "pdf"], marker = "extra == 'markitdown'", specifier = ">=0.1.0" }, + { name = "markitdown", extras = ["docx", "pdf"], marker = "extra == 'parse'", specifier = ">=0.1.0" }, + { name = "mcp", marker = "extra == 'all'", specifier = ">=1.0.0" }, + { name = "mcp", marker = "extra == 'mcp'", specifier = ">=1.0.0" }, + { name = "msgpack", marker = "extra == 'dev'", specifier = ">=1.2.1" }, + { name = "mypy", marker = "extra == 'dev'", specifier = ">=1.0.0" }, + { name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.0.0" }, + { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=3.0.0" }, + { name = "presidio-analyzer", marker = "extra == 'all'", specifier = ">=2.2.0" }, + { name = "presidio-analyzer", marker = "extra == 'presidio'", specifier = ">=2.2.0" }, + { name = "pyarrow", marker = "extra == 'all'", specifier = ">=16.0.0" }, + { name = "pyarrow", marker = "extra == 'parquet'", specifier = ">=16.0.0" }, + { name = "pydantic", specifier = ">=2.0" }, + { name = "pydantic-settings", marker = "extra == 'all'", specifier = ">=2.14.2" }, + { name = "pydantic-settings", marker = "extra == 'mcp'", specifier = ">=2.14.2" }, + { name = "pyjwt", marker = "extra == 'all'", specifier = ">=2.13.0" }, + { name = "pyjwt", marker = "extra == 'mcp'", specifier = ">=2.13.0" }, + { name = "pypdf", marker = "extra == 'all'", specifier = ">=6.14.2" }, + { name = "pypdf", marker = "extra == 'markitdown'", specifier = ">=6.14.2" }, + { name = "pypdf", marker = "extra == 'parse'", specifier = ">=6.14.2" }, + { name = "pypdf", marker = "extra == 'pdf'", specifier = ">=6.14.2" }, + { name = "pypdf", marker = "extra == 'unstructured'", specifier = ">=6.14.2" }, + { name = "pytest", marker = "extra == 'dev'", specifier = ">=7.0.0" }, + { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.21.0" }, + { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=4.0.0" }, + { name = "python-multipart", marker = "extra == 'all'", specifier = ">=0.0.27" }, + { name = "python-multipart", marker = "extra == 'mcp'", specifier = ">=0.0.27" }, + { name = "pyyaml", specifier = ">=6.0" }, + { name = "regex", specifier = ">=2024.11.6" }, + { name = "rich", specifier = ">=13.0.0" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.1.0" }, + { name = "starlette", marker = "extra == 'all'", specifier = ">=1.3.1" }, + { name = "starlette", marker = "extra == 'mcp'", specifier = ">=1.3.1" }, + { name = "tiktoken", marker = "extra == 'all'", specifier = ">=0.7.0" }, + { name = "tiktoken", marker = "extra == 'llm'", specifier = ">=0.7.0" }, + { name = "tiktoken", marker = "extra == 'tokens'", specifier = ">=0.7.0" }, + { name = "trafilatura", marker = "extra == 'all'", specifier = ">=1.12.0" }, + { name = "trafilatura", marker = "extra == 'trafilatura'", specifier = ">=1.12.0" }, + { name = "types-beautifulsoup4", marker = "extra == 'dev'", specifier = ">=4.12.0" }, + { name = "types-defusedxml", marker = "extra == 'dev'", specifier = ">=0.7.0" }, + { name = "types-pyyaml", marker = "extra == 'dev'", specifier = ">=6.0.0" }, + { name = "types-requests", marker = "extra == 'dev'", specifier = ">=2.31.0" }, + { name = "unstructured", extras = ["all-docs"], marker = "extra == 'all'", specifier = ">=0.16.0" }, + { name = "unstructured", extras = ["all-docs"], marker = "extra == 'parse'", specifier = ">=0.16.0" }, + { name = "unstructured", extras = ["all-docs"], marker = "extra == 'unstructured'", specifier = ">=0.16.0" }, + { name = "url-normalize", marker = "extra == 'all'", specifier = ">=1.4.0" }, + { name = "url-normalize", marker = "extra == 'normalize'", specifier = ">=1.4.0" }, + { name = "urllib3", specifier = ">=2.7.0" }, + { name = "uvicorn", marker = "extra == 'all'", specifier = ">=0.30.0" }, + { name = "uvicorn", marker = "extra == 'serve'", specifier = ">=0.30.0" }, +] +provides-extras = ["proxy", "normalize", "trafilatura", "tokens", "mcp", "serve", "parquet", "markitdown", "unstructured", "pdf", "parse", "presidio", "e2b", "llm", "all", "dev"] + +[[package]] +name = "e2b" +version = "2.33.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "dockerfile-parse" }, + { name = "h2" }, + { name = "httpcore" }, + { name = "httpx" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "python-dateutil" }, + { name = "rich" }, + { name = "typing-extensions" }, + { name = "wcmatch" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/76/93a08f6ed33e53c030ed931916c9e69eb81cd3b84c500649c7cf4cefd86d/e2b-2.33.0.tar.gz", hash = "sha256:0a14fa7f99fc09b540db0c191b2ce5b1fd4cc3ed837dbd64385add99305776a3", size = 185400, upload-time = "2026-07-16T09:24:45.284Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/21/2c7bdcd1c6b188b8ae6ee57e542b1e80436cc6692e955abcf8b9355ea9bf/e2b-2.33.0-py3-none-any.whl", hash = "sha256:c10cb697b713d418f5d70f5c9c707e923630a491bd30009c10c4daeb4e21fe51", size = 337079, upload-time = "2026-07-16T09:24:43.972Z" }, +] + +[[package]] +name = "effdet" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "omegaconf", marker = "python_full_version < '3.11'" }, + { name = "pycocotools", marker = "python_full_version < '3.11'" }, + { name = "timm", marker = "python_full_version < '3.11'" }, + { name = "torch", marker = "python_full_version < '3.11'" }, + { name = "torchvision", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/c3/12d45167ec36f7f9a5ed80bc2128392b3f6207f760d437287d32a0e43f41/effdet-0.4.1.tar.gz", hash = "sha256:ac5589fd304a5650c201986b2ef5f8e10c111093a71b1c49fa6b8817710812b5", size = 110134, upload-time = "2023-05-21T22:18:01.039Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/13/563119fe0af82aca5a3b89399c435953072c39515c2e818eb82793955c3b/effdet-0.4.1-py3-none-any.whl", hash = "sha256:10889a226228d515c948e3fcf811e64c0d78d7aa94823a300045653b9c284cb7", size = 112513, upload-time = "2023-05-21T22:17:58.47Z" }, +] + +[[package]] +name = "emoji" +version = "2.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/78/0d2db9382c92a163d7095fc08efff7800880f830a152cfced40161e7638d/emoji-2.15.0.tar.gz", hash = "sha256:eae4ab7d86456a70a00a985125a03263a5eac54cd55e51d7e184b1ed3b6757e4", size = 615483, upload-time = "2025-09-21T12:13:02.755Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/5e/4b5aaaabddfacfe36ba7768817bd1f71a7a810a43705e531f3ae4c690767/emoji-2.15.0-py3-none-any.whl", hash = "sha256:205296793d66a89d88af4688fa57fd6496732eb48917a87175a023c8138995eb", size = 608433, upload-time = "2025-09-21T12:13:01.197Z" }, +] + +[[package]] +name = "et-xmlfile" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 17234, upload-time = "2024-10-25T17:25:40.039Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = 18059, upload-time = "2024-10-25T17:25:39.051Z" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, +] + +[[package]] +name = "extruct" +version = "0.18.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "html-text" }, + { name = "jstyleson" }, + { name = "lxml" }, + { name = "lxml-html-clean" }, + { name = "mf2py" }, + { name = "pyrdfa3" }, + { name = "rdflib" }, + { name = "w3lib" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/dd/5ba7345dafaa2b5ccbfd441c7bcfc74bae1176aac9acb0d746b6bb327979/extruct-0.18.0.tar.gz", hash = "sha256:b5b48d459003b27c05ee91527b14a5a31735231aaf85d2b1f331d4db879318dd", size = 44170, upload-time = "2024-11-08T14:59:24.26Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/00/60d3efc09d52a9e8d57b59323d7edb962daba2f1c46b89449a252f3652e7/extruct-0.18.0-py2.py3-none-any.whl", hash = "sha256:1e739985da705c3348c7614dc169e7780caf20908338fa5f4c6e48576df6f000", size = 26359, upload-time = "2024-11-08T14:59:22.806Z" }, +] + +[[package]] +name = "filelock" +version = "3.30.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/b7/e82e2bf111ba6ea135062e556f2ed7f4ff1c17a6c385e95ffddd99885535/filelock-3.30.1.tar.gz", hash = "sha256:6ad1b1ec6a5e2c91e02979b7d1096e5e964d83ad8a55679bacd1d96f917fda6e", size = 176008, upload-time = "2026-07-16T16:59:22.201Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/5e/6060a5791d3d5b54aae21c510eb2f76a51e1b28c2122cc1e39b12237e2e7/filelock-3.30.1-py3-none-any.whl", hash = "sha256:69b98bab51bed4c86b141ef338f85ca07937573e8a7798f7fe6a31ccd94b9338", size = 93698, upload-time = "2026-07-16T16:59:20.727Z" }, +] + +[[package]] +name = "filetype" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/29/745f7d30d47fe0f251d3ad3dc2978a23141917661998763bebb6da007eb1/filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb", size = 998020, upload-time = "2022-11-02T17:34:04.141Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25", size = 19970, upload-time = "2022-11-02T17:34:01.425Z" }, +] + +[[package]] +name = "flatbuffers" +version = "25.12.19" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/2d/d2a548598be01649e2d46231d151a6c56d10b964d94043a335ae56ea2d92/flatbuffers-25.12.19-py2.py3-none-any.whl", hash = "sha256:7634f50c427838bb021c2d66a3d1168e9d199b0607e6329399f04846d42e20b4", size = 26661, upload-time = "2025-12-19T23:16:13.622Z" }, +] + +[[package]] +name = "fonttools" +version = "4.63.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/84/69/c97f2c18e0db87d2c7b15da1974dace76ae938f1cfa22e2727a648b7ed43/fonttools-4.63.0.tar.gz", hash = "sha256:caeb583deeb5168e694b65cda8b4ee62abedfa66cf88488734466f2366b9c4e0", size = 3597189, upload-time = "2026-05-14T12:04:30.958Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/c9/4141c90a90db20f807c7e10bfd689fe53eb8f7f4caff58ee4d4dfe46919f/fonttools-4.63.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e3297a6a4059b4acc3a1e9a8b04741f240a80044eef08ebd32e8b5bcdddce75b", size = 2884632, upload-time = "2026-05-14T12:02:38.56Z" }, + { url = "https://files.pythonhosted.org/packages/b8/46/ad12b5c10eae602d7ef814b02afa08aacbf89da917fed5b071282b7eadc2/fonttools-4.63.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b1cd75a03ad8cb5bc40c90bfde68c0c47de423aa19e5c0f362b43520645eea94", size = 2429441, upload-time = "2026-05-14T12:02:41.162Z" }, + { url = "https://files.pythonhosted.org/packages/90/8f/bdca24a84c81d56fffed052229cdcff368f6e05882e526f4558891481f65/fonttools-4.63.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0425b277a59cff3d80ca42162a8de360f318438a2ac83570842a678d826d579", size = 4946346, upload-time = "2026-05-14T12:02:43.41Z" }, + { url = "https://files.pythonhosted.org/packages/04/59/a639c0e136441ee91a65b56fdf89e5d075927e7a09c559d1b0f5276577db/fonttools-4.63.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d7e5c9973aa04c95650c96e5f5ad865fbf42d62079163ecfab1e01cbc2504c22", size = 4903184, upload-time = "2026-05-14T12:02:45.742Z" }, + { url = "https://files.pythonhosted.org/packages/e6/53/91b7e0cb45b536f3da1b29ba8cbab89f27e8b986809e0b1982303a3f4eca/fonttools-4.63.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cb014d58140a38135f16064c74c652ed57aa0b75cbf8bb59cac821f7edb5334e", size = 4922967, upload-time = "2026-05-14T12:02:48.386Z" }, + { url = "https://files.pythonhosted.org/packages/c7/b7/87439bf44e6b97c5538cd29d0b7e366a5b8ce2cc132a4134fb67fa3f2fa2/fonttools-4.63.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:032038247a96c1690f9f31e377c389383c902531b085aa4e4dabd6f57f870e69", size = 5042799, upload-time = "2026-05-14T12:02:50.424Z" }, + { url = "https://files.pythonhosted.org/packages/ad/7c/8b96c3263b89ef99cded544c0f0636686f85dbd3c211c4dceef0231fca23/fonttools-4.63.0-cp310-cp310-win32.whl", hash = "sha256:a8b33a82979e0a6a34ff435cc81317be1f95ec1ebb7a3a2d1c8a6a54f02ae44e", size = 1519704, upload-time = "2026-05-14T12:02:52.523Z" }, + { url = "https://files.pythonhosted.org/packages/e5/4d/2c2f0069970b6907de8fb5b05c5c0193cc22f717df151d1c7aef1c738f58/fonttools-4.63.0-cp310-cp310-win_amd64.whl", hash = "sha256:0c18358a155d75034911c5ee397a5b44cd19dd325dbb8b35fb60bf421d6a72ac", size = 1568666, upload-time = "2026-05-14T12:02:54.917Z" }, + { url = "https://files.pythonhosted.org/packages/75/2b/a7f1545bdf5da69c4bda0cea2a5781f0ad2a6623e0277267672db43c5fe6/fonttools-4.63.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b8ae05d9eacf6081414d759c0a352769ac28ce31280d6bb8e77b03f9e3c449f", size = 2881793, upload-time = "2026-05-14T12:02:56.645Z" }, + { url = "https://files.pythonhosted.org/packages/49/50/965308c703f085f225db2886813b27e015b8b3438c350b22dd65b52c2a2c/fonttools-4.63.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79cdc9f567aec74a72918fd060283911406750cbc9fd28c1316023deb6ce31a9", size = 2428130, upload-time = "2026-05-14T12:02:58.891Z" }, + { url = "https://files.pythonhosted.org/packages/d8/38/6937fbd7f2dc3a6b48725851bc2c15ec949b9af14d9bbcb5fe83cdf9bdf9/fonttools-4.63.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c14b4fd138c4bafcca294765c547914e1aa431ae1ca94ab99d8db08c958bd3b", size = 5111952, upload-time = "2026-05-14T12:03:01.263Z" }, + { url = "https://files.pythonhosted.org/packages/0b/43/a81f20050a3115b57d62c8e781446949512eac36690dc384ccea65ff4cc1/fonttools-4.63.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76ac49f929aecaf82d83250b8347e099d7aecba0f4726c1d9b6df3b8bb5fe18", size = 5082308, upload-time = "2026-05-14T12:03:03.211Z" }, + { url = "https://files.pythonhosted.org/packages/67/00/cdd9d4944ca6ae280d01e69cc37bde3bf663630b837a6fc6d2cd65d80e0e/fonttools-4.63.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dcf076a4474fe0d7367e5bbf5b052c7284fa1feca729c04176ce513521afd8a0", size = 5087932, upload-time = "2026-05-14T12:03:05.147Z" }, + { url = "https://files.pythonhosted.org/packages/f5/f1/0aa0dbea778c75adbef223c42019fd47d22262b905974d62d829545d485f/fonttools-4.63.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7dd683fef0663e9f0f45cf541d788d24caa3ec9db50796b588e1757d8b3bc007", size = 5213271, upload-time = "2026-05-14T12:03:07.238Z" }, + { url = "https://files.pythonhosted.org/packages/a8/99/253e4056e1f0e67b9390125a154b73b5eb73ad521bece95c004858fdeec2/fonttools-4.63.0-cp311-cp311-win32.whl", hash = "sha256:afefc1ed0a59785a7fb06ea7e1678e849c193e1e387db783579bc7b3056fcfcb", size = 2304473, upload-time = "2026-05-14T12:03:09.271Z" }, + { url = "https://files.pythonhosted.org/packages/08/60/defa5e69641db890a63be281f41345f4c33b157824eaf0b9fad3e08b0dcb/fonttools-4.63.0-cp311-cp311-win_amd64.whl", hash = "sha256:063e08bd17bd5a90127a14123de0d6a952dbc847695fd98b63c043d58057f90c", size = 2356389, upload-time = "2026-05-14T12:03:11.53Z" }, + { url = "https://files.pythonhosted.org/packages/08/ef/b3c6b9b5be2f82416d73fe2ed2e96e2793cd80e7510bd6a17ca79cdd88ec/fonttools-4.63.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:37dd23e621e3b0aef1baa70a303b80aaf38449632cfc8fd2a55fb285bbccfc02", size = 2881131, upload-time = "2026-05-14T12:03:13.386Z" }, + { url = "https://files.pythonhosted.org/packages/44/a0/c815bea63117fa63e4e1c01f8a1110d2112fa003f838e6467094ec2432ce/fonttools-4.63.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a9faff9e0c1f76f9fd55899d2ce785832efebab37eb8ae13995853aef178bef0", size = 2426704, upload-time = "2026-05-14T12:03:15.801Z" }, + { url = "https://files.pythonhosted.org/packages/44/04/0b91d8e916e92ad1fac9e4624760baf0fd5ff2ead614c2f68fb21373f03f/fonttools-4.63.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef3048ef05dbb552b89817713d9cac912e00d0fde4a3105c00d29e52e10c89af", size = 5044298, upload-time = "2026-05-14T12:03:18.085Z" }, + { url = "https://files.pythonhosted.org/packages/77/c7/2342da9830e3e9d4870305ca5d2091d2a83284f2953079b7bdd3b5e029d8/fonttools-4.63.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:58dc6bb86a78d782f00f9190ca02c119cf5bbe2807536e361e18d42019f877d8", size = 4999800, upload-time = "2026-05-14T12:03:20.161Z" }, + { url = "https://files.pythonhosted.org/packages/e6/6d/67fe16c48d7ce050979b33f47e0d28a318f02da030602e944c34f7a16ef3/fonttools-4.63.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ee08ebfa58f6e1aeff5697ab9582105bb620008c1caafb681e4c557e7483027b", size = 4982666, upload-time = "2026-05-14T12:03:22.87Z" }, + { url = "https://files.pythonhosted.org/packages/f2/00/3bbab338c07c71fa56269953845e92c951a61457bbbb0f1022551ea266d9/fonttools-4.63.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:27fdc65af8da6f88b9c6121c47a464cbe359fcfff7ff6fc2d37a1f395d755b78", size = 5133598, upload-time = "2026-05-14T12:03:25.168Z" }, + { url = "https://files.pythonhosted.org/packages/62/f2/aa27c7f98db5b064883dadcc5283947e81e034de42e22a33675878d98b54/fonttools-4.63.0-cp312-cp312-win32.whl", hash = "sha256:af2fd1664d00a397d75f806985ddb36282091c2131a73a6485c23b4a34722263", size = 2292575, upload-time = "2026-05-14T12:03:27.496Z" }, + { url = "https://files.pythonhosted.org/packages/87/36/cccb9bc2a6ab63d1b2980374f0dca72ce95ae267c9b4cfe77455bb70d0d4/fonttools-4.63.0-cp312-cp312-win_amd64.whl", hash = "sha256:59ac449f8cca9b4ffa08d2e7bbadad87ce710d69d1eda5c3c1ce579baa987272", size = 2343211, upload-time = "2026-05-14T12:03:30.057Z" }, + { url = "https://files.pythonhosted.org/packages/0f/8d/d8fec3dcde2963f8c908fb315e5ff2cd0ac34f82394bbbf73a2aa5145ce3/fonttools-4.63.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd7e9857e5e63738b9d9fd707bc1f59c8b09e5177726d23664db393c59bb08bd", size = 2876062, upload-time = "2026-05-14T12:03:32.554Z" }, + { url = "https://files.pythonhosted.org/packages/ef/71/d935dc54e4ff121bfdd11e08702db63a7e6f25af21d8a3d7b7212df53641/fonttools-4.63.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c2a2a42198b696a6f48fad91709afb55176e66a5e566131219dba372fb7f8c59", size = 2424594, upload-time = "2026-05-14T12:03:34.86Z" }, + { url = "https://files.pythonhosted.org/packages/8e/40/e76320afa1df918e146155ef239b1719ee266092e96f5423bfd075affba1/fonttools-4.63.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e874792a8212b44583ea02189d9e693906b2f78b261f372f95d6c563210ac1d", size = 5024840, upload-time = "2026-05-14T12:03:36.745Z" }, + { url = "https://files.pythonhosted.org/packages/ce/36/0b805d8c485f872f65a509cbe3b58a5d0d17bee855333b54a150c79d3061/fonttools-4.63.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:22135da48a348785c5e2d5d2d9d6bec5ed44adacbaeb9db12d9493bf6c6bfa68", size = 4975801, upload-time = "2026-05-14T12:03:38.833Z" }, + { url = "https://files.pythonhosted.org/packages/c8/26/2cee03d0aa083ab022da5c07aff9ed3f689da1defb81ad6917c9627896da/fonttools-4.63.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ccf41f2efdf56994d22d73bef4ced1052161958169428d06ba9724ea9e9a64be", size = 4965009, upload-time = "2026-05-14T12:03:41.494Z" }, + { url = "https://files.pythonhosted.org/packages/7e/48/cc4b66d9058c0d0982c833fad10127c4b0e9324606aafa41382295ca4102/fonttools-4.63.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9ced0bd02ac751dd6319b0da88aaef24414e3b0dbc32bb4f24944821a3741a27", size = 5105892, upload-time = "2026-05-14T12:03:43.525Z" }, + { url = "https://files.pythonhosted.org/packages/d8/1f/a98a30a814b9ddef3a2e706025f90b9e0bc94890e6cb15254bc86547d11a/fonttools-4.63.0-cp313-cp313-win32.whl", hash = "sha256:85be818f5506e8a7753153def2c9550178f0ecae6a47b5e0e8dbb23f7cc90380", size = 2291313, upload-time = "2026-05-14T12:03:45.594Z" }, + { url = "https://files.pythonhosted.org/packages/92/46/5177b01f3b4abfdd4409f31cca4ab279c9343a26efbe9ec78c97fc612e02/fonttools-4.63.0-cp313-cp313-win_amd64.whl", hash = "sha256:ba04cb5891d4c0c21b6da95eda8d7b090021508a294fff33464fc7d241e0856b", size = 2342299, upload-time = "2026-05-14T12:03:47.414Z" }, + { url = "https://files.pythonhosted.org/packages/27/d2/23d25e3f247b328be58d04a4c9f894178a0d1eda7d42867cfb388adaf416/fonttools-4.63.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fd1e3094f42d806d3d7c79162fc59e5910fcbe3a7360c385b8da969bc4493745", size = 2875338, upload-time = "2026-05-14T12:03:50.052Z" }, + { url = "https://files.pythonhosted.org/packages/cd/58/7dfa0c761cb3b2964e2a84c4dc986c926a87de0cb9fb60d5b28ded3f2914/fonttools-4.63.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:6e528da43bc3791085f8cb6141b1d13e459226790240340fcbb4625649238b03", size = 2422661, upload-time = "2026-05-14T12:03:52.154Z" }, + { url = "https://files.pythonhosted.org/packages/dd/87/64cfa18a7a1621d17b7f4502b2b0ed8a135a90c3db51ea590ee99043e76b/fonttools-4.63.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b2248c5decb223562f7902ff6325077a073f608ee8e33e88ad88db734eb9f49", size = 5010526, upload-time = "2026-05-14T12:03:54.647Z" }, + { url = "https://files.pythonhosted.org/packages/36/e1/a8933a72c45a87177fbde2696e0d0755c8c9062f8c077a961c6215fa27b1/fonttools-4.63.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:308f957cdeaf8abe4e5f2f124902ef405448af92c90f80e302a3b771c2e6116b", size = 4923946, upload-time = "2026-05-14T12:03:56.984Z" }, + { url = "https://files.pythonhosted.org/packages/27/60/872e6e233b8c5e8b41413796ff18b7fe479661bd40147e071b450dfad7a1/fonttools-4.63.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bf00f21eb5fb721dbaf73d1e9da6d02a1af7768f2ebcf9798be98beab8ba90f6", size = 4962489, upload-time = "2026-05-14T12:03:59.443Z" }, + { url = "https://files.pythonhosted.org/packages/30/c4/83c24f2ec38b90cfda84bf4b1a1f49df80e84a1db4e7ac6e0d41bf23bc39/fonttools-4.63.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c1aaa4b9c75798400ac043ce04d74e7830376c85095a5a6ed7cba2f17a266bf4", size = 5071870, upload-time = "2026-05-14T12:04:02.122Z" }, + { url = "https://files.pythonhosted.org/packages/de/40/3ae22b60ff1d41ce0bd044b31238cdc72cef99f28b976f1e128ebd618c9b/fonttools-4.63.0-cp314-cp314-win32.whl", hash = "sha256:22693918177bd9ceabec4736d338045f357769416fc6b0b2508eefef75b08616", size = 2295026, upload-time = "2026-05-14T12:04:04.47Z" }, + { url = "https://files.pythonhosted.org/packages/c3/d4/98078064ccc76b45cb0f6c002452011e93c4bd26f6850344f0951cc1fe89/fonttools-4.63.0-cp314-cp314-win_amd64.whl", hash = "sha256:7d782fac32985914c351556f68ac0855391572bcd87de50e05970d3cd4c96fc5", size = 2347454, upload-time = "2026-05-14T12:04:06.752Z" }, + { url = "https://files.pythonhosted.org/packages/49/4e/652d1580c5f4e39f7d103b0c793e4773129ad633dce4addd0cf4dfebde02/fonttools-4.63.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:6db5140a60a5d731d21ec076745b40a310607731b0a565b50776393188649001", size = 2958152, upload-time = "2026-05-14T12:04:08.706Z" }, + { url = "https://files.pythonhosted.org/packages/0e/55/ad864c9a9b219f552eb46b32cd7906c466e5a578ba0c3abfcc0fe7413eb6/fonttools-4.63.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7d76edbff9014094dbf03bd2d074709dfa6ec7aba13d838c937a2b33d2d6a86e", size = 2460809, upload-time = "2026-05-14T12:04:10.783Z" }, + { url = "https://files.pythonhosted.org/packages/ea/2b/0aa8db70f18cf52e49b4ed5ecec68547f981160bf5ded3b5aed6faa0a6f9/fonttools-4.63.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0eac00b9118c3c2f87d272e45341871c5b3066baa3c86897fa634a7c3fb59096", size = 5148649, upload-time = "2026-05-14T12:04:12.747Z" }, + { url = "https://files.pythonhosted.org/packages/7f/63/18e4369c25043096f1048e0c9915951adc4f842bd81c6b18155824d6fa99/fonttools-4.63.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:51394295f1a51de8b5f30bdb1e1b9a4231536c7064ef5c6e211eec19fa36036f", size = 4932147, upload-time = "2026-05-14T12:04:14.806Z" }, + { url = "https://files.pythonhosted.org/packages/a1/3f/67f3eac2ffd8a98446c5022f8ed3864eac878a5ff7af8df4c8286dba16cc/fonttools-4.63.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9e12f105d2b6342c559c298afb674006bb2893afc7102dcf8a1b55b0486b4e40", size = 5027237, upload-time = "2026-05-14T12:04:17.675Z" }, + { url = "https://files.pythonhosted.org/packages/1a/ba/4e6214cb38a7b04779e97bb7636de9a5c7f20af7018d03dee0b64c08510a/fonttools-4.63.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:796f27556dbe094c4824f75ca85267e4df776c79036c8441469a4df37038c196", size = 5053933, upload-time = "2026-05-14T12:04:20.818Z" }, + { url = "https://files.pythonhosted.org/packages/34/3b/214dcc19ee31d3d38fb5ad2755c11ef0514e5dc300bbaf41c0b69f393799/fonttools-4.63.0-cp314-cp314t-win32.whl", hash = "sha256:948428a275741f0b64b113c955425a953314f4b9ab9997f73a72c83e68e569c8", size = 2359326, upload-time = "2026-05-14T12:04:24.22Z" }, + { url = "https://files.pythonhosted.org/packages/dd/1e/3ff1a9b523058c2eeb6a9d50f5574e2a738200d0d94107d5bc4105e8da3f/fonttools-4.63.0-cp314-cp314t-win_amd64.whl", hash = "sha256:6d4741eb179121cab9eea4cb2393d24492373a260d7945006358c08cfbf45419", size = 2425829, upload-time = "2026-05-14T12:04:26.829Z" }, + { url = "https://files.pythonhosted.org/packages/2c/47/c99d5268f354002ce80f8d029cd9d7d872969da1de8b93d32de4dc56d6f4/fonttools-4.63.0-py3-none-any.whl", hash = "sha256:445af2eab030a16b9171ea8bdda7ebf7d96bda2df88ee182a464252f6e05e20d", size = 1164562, upload-time = "2026-05-14T12:04:29.092Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/4a/557715d5047da48d54e659203b9335be7bfaafda2c3f627b7c47e0b3aaf3/frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011", size = 86230, upload-time = "2025-10-06T05:35:23.699Z" }, + { url = "https://files.pythonhosted.org/packages/a2/fb/c85f9fed3ea8fe8740e5b46a59cc141c23b842eca617da8876cfce5f760e/frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565", size = 49621, upload-time = "2025-10-06T05:35:25.341Z" }, + { url = "https://files.pythonhosted.org/packages/63/70/26ca3f06aace16f2352796b08704338d74b6d1a24ca38f2771afbb7ed915/frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a88f062f072d1589b7b46e951698950e7da00442fc1cacbe17e19e025dc327ad", size = 49889, upload-time = "2025-10-06T05:35:26.797Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f57fb59d9f385710aa7060e89410aeb5058b99e62f4d16b08b91986b9a2140c2", size = 219464, upload-time = "2025-10-06T05:35:28.254Z" }, + { url = "https://files.pythonhosted.org/packages/6b/83/4d587dccbfca74cb8b810472392ad62bfa100bf8108c7223eb4c4fa2f7b3/frozenlist-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:799345ab092bee59f01a915620b5d014698547afd011e691a208637312db9186", size = 221649, upload-time = "2025-10-06T05:35:29.454Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c6/fd3b9cd046ec5fff9dab66831083bc2077006a874a2d3d9247dea93ddf7e/frozenlist-1.8.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c23c3ff005322a6e16f71bf8692fcf4d5a304aaafe1e262c98c6d4adc7be863e", size = 219188, upload-time = "2025-10-06T05:35:30.951Z" }, + { url = "https://files.pythonhosted.org/packages/ce/80/6693f55eb2e085fc8afb28cf611448fb5b90e98e068fa1d1b8d8e66e5c7d/frozenlist-1.8.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a76ea0f0b9dfa06f254ee06053d93a600865b3274358ca48a352ce4f0798450", size = 231748, upload-time = "2025-10-06T05:35:32.101Z" }, + { url = "https://files.pythonhosted.org/packages/97/d6/e9459f7c5183854abd989ba384fe0cc1a0fb795a83c033f0571ec5933ca4/frozenlist-1.8.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c7366fe1418a6133d5aa824ee53d406550110984de7637d65a178010f759c6ef", size = 236351, upload-time = "2025-10-06T05:35:33.834Z" }, + { url = "https://files.pythonhosted.org/packages/97/92/24e97474b65c0262e9ecd076e826bfd1d3074adcc165a256e42e7b8a7249/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:13d23a45c4cebade99340c4165bd90eeb4a56c6d8a9d8aa49568cac19a6d0dc4", size = 218767, upload-time = "2025-10-06T05:35:35.205Z" }, + { url = "https://files.pythonhosted.org/packages/ee/bf/dc394a097508f15abff383c5108cb8ad880d1f64a725ed3b90d5c2fbf0bb/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4a3408834f65da56c83528fb52ce7911484f0d1eaf7b761fc66001db1646eff", size = 235887, upload-time = "2025-10-06T05:35:36.354Z" }, + { url = "https://files.pythonhosted.org/packages/40/90/25b201b9c015dbc999a5baf475a257010471a1fa8c200c843fd4abbee725/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:42145cd2748ca39f32801dad54aeea10039da6f86e303659db90db1c4b614c8c", size = 228785, upload-time = "2025-10-06T05:35:37.949Z" }, + { url = "https://files.pythonhosted.org/packages/84/f4/b5bc148df03082f05d2dd30c089e269acdbe251ac9a9cf4e727b2dbb8a3d/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e2de870d16a7a53901e41b64ffdf26f2fbb8917b3e6ebf398098d72c5b20bd7f", size = 230312, upload-time = "2025-10-06T05:35:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/db/4b/87e95b5d15097c302430e647136b7d7ab2398a702390cf4c8601975709e7/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:20e63c9493d33ee48536600d1a5c95eefc870cd71e7ab037763d1fbb89cc51e7", size = 217650, upload-time = "2025-10-06T05:35:40.377Z" }, + { url = "https://files.pythonhosted.org/packages/e5/70/78a0315d1fea97120591a83e0acd644da638c872f142fd72a6cebee825f3/frozenlist-1.8.0-cp310-cp310-win32.whl", hash = "sha256:adbeebaebae3526afc3c96fad434367cafbfd1b25d72369a9e5858453b1bb71a", size = 39659, upload-time = "2025-10-06T05:35:41.863Z" }, + { url = "https://files.pythonhosted.org/packages/66/aa/3f04523fb189a00e147e60c5b2205126118f216b0aa908035c45336e27e4/frozenlist-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:667c3777ca571e5dbeb76f331562ff98b957431df140b54c85fd4d52eea8d8f6", size = 43837, upload-time = "2025-10-06T05:35:43.205Z" }, + { url = "https://files.pythonhosted.org/packages/39/75/1135feecdd7c336938bd55b4dc3b0dfc46d85b9be12ef2628574b28de776/frozenlist-1.8.0-cp310-cp310-win_arm64.whl", hash = "sha256:80f85f0a7cc86e7a54c46d99c9e1318ff01f4687c172ede30fd52d19d1da1c8e", size = 39989, upload-time = "2025-10-06T05:35:44.596Z" }, + { url = "https://files.pythonhosted.org/packages/bc/03/077f869d540370db12165c0aa51640a873fb661d8b315d1d4d67b284d7ac/frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84", size = 86912, upload-time = "2025-10-06T05:35:45.98Z" }, + { url = "https://files.pythonhosted.org/packages/df/b5/7610b6bd13e4ae77b96ba85abea1c8cb249683217ef09ac9e0ae93f25a91/frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9", size = 50046, upload-time = "2025-10-06T05:35:47.009Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ef/0e8f1fe32f8a53dd26bdd1f9347efe0778b0fddf62789ea683f4cc7d787d/frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93", size = 50119, upload-time = "2025-10-06T05:35:48.38Z" }, + { url = "https://files.pythonhosted.org/packages/11/b1/71a477adc7c36e5fb628245dfbdea2166feae310757dea848d02bd0689fd/frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f", size = 231067, upload-time = "2025-10-06T05:35:49.97Z" }, + { url = "https://files.pythonhosted.org/packages/45/7e/afe40eca3a2dc19b9904c0f5d7edfe82b5304cb831391edec0ac04af94c2/frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695", size = 233160, upload-time = "2025-10-06T05:35:51.729Z" }, + { url = "https://files.pythonhosted.org/packages/a6/aa/7416eac95603ce428679d273255ffc7c998d4132cfae200103f164b108aa/frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52", size = 228544, upload-time = "2025-10-06T05:35:53.246Z" }, + { url = "https://files.pythonhosted.org/packages/8b/3d/2a2d1f683d55ac7e3875e4263d28410063e738384d3adc294f5ff3d7105e/frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581", size = 243797, upload-time = "2025-10-06T05:35:54.497Z" }, + { url = "https://files.pythonhosted.org/packages/78/1e/2d5565b589e580c296d3bb54da08d206e797d941a83a6fdea42af23be79c/frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567", size = 247923, upload-time = "2025-10-06T05:35:55.861Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/65872fcf1d326a7f101ad4d86285c403c87be7d832b7470b77f6d2ed5ddc/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b", size = 230886, upload-time = "2025-10-06T05:35:57.399Z" }, + { url = "https://files.pythonhosted.org/packages/a0/76/ac9ced601d62f6956f03cc794f9e04c81719509f85255abf96e2510f4265/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92", size = 245731, upload-time = "2025-10-06T05:35:58.563Z" }, + { url = "https://files.pythonhosted.org/packages/b9/49/ecccb5f2598daf0b4a1415497eba4c33c1e8ce07495eb07d2860c731b8d5/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d", size = 241544, upload-time = "2025-10-06T05:35:59.719Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/ddf24113323c0bbcc54cb38c8b8916f1da7165e07b8e24a717b4a12cbf10/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd", size = 241806, upload-time = "2025-10-06T05:36:00.959Z" }, + { url = "https://files.pythonhosted.org/packages/a7/fb/9b9a084d73c67175484ba2789a59f8eebebd0827d186a8102005ce41e1ba/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967", size = 229382, upload-time = "2025-10-06T05:36:02.22Z" }, + { url = "https://files.pythonhosted.org/packages/95/a3/c8fb25aac55bf5e12dae5c5aa6a98f85d436c1dc658f21c3ac73f9fa95e5/frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25", size = 39647, upload-time = "2025-10-06T05:36:03.409Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f5/603d0d6a02cfd4c8f2a095a54672b3cf967ad688a60fb9faf04fc4887f65/frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b", size = 44064, upload-time = "2025-10-06T05:36:04.368Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/c2c9ab44e181f043a86f9a8f84d5124b62dbcb3a02c0977ec72b9ac1d3e0/frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a", size = 39937, upload-time = "2025-10-06T05:36:05.669Z" }, + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" }, + { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload-time = "2025-10-06T05:36:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload-time = "2025-10-06T05:36:28.855Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload-time = "2025-10-06T05:36:29.877Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload-time = "2025-10-06T05:36:31.301Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload-time = "2025-10-06T05:36:32.531Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload-time = "2025-10-06T05:36:33.706Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload-time = "2025-10-06T05:36:34.947Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload-time = "2025-10-06T05:36:36.534Z" }, + { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload-time = "2025-10-06T05:36:38.582Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload-time = "2025-10-06T05:36:40.152Z" }, + { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload-time = "2025-10-06T05:36:41.355Z" }, + { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload-time = "2025-10-06T05:36:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload-time = "2025-10-06T05:36:44.251Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload-time = "2025-10-06T05:36:45.423Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload-time = "2025-10-06T05:36:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload-time = "2025-10-06T05:36:47.8Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload-time = "2025-10-06T05:36:48.78Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload-time = "2025-10-06T05:36:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload-time = "2025-10-06T05:36:50.851Z" }, + { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload-time = "2025-10-06T05:36:51.898Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload-time = "2025-10-06T05:36:53.101Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload-time = "2025-10-06T05:36:54.309Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload-time = "2025-10-06T05:36:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload-time = "2025-10-06T05:36:56.758Z" }, + { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload-time = "2025-10-06T05:36:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload-time = "2025-10-06T05:36:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload-time = "2025-10-06T05:37:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload-time = "2025-10-06T05:37:02.115Z" }, + { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload-time = "2025-10-06T05:37:03.711Z" }, + { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload-time = "2025-10-06T05:37:04.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload-time = "2025-10-06T05:37:06.343Z" }, + { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload-time = "2025-10-06T05:37:07.431Z" }, + { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127, upload-time = "2025-10-06T05:37:08.438Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698, upload-time = "2025-10-06T05:37:09.48Z" }, + { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749, upload-time = "2025-10-06T05:37:10.569Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298, upload-time = "2025-10-06T05:37:11.993Z" }, + { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015, upload-time = "2025-10-06T05:37:13.194Z" }, + { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038, upload-time = "2025-10-06T05:37:14.577Z" }, + { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130, upload-time = "2025-10-06T05:37:15.781Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845, upload-time = "2025-10-06T05:37:17.037Z" }, + { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131, upload-time = "2025-10-06T05:37:18.221Z" }, + { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542, upload-time = "2025-10-06T05:37:19.771Z" }, + { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308, upload-time = "2025-10-06T05:37:20.969Z" }, + { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210, upload-time = "2025-10-06T05:37:22.252Z" }, + { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972, upload-time = "2025-10-06T05:37:23.5Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536, upload-time = "2025-10-06T05:37:25.581Z" }, + { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330, upload-time = "2025-10-06T05:37:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627, upload-time = "2025-10-06T05:37:28.075Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238, upload-time = "2025-10-06T05:37:29.373Z" }, + { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738, upload-time = "2025-10-06T05:37:30.792Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739, upload-time = "2025-10-06T05:37:32.127Z" }, + { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186, upload-time = "2025-10-06T05:37:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196, upload-time = "2025-10-06T05:37:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830, upload-time = "2025-10-06T05:37:37.663Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289, upload-time = "2025-10-06T05:37:39.261Z" }, + { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318, upload-time = "2025-10-06T05:37:43.213Z" }, + { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814, upload-time = "2025-10-06T05:37:45.337Z" }, + { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762, upload-time = "2025-10-06T05:37:46.657Z" }, + { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470, upload-time = "2025-10-06T05:37:47.946Z" }, + { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042, upload-time = "2025-10-06T05:37:49.499Z" }, + { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148, upload-time = "2025-10-06T05:37:50.745Z" }, + { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676, upload-time = "2025-10-06T05:37:52.222Z" }, + { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451, upload-time = "2025-10-06T05:37:53.425Z" }, + { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507, upload-time = "2025-10-06T05:37:54.513Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" }, +] + +[[package]] +name = "fsspec" +version = "2026.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/10/a1/ae4e3e5003468d6391d2c77b6fa1cd73bd5d13511d81c642d7b28ac90ed4/fsspec-2026.6.0.tar.gz", hash = "sha256:f5bac145310fe30e16e1471bd6840b2d990d609e872251d7e674241822abf01a", size = 313646, upload-time = "2026-06-16T01:57:28.105Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/22/4222d7ddf3da30f363edaa98e329c2bce6c65497c9cb2810931c8b2c0fbc/fsspec-2026.6.0-py3-none-any.whl", hash = "sha256:02e0b71817df9b2169dc30a16832045764def1191b43dcff5bb85bdee212d2a1", size = 203949, upload-time = "2026-06-16T01:57:26.358Z" }, +] + +[[package]] +name = "google-api-core" +version = "2.31.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-auth" }, + { name = "googleapis-common-protos" }, + { name = "proto-plus" }, + { name = "protobuf" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/22/155cadf1d49272a9cf48f3168c0f3874fa13397297e611a5ea00cd093880/google_api_core-2.31.0.tar.gz", hash = "sha256:2be84ee0f584c48e6bde1b36766e23348b361fb7e55e56135fc76ce1c397f9c2", size = 176492, upload-time = "2026-06-03T14:52:17.257Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/40/9bdbb60b03a332bd45acb8703da08bbc27d991d35286b62e42acc86d243a/google_api_core-2.31.0-py3-none-any.whl", hash = "sha256:ef79fb3784c71cbac89cbd03301ba0c8fb8ad2aa95d7f9204dd9628f7adf59ab", size = 173102, upload-time = "2026-06-03T14:51:26.729Z" }, +] + +[package.optional-dependencies] +grpc = [ + { name = "grpcio" }, + { name = "grpcio-status" }, +] + +[[package]] +name = "google-auth" +version = "2.56.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "pyasn1-modules" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/66/b4ba60005743e01933e22b4f62313e063f7460458b7d8a358427b4930013/google_auth-2.56.0.tar.gz", hash = "sha256:f90fa030b569a92654b9d690665a073841df33d57487be53db583a9a0867a553", size = 364629, upload-time = "2026-07-13T19:09:57.143Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/7d/cd3e187f14ce832e419e70709bfcc40cb0dc11517d5d03c9d3919bcc3101/google_auth-2.56.0-py3-none-any.whl", hash = "sha256:6e88c10217e07a92bfd01cac8ee99e32ccfb08414c3102e6c5b8d58f37a0d1e0", size = 257976, upload-time = "2026-07-13T19:09:42.685Z" }, +] + +[[package]] +name = "google-cloud-vision" +version = "3.15.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-api-core", extra = ["grpc"] }, + { name = "google-auth" }, + { name = "grpcio" }, + { name = "proto-plus" }, + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/15/7b24e071fa8ee431ea44663ef3c18351cecae45c6433d25fbc64cdb3836b/google_cloud_vision-3.15.0.tar.gz", hash = "sha256:ed2b79ca05a58a929ec112259a9caa698509f6348762a8eced3310e6572a6c70", size = 589231, upload-time = "2026-06-22T23:22:47.231Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/c1/29130149389b654c206e50772a845ff3a375686238b5e73c0c0d94e05f99/google_cloud_vision-3.15.0-py3-none-any.whl", hash = "sha256:6293186bb824a986cdf73bcc83ad0e44a1ef26942347b7e01598061619bb66d4", size = 542216, upload-time = "2026-06-22T23:20:49.89Z" }, +] + +[[package]] +name = "googleapis-common-protos" +version = "1.75.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b5/c8/f439cffde755cffa462bfbb156278fa6f9d09119719af9814b858fd4f81f/googleapis_common_protos-1.75.0.tar.gz", hash = "sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd", size = 151035, upload-time = "2026-05-07T08:04:49.423Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/c8/e2645aa8ed02fd4c7a2f59d68783b65b1f3cbdfe39a6308e156509d1fee8/googleapis_common_protos-1.75.0-py3-none-any.whl", hash = "sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed", size = 300631, upload-time = "2026-05-07T08:03:30.345Z" }, +] + +[[package]] +name = "grpcio" +version = "1.82.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/90/bc/656b89387d6f4ed7e0686c7b64c2ae7e554a759aa58122c8e5fb99392c32/grpcio-1.82.1.tar.gz", hash = "sha256:707b24abd90fcb1e45bcc080577da1dbf9971d107490589b9539af8e1e77b4b5", size = 13187300, upload-time = "2026-07-08T12:36:16.588Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/14/5d05bfd85c101cbe44a12d7c1cea9c40698e0438cddf3a70019f735b5a27/grpcio-1.82.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:91859d1cac5f47caec5fc40e9f827500cdb54ce5b36450dc9a65616b5af49c17", size = 6177087, upload-time = "2026-07-08T12:34:06.825Z" }, + { url = "https://files.pythonhosted.org/packages/19/2e/c906f8e6d0b54c0137885fff6f7b5883c6bbc381b44a0ba5ea07d7d1579b/grpcio-1.82.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:c80c9741dcef192f669876a81957cf7713b441c2f0c43631350d75fa49321d31", size = 11960907, upload-time = "2026-07-08T12:34:10.583Z" }, + { url = "https://files.pythonhosted.org/packages/de/be/ec4aa76cdf25539b9e960cbb9d5739f892ea6cde58078b5293860c1159d3/grpcio-1.82.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b89cff456796d2f0581783726ad017a2c70aff2d27b0f05504c34e2e417f7560", size = 6754802, upload-time = "2026-07-08T12:34:13.082Z" }, + { url = "https://files.pythonhosted.org/packages/e6/dd/47519c2a8fd9db47ec4493f44bd9f5b0175307e07089b1132e54b7b5b19c/grpcio-1.82.1-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:d6e8a08f7038ba7a77f71e250804e4aba84fe91d22cfc54ff43c07b7529c4728", size = 7484535, upload-time = "2026-07-08T12:34:15.164Z" }, + { url = "https://files.pythonhosted.org/packages/63/99/659711e9689c4dd553bcd4eacff9cb9f458f34b60edf7afb3bbc1b0a58a2/grpcio-1.82.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:50fd2fe83426b1b1c6cdc4d72d555223b7dddf8ce07c5bac218b13fc6d684c6f", size = 6919066, upload-time = "2026-07-08T12:34:17.367Z" }, + { url = "https://files.pythonhosted.org/packages/29/39/f2b772356b4f593ffe439795509fcbf675b0ff98211ae8ce2a180f2e559f/grpcio-1.82.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b758540a24d5394a9c578bf9f6126389f474b106ac3d9df1d53de56cb14c9fd9", size = 7525855, upload-time = "2026-07-08T12:34:19.479Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/b28cfffb989a84d8272593498bddd2d68148cce1813ad55189c469b0f1f8/grpcio-1.82.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c4ba4aac238f685743575d9d700003ac16537cce26e7c774993134f530652464", size = 8565122, upload-time = "2026-07-08T12:34:21.951Z" }, + { url = "https://files.pythonhosted.org/packages/97/f9/54956cb0c701190cbc9d7e535c3f84acf0285c6b9ed198a902766e17c3cd/grpcio-1.82.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ed6fc621d6f366c88a60f0b971d5afd21d441d9aa561ee688de5b7acdb2cf901", size = 7933872, upload-time = "2026-07-08T12:34:24.539Z" }, + { url = "https://files.pythonhosted.org/packages/76/85/5f9cd1f965bbe4329556a212f178ae0c072b18b446cae05ed32fa8847c53/grpcio-1.82.1-cp310-cp310-win32.whl", hash = "sha256:bd2f45e46fff5b91c10997d0743a987517a7dde67c64c592835c2dcaac66f587", size = 4257373, upload-time = "2026-07-08T12:34:26.566Z" }, + { url = "https://files.pythonhosted.org/packages/93/b0/c4f42f7c69c53d27ed41643421b55908bcbe885b68f5a208135c72917c98/grpcio-1.82.1-cp310-cp310-win_amd64.whl", hash = "sha256:5e171d5f0d6a0af78ea7512783f170a44f80c165259d8773e3a354a7f991f2b5", size = 5006571, upload-time = "2026-07-08T12:34:28.778Z" }, + { url = "https://files.pythonhosted.org/packages/26/5b/e5092af97fa671ca279b3e373251af4bf87d5fbda7dc85f6a616899562a7/grpcio-1.82.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:0ddb18a9a9e1f46692b3567ae4abb3f8d117ce6afea48650f8eca06d8ab5d06f", size = 6181472, upload-time = "2026-07-08T12:34:31.009Z" }, + { url = "https://files.pythonhosted.org/packages/c1/8f/18053a3a2ca03d0c2a1b8cc7271e705007a16aa5dae84bac00935c5b1a7f/grpcio-1.82.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:cf855b1af246720f567b0ce5d0724d45dfa4188eecc3296a2a69257b11b9e94b", size = 11970995, upload-time = "2026-07-08T12:34:33.603Z" }, + { url = "https://files.pythonhosted.org/packages/5b/7e/21b1acb052876ad00959ec4d1b05fe08607d650bcfa282073bb164c2703c/grpcio-1.82.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddb30cb13e25bc13cea70ffc69d6d90c49d36ea6c1d4549e6912f70177834cac", size = 6760127, upload-time = "2026-07-08T12:34:36.122Z" }, + { url = "https://files.pythonhosted.org/packages/3e/12/25eef9c245c54f0061317d13a302357fe8ea03bac240b2b02ececcf54da4/grpcio-1.82.1-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1e822b2774f719c017cbe700b6e47173b6ae290fb84906f52a5a3c2c60b62e1e", size = 7484377, upload-time = "2026-07-08T12:34:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/a0/41/1a348767eb9d9bd7765dc4fa8a01723d3bb386d67f981ee5c6f9c02b8b1c/grpcio-1.82.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5dafb1ece8ed45dee7c738f166ec82e19673221ed5ab8967f72858a4685345b2", size = 6924269, upload-time = "2026-07-08T12:34:40.583Z" }, + { url = "https://files.pythonhosted.org/packages/e4/b9/3aae7a03d34c86ea27988db859a6087c186f6c3f53f9b551e07afd989bfa/grpcio-1.82.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e06503106e7271e0a49fd5a1ac04747f1e47e87d900476db6fe45bc87ee411f4", size = 7531848, upload-time = "2026-07-08T12:34:43.277Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/3c4afa625d0dac9090707966916284c035fc5b2fb3e2c51e156accee6735/grpcio-1.82.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ff99bc8cafb6a952201c37b995f425e641c93ffa6e072258525feab57290141d", size = 8568217, upload-time = "2026-07-08T12:34:45.502Z" }, + { url = "https://files.pythonhosted.org/packages/20/9c/d8489c628e73e20a3d034e7f66912de7b1acb405f01d388f056a88e47924/grpcio-1.82.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:644ae1b94266ac785330f4590a69e52b6a7eb73029043a02209db81c81397d69", size = 7938771, upload-time = "2026-07-08T12:34:48.323Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b7/0a92cfd1658f3a896d4aa12d4efeb7dd4ddfc723725ae22741a5241ea710/grpcio-1.82.1-cp311-cp311-win32.whl", hash = "sha256:e203d2e19d471630084a16c815616f8211dff21c268ab3c5f5bf38417832e074", size = 4256432, upload-time = "2026-07-08T12:34:50.432Z" }, + { url = "https://files.pythonhosted.org/packages/c7/6a/2872c761b025d9ec74386f22a4a7d59c5a5b00ebf718761b33739ffc45de/grpcio-1.82.1-cp311-cp311-win_amd64.whl", hash = "sha256:0d8299c285fe6cc6a1f56badf8d3bc5078c8d20273ee64bafa3783b4bc29a769", size = 5009633, upload-time = "2026-07-08T12:34:52.67Z" }, + { url = "https://files.pythonhosted.org/packages/dc/88/d1350bf3343a2ed87d801584e40609f6c6bd3087926eeca03de50348cf4a/grpcio-1.82.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:c09bd5fa0d5b1fbd773ec349fe61441c3e4ebf168c229aa7538a820bdfad6a58", size = 6144689, upload-time = "2026-07-08T12:34:55.567Z" }, + { url = "https://files.pythonhosted.org/packages/e6/33/71875cdecd27c24ac1385d4783a09853f01b84a825a36aec2a2bc7d0d080/grpcio-1.82.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:1eae24810720734598e3e6a1a528d5de0f265fe3fc86575e9ecce424b9ec7379", size = 11952034, upload-time = "2026-07-08T12:34:58.128Z" }, + { url = "https://files.pythonhosted.org/packages/82/b2/d9125df3d8a140dec12cc82c05b7deafedeababcff6496f28b2fd5634d10/grpcio-1.82.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a6bd5daf5bde7b24d7ad2cbaf8bf9eac620d96222016bb5e7ddde930dec0673f", size = 6710772, upload-time = "2026-07-08T12:35:01.33Z" }, + { url = "https://files.pythonhosted.org/packages/88/9b/69e2d1627398b964f34437dc476a5aff5a2cc8e7f247d26272b5674b5faf/grpcio-1.82.1-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1ecfde669cb687ac020d31ff76debe5dc7a62213335f02262eb6625628da1c03", size = 7450677, upload-time = "2026-07-08T12:35:03.926Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e7/8f855ca29c294956122a2a73023655b9b02602d5111dad2b9b00e7631c68/grpcio-1.82.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:011c8badee95734dee8bf05ce3464756a0ac3ebb8d443afd20c0e2b5e4640ad9", size = 6886855, upload-time = "2026-07-08T12:35:06.174Z" }, + { url = "https://files.pythonhosted.org/packages/5f/f0/fa87e85f49925f44c479d07e58b051e69bcfef6b6d5fbc6749d140f6730a/grpcio-1.82.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b85f4564926fb23114d239392bdcae200db1e6179629edd7d7ab0ab89c96a197", size = 7501323, upload-time = "2026-07-08T12:35:08.49Z" }, + { url = "https://files.pythonhosted.org/packages/67/55/2e0b10ae1d3ef9dcc480b91dc2158f4931fc4675d3af0a2836e39b2a744f/grpcio-1.82.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2c0c8270833395644c3fe6b6a806397955a2bc0538000a19a78b90c05a6c16e0", size = 8536899, upload-time = "2026-07-08T12:35:10.975Z" }, + { url = "https://files.pythonhosted.org/packages/bd/95/a3d8b0431fa221efc51ee39d73595ede74ba82a43b7c4313192e580face2/grpcio-1.82.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2ba199205ff46c7778290fe1673c91ac8e7e45678dd5c86e9e56fa33ec8788f6", size = 7913892, upload-time = "2026-07-08T12:35:13.944Z" }, + { url = "https://files.pythonhosted.org/packages/b8/92/f2651ec704d9852a56faef394775038afba435b50ce82ab2404d119c3355/grpcio-1.82.1-cp312-cp312-win32.whl", hash = "sha256:06127691866e295c14e84a1fb86356dd962254f6abd0da4ca4b001eea9e89438", size = 4240985, upload-time = "2026-07-08T12:35:16.048Z" }, + { url = "https://files.pythonhosted.org/packages/96/4f/a5fe8bf0d0a1b24855f370293075c931f27de4eb55f0f158786095bf3c11/grpcio-1.82.1-cp312-cp312-win_amd64.whl", hash = "sha256:1fa3223a3a2e1db74f4c2b255189eb7ea875dfba56e221d252ee3fc7b204778e", size = 5001580, upload-time = "2026-07-08T12:35:18.689Z" }, + { url = "https://files.pythonhosted.org/packages/1b/3e/496992d08c0aaa11272eb6228dc8ab947da01fe835de243cd00521bce4c4/grpcio-1.82.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:b454a2d97bfab7565683a02345f86bd182ab69fd7c2bdb7414171e7538f266b1", size = 6146068, upload-time = "2026-07-08T12:35:21.365Z" }, + { url = "https://files.pythonhosted.org/packages/e7/8f/f263d6f14fdba6b56cfadd91fd3e158a52682b72c6016d1f8723d435659f/grpcio-1.82.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:3dde70abfc80b3be11de53ba0d601c439e7fb2afd3583ad1788d1146bec92fdc", size = 11948600, upload-time = "2026-07-08T12:35:24.312Z" }, + { url = "https://files.pythonhosted.org/packages/8c/14/3a02e6ee49c2d85bc15eaae321e0e11ab3542cad3c5b2de121ecce0c4296/grpcio-1.82.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f5523099c98c292ea1ae08e617249db760c56a78f8deae879027fe7d1ffbcbf6", size = 6714591, upload-time = "2026-07-08T12:35:27.027Z" }, + { url = "https://files.pythonhosted.org/packages/69/80/58e3738696f48ab7645347b98d8a7f93d10e00e6218388fbfcd6c9310e3d/grpcio-1.82.1-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:5e5c4dc0a59b0f8490a6bdfd6fc8395b9d8ad8a8407c7d67ca7b5bba15c0877f", size = 7454995, upload-time = "2026-07-08T12:35:29.599Z" }, + { url = "https://files.pythonhosted.org/packages/f3/6c/2557c1a889363072fbf2285ecd0e8c44860d4dbd60f017a32537c5b863e2/grpcio-1.82.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c40d94ba820329cc191981bc22fa6f6eed0799c6d921f3c6709521d59d4a2fd7", size = 6888621, upload-time = "2026-07-08T12:35:32.38Z" }, + { url = "https://files.pythonhosted.org/packages/d2/66/907706ccaff1223f1e10fd5b37fc16faead43392fccb4e786e7e390ac141/grpcio-1.82.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4c816180e31e273caaec6f8bd86a8392499d5bbb26f41da44e3dce48bde69095", size = 7505069, upload-time = "2026-07-08T12:35:35.072Z" }, + { url = "https://files.pythonhosted.org/packages/b3/7c/ff97b0d0f635987ee5ec80dfedafa1aad629303745d48e8637d10eec5b80/grpcio-1.82.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e31fd780b261830720cb70b0fd8f0aa51d49e75a66d7464ad2e31d4b765f2580", size = 8535384, upload-time = "2026-07-08T12:35:37.954Z" }, + { url = "https://files.pythonhosted.org/packages/62/9e/a97fddd970a8d1588cade06eca20443761c1858b0ad6590a5c835aa18062/grpcio-1.82.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d76152d7c31d7210d4a106e5d8b64da5bba5d6abf11be30e2f7b0a0c59bbcbf", size = 7910707, upload-time = "2026-07-08T12:35:40.797Z" }, + { url = "https://files.pythonhosted.org/packages/20/e4/eaba1517888af483a88d449eb7566f0f7f63446d46f339c5891798435875/grpcio-1.82.1-cp313-cp313-win32.whl", hash = "sha256:38e9dcb5258226fb3282630b31b16a968df52c8c6ad514af540646e0a4578f8a", size = 4240363, upload-time = "2026-07-08T12:35:43.298Z" }, + { url = "https://files.pythonhosted.org/packages/b0/42/66a98d47732e35290bef722f6149fed3709cd4cf61166f6f53a12f417302/grpcio-1.82.1-cp313-cp313-win_amd64.whl", hash = "sha256:3dbfb52c36d9511ac2b8e6c94fdde837b393ae520cc321f52a333a2deedf5a90", size = 5000980, upload-time = "2026-07-08T12:35:46.262Z" }, + { url = "https://files.pythonhosted.org/packages/b4/cb/cf9ae9e164c6e6dc8a494faa9771763df9da150eefe19671009624d1559f/grpcio-1.82.1-cp314-cp314-linux_armv7l.whl", hash = "sha256:35f990f7784c8fd2872644f07f96ebb4d9e48e145a190ab80d0280af91a1bfb2", size = 6146901, upload-time = "2026-07-08T12:35:49.261Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2a/eccf26dbcfb7f7cab8027c5490a16c8937c5aa7a2ec20a3eab2cf7a43165/grpcio-1.82.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:46536a4a1f4434df3c851b9254ff6fc7df5705b273681a15ca277d5921c178a0", size = 11954756, upload-time = "2026-07-08T12:35:52.196Z" }, + { url = "https://files.pythonhosted.org/packages/ad/75/3b3b4a3cc9f084b026af96e1d3e539b1af29ec7f41ed0dfff3cb99cc8626/grpcio-1.82.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d6650a7c1ebb7921c70e12a385439a8118efb99e669fa9ed31cf25db1843937c", size = 6723087, upload-time = "2026-07-08T12:35:54.973Z" }, + { url = "https://files.pythonhosted.org/packages/9c/8b/b0f0c9b1400a99a4da4c09b114f101b192f8f11192e76f620b8962f5d90b/grpcio-1.82.1-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b8e110c66df5204c0506d6c8787b35d48b8b699ef5aa366d6c4d67325c67fe9a", size = 7454542, upload-time = "2026-07-08T12:35:57.586Z" }, + { url = "https://files.pythonhosted.org/packages/b7/bd/428e38868382aa193697a5aa53973f29c58e58ba4268aa0c86a2715ee58b/grpcio-1.82.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f853eae07235a51a27bb5d6a9a175a59ca55dc9b99edc6ce2f76f07332d333ae", size = 6889588, upload-time = "2026-07-08T12:36:00.012Z" }, + { url = "https://files.pythonhosted.org/packages/49/ce/03e01d5e10259bf5c08ee50570cc94724e79c956f61fd2f09b341af0956c/grpcio-1.82.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:60b0f2c95337694fc094b77d9f60f50566c84b5677393e342eb98daeee242d98", size = 7514166, upload-time = "2026-07-08T12:36:02.693Z" }, + { url = "https://files.pythonhosted.org/packages/ff/59/278b4b600329e2ba3849f3c1ea3c820b3a01b38a7ad184ba09595e8d2733/grpcio-1.82.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:b064fc444812bdaa9825d33c26f8d732d63ee6a5d78557c1faf92c98687fed27", size = 8536166, upload-time = "2026-07-08T12:36:05.349Z" }, + { url = "https://files.pythonhosted.org/packages/44/27/7ccf2ef00f27a8e47a79d641c8ceaf7d3028c7a03d9a97b4c8a9a783c086/grpcio-1.82.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7d7ede11d747b4e1bd05e3bc0260e155b65a88735a895a10f6521f19b889511e", size = 7912572, upload-time = "2026-07-08T12:36:08.393Z" }, + { url = "https://files.pythonhosted.org/packages/0d/be/33742482d2753f2d3a1b7641664b6622262d44f2f3b609f13425dd86d36f/grpcio-1.82.1-cp314-cp314-win32.whl", hash = "sha256:3d21f19838dc255ecbb79321b15ae9b98fbddff4c3d4aedb0a81bdd7f4ab572a", size = 4321856, upload-time = "2026-07-08T12:36:10.899Z" }, + { url = "https://files.pythonhosted.org/packages/cc/67/03329c847172c78ddeb1eb9be6b444fdbc12775a84c958b27e427e7b926d/grpcio-1.82.1-cp314-cp314-win_amd64.whl", hash = "sha256:e20f1edbb15f99e3128ec86433f9785fd5a451d8f115e74fe0056134f092a9d5", size = 5141114, upload-time = "2026-07-08T12:36:13.595Z" }, +] + +[[package]] +name = "grpcio-status" +version = "1.82.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "googleapis-common-protos" }, + { name = "grpcio" }, + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/29/4d/3037f220cea14be7e77bb52e7dec18bdc90554e218642c8ebde620de37e3/grpcio_status-1.82.1.tar.gz", hash = "sha256:d9de8ac34763cd468130fdd2923294af7c3d28d09426f6c45221d27c25931130", size = 13906, upload-time = "2026-07-08T12:39:41.943Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/5c/2f6c7e24b99dbaf5f8d7e5b1413fc9fc23360cdeb7f290b49a1c87b49560/grpcio_status-1.82.1-py3-none-any.whl", hash = "sha256:71c7f2bea725c0027fa396b77a55d4e9d90591bab90de4c1c03d4df9a56552f0", size = 14636, upload-time = "2026-07-08T12:39:23.113Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "h2" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "hpack" }, + { name = "hyperframe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1d/17/afa56379f94ad0fe8defd37d6eb3f89a25404ffc71d4d848893d270325fc/h2-4.3.0.tar.gz", hash = "sha256:6c59efe4323fa18b47a632221a1888bd7fde6249819beda254aeca909f221bf1", size = 2152026, upload-time = "2025-08-23T18:12:19.778Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/b2/119f6e6dcbd96f9069ce9a2665e0146588dc9f88f29549711853645e736a/h2-4.3.0-py3-none-any.whl", hash = "sha256:c438f029a25f7945c69e0ccf0fb951dc3f73a5f6412981daee861431b70e2bdd", size = 61779, upload-time = "2025-08-23T18:12:17.779Z" }, +] + +[[package]] +name = "hf-xet" +version = "1.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/63/39/67be8d71f900d9a55761b6022821d6679fb56c64f1b6063d5af2c2606727/hf_xet-1.5.2.tar.gz", hash = "sha256:73044bd31bae33c984af832d19c752a0dffb67518fee9ddbd91d616e1101cf47", size = 903674, upload-time = "2026-07-16T17:29:56.833Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/29/be/525eabac5d1736b679c39e342ecd4292534012546a2d18f0043c8e3b6021/hf_xet-1.5.2-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:4a5ecb9cda8512ba2aa8ee5d37c87a1422992165892d653098c7b90247481c3b", size = 4064284, upload-time = "2026-07-16T17:29:29.907Z" }, + { url = "https://files.pythonhosted.org/packages/c5/3f/699749dd78442480eda4e4fca494284b0e3542e4063cc37654d5fdc929e6/hf_xet-1.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8764488197c1d7b1378c8438c18d2eea902e150dbca0b0f0d2d32603fb9b5576", size = 3828537, upload-time = "2026-07-16T17:29:31.549Z" }, + { url = "https://files.pythonhosted.org/packages/22/d7/2658ac0a5b9f4664ca27ce31bd015044fe9dea50ed455fb5197aba819c11/hf_xet-1.5.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8d7446f72abbf7e01ca5ff131786bc2e74a56393462c17a6bf1e303fbab81db4", size = 4417133, upload-time = "2026-07-16T17:29:33.391Z" }, + { url = "https://files.pythonhosted.org/packages/d9/58/8343f3cb63c8fa058d576136df3871550f7d5214a8f048a7ea2eab6ac906/hf_xet-1.5.2-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:580e59e29bf37aece1f2b68537de1e3fb04f43a23d910dcf6f128280b5bfbba4", size = 4212613, upload-time = "2026-07-16T17:29:34.989Z" }, + { url = "https://files.pythonhosted.org/packages/0c/33/a968f4e4535037b36941ec00714625fb60e026302407e7e26ca9f3e65f4e/hf_xet-1.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bee28c619622d36968056532fd49cf2b35ca75099b1d616c31a618a893491380", size = 4412710, upload-time = "2026-07-16T17:29:36.646Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d9/9e33981173dbaf194ba0015202b02d467b624d44d4eba89e1bf06c0d2995/hf_xet-1.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e396ab0faf6298199ad7a95305c3ca8498cb825978a6485be6d00587ee4ec577", size = 4628455, upload-time = "2026-07-16T17:29:38.352Z" }, + { url = "https://files.pythonhosted.org/packages/e9/4b/cc682832de4264a03880a2d1b5ec3e1fab3bf307f508817250baafdb9996/hf_xet-1.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:fd3add255549e8ef58fa35b2e42dc016961c050600444e7d77d030ba6b57120e", size = 3979044, upload-time = "2026-07-16T17:29:40.329Z" }, + { url = "https://files.pythonhosted.org/packages/ea/09/b2cdf2a0fb39a08af3222b96092a36bd3b40c54123eef07de4422e870971/hf_xet-1.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:d6f9c58549407b84b9a5383afd68db0acc42345326a3159990b36a5ca8a20e4e", size = 3808037, upload-time = "2026-07-16T17:29:42.357Z" }, + { url = "https://files.pythonhosted.org/packages/de/ba/2b70603c7552db82baeb2623e2336898304a17328845151be4fe1f48d420/hf_xet-1.5.2-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:f922b8f5fb84f1dd3d7ab7a1316354a1bca9b1c73ecfc19c76e51a2a49d29799", size = 4033760, upload-time = "2026-07-16T17:29:43.884Z" }, + { url = "https://files.pythonhosted.org/packages/60/ac/b097a86a1e4a6098f3a79382643ab09d5733d87ccc864877ad1e12b49b70/hf_xet-1.5.2-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:045f84440c55cdeb659cf1a1dd48c77bcd0d2e93632e2fea8f2c3bdee79f38ed", size = 3841438, upload-time = "2026-07-16T17:29:45.539Z" }, + { url = "https://files.pythonhosted.org/packages/d3/35/db860aa3a0780660324a506ad4b3d322ddc6ecbba4b9340aed0942cbf21c/hf_xet-1.5.2-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:db78c39c83d6279daddc98e2238f373ab8980685556d42472b4ec51abcf03e8c", size = 4428006, upload-time = "2026-07-16T17:29:46.996Z" }, + { url = "https://files.pythonhosted.org/packages/af/6b/832dd980af4b0c3ae0660e309285f2ffcdff2faa38129390dbb47aa4a3f9/hf_xet-1.5.2-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7db73c810500c54c6760be8c39d4b2e476974de85424c50063efc22fdda13025", size = 4221099, upload-time = "2026-07-16T17:29:48.525Z" }, + { url = "https://files.pythonhosted.org/packages/9e/05/ae50f0d34e3254e6c3e208beb2519f6b8673016fc4b3643badaf6450d186/hf_xet-1.5.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6395cfe3c9cbead4f16b31808b0e67eac428b66c656f856e99636adaddea878f", size = 4420766, upload-time = "2026-07-16T17:29:50.092Z" }, + { url = "https://files.pythonhosted.org/packages/07/a9/c050bc2743a2bcd68928bfee157b08681667a164a24ec95fbfcfcd717e08/hf_xet-1.5.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cde8cd167126bb6109b2ceb19b844433a4988643e8f3e01dd9dd0e4a34535097", size = 4636716, upload-time = "2026-07-16T17:29:51.62Z" }, + { url = "https://files.pythonhosted.org/packages/e9/f8/68b01c5c2edb56ac9a67b3d076ffddcb90867abaee923923eb34e7a14e76/hf_xet-1.5.2-cp38-abi3-win_amd64.whl", hash = "sha256:ecf63d1cb69a9a7319910f8f83fcf9b46e7a32dfcf4b8f8eeddb55f647306e65", size = 3988373, upload-time = "2026-07-16T17:29:53.395Z" }, + { url = "https://files.pythonhosted.org/packages/39/c6/988383e9dc17294d536fcbcd6fd16eed882e411ad16c954984a53e47b09c/hf_xet-1.5.2-cp38-abi3-win_arm64.whl", hash = "sha256:1da28519496eb7c8094c11e4d25509b4a468457a0302d58136099db2fd9a671d", size = 3816957, upload-time = "2026-07-16T17:29:54.991Z" }, +] + +[[package]] +name = "hpack" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/5b/fcabf6028144a8723726318b07a32c2f3314acdff6265743cf08a344b18e/hpack-4.2.0.tar.gz", hash = "sha256:0895cfa3b5531fc65fe439c05eb65144f123bf7a394fcaa56aa423548d8e45c0", size = 51300, upload-time = "2026-06-23T18:34:46.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/b4/4a9fcfb2aef6ba44d9073ecd301443aa00b3dac95de5619f2a7de7ec8a91/hpack-4.2.0-py3-none-any.whl", hash = "sha256:858ac0b02280fa582b5080d68db0899c62a80375e0e5413a74970c5e518b6986", size = 34246, upload-time = "2026-06-23T18:34:45.472Z" }, +] + +[[package]] +name = "html-text" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "lxml-html-clean" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/5f/c8d32dfdb3b03802b4c45555aef07d868eb7561252d6a70459657a1f41c3/html_text-0.7.1.tar.gz", hash = "sha256:87fd194310a9f54be32c7b18a70180dfa72a6b4d01cca35ac813c4d2b2b2ed8b", size = 54423, upload-time = "2025-10-06T10:37:11.259Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/da/694ee4570fb1d9d06a00f1493a248531d347be48a2503e9dd79c595de992/html_text-0.7.1-py3-none-any.whl", hash = "sha256:acf13aa1412e559f84f4617fba419720cb8732861736fe07a8dfdafcbdbb8cad", size = 6854, upload-time = "2025-10-06T10:37:10.126Z" }, +] + +[[package]] +name = "html2text" +version = "2025.4.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/27/e158d86ba1e82967cc2f790b0cb02030d4a8bef58e0c79a8590e9678107f/html2text-2025.4.15.tar.gz", hash = "sha256:948a645f8f0bc3abe7fd587019a2197a12436cd73d0d4908af95bfc8da337588", size = 64316, upload-time = "2025-04-15T04:02:30.045Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/84/1a0f9555fd5f2b1c924ff932d99b40a0f8a6b12f6dd625e2a47f415b00ea/html2text-2025.4.15-py3-none-any.whl", hash = "sha256:00569167ffdab3d7767a4cdf589b7f57e777a5ed28d12907d8c58769ec734acc", size = 34656, upload-time = "2025-04-15T04:02:28.44Z" }, +] + +[[package]] +name = "html5lib" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/b6/b55c3f49042f1df3dcd422b7f224f939892ee94f22abcf503a9b7339eaf2/html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f", size = 272215, upload-time = "2020-06-22T23:32:38.834Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/dd/a834df6482147d48e225a49515aabc28974ad5a4ca3215c18a882565b028/html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d", size = 112173, upload-time = "2020-06-22T23:32:36.781Z" }, +] + +[[package]] +name = "htmldate" +version = "1.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "charset-normalizer" }, + { name = "dateparser" }, + { name = "lxml" }, + { name = "python-dateutil" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/1f/e7cf83e23d7b68105de8b874a8b36ba23b450d6f71388583e4ca3ce475ca/htmldate-1.10.0.tar.gz", hash = "sha256:a38df10772ab5d7dbb11896e3f6a852a8491fb1b0965465bc174e23fc2baae58", size = 44455, upload-time = "2026-06-01T17:43:53.437Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/17/d3356233c826c641f940983d9479eab27faec59d49f4070bc58e80fcc021/htmldate-1.10.0-py3-none-any.whl", hash = "sha256:9211dae35ab94147c8ed9e5fc2c9287a5cf31d2394cb7857e7f5dd814eb2aad6", size = 31561, upload-time = "2026-06-01T17:43:51.797Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload-time = "2025-10-10T21:48:22.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload-time = "2025-10-10T21:48:21.158Z" }, +] + +[[package]] +name = "huggingface-hub" +version = "1.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "filelock", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "fsspec", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "hf-xet", marker = "(python_full_version < '3.11' and platform_machine == 'AMD64') or (python_full_version == '3.12.*' and platform_machine == 'AMD64') or (python_full_version < '3.11' and platform_machine == 'aarch64') or (python_full_version == '3.12.*' and platform_machine == 'aarch64') or (python_full_version < '3.11' and platform_machine == 'amd64') or (python_full_version == '3.12.*' and platform_machine == 'amd64') or (python_full_version < '3.11' and platform_machine == 'arm64') or (python_full_version == '3.12.*' and platform_machine == 'arm64') or (python_full_version < '3.11' and platform_machine == 'x86_64') or (python_full_version == '3.12.*' and platform_machine == 'x86_64') or (platform_machine == 'AMD64' and sys_platform != 'win32') or (platform_machine == 'aarch64' and sys_platform != 'win32') or (platform_machine == 'amd64' and sys_platform != 'win32') or (platform_machine == 'arm64' and sys_platform != 'win32') or (platform_machine == 'x86_64' and sys_platform != 'win32')" }, + { name = "httpx", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "packaging", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pyyaml", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "tqdm", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/8f/999e4dda11c6187c78f090eac00895a47e11a0049308f07579bcb7aa3aa2/huggingface_hub-1.23.0.tar.gz", hash = "sha256:c04997fb8bbdace1e57b7703d30ed7678af51f70d00d241819ff411b92ae9a88", size = 919163, upload-time = "2026-07-09T14:49:32.315Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/ce/13b2ba57838b8db1e6bd033c1b21ce0b9f6153b87d4e4939f77074e41eb0/huggingface_hub-1.23.0-py3-none-any.whl", hash = "sha256:b1d604788f5adc7f0eb246e03e0ec19011ca06e38400218c347dccc3dffa64a2", size = 770336, upload-time = "2026-07-09T14:49:30.597Z" }, +] + +[[package]] +name = "humanfriendly" +version = "10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyreadline3", marker = "python_full_version != '3.12.*' and sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc", size = 360702, upload-time = "2021-09-17T21:40:43.31Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477", size = 86794, upload-time = "2021-09-17T21:40:39.897Z" }, +] + +[[package]] +name = "hyperframe" +version = "6.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/02/e7/94f8232d4a74cc99514c13a9f995811485a6903d48e5d952771ef6322e30/hyperframe-6.1.0.tar.gz", hash = "sha256:f630908a00854a7adeabd6382b43923a4c4cd4b821fcb527e6ab9e15382a3b08", size = 26566, upload-time = "2025-01-22T21:41:49.302Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/30/47d0bf6072f7252e6521f3447ccfa40b421b6824517f82854703d0f5a98b/hyperframe-6.1.0-py3-none-any.whl", hash = "sha256:b03380493a519fce58ea5af42e4a42317bf9bd425596f7a0835ffce80f1a42e5", size = 13007, upload-time = "2025-01-22T21:41:47.295Z" }, +] + +[[package]] +name = "identify" +version = "2.6.19" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/63/51723b5f116cc04b061cb6f5a561790abf249d25931d515cd375e063e0f4/identify-2.6.19.tar.gz", hash = "sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842", size = 99567, upload-time = "2026-04-17T18:39:50.265Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/84/d9273cd09688070a6523c4aee4663a8538721b2b755c4962aafae0011e72/identify-2.6.19-py2.py3-none-any.whl", hash = "sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a", size = 99397, upload-time = "2026-04-17T18:39:49.221Z" }, +] + +[[package]] +name = "idna" +version = "3.18" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/63/9496c57188a2ee585e0f1db071d75089a11e98aa86eb99d9d7618fc1edce/idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848", size = 196711, upload-time = "2026-06-02T14:34:07.794Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2", size = 65455, upload-time = "2026-06-02T14:34:06.319Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "installer" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/18/ceeb4e3ab3aa54495775775b38ae42b10a92f42ce42dfa44da684289b8c8/installer-0.7.0.tar.gz", hash = "sha256:a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631", size = 474349, upload-time = "2023-03-17T20:39:38.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/ca/1172b6638d52f2d6caa2dd262ec4c811ba59eee96d54a7701930726bce18/installer-0.7.0-py3-none-any.whl", hash = "sha256:05d1933f0a5ba7d8d6296bb6d5018e7c94fa473ceb10cf198a92ccea19c27b53", size = 453838, upload-time = "2023-03-17T20:39:36.219Z" }, +] + +[[package]] +name = "isodate" +version = "0.7.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/4d/e940025e2ce31a8ce1202635910747e5a87cc3a6a6bb2d00973375014749/isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6", size = 29705, upload-time = "2024-10-08T23:04:11.5Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/aa/0aca39a37d3c7eb941ba736ede56d689e7be91cab5d9ca846bde3999eba6/isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15", size = 22320, upload-time = "2024-10-08T23:04:09.501Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py", version = "0.30.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "rpds-py", version = "2026.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "jstyleson" +version = "0.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/c1/3791e39d65c39b4e081010f2cf6f9443b7b6b9f6de63a5e458172c5c9376/jstyleson-0.0.2.tar.gz", hash = "sha256:680003f3b15a2959e4e6a351f3b858e3c07dd3e073a0d54954e34d8ea5e1308e", size = 2004, upload-time = "2016-06-21T14:38:54.305Z" } + +[[package]] +name = "justext" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml", extra = ["html-clean"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/f3/45890c1b314f0d04e19c1c83d534e611513150939a7cf039664d9ab1e649/justext-3.0.2.tar.gz", hash = "sha256:13496a450c44c4cd5b5a75a5efcd9996066d2a189794ea99a49949685a0beb05", size = 828521, upload-time = "2025-02-25T20:21:49.934Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/ac/52f4e86d1924a7fc05af3aeb34488570eccc39b4af90530dd6acecdf16b5/justext-3.0.2-py2.py3-none-any.whl", hash = "sha256:62b1c562b15c3c6265e121cc070874243a443bfd53060e869393f09d6b6cc9a7", size = 837940, upload-time = "2025-02-25T20:21:44.179Z" }, +] + +[[package]] +name = "kiwisolver" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/67/9c61eccb13f0bdca9307614e782fec49ffdde0f7a2314935d489fa93cd9c/kiwisolver-1.5.0.tar.gz", hash = "sha256:d4193f3d9dc3f6f79aaed0e5637f45d98850ebf01f7ca20e69457f3e8946b66a", size = 103482, upload-time = "2026-03-09T13:15:53.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ac/f8/06549565caa026e540b7e7bab5c5a90eb7ca986015f4c48dace243cd24d9/kiwisolver-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:32cc0a5365239a6ea0c6ed461e8838d053b57e397443c0ca894dcc8e388d4374", size = 122802, upload-time = "2026-03-09T13:12:37.515Z" }, + { url = "https://files.pythonhosted.org/packages/84/eb/8476a0818850c563ff343ea7c9c05dcdcbd689a38e01aa31657df01f91fa/kiwisolver-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cc0b66c1eec9021353a4b4483afb12dfd50e3669ffbb9152d6842eb34c7e29fd", size = 66216, upload-time = "2026-03-09T13:12:38.812Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c4/f9c8a6b4c21aed4198566e45923512986d6cef530e7263b3a5f823546561/kiwisolver-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:86e0287879f75621ae85197b0877ed2f8b7aa57b511c7331dce2eb6f4de7d476", size = 63917, upload-time = "2026-03-09T13:12:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/f1/0e/ba4ae25d03722f64de8b2c13e80d82ab537a06b30fc7065183c6439357e3/kiwisolver-1.5.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:62f59da443c4f4849f73a51a193b1d9d258dcad0c41bc4d1b8fb2bcc04bfeb22", size = 1628776, upload-time = "2026-03-09T13:12:41.976Z" }, + { url = "https://files.pythonhosted.org/packages/8a/e4/3f43a011bc8a0860d1c96f84d32fa87439d3feedf66e672fef03bf5e8bac/kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9190426b7aa26c5229501fa297b8d0653cfd3f5a36f7990c264e157cbf886b3b", size = 1228164, upload-time = "2026-03-09T13:12:44.002Z" }, + { url = "https://files.pythonhosted.org/packages/4b/34/3a901559a1e0c218404f9a61a93be82d45cb8f44453ba43088644980f033/kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c8277104ded0a51e699c8c3aff63ce2c56d4ed5519a5f73e0fd7057f959a2b9e", size = 1246656, upload-time = "2026-03-09T13:12:45.557Z" }, + { url = "https://files.pythonhosted.org/packages/87/9e/f78c466ea20527822b95ad38f141f2de1dcd7f23fb8716b002b0d91bbe59/kiwisolver-1.5.0-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8f9baf6f0a6e7571c45c8863010b45e837c3ee1c2c77fcd6ef423be91b21fedb", size = 1295562, upload-time = "2026-03-09T13:12:47.562Z" }, + { url = "https://files.pythonhosted.org/packages/0a/66/fd0e4a612e3a286c24e6d6f3a5428d11258ed1909bc530ba3b59807fd980/kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cff8e5383db4989311f99e814feeb90c4723eb4edca425b9d5d9c3fefcdd9537", size = 2178473, upload-time = "2026-03-09T13:12:50.254Z" }, + { url = "https://files.pythonhosted.org/packages/dc/8e/6cac929e0049539e5ee25c1ee937556f379ba5204840d03008363ced662d/kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ebae99ed6764f2b5771c522477b311be313e8841d2e0376db2b10922daebbba4", size = 2274035, upload-time = "2026-03-09T13:12:51.785Z" }, + { url = "https://files.pythonhosted.org/packages/ca/d3/9d0c18f1b52ea8074b792452cf17f1f5a56bd0302a85191f405cfbf9da16/kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:d5cd5189fc2b6a538b75ae45433140c4823463918f7b1617c31e68b085c0022c", size = 2443217, upload-time = "2026-03-09T13:12:53.329Z" }, + { url = "https://files.pythonhosted.org/packages/45/2a/6e19368803a038b2a90857bf4ee9e3c7b667216d045866bf22d3439fd75e/kiwisolver-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f42c23db5d1521218a3276bb08666dcb662896a0be7347cba864eca45ff64ede", size = 2249196, upload-time = "2026-03-09T13:12:55.057Z" }, + { url = "https://files.pythonhosted.org/packages/75/2b/3f641dfcbe72e222175d626bacf2f72c3b34312afec949dd1c50afa400f5/kiwisolver-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:94eff26096eb5395136634622515b234ecb6c9979824c1f5004c6e3c3c85ccd2", size = 73389, upload-time = "2026-03-09T13:12:56.496Z" }, + { url = "https://files.pythonhosted.org/packages/da/88/299b137b9e0025d8982e03d2d52c123b0a2b159e84b0ef1501ef446339cf/kiwisolver-1.5.0-cp310-cp310-win_arm64.whl", hash = "sha256:dd952e03bfbb096cfe2dd35cd9e00f269969b67536cb4370994afc20ff2d0875", size = 64782, upload-time = "2026-03-09T13:12:57.609Z" }, + { url = "https://files.pythonhosted.org/packages/12/dd/a495a9c104be1c476f0386e714252caf2b7eca883915422a64c50b88c6f5/kiwisolver-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9eed0f7edbb274413b6ee781cca50541c8c0facd3d6fd289779e494340a2b85c", size = 122798, upload-time = "2026-03-09T13:12:58.963Z" }, + { url = "https://files.pythonhosted.org/packages/11/60/37b4047a2af0cf5ef6d8b4b26e91829ae6fc6a2d1f74524bcb0e7cd28a32/kiwisolver-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c4923e404d6bcd91b6779c009542e5647fef32e4a5d75e115e3bbac6f2335eb", size = 66216, upload-time = "2026-03-09T13:13:00.155Z" }, + { url = "https://files.pythonhosted.org/packages/0a/aa/510dc933d87767584abfe03efa445889996c70c2990f6f87c3ebaa0a18c5/kiwisolver-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0df54df7e686afa55e6f21fb86195224a6d9beb71d637e8d7920c95cf0f89aac", size = 63911, upload-time = "2026-03-09T13:13:01.671Z" }, + { url = "https://files.pythonhosted.org/packages/80/46/bddc13df6c2a40741e0cc7865bb1c9ed4796b6760bd04ce5fae3928ef917/kiwisolver-1.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2517e24d7315eb51c10664cdb865195df38ab74456c677df67bb47f12d088a27", size = 1438209, upload-time = "2026-03-09T13:13:03.385Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d6/76621246f5165e5372f02f5e6f3f48ea336a8f9e96e43997d45b240ed8cd/kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff710414307fefa903e0d9bdf300972f892c23477829f49504e59834f4195398", size = 1248888, upload-time = "2026-03-09T13:13:05.231Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c1/31559ec6fb39a5b48035ce29bb63ade628f321785f38c384dee3e2c08bc1/kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6176c1811d9d5a04fa391c490cc44f451e240697a16977f11c6f722efb9041db", size = 1266304, upload-time = "2026-03-09T13:13:06.743Z" }, + { url = "https://files.pythonhosted.org/packages/5e/ef/1cb8276f2d29cc6a41e0a042f27946ca347d3a4a75acf85d0a16aa6dcc82/kiwisolver-1.5.0-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50847dca5d197fcbd389c805aa1a1cf32f25d2e7273dc47ab181a517666b68cc", size = 1319650, upload-time = "2026-03-09T13:13:08.607Z" }, + { url = "https://files.pythonhosted.org/packages/4c/e4/5ba3cecd7ce6236ae4a80f67e5d5531287337d0e1f076ca87a5abe4cd5d0/kiwisolver-1.5.0-cp311-cp311-manylinux_2_39_riscv64.whl", hash = "sha256:01808c6d15f4c3e8559595d6d1fe6411c68e4a3822b4b9972b44473b24f4e679", size = 970949, upload-time = "2026-03-09T13:13:10.299Z" }, + { url = "https://files.pythonhosted.org/packages/5a/69/dc61f7ae9a2f071f26004ced87f078235b5507ab6e5acd78f40365655034/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f1f9f4121ec58628c96baa3de1a55a4e3a333c5102c8e94b64e23bf7b2083309", size = 2199125, upload-time = "2026-03-09T13:13:11.841Z" }, + { url = "https://files.pythonhosted.org/packages/e5/7b/abbe0f1b5afa85f8d084b73e90e5f801c0939eba16ac2e49af7c61a6c28d/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b7d335370ae48a780c6e6a6bbfa97342f563744c39c35562f3f367665f5c1de2", size = 2293783, upload-time = "2026-03-09T13:13:14.399Z" }, + { url = "https://files.pythonhosted.org/packages/8a/80/5908ae149d96d81580d604c7f8aefd0e98f4fd728cf172f477e9f2a81744/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:800ee55980c18545af444d93fdd60c56b580db5cc54867d8cbf8a1dc0829938c", size = 1960726, upload-time = "2026-03-09T13:13:16.047Z" }, + { url = "https://files.pythonhosted.org/packages/84/08/a78cb776f8c085b7143142ce479859cfec086bd09ee638a317040b6ef420/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c438f6ca858697c9ab67eb28246c92508af972e114cac34e57a6d4ba17a3ac08", size = 2464738, upload-time = "2026-03-09T13:13:17.897Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e1/65584da5356ed6cb12c63791a10b208860ac40a83de165cb6a6751a686e3/kiwisolver-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8c63c91f95173f9c2a67c7c526b2cea976828a0e7fced9cdcead2802dc10f8a4", size = 2270718, upload-time = "2026-03-09T13:13:19.421Z" }, + { url = "https://files.pythonhosted.org/packages/be/6c/28f17390b62b8f2f520e2915095b3c94d88681ecf0041e75389d9667f202/kiwisolver-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:beb7f344487cdcb9e1efe4b7a29681b74d34c08f0043a327a74da852a6749e7b", size = 73480, upload-time = "2026-03-09T13:13:20.818Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0e/2ee5debc4f77a625778fec5501ff3e8036fe361b7ee28ae402a485bb9694/kiwisolver-1.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:ad4ae4ffd1ee9cd11357b4c66b612da9888f4f4daf2f36995eda64bd45370cac", size = 64930, upload-time = "2026-03-09T13:13:21.997Z" }, + { url = "https://files.pythonhosted.org/packages/4d/b2/818b74ebea34dabe6d0c51cb1c572e046730e64844da6ed646d5298c40ce/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4e9750bc21b886308024f8a54ccb9a2cc38ac9fa813bf4348434e3d54f337ff9", size = 123158, upload-time = "2026-03-09T13:13:23.127Z" }, + { url = "https://files.pythonhosted.org/packages/bf/d9/405320f8077e8e1c5c4bd6adc45e1e6edf6d727b6da7f2e2533cf58bff71/kiwisolver-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72ec46b7eba5b395e0a7b63025490d3214c11013f4aacb4f5e8d6c3041829588", size = 66388, upload-time = "2026-03-09T13:13:24.765Z" }, + { url = "https://files.pythonhosted.org/packages/99/9f/795fedf35634f746151ca8839d05681ceb6287fbed6cc1c9bf235f7887c2/kiwisolver-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ed3a984b31da7481b103f68776f7128a89ef26ed40f4dc41a2223cda7fb24819", size = 64068, upload-time = "2026-03-09T13:13:25.878Z" }, + { url = "https://files.pythonhosted.org/packages/c4/13/680c54afe3e65767bed7ec1a15571e1a2f1257128733851ade24abcefbcc/kiwisolver-1.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb5136fb5352d3f422df33f0c879a1b0c204004324150cc3b5e3c4f310c9049f", size = 1477934, upload-time = "2026-03-09T13:13:27.166Z" }, + { url = "https://files.pythonhosted.org/packages/c8/2f/cebfcdb60fd6a9b0f6b47a9337198bcbad6fbe15e68189b7011fd914911f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b2af221f268f5af85e776a73d62b0845fc8baf8ef0abfae79d29c77d0e776aaf", size = 1278537, upload-time = "2026-03-09T13:13:28.707Z" }, + { url = "https://files.pythonhosted.org/packages/f2/0d/9b782923aada3fafb1d6b84e13121954515c669b18af0c26e7d21f579855/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b0f172dc8ffaccb8522d7c5d899de00133f2f1ca7b0a49b7da98e901de87bf2d", size = 1296685, upload-time = "2026-03-09T13:13:30.528Z" }, + { url = "https://files.pythonhosted.org/packages/27/70/83241b6634b04fe44e892688d5208332bde130f38e610c0418f9ede47ded/kiwisolver-1.5.0-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6ab8ba9152203feec73758dad83af9a0bbe05001eb4639e547207c40cfb52083", size = 1346024, upload-time = "2026-03-09T13:13:32.818Z" }, + { url = "https://files.pythonhosted.org/packages/e4/db/30ed226fb271ae1a6431fc0fe0edffb2efe23cadb01e798caeb9f2ceae8f/kiwisolver-1.5.0-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:cdee07c4d7f6d72008d3f73b9bf027f4e11550224c7c50d8df1ae4a37c1402a6", size = 987241, upload-time = "2026-03-09T13:13:34.435Z" }, + { url = "https://files.pythonhosted.org/packages/ec/bd/c314595208e4c9587652d50959ead9e461995389664e490f4dce7ff0f782/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7c60d3c9b06fb23bd9c6139281ccbdc384297579ae037f08ae90c69f6845c0b1", size = 2227742, upload-time = "2026-03-09T13:13:36.4Z" }, + { url = "https://files.pythonhosted.org/packages/c1/43/0499cec932d935229b5543d073c2b87c9c22846aab48881e9d8d6e742a2d/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e315e5ec90d88e140f57696ff85b484ff68bb311e36f2c414aa4286293e6dee0", size = 2323966, upload-time = "2026-03-09T13:13:38.204Z" }, + { url = "https://files.pythonhosted.org/packages/3d/6f/79b0d760907965acfd9d61826a3d41f8f093c538f55cd2633d3f0db269f6/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1465387ac63576c3e125e5337a6892b9e99e0627d52317f3ca79e6930d889d15", size = 1977417, upload-time = "2026-03-09T13:13:39.966Z" }, + { url = "https://files.pythonhosted.org/packages/ab/31/01d0537c41cb75a551a438c3c7a80d0c60d60b81f694dac83dd436aec0d0/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:530a3fd64c87cffa844d4b6b9768774763d9caa299e9b75d8eca6a4423b31314", size = 2491238, upload-time = "2026-03-09T13:13:41.698Z" }, + { url = "https://files.pythonhosted.org/packages/e4/34/8aefdd0be9cfd00a44509251ba864f5caf2991e36772e61c408007e7f417/kiwisolver-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d9daea4ea6b9be74fe2f01f7fbade8d6ffab263e781274cffca0dba9be9eec9", size = 2294947, upload-time = "2026-03-09T13:13:43.343Z" }, + { url = "https://files.pythonhosted.org/packages/ad/cf/0348374369ca588f8fe9c338fae49fa4e16eeb10ffb3d012f23a54578a9e/kiwisolver-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:f18c2d9782259a6dc132fdc7a63c168cbc74b35284b6d75c673958982a378384", size = 73569, upload-time = "2026-03-09T13:13:45.792Z" }, + { url = "https://files.pythonhosted.org/packages/28/26/192b26196e2316e2bd29deef67e37cdf9870d9af8e085e521afff0fed526/kiwisolver-1.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:f7c7553b13f69c1b29a5bde08ddc6d9d0c8bfb84f9ed01c30db25944aeb852a7", size = 64997, upload-time = "2026-03-09T13:13:46.878Z" }, + { url = "https://files.pythonhosted.org/packages/9d/69/024d6711d5ba575aa65d5538042e99964104e97fa153a9f10bc369182bc2/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:fd40bb9cd0891c4c3cb1ddf83f8bbfa15731a248fdc8162669405451e2724b09", size = 123166, upload-time = "2026-03-09T13:13:48.032Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/adbb40df306f587054a348831220812b9b1d787aff714cfbc8556e38fccd/kiwisolver-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0e1403fd7c26d77c1f03e096dc58a5c726503fa0db0456678b8668f76f521e3", size = 66395, upload-time = "2026-03-09T13:13:49.365Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3a/d0a972b34e1c63e2409413104216cd1caa02c5a37cb668d1687d466c1c45/kiwisolver-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dda366d548e89a90d88a86c692377d18d8bd64b39c1fb2b92cb31370e2896bbd", size = 64065, upload-time = "2026-03-09T13:13:50.562Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0a/7b98e1e119878a27ba8618ca1e18b14f992ff1eda40f47bccccf4de44121/kiwisolver-1.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:332b4f0145c30b5f5ad9374881133e5aa64320428a57c2c2b61e9d891a51c2f3", size = 1477903, upload-time = "2026-03-09T13:13:52.084Z" }, + { url = "https://files.pythonhosted.org/packages/18/d8/55638d89ffd27799d5cc3d8aa28e12f4ce7a64d67b285114dbedc8ea4136/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c50b89ffd3e1a911c69a1dd3de7173c0cd10b130f56222e57898683841e4f96", size = 1278751, upload-time = "2026-03-09T13:13:54.673Z" }, + { url = "https://files.pythonhosted.org/packages/b8/97/b4c8d0d18421ecceba20ad8701358453b88e32414e6f6950b5a4bad54e65/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4db576bb8c3ef9365f8b40fe0f671644de6736ae2c27a2c62d7d8a1b4329f099", size = 1296793, upload-time = "2026-03-09T13:13:56.287Z" }, + { url = "https://files.pythonhosted.org/packages/c4/10/f862f94b6389d8957448ec9df59450b81bec4abb318805375c401a1e6892/kiwisolver-1.5.0-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0b85aad90cea8ac6797a53b5d5f2e967334fa4d1149f031c4537569972596cb8", size = 1346041, upload-time = "2026-03-09T13:13:58.269Z" }, + { url = "https://files.pythonhosted.org/packages/a3/6a/f1650af35821eaf09de398ec0bc2aefc8f211f0cda50204c9f1673741ba9/kiwisolver-1.5.0-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:d36ca54cb4c6c4686f7cbb7b817f66f5911c12ddb519450bbe86707155028f87", size = 987292, upload-time = "2026-03-09T13:13:59.871Z" }, + { url = "https://files.pythonhosted.org/packages/de/19/d7fb82984b9238115fe629c915007be608ebd23dc8629703d917dbfaffd4/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:38f4a703656f493b0ad185211ccfca7f0386120f022066b018eb5296d8613e23", size = 2227865, upload-time = "2026-03-09T13:14:01.401Z" }, + { url = "https://files.pythonhosted.org/packages/7f/b9/46b7f386589fd222dac9e9de9c956ce5bcefe2ee73b4e79891381dda8654/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3ac2360e93cb41be81121755c6462cff3beaa9967188c866e5fce5cf13170859", size = 2324369, upload-time = "2026-03-09T13:14:02.972Z" }, + { url = "https://files.pythonhosted.org/packages/92/8b/95e237cf3d9c642960153c769ddcbe278f182c8affb20cecc1cc983e7cc5/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c95cab08d1965db3d84a121f1c7ce7479bdd4072c9b3dafd8fecce48a2e6b902", size = 1977989, upload-time = "2026-03-09T13:14:04.503Z" }, + { url = "https://files.pythonhosted.org/packages/1b/95/980c9df53501892784997820136c01f62bc1865e31b82b9560f980c0e649/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc20894c3d21194d8041a28b65622d5b86db786da6e3cfe73f0c762951a61167", size = 2491645, upload-time = "2026-03-09T13:14:06.106Z" }, + { url = "https://files.pythonhosted.org/packages/cb/32/900647fd0840abebe1561792c6b31e6a7c0e278fc3973d30572a965ca14c/kiwisolver-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7a32f72973f0f950c1920475d5c5ea3d971b81b6f0ec53b8d0a956cc965f22e0", size = 2295237, upload-time = "2026-03-09T13:14:08.891Z" }, + { url = "https://files.pythonhosted.org/packages/be/8a/be60e3bbcf513cc5a50f4a3e88e1dcecebb79c1ad607a7222877becaa101/kiwisolver-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bf3acf1419fa93064a4c2189ac0b58e3be7872bf6ee6177b0d4c63dc4cea276", size = 73573, upload-time = "2026-03-09T13:14:12.327Z" }, + { url = "https://files.pythonhosted.org/packages/4d/d2/64be2e429eb4fca7f7e1c52a91b12663aeaf25de3895e5cca0f47ef2a8d0/kiwisolver-1.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:fa8eb9ecdb7efb0b226acec134e0d709e87a909fa4971a54c0c4f6e88635484c", size = 64998, upload-time = "2026-03-09T13:14:13.469Z" }, + { url = "https://files.pythonhosted.org/packages/b0/69/ce68dd0c85755ae2de490bf015b62f2cea5f6b14ff00a463f9d0774449ff/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:db485b3847d182b908b483b2ed133c66d88d49cacf98fd278fadafe11b4478d1", size = 125700, upload-time = "2026-03-09T13:14:14.636Z" }, + { url = "https://files.pythonhosted.org/packages/74/aa/937aac021cf9d4349990d47eb319309a51355ed1dbdc9c077cdc9224cb11/kiwisolver-1.5.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:be12f931839a3bdfe28b584db0e640a65a8bcbc24560ae3fdb025a449b3d754e", size = 67537, upload-time = "2026-03-09T13:14:15.808Z" }, + { url = "https://files.pythonhosted.org/packages/ee/20/3a87fbece2c40ad0f6f0aefa93542559159c5f99831d596050e8afae7a9f/kiwisolver-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:16b85d37c2cbb3253226d26e64663f755d88a03439a9c47df6246b35defbdfb7", size = 65514, upload-time = "2026-03-09T13:14:18.035Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7f/f943879cda9007c45e1f7dba216d705c3a18d6b35830e488b6c6a4e7cdf0/kiwisolver-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4432b835675f0ea7414aab3d37d119f7226d24869b7a829caeab49ebda407b0c", size = 1584848, upload-time = "2026-03-09T13:14:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/37/f8/4d4f85cc1870c127c88d950913370dd76138482161cd07eabbc450deff01/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b0feb50971481a2cc44d94e88bdb02cdd497618252ae226b8eb1201b957e368", size = 1391542, upload-time = "2026-03-09T13:14:21.54Z" }, + { url = "https://files.pythonhosted.org/packages/04/0b/65dd2916c84d252b244bd405303220f729e7c17c9d7d33dca6feeff9ffc4/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56fa888f10d0f367155e76ce849fa1166fc9730d13bd2d65a2aa13b6f5424489", size = 1404447, upload-time = "2026-03-09T13:14:23.205Z" }, + { url = "https://files.pythonhosted.org/packages/39/5c/2606a373247babce9b1d056c03a04b65f3cf5290a8eac5d7bdead0a17e21/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:940dda65d5e764406b9fb92761cbf462e4e63f712ab60ed98f70552e496f3bf1", size = 1455918, upload-time = "2026-03-09T13:14:24.74Z" }, + { url = "https://files.pythonhosted.org/packages/d5/d1/c6078b5756670658e9192a2ef11e939c92918833d2745f85cd14a6004bdf/kiwisolver-1.5.0-cp313-cp313t-manylinux_2_39_riscv64.whl", hash = "sha256:89fc958c702ee9a745e4700378f5d23fddbc46ff89e8fdbf5395c24d5c1452a3", size = 1072856, upload-time = "2026-03-09T13:14:26.597Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c8/7def6ddf16eb2b3741d8b172bdaa9af882b03c78e9b0772975408801fa63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9027d773c4ff81487181a925945743413f6069634d0b122d0b37684ccf4f1e18", size = 2333580, upload-time = "2026-03-09T13:14:28.237Z" }, + { url = "https://files.pythonhosted.org/packages/9e/87/2ac1fce0eb1e616fcd3c35caa23e665e9b1948bb984f4764790924594128/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:5b233ea3e165e43e35dba1d2b8ecc21cf070b45b65ae17dd2747d2713d942021", size = 2423018, upload-time = "2026-03-09T13:14:30.018Z" }, + { url = "https://files.pythonhosted.org/packages/67/13/c6700ccc6cc218716bfcda4935e4b2997039869b4ad8a94f364c5a3b8e63/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:ce9bf03dad3b46408c08649c6fbd6ca28a9fce0eb32fdfffa6775a13103b5310", size = 2062804, upload-time = "2026-03-09T13:14:32.888Z" }, + { url = "https://files.pythonhosted.org/packages/1b/bd/877056304626943ff0f1f44c08f584300c199b887cb3176cd7e34f1515f1/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:fc4d3f1fb9ca0ae9f97b095963bc6326f1dbfd3779d6679a1e016b9baaa153d3", size = 2597482, upload-time = "2026-03-09T13:14:34.971Z" }, + { url = "https://files.pythonhosted.org/packages/75/19/c60626c47bf0f8ac5dcf72c6c98e266d714f2fbbfd50cf6dab5ede3aaa50/kiwisolver-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f443b4825c50a51ee68585522ab4a1d1257fac65896f282b4c6763337ac9f5d2", size = 2394328, upload-time = "2026-03-09T13:14:36.816Z" }, + { url = "https://files.pythonhosted.org/packages/47/84/6a6d5e5bb8273756c27b7d810d47f7ef2f1f9b9fd23c9ee9a3f8c75c9cef/kiwisolver-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:893ff3a711d1b515ba9da14ee090519bad4610ed1962fbe298a434e8c5f8db53", size = 68410, upload-time = "2026-03-09T13:14:38.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/060f45052f2a01ad5762c8fdecd6d7a752b43400dc29ff75cd47225a40fd/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8df31fe574b8b3993cc61764f40941111b25c2d9fea13d3ce24a49907cd2d615", size = 123231, upload-time = "2026-03-09T13:14:41.323Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/78da680eadd06ff35edef6ef68a1ad273bad3e2a0936c9a885103230aece/kiwisolver-1.5.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1d49a49ac4cbfb7c1375301cd1ec90169dfeae55ff84710d782260ce77a75a02", size = 66489, upload-time = "2026-03-09T13:14:42.534Z" }, + { url = "https://files.pythonhosted.org/packages/49/b2/97980f3ad4fae37dd7fe31626e2bf75fbf8bdf5d303950ec1fab39a12da8/kiwisolver-1.5.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0cbe94b69b819209a62cb27bdfa5dc2a8977d8de2f89dfd97ba4f53ed3af754e", size = 64063, upload-time = "2026-03-09T13:14:44.759Z" }, + { url = "https://files.pythonhosted.org/packages/e7/f9/b06c934a6aa8bc91f566bd2a214fd04c30506c2d9e2b6b171953216a65b6/kiwisolver-1.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:80aa065ffd378ff784822a6d7c3212f2d5f5e9c3589614b5c228b311fd3063ac", size = 1475913, upload-time = "2026-03-09T13:14:46.247Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f0/f768ae564a710135630672981231320bc403cf9152b5596ec5289de0f106/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e7f886f47ab881692f278ae901039a234e4025a68e6dfab514263a0b1c4ae05", size = 1282782, upload-time = "2026-03-09T13:14:48.458Z" }, + { url = "https://files.pythonhosted.org/packages/e2/9f/1de7aad00697325f05238a5f2eafbd487fb637cc27a558b5367a5f37fb7f/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5060731cc3ed12ca3a8b57acd4aeca5bbc2f49216dd0bec1650a1acd89486bcd", size = 1300815, upload-time = "2026-03-09T13:14:50.721Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c2/297f25141d2e468e0ce7f7a7b92e0cf8918143a0cbd3422c1ad627e85a06/kiwisolver-1.5.0-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a4aa69609f40fce3cbc3f87b2061f042eee32f94b8f11db707b66a26461591a", size = 1347925, upload-time = "2026-03-09T13:14:52.304Z" }, + { url = "https://files.pythonhosted.org/packages/b9/d3/f4c73a02eb41520c47610207b21afa8cdd18fdbf64ffd94674ae21c4812d/kiwisolver-1.5.0-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:d168fda2dbff7b9b5f38e693182d792a938c31db4dac3a80a4888de603c99554", size = 991322, upload-time = "2026-03-09T13:14:54.637Z" }, + { url = "https://files.pythonhosted.org/packages/7b/46/d3f2efef7732fcda98d22bf4ad5d3d71d545167a852ca710a494f4c15343/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:413b820229730d358efd838ecbab79902fe97094565fdc80ddb6b0a18c18a581", size = 2232857, upload-time = "2026-03-09T13:14:56.471Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ec/2d9756bf2b6d26ae4349b8d3662fb3993f16d80c1f971c179ce862b9dbae/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5124d1ea754509b09e53738ec185584cc609aae4a3b510aaf4ed6aa047ef9303", size = 2329376, upload-time = "2026-03-09T13:14:58.072Z" }, + { url = "https://files.pythonhosted.org/packages/8f/9f/876a0a0f2260f1bde92e002b3019a5fabc35e0939c7d945e0fa66185eb20/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e4415a8db000bf49a6dd1c478bf70062eaacff0f462b92b0ba68791a905861f9", size = 1982549, upload-time = "2026-03-09T13:14:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4f/ba3624dfac23a64d54ac4179832860cb537c1b0af06024936e82ca4154a0/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d618fd27420381a4f6044faa71f46d8bfd911bd077c555f7138ed88729bfbe79", size = 2494680, upload-time = "2026-03-09T13:15:01.364Z" }, + { url = "https://files.pythonhosted.org/packages/39/b7/97716b190ab98911b20d10bf92eca469121ec483b8ce0edd314f51bc85af/kiwisolver-1.5.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5092eb5b1172947f57d6ea7d89b2f29650414e4293c47707eb499ec07a0ac796", size = 2297905, upload-time = "2026-03-09T13:15:03.925Z" }, + { url = "https://files.pythonhosted.org/packages/a3/36/4e551e8aa55c9188bca9abb5096805edbf7431072b76e2298e34fd3a3008/kiwisolver-1.5.0-cp314-cp314-win_amd64.whl", hash = "sha256:d76e2d8c75051d58177e762164d2e9ab92886534e3a12e795f103524f221dd8e", size = 75086, upload-time = "2026-03-09T13:15:07.775Z" }, + { url = "https://files.pythonhosted.org/packages/70/15/9b90f7df0e31a003c71649cf66ef61c3c1b862f48c81007fa2383c8bd8d7/kiwisolver-1.5.0-cp314-cp314-win_arm64.whl", hash = "sha256:fa6248cd194edff41d7ea9425ced8ca3a6f838bfb295f6f1d6e6bb694a8518df", size = 66577, upload-time = "2026-03-09T13:15:09.139Z" }, + { url = "https://files.pythonhosted.org/packages/17/01/7dc8c5443ff42b38e72731643ed7cf1ed9bf01691ae5cdca98501999ed83/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:d1ffeb80b5676463d7a7d56acbe8e37a20ce725570e09549fe738e02ca6b7e1e", size = 125794, upload-time = "2026-03-09T13:15:10.525Z" }, + { url = "https://files.pythonhosted.org/packages/46/8a/b4ebe46ebaac6a303417fab10c2e165c557ddaff558f9699d302b256bc53/kiwisolver-1.5.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc4d8e252f532ab46a1de9349e2d27b91fce46736a9eedaa37beaca66f574ed4", size = 67646, upload-time = "2026-03-09T13:15:12.016Z" }, + { url = "https://files.pythonhosted.org/packages/60/35/10a844afc5f19d6f567359bf4789e26661755a2f36200d5d1ed8ad0126e5/kiwisolver-1.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6783e069732715ad0c3ce96dbf21dbc2235ab0593f2baf6338101f70371f4028", size = 65511, upload-time = "2026-03-09T13:15:13.311Z" }, + { url = "https://files.pythonhosted.org/packages/f8/8a/685b297052dd041dcebce8e8787b58923b6e78acc6115a0dc9189011c44b/kiwisolver-1.5.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e7c4c09a490dc4d4a7f8cbee56c606a320f9dc28cf92a7157a39d1ce7676a657", size = 1584858, upload-time = "2026-03-09T13:15:15.103Z" }, + { url = "https://files.pythonhosted.org/packages/9e/80/04865e3d4638ac5bddec28908916df4a3075b8c6cc101786a96803188b96/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a075bd7bd19c70cf67c8badfa36cf7c5d8de3c9ddb8420c51e10d9c50e94920", size = 1392539, upload-time = "2026-03-09T13:15:16.661Z" }, + { url = "https://files.pythonhosted.org/packages/ba/01/77a19cacc0893fa13fafa46d1bba06fb4dc2360b3292baf4b56d8e067b24/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bdd3e53429ff02aa319ba59dfe4ceeec345bf46cf180ec2cf6fd5b942e7975e9", size = 1405310, upload-time = "2026-03-09T13:15:18.229Z" }, + { url = "https://files.pythonhosted.org/packages/53/39/bcaf5d0cca50e604cfa9b4e3ae1d64b50ca1ae5b754122396084599ef903/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cdcb35dc9d807259c981a85531048ede628eabcffb3239adf3d17463518992d", size = 1456244, upload-time = "2026-03-09T13:15:20.444Z" }, + { url = "https://files.pythonhosted.org/packages/d0/7a/72c187abc6975f6978c3e39b7cf67aeb8b3c0a8f9790aa7fd412855e9e1f/kiwisolver-1.5.0-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:70d593af6a6ca332d1df73d519fddb5148edb15cd90d5f0155e3746a6d4fcc65", size = 1073154, upload-time = "2026-03-09T13:15:22.039Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ca/cf5b25783ebbd59143b4371ed0c8428a278abe68d6d0104b01865b1bbd0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:377815a8616074cabbf3f53354e1d040c35815a134e01d7614b7692e4bf8acfa", size = 2334377, upload-time = "2026-03-09T13:15:23.741Z" }, + { url = "https://files.pythonhosted.org/packages/4a/e5/b1f492adc516796e88751282276745340e2a72dcd0d36cf7173e0daf3210/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0255a027391d52944eae1dbb5d4cc5903f57092f3674e8e544cdd2622826b3f0", size = 2425288, upload-time = "2026-03-09T13:15:25.789Z" }, + { url = "https://files.pythonhosted.org/packages/e6/e5/9b21fbe91a61b8f409d74a26498706e97a48008bfcd1864373d32a6ba31c/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:012b1eb16e28718fa782b5e61dc6f2da1f0792ca73bd05d54de6cb9561665fc9", size = 2063158, upload-time = "2026-03-09T13:15:27.63Z" }, + { url = "https://files.pythonhosted.org/packages/b1/02/83f47986138310f95ea95531f851b2a62227c11cbc3e690ae1374fe49f0f/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0e3aafb33aed7479377e5e9a82e9d4bf87063741fc99fc7ae48b0f16e32bdd6f", size = 2597260, upload-time = "2026-03-09T13:15:29.421Z" }, + { url = "https://files.pythonhosted.org/packages/07/18/43a5f24608d8c313dd189cf838c8e68d75b115567c6279de7796197cfb6a/kiwisolver-1.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e7a116ae737f0000343218c4edf5bd45893bfeaff0993c0b215d7124c9f77646", size = 2394403, upload-time = "2026-03-09T13:15:31.517Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b5/98222136d839b8afabcaa943b09bd05888c2d36355b7e448550211d1fca4/kiwisolver-1.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1dd9b0b119a350976a6d781e7278ec7aca0b201e1a9e2d23d9804afecb6ca681", size = 79687, upload-time = "2026-03-09T13:15:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/99/a2/ca7dc962848040befed12732dff6acae7fb3c4f6fc4272b3f6c9a30b8713/kiwisolver-1.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:58f812017cd2985c21fbffb4864d59174d4903dd66fa23815e74bbc7a0e2dd57", size = 70032, upload-time = "2026-03-09T13:15:34.411Z" }, + { url = "https://files.pythonhosted.org/packages/1c/fa/2910df836372d8761bb6eff7d8bdcb1613b5c2e03f260efe7abe34d388a7/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:5ae8e62c147495b01a0f4765c878e9bfdf843412446a247e28df59936e99e797", size = 130262, upload-time = "2026-03-09T13:15:35.629Z" }, + { url = "https://files.pythonhosted.org/packages/0f/41/c5f71f9f00aabcc71fee8b7475e3f64747282580c2fe748961ba29b18385/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f6764a4ccab3078db14a632420930f6186058750df066b8ea2a7106df91d3203", size = 138036, upload-time = "2026-03-09T13:15:36.894Z" }, + { url = "https://files.pythonhosted.org/packages/fa/06/7399a607f434119c6e1fdc8ec89a8d51ccccadf3341dee4ead6bd14caaf5/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c31c13da98624f957b0fb1b5bae5383b2333c2c3f6793d9825dd5ce79b525cb7", size = 194295, upload-time = "2026-03-09T13:15:38.22Z" }, + { url = "https://files.pythonhosted.org/packages/b5/91/53255615acd2a1eaca307ede3c90eb550bae9c94581f8c00081b6b1c8f44/kiwisolver-1.5.0-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:1f1489f769582498610e015a8ef2d36f28f505ab3096d0e16b4858a9ec214f57", size = 75987, upload-time = "2026-03-09T13:15:39.65Z" }, + { url = "https://files.pythonhosted.org/packages/17/6f/6fd4f690a40c2582fa34b97d2678f718acf3706b91d270c65ecb455d0a06/kiwisolver-1.5.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:295d9ffe712caa9f8a3081de8d32fc60191b4b51c76f02f951fd8407253528f4", size = 59606, upload-time = "2026-03-09T13:15:40.81Z" }, + { url = "https://files.pythonhosted.org/packages/82/a0/2355d5e3b338f13ce63f361abb181e3b6ea5fffdb73f739b3e80efa76159/kiwisolver-1.5.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:51e8c4084897de9f05898c2c2a39af6318044ae969d46ff7a34ed3f96274adca", size = 57537, upload-time = "2026-03-09T13:15:42.071Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b9/1d50e610ecadebe205b71d6728fd224ce0e0ca6aba7b9cbe1da049203ac5/kiwisolver-1.5.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b83af57bdddef03c01a9138034c6ff03181a3028d9a1003b301eb1a55e161a3f", size = 79888, upload-time = "2026-03-09T13:15:43.317Z" }, + { url = "https://files.pythonhosted.org/packages/cd/ee/b85ffcd75afed0357d74f0e6fc02a4507da441165de1ca4760b9f496390d/kiwisolver-1.5.0-pp310-pypy310_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf4679a3d71012a7c2bf360e5cd878fbd5e4fcac0896b56393dec239d81529ed", size = 77584, upload-time = "2026-03-09T13:15:44.605Z" }, + { url = "https://files.pythonhosted.org/packages/6b/dd/644d0dde6010a8583b4cd66dd41c5f83f5325464d15c4f490b3340ab73b4/kiwisolver-1.5.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:41024ed50e44ab1a60d3fe0a9d15a4ccc9f5f2b1d814ff283c8d01134d5b81bc", size = 73390, upload-time = "2026-03-09T13:15:45.832Z" }, + { url = "https://files.pythonhosted.org/packages/e9/eb/5fcbbbf9a0e2c3a35effb88831a483345326bbc3a030a3b5b69aee647f84/kiwisolver-1.5.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ec4c85dc4b687c7f7f15f553ff26a98bfe8c58f5f7f0ac8905f0ba4c7be60232", size = 59532, upload-time = "2026-03-09T13:15:47.047Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9b/e17104555bb4db148fd52327feea1e96be4b88e8e008b029002c281a21ab/kiwisolver-1.5.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:12e91c215a96e39f57989c8912ae761286ac5a9584d04030ceb3368a357f017a", size = 57420, upload-time = "2026-03-09T13:15:48.199Z" }, + { url = "https://files.pythonhosted.org/packages/48/44/2b5b95b7aa39fb2d8d9d956e0f3d5d45aef2ae1d942d4c3ffac2f9cfed1a/kiwisolver-1.5.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be4a51a55833dc29ab5d7503e7bcb3b3af3402d266018137127450005cdfe737", size = 79892, upload-time = "2026-03-09T13:15:49.694Z" }, + { url = "https://files.pythonhosted.org/packages/52/7d/7157f9bba6b455cfb4632ed411e199fc8b8977642c2b12082e1bd9e6d173/kiwisolver-1.5.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:daae526907e262de627d8f70058a0f64acc9e2641c164c99c8f594b34a799a16", size = 77603, upload-time = "2026-03-09T13:15:50.945Z" }, + { url = "https://files.pythonhosted.org/packages/0a/dd/8050c947d435c8d4bc94e3252f4d8bb8a76cfb424f043a8680be637a57f1/kiwisolver-1.5.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:59cd8683f575d96df5bb48f6add94afc055012c29e28124fcae2b63661b9efb1", size = 73558, upload-time = "2026-03-09T13:15:52.112Z" }, +] + +[[package]] +name = "langdetect" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2569554f7c70f4a3c27712f40e3284d483e88094cc0e/langdetect-1.0.9.tar.gz", hash = "sha256:cbc1fef89f8d062739774bd51eda3da3274006b3661d199c2655f6b3f6d605a0", size = 981474, upload-time = "2021-05-07T07:54:13.562Z" } + +[[package]] +name = "librt" +version = "0.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/2f/3908645ddddab7120b46295e541ead308109fa48dbec7d67d7a778870d60/librt-0.13.0.tar.gz", hash = "sha256:1d2a610c14ac0d0750ee0a3ab8548e83155258387891caaca04def4bf7289781", size = 211402, upload-time = "2026-07-08T12:26:29.834Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/2f/ec5241c38e7fa0fe6c26bfc450e78b9489a6c3c08b394b85d2c10e506975/librt-0.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:34e47058fcc69a313293d6dee94216a4f30c929ae6f2476e58c5ba635aa639d5", size = 148654, upload-time = "2026-07-08T12:24:30.622Z" }, + { url = "https://files.pythonhosted.org/packages/a5/1a/d651e18d3ee7aa2879322368c4f278bb7ecaa6b90caadfdec4ebfa8389f3/librt-0.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dbdd5b6509d0c2a8fe72cf494c299a61dbd58142a90a4190664ae159e4a7b547", size = 153537, upload-time = "2026-07-08T12:24:31.773Z" }, + { url = "https://files.pythonhosted.org/packages/45/18/10bff2122577246009d9619b6569596daf69b7648812f997ca9ca0426f60/librt-0.13.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e56ea4ee4df77585a6b5c138f6538680886024fa559f5b55bd14b12e98e67b2", size = 494336, upload-time = "2026-07-08T12:24:33.079Z" }, + { url = "https://files.pythonhosted.org/packages/67/69/87dfee871b852970f137fdeae8e2ca356c5ab38e6f21d2a3299535fc3159/librt-0.13.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:f1f9cc4d09a46d9cb3c2063ae100629d3f52a6517c3c08c2f4c9828261883929", size = 485393, upload-time = "2026-07-08T12:24:34.324Z" }, + { url = "https://files.pythonhosted.org/packages/e9/d5/625447a8c0441ff5f15f4ac5e1d323fb9d4d256ebfde7a3c8e003f646057/librt-0.13.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f125f5d46b20f89dc5587a55cc416b4ba2a5b2ffda36d048ee120e17598a653a", size = 515382, upload-time = "2026-07-08T12:24:35.575Z" }, + { url = "https://files.pythonhosted.org/packages/8d/d8/1c8c49ea04235960426444deece9092a6b3a9587a850a81bae2335317411/librt-0.13.0-cp310-cp310-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2608d3b39f9e0b4a66a130d9150c615cba40a5090d25eeeaa225e0e46de8c0ac", size = 509483, upload-time = "2026-07-08T12:24:36.923Z" }, + { url = "https://files.pythonhosted.org/packages/6f/65/f1760fc48050e215201a03506c32b7270159088d01f64557b53e39e74a45/librt-0.13.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9fd35e95ab5e45c3901d37110263c7db85a961110f5460588fe37f8c131f88a7", size = 532503, upload-time = "2026-07-08T12:24:38.203Z" }, + { url = "https://files.pythonhosted.org/packages/18/1b/793e281dcf494879eff99f642b63ebc9c7c58694a1c2d1e93362a22c7041/librt-0.13.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5f31b0aa13c9b04370d4da6be1ab7779776b3a075cceb6747a39a4be85fe1e40", size = 537027, upload-time = "2026-07-08T12:24:39.34Z" }, + { url = "https://files.pythonhosted.org/packages/69/45/0801bbb40c9eea795d3dd3ce91c4c5f3fe7d42d23ec4be3e8cb283bcc754/librt-0.13.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:0b795f5fc70fbbb787ceaf79bb3a0d627bcc33c53de51741755263ec406b775a", size = 517100, upload-time = "2026-07-08T12:24:40.907Z" }, + { url = "https://files.pythonhosted.org/packages/a1/6c/eb5f514f8e29d4924bc0ff4601dd7b4175557e182e7c0721e84cffa39b8a/librt-0.13.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:36b306a623aaad96fe4b378692b54f9c0789fccd833b9851753d5fbf6138cfde", size = 558653, upload-time = "2026-07-08T12:24:42.359Z" }, + { url = "https://files.pythonhosted.org/packages/b4/bf/f140100d1b59fe87ff40b5ecbb4e27924335b189a784e230ee465452f6c2/librt-0.13.0-cp310-cp310-win32.whl", hash = "sha256:a3762e75fcac8c9e4dacaaf438bffd9003e2ca2c531b756f3c0035deefa674c8", size = 104402, upload-time = "2026-07-08T12:24:43.668Z" }, + { url = "https://files.pythonhosted.org/packages/22/7c/57e40fef7cfb61869341cb28bdcefe8a950bebcbecca74a397bae14dce4a/librt-0.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:d63bae12a8aeb51380be3438e4dc4bd27354d0f8e19166b2f44e3e94d6f552dc", size = 125002, upload-time = "2026-07-08T12:24:44.793Z" }, + { url = "https://files.pythonhosted.org/packages/89/25/a6498964cfeec270c468cffdc118f69c29b412593610d55fa1327ca51ff4/librt-0.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1b5a7bbff495baedbd9b916c367d66854008f8f3b575908ded477c499dc60082", size = 148029, upload-time = "2026-07-08T12:24:45.961Z" }, + { url = "https://files.pythonhosted.org/packages/78/59/dc86d1bffd8e0c2818bace29d9f7783cfbb8e0673bf3673b5bbd5bbe0420/librt-0.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:34bc7938b9fdf14fe32a406c19c71faf894c5cee7e7474bd0be2f17200b82d14", size = 153036, upload-time = "2026-07-08T12:24:47.257Z" }, + { url = "https://files.pythonhosted.org/packages/29/3f/b923826660f02f286186cd9303d52bb05ced0a13708edc104dc8480920e3/librt-0.13.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f40e56b61b41be5f7dec938cfeffd660668cf4b5e72c78e7bd671d66b7bc2c79", size = 493062, upload-time = "2026-07-08T12:24:48.483Z" }, + { url = "https://files.pythonhosted.org/packages/88/87/6c0980a9c9b1302cb68d108906697b89eceb55889bb1dcf77c109aa56ca5/librt-0.13.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:9c5d02b89de5acd0379a51ec44a89476fb03df6145442e1c8ecd6bee2f91b176", size = 485510, upload-time = "2026-07-08T12:24:49.727Z" }, + { url = "https://files.pythonhosted.org/packages/32/81/795ae3b9df5dd94079fb807e38191855e023e8c6249014ae6bc3f0d9a490/librt-0.13.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7db9a3ff32ef5f7d1703d93831a3316cdf0b537de6a1cc03cc8fdd09b9194e89", size = 515909, upload-time = "2026-07-08T12:24:51.135Z" }, + { url = "https://files.pythonhosted.org/packages/20/e5/182de15abce8907108a6fdb41487de65beb5099b74dc5841b19b099168db/librt-0.13.0-cp311-cp311-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3dbb2a31882456cadc7053378e81ad7ed7693db4ac9f98ab5f81ef034aa8ec9f", size = 508620, upload-time = "2026-07-08T12:24:52.358Z" }, + { url = "https://files.pythonhosted.org/packages/32/03/33978d32db76e1f66377e8f78e42a2ca3c162143331677d1f50bbad36cfb/librt-0.13.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c6014e3c80f9c1fe268ef8b0e0ef113bac672cc032f2f93866e7ddad4f3e663d", size = 530363, upload-time = "2026-07-08T12:24:53.503Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f5/b291fbd2d00f7d8287bcbf67b5aa0c6afed4bc26cef23e079629c47a2c04/librt-0.13.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:091b60a4d2174fc1ec5c34cdc0b72efb6224753d76b7da61ebeab7a191aec8bd", size = 534209, upload-time = "2026-07-08T12:24:55.138Z" }, + { url = "https://files.pythonhosted.org/packages/3e/03/6f41f17939d191bc21609f220da8509316bc62797f078545fe83be522e78/librt-0.13.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:66cb1138f384a191a6d75f986064841fcfdc0cea98f7bd9c9ab9b38049917588", size = 514254, upload-time = "2026-07-08T12:24:56.276Z" }, + { url = "https://files.pythonhosted.org/packages/af/c2/2e4befa5410a7443019c14abccc94ff619797171f6b72013635fb87f31d7/librt-0.13.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:17221a7569f8f292aa0014226e48aa25b8c2b08da18088cd230953d0ea0f9cd1", size = 557611, upload-time = "2026-07-08T12:24:57.561Z" }, + { url = "https://files.pythonhosted.org/packages/ab/54/8b69f81448417adbc040a2185f4e2eece1e1994b7dcfaeed4662b30f98a5/librt-0.13.0-cp311-cp311-win32.whl", hash = "sha256:fc67741da44c6eaa90e01eafb586bbba9b51eb5b6ed381ee6f5ae72eb3316d21", size = 104906, upload-time = "2026-07-08T12:24:58.806Z" }, + { url = "https://files.pythonhosted.org/packages/76/5a/f4aaf37b50f2fde12c8c663b83fdd499cdc24f957f19543d7414bfcc9e25/librt-0.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:cc99dfb62b23c9207c33d0be8a2e2af7a42e21e6ea388b380a0c948c7b88953b", size = 125852, upload-time = "2026-07-08T12:25:00.065Z" }, + { url = "https://files.pythonhosted.org/packages/f2/99/bf1820e6feeabc2f218c24450ec0c995d6a91e8ba0fd3caf042c9e8adb2a/librt-0.13.0-cp311-cp311-win_arm64.whl", hash = "sha256:40ccd13c252d3fe473ffc8a57be7565abc8b64cf1b108344c859d5164f7f3e0c", size = 111832, upload-time = "2026-07-08T12:25:01.148Z" }, + { url = "https://files.pythonhosted.org/packages/f0/f4/b2933ddae222dac338476abb872641169a5cfed2c2bb5444a5b07b32b0c3/librt-0.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:30536798f4504c0fad0885b1d371b0539abb081e4570c9d7c641cb51141b49f0", size = 150990, upload-time = "2026-07-08T12:25:02.42Z" }, + { url = "https://files.pythonhosted.org/packages/90/ef/db98f744ca50e6efc9c95c70ee49b77aefac31f6a3fc7c83754a42d6a74f/librt-0.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:93d24ebb82aa4420b1409c389e7857bc35bd0b668007ac8172427d5c73cc8cc5", size = 155238, upload-time = "2026-07-08T12:25:03.681Z" }, + { url = "https://files.pythonhosted.org/packages/03/e7/a197e7bc72baf2c61ce7fdc6906a5054dc05bd8da0819aa894e4857bf87e/librt-0.13.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cb8a1adce42d8b75485a5d56a9623a50bcab995b6079f1dac59fc44034dd93d9", size = 503073, upload-time = "2026-07-08T12:25:05.049Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e7/7887712e27da7c1ab80fcabb1de6eb24243964f6557cae530d4b70706dbd/librt-0.13.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:0763ca2ab66058174f9dee426dc64f5e0a89c24a7df8d3fe3f1836c04e25de4b", size = 496528, upload-time = "2026-07-08T12:25:06.26Z" }, + { url = "https://files.pythonhosted.org/packages/94/f0/f2283385bb6b950b26a1410f4ce51ec27231e0b3a4b925c46366d218b198/librt-0.13.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b222493da6e7b6199db9bd79502436cf5a27da3c1f7fa83c7e285444fc93fd03", size = 531786, upload-time = "2026-07-08T12:25:07.658Z" }, + { url = "https://files.pythonhosted.org/packages/36/11/69ac3b54766ffba5fd7e5acebfb048d66dbe1f9f2d14516c2b3edc59cf87/librt-0.13.0-cp312-cp312-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fadc63331f4388c3dc90090448f682a7e9feafc11481391c1e94f2f907a3976e", size = 524393, upload-time = "2026-07-08T12:25:09.121Z" }, + { url = "https://files.pythonhosted.org/packages/61/5f/d72f95fd444a926a3c14b4e24979474116988dd57a45be242077c45d3c22/librt-0.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:70d9c62a4cffd9f23396cd5ef93fc5d11b31596b9b7d6306074abe3d5fcf09bd", size = 543026, upload-time = "2026-07-08T12:25:10.459Z" }, + { url = "https://files.pythonhosted.org/packages/c4/08/dcd9993ad192737a004ba263d549f8ea605b326b952e7d6205c7d4170b76/librt-0.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:66c0e7e6b02a155576df2c77ec933a70b72da726e248c494abf690923e624348", size = 546829, upload-time = "2026-07-08T12:25:11.716Z" }, + { url = "https://files.pythonhosted.org/packages/96/d5/6d9bb2f54e4109a956b7128836529653eb9d740f784bc47ed10a02c1000e/librt-0.13.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:ac04bcd3328eb91d99dfedf6a60d9c1f15d3434e6f6daf922f0420f7d90b85c7", size = 535700, upload-time = "2026-07-08T12:25:13.144Z" }, + { url = "https://files.pythonhosted.org/packages/8c/f2/10946922503858a359492fa27f13e86228bde702116a740ac7b3cd185f24/librt-0.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:db327e7271e653c32040b85ae6188059c924b57d7e1e29f935523fa017cd4e82", size = 573566, upload-time = "2026-07-08T12:25:14.336Z" }, + { url = "https://files.pythonhosted.org/packages/48/a8/94f00e3c99479a18088af3685ea016c42f3c7d5d1964d8dbb40c08d7f1aa/librt-0.13.0-cp312-cp312-win32.whl", hash = "sha256:860bd1d8ba48456ce08feaf8d343a8aaeb2fa086f2bcaa2a923fa3f7a3ff9aa3", size = 106099, upload-time = "2026-07-08T12:25:16.159Z" }, + { url = "https://files.pythonhosted.org/packages/c9/7b/2da9c74c1ed25a89cc4e1c8e007ea2eb4a0f1fafa3e70d757fe3242c5c5c/librt-0.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:e54a315caf843c8d77e388cadc56ea9ded569935ee2d2347d7ea94992e5aa6fa", size = 126934, upload-time = "2026-07-08T12:25:17.275Z" }, + { url = "https://files.pythonhosted.org/packages/d0/65/aead61bbf3b5358593f9d4779d2a0e88eaf6ec191a6342dde36dd1df6371/librt-0.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:c718e99a0992127af84385378460db624103b559ab260435abcfe77a4e4ed1c1", size = 112236, upload-time = "2026-07-08T12:25:18.425Z" }, + { url = "https://files.pythonhosted.org/packages/67/3b/18e7b63255297a2bdc9c25c8d6d4ca8eca9f63aceb1252c0f7427ac7099e/librt-0.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a468951af16155824e88bdd8326ebe5bdb371f3ec0ac04642994b98201d914f3", size = 151027, upload-time = "2026-07-08T12:25:19.638Z" }, + { url = "https://files.pythonhosted.org/packages/4d/68/e2248452c00d1a03b45fee1752cdc8f790a476efd2402b75181da88a9e61/librt-0.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ae01d8512cc17079e53425635327dbf3f7ff57a42c00dec348bf79791c56444c", size = 155152, upload-time = "2026-07-08T12:25:20.851Z" }, + { url = "https://files.pythonhosted.org/packages/0e/16/52b1c99bf19057a062aac39c900cbb81499f6f75d6c537c14463d247ba78/librt-0.13.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:32c26893cd085c1efe83219e78d866da23fb20a066101b8f68210004361d224c", size = 502499, upload-time = "2026-07-08T12:25:22.055Z" }, + { url = "https://files.pythonhosted.org/packages/9f/54/b811151805c795f55e0dedee6ec687b75f9982a8105d240ea3910737a77b/librt-0.13.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:5929da1981a46bcf4b28b1b9499905f0ff58e2419da402a048234e9783acbc4b", size = 496108, upload-time = "2026-07-08T12:25:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/8f/f8/094d6b2bd93f3fdaa54db54cc788c4a365333bddad65ab02e04da0b1d004/librt-0.13.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:94b85d664d777bab6c0d709416cb42938251fda9e221b79e3a2215d85df5f4f9", size = 531576, upload-time = "2026-07-08T12:25:24.648Z" }, + { url = "https://files.pythonhosted.org/packages/2e/40/541733d5755824f968f7ec39d78ffbd75d145964157ae5e69a09ec6d7326/librt-0.13.0-cp313-cp313-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:531b2df3e9fe96b1fcf73a6d165921e4656be5f58d631d384ebce344298368db", size = 524390, upload-time = "2026-07-08T12:25:25.898Z" }, + { url = "https://files.pythonhosted.org/packages/c6/b5/255673cfdbf5ba663339d36cd863c897289ab4337577e19f9405ce059f36/librt-0.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:109b84a9edf69ad89dc1f66358659e14a031baca95e3e5b0060bd903ede8efd6", size = 543053, upload-time = "2026-07-08T12:25:27.436Z" }, + { url = "https://files.pythonhosted.org/packages/9e/11/ab5005e9c9850710f21e354201bf090646349d3fabf5f951eaf70235729e/librt-0.13.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1304368a3e7ffc3e9db986796cc5326fdb5943a3567ecc137cff318e4240c0e7", size = 546387, upload-time = "2026-07-08T12:25:28.65Z" }, + { url = "https://files.pythonhosted.org/packages/a2/04/a5d7ce1d1df1afd15ca283dcdf7530ac073e12d69ae8c40879dda96f7868/librt-0.13.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e4f9b472e7d308d94b62c801982065661158c6ed02790d6c7ddb4337cea0f9c1", size = 535970, upload-time = "2026-07-08T12:25:30.171Z" }, + { url = "https://files.pythonhosted.org/packages/5a/76/927e267a6daa290174ac281b23c9804c8829b042ade9c6f24a065f540958/librt-0.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9f836c37478f167a81200d8c8b2c920a22224564bed2c23d7aeec760965c367a", size = 573582, upload-time = "2026-07-08T12:25:31.507Z" }, + { url = "https://files.pythonhosted.org/packages/10/24/b6c5213efe39c19f9e13605644d0cf063b4ddaa33ac2e45b088e23a70e2e/librt-0.13.0-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:4000d961ff9598ac6ea603c6c836a5ed49bc205ade5fc378b998dfe1e2c36628", size = 82189, upload-time = "2026-07-08T12:25:32.675Z" }, + { url = "https://files.pythonhosted.org/packages/4c/00/d29736be177a906ac0b84a5b04b4fbfa22c776dc2f366de4172b0f968c08/librt-0.13.0-cp313-cp313-win32.whl", hash = "sha256:79e44cff71750d299d61a678e49995b0d5935a9cda238c2574daeca3ba536927", size = 106193, upload-time = "2026-07-08T12:25:33.692Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ac/aff6fb45393cb8912f39dfb156ef6b2d1cadb207ff465fc8f66141054be8/librt-0.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:54dab44a847d5ad1acd05c8a83fe518ae685516ecf4d3f7cc6e3df2a66767650", size = 126962, upload-time = "2026-07-08T12:25:34.769Z" }, + { url = "https://files.pythonhosted.org/packages/d9/3a/d68cb2b334d53fd30fac81d3a489ce4ba0d9506f4df43fcf676b68352b19/librt-0.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:d4cb6fbfdf874340ab5e51450753c0f817b6958a3621125ee695bbc3de866566", size = 112127, upload-time = "2026-07-08T12:25:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/7b/66/f49ae0d592bd45b6941e9a8bafcb6a87cddcd501ee7874707e767f01b585/librt-0.13.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:25218d94b1d2cbc0ba1d8a3f9dc9af578d9646e5ed16443a70cde1dfdcce6d71", size = 149818, upload-time = "2026-07-08T12:25:37.203Z" }, + { url = "https://files.pythonhosted.org/packages/3d/50/51c76d74014d04fb95b6506d286808984b78a2f7a41039094e6b2194ac48/librt-0.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f26629539d4893c2957a16c41bb058e1e135c1f150f6a2e25ed047f64cf3f5c6", size = 154071, upload-time = "2026-07-08T12:25:39.399Z" }, + { url = "https://files.pythonhosted.org/packages/b8/fe/f19b0f5f82d5a1f2da736586bc840abd00ce07d6388136ae80b7333883fc/librt-0.13.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a4517d47b2b8af26975a406fba7d314de9696d864252e0257c6ea90238cfe27f", size = 494168, upload-time = "2026-07-08T12:25:40.641Z" }, + { url = "https://files.pythonhosted.org/packages/94/bc/b8550c75775127fd31a5f20e8775997f7b527ad661fc8ddccd7497c064f7/librt-0.13.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:f19e181de5b3a1148bb3420b8c4b0b0ea0fce6950099724ad151d6cea5acc180", size = 491054, upload-time = "2026-07-08T12:25:41.905Z" }, + { url = "https://files.pythonhosted.org/packages/30/14/4d0204867623df3f33f86efd3d3692ba5e01321443f4d6eab35a22697618/librt-0.13.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22034924f5b42d5a56371cf271771bfeaabf235a7a8b6264bef2d20013f786c6", size = 523006, upload-time = "2026-07-08T12:25:43.327Z" }, + { url = "https://files.pythonhosted.org/packages/19/0a/c45fc9a260934696bace1ac5df1e148ac92bd71767aee3bf7cd7a4534f4c/librt-0.13.0-cp314-cp314-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c7897db4e95e22468bdda33d8e012ceacd0182abf001e6389d763f0def6286b9", size = 515058, upload-time = "2026-07-08T12:25:44.541Z" }, + { url = "https://files.pythonhosted.org/packages/13/0a/50c5ce45b326854ef8fa6ae4c36cf5142e5c55315eaf9e51d0ae73ac4da3/librt-0.13.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1ce61b3746545029d4f5c17d6bd74b676254ad98433086c846ffb5e8fa73f007", size = 534025, upload-time = "2026-07-08T12:25:45.825Z" }, + { url = "https://files.pythonhosted.org/packages/89/2d/08c413c8f93fc13b8103624fce38e5caa86cd08cbbc8465870ab287af54b/librt-0.13.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:46c330e82565962c761dbce7941be2cff7db674ee807455a8d0cadc5f9b759b0", size = 540557, upload-time = "2026-07-08T12:25:47.059Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c1/93af71fb4a364952210051811dd4e40174e79656b050c89cacac18af3330/librt-0.13.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:375f5af8f99cbaa99dd293af986e3d57caabc9ba81a5d3f021603764854197a1", size = 523201, upload-time = "2026-07-08T12:25:48.392Z" }, + { url = "https://files.pythonhosted.org/packages/c1/6e/9766f07b676a4889d9f8bc2864e9ba5fff165653143ef4dda7df6aa34d16/librt-0.13.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9320d34c3376ae204b2cd176e8d4883a013934e0aef822f1aed9c536490c275d", size = 565740, upload-time = "2026-07-08T12:25:49.678Z" }, + { url = "https://files.pythonhosted.org/packages/a2/1e/664e3472ce2b6e10e9b83f29d4a36eb982ff6b5a169ae7567bba3a4c4ff5/librt-0.13.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:9af313c66157a69dc69ea0059a66961692250e0dc95af9c385a48ffb770a0d16", size = 81611, upload-time = "2026-07-08T12:25:50.857Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d4/8582a4d65e2234673685e07309d02c230b28a85724eb0acbf13f019b7f6e/librt-0.13.0-cp314-cp314-win32.whl", hash = "sha256:f2a7253458e34f33543551394ae4fe104b497ec2a65ac266074de64c1df82e37", size = 100106, upload-time = "2026-07-08T12:25:52.03Z" }, + { url = "https://files.pythonhosted.org/packages/63/ce/0cb99efe6086b46cd985dc26672166fae312a239690e75871f7fafbd3fc5/librt-0.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:a3dfe4edf10e8ed7e55b026a8bfc2c2a8704218b659cd4bffdf604fab966dc39", size = 121209, upload-time = "2026-07-08T12:25:53.166Z" }, + { url = "https://files.pythonhosted.org/packages/26/85/4f3ccb083a3c9b0d42e223acdb3c3f507953324a59cdcab4826e8e2e3b89/librt-0.13.0-cp314-cp314-win_arm64.whl", hash = "sha256:68a5faee4bba381cb93b5961f684a514cf0053cb92308ff9c792c2fea0b174c6", size = 106404, upload-time = "2026-07-08T12:25:54.253Z" }, + { url = "https://files.pythonhosted.org/packages/b2/77/333191499538c8e8189de7a4cba8e6f49ee949fd6d6e6324b21fd1522466/librt-0.13.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a38fb81d8376dfa2f8963b265fec07637802b0d01e2a127c19c66cb070fb24f5", size = 159231, upload-time = "2026-07-08T12:25:55.432Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9e/2aa83758f22c278b837a1d8025898434ce2b8bff36678d5330ecaef56dff/librt-0.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d4c8d9bd5abce34b2e75edb3bf37ab0f34e49b1f915a40ae8468eb7c85bc5b46", size = 161300, upload-time = "2026-07-08T12:25:56.585Z" }, + { url = "https://files.pythonhosted.org/packages/bb/c0/86791e936553ca763d6b3c2fb4d31d596cd00e14fa631c283a40ba01559a/librt-0.13.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:387e2f1d27e89bffe0d3f520f0da0662c973fd607ca16c1808f8a5085419485e", size = 582056, upload-time = "2026-07-08T12:25:58.144Z" }, + { url = "https://files.pythonhosted.org/packages/a8/d3/a9ec15984a185e000c4d2a16ba28bd623124ad4c38a10974c7ff78e3a893/librt-0.13.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:4f6db193d2e5e0ed60359b9a5a682cd67205d0d3b1e459a867dd4b5c4e7eaa7a", size = 562758, upload-time = "2026-07-08T12:25:59.544Z" }, + { url = "https://files.pythonhosted.org/packages/3c/af/dbe36b78b19c06a55097f99305e4ea9458e2273e6ae16a3cbecaad7ee978/librt-0.13.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d38604854e8d22faadf683ec6c02bb0f886e2ba56ef981a1c36ee275f21ea22", size = 602095, upload-time = "2026-07-08T12:26:00.991Z" }, + { url = "https://files.pythonhosted.org/packages/2a/a8/2966891b4dd2830f5203fbee92ac2c4947653a2390ba73dfa44244fad025/librt-0.13.0-cp314-cp314t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:371f7ce73026815dafd51c50ce38416e91428b28c4b2ec97cd39271164b0045c", size = 593452, upload-time = "2026-07-08T12:26:02.352Z" }, + { url = "https://files.pythonhosted.org/packages/61/f5/4df8bfc8405ecf8c0d525b4d69636f694bdd8620b313ec8b76e54a5926cc/librt-0.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3aaedf52171bee90860704c560bc798fe83b76247df47568e0197e9b13c735a0", size = 623729, upload-time = "2026-07-08T12:26:04.294Z" }, + { url = "https://files.pythonhosted.org/packages/d6/13/9ac202dffc8db06f75d06c08c2f9f6ff054be67d21272dcc078fa1cc0c57/librt-0.13.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:96bad8725a4f196a798366c25ce075d1f7543a4ec045ffc13e6a7ec095cdab04", size = 617077, upload-time = "2026-07-08T12:26:05.845Z" }, + { url = "https://files.pythonhosted.org/packages/6e/f0/ebe38610716aee5cb28efd95089bb90192096179802779381e1c5dcf239c/librt-0.13.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:6bf6a559ffe4a93bbea6cf31ddf01a7fd9ba342ef51f27beb178e318b74acd61", size = 599561, upload-time = "2026-07-08T12:26:07.21Z" }, + { url = "https://files.pythonhosted.org/packages/4f/5c/c2e72e236fff7abc716d5b1753b8b8cd3ea85ac46fe17d2e7c51d4e1c723/librt-0.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:301067672387902c55f94b51d5022304b36c966ea9fe1f21caab99a9bef487c9", size = 645511, upload-time = "2026-07-08T12:26:08.562Z" }, + { url = "https://files.pythonhosted.org/packages/0c/99/6203ce619dee940d6bfbe099ec3fe4be00a68e9d60f70abf906cf124fe66/librt-0.13.0-cp314-cp314t-win32.whl", hash = "sha256:5fdcf34f86de8fb66d7dc7589f96ba91c4aa46671200d400e6fd6f109a483f18", size = 104357, upload-time = "2026-07-08T12:26:09.828Z" }, + { url = "https://files.pythonhosted.org/packages/52/dd/843b6314087c41657c7036d7914d8f294bdf9b580aa8513ea0588c8e9a3d/librt-0.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:260c33e92263fa629b4f6d3c51967a1c2158fe6c33237aaa3ebeac586b085259", size = 126998, upload-time = "2026-07-08T12:26:10.975Z" }, + { url = "https://files.pythonhosted.org/packages/5f/5d/3dcec2884ba1b0806d1408612555c38dd5d68e90156b59f75f6e36435c3a/librt-0.13.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2f281549a4c52ac7bb97997f14353f8bd0e53a34ca0dad1c905cfd0b4a58ae99", size = 110771, upload-time = "2026-07-08T12:26:12.303Z" }, +] + +[[package]] +name = "license-expression" +version = "30.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "boolean-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/40/71/d89bb0e71b1415453980fd32315f2a037aad9f7f70f695c7cec7035feb13/license_expression-30.4.4.tar.gz", hash = "sha256:73448f0aacd8d0808895bdc4b2c8e01a8d67646e4188f887375398c761f340fd", size = 186402, upload-time = "2025-07-22T11:13:32.17Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/40/791891d4c0c4dab4c5e187c17261cedc26285fd41541577f900470a45a4d/license_expression-30.4.4-py3-none-any.whl", hash = "sha256:421788fdcadb41f049d2dc934ce666626265aeccefddd25e162a26f23bcbf8a4", size = 120615, upload-time = "2025-07-22T11:13:31.217Z" }, +] + +[[package]] +name = "llvmlite" +version = "0.48.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/a0/acc8ffcd5bdc63df0097e22c719bfcd61b604358343089313a8aebbb24ab/llvmlite-0.48.0.tar.gz", hash = "sha256:543b19f9ef8f3c7c60d1468191e4ee1b1537bf9f8a3d56f64c0ddd98de92edd2", size = 184016, upload-time = "2026-07-02T20:20:05.308Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/4e/32543c42568fb321b3bdfcf9106e4116ab8f5a7bbcfd9ecf5569b0c07d83/llvmlite-0.48.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:614aad57df707e3172efd5165f2aa7da6a0c6897e40dce590bf756396815ba76", size = 40480650, upload-time = "2026-07-01T18:41:01.945Z" }, + { url = "https://files.pythonhosted.org/packages/a9/0d/6aa48abd423067139a129d1434b77bbcc56080db51d12a88510bb491ca3d/llvmlite-0.48.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:13532f248960ba888ad5ab8150494e2f3a3d20e5f59f264e63741ea5b0ba844c", size = 59890118, upload-time = "2026-07-01T18:41:10.608Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c7/aa917444d871a79608af49149de1b28764e87d2ab41f933c5cd02431d03d/llvmlite-0.48.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ee0c77685a18f5fca994ae21d0763007fca5c5c64b41de37accc78b69079176", size = 58343459, upload-time = "2026-07-01T18:41:06.21Z" }, + { url = "https://files.pythonhosted.org/packages/c5/2b/ceee1cdc263617109d514ac4d1b31f10a282662740ff7d5777baae25b3b5/llvmlite-0.48.0-cp310-cp310-win_amd64.whl", hash = "sha256:02853fe4214acb3780fc920c3fee10564b61d58a35e1b78afcc8a546c2deaba3", size = 41864734, upload-time = "2026-07-01T18:41:14.746Z" }, + { url = "https://files.pythonhosted.org/packages/9a/55/595981f14fbae9ba966feb12af552b1fe69889e44e64ac883a731ed335e0/llvmlite-0.48.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:56a7e24607d3f02d7b1bae8d29c7e1e423d53143d68b072999777f19678fe77b", size = 40480651, upload-time = "2026-07-01T18:41:18.438Z" }, + { url = "https://files.pythonhosted.org/packages/26/08/0109d1b9cb3f4603f3890e30bc66c65332b79185f12a045343b2ae431f67/llvmlite-0.48.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6fa532d6bb3fd3f0803567c736401c54aecfe1a396d3ad25d2440d220e09f0e7", size = 59890118, upload-time = "2026-07-01T18:41:28.184Z" }, + { url = "https://files.pythonhosted.org/packages/02/eb/c5281be180c789cdffbf45b671884c57d7e61345ef3b0f643a4965e108e8/llvmlite-0.48.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:979a66a3f28a02565383ff463527dce78e9b856298872a361283132488e83591", size = 58343458, upload-time = "2026-07-01T18:41:23.397Z" }, + { url = "https://files.pythonhosted.org/packages/aa/f7/b3222b13f2d424dae3c9e63fde476af25ebccf1f3faf0b52d1b79fc15c70/llvmlite-0.48.0-cp311-cp311-win_amd64.whl", hash = "sha256:efaee0276e5e17c2b99b92e0c974bd484ef5977cf5dbc9168e82b71578edb47f", size = 41864734, upload-time = "2026-07-01T18:41:31.932Z" }, + { url = "https://files.pythonhosted.org/packages/92/a2/28696a9e61e245d1a79816d29d106692a90a2b6e7d78c98b326db70827af/llvmlite-0.48.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:d66c3beb4209087ddd4cf4ed2a0856b6887e6a913bdcf1aacfec9851cf2cba4e", size = 40480651, upload-time = "2026-07-01T18:41:35.694Z" }, + { url = "https://files.pythonhosted.org/packages/80/f2/72409351db66d0a317ec5087e076f31fb7b773a640db8a90ce6b5cac9edd/llvmlite-0.48.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:416fa4c2c66c2c6dc6d0a402648c19206e548efa0aa1eff01ad5cdad0af8217d", size = 59890118, upload-time = "2026-07-01T18:41:44.886Z" }, + { url = "https://files.pythonhosted.org/packages/3a/27/5ae2f3722606360480707adb47f001ad89df8251d06b14ee80336e660b66/llvmlite-0.48.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5e5a5131045b72345c71062ea1a91910dde913792b6c9b28ebb2c1c0a712e98", size = 58343459, upload-time = "2026-07-01T18:41:40.306Z" }, + { url = "https://files.pythonhosted.org/packages/16/78/d824ffff7521cd140dc2006e44ce2bc82e64b48d1b32e90e956308c85a74/llvmlite-0.48.0-cp312-cp312-win_amd64.whl", hash = "sha256:d45c7541a80934ec6d8ab0defe67439494ecd2193cbf852a44ba827808976ac1", size = 41865022, upload-time = "2026-07-01T18:41:48.663Z" }, + { url = "https://files.pythonhosted.org/packages/9c/23/fe9316d14626b42c73ef0b502e724705a6ee9450afe53759c0a99c37c2d7/llvmlite-0.48.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:a83a99ef0c05b4ccddf9b6218ed9fe84b653a0caf7c1d9dbe148d6d16c67f518", size = 40480652, upload-time = "2026-07-01T18:41:52.216Z" }, + { url = "https://files.pythonhosted.org/packages/1b/4a/90715fa12006d681270b08d881195b6fab3ec39572e048764a1f7f59fed7/llvmlite-0.48.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8761b9e522f55207e24424fcd98370289eec2710bf8e915c82d1053f642450dc", size = 59890120, upload-time = "2026-07-01T18:42:00.748Z" }, + { url = "https://files.pythonhosted.org/packages/70/5e/7b3e20d64650ca3c80af0cdb664ec4b575ec83d9d4dd05bea8bd31f9bbb6/llvmlite-0.48.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2fe5cb59b2063bfa039dcb8ca6481c0181bf552f340d10dcf61d7996a665556e", size = 58343457, upload-time = "2026-07-01T18:41:56.41Z" }, + { url = "https://files.pythonhosted.org/packages/17/97/5a430055d1838cf1fb7a01cfa943300f5e4c026fc6333a522c5e4a03b0c1/llvmlite-0.48.0-cp313-cp313-win_amd64.whl", hash = "sha256:91c7e24e74cde3f02b88aa5acca678373f9e069f3b98531b3dbb3a142d9d10bb", size = 41865022, upload-time = "2026-07-01T18:42:04.57Z" }, + { url = "https://files.pythonhosted.org/packages/8d/8e/8170f2e0c217f88069c333d85bb976e536b332aecfcce606ddbdb249385f/llvmlite-0.48.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:321f1ac39b462603f0b589751aecf2d237d056f6d005749c1752b6f23ec3f074", size = 40480650, upload-time = "2026-07-01T18:42:07.935Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e1/05b50692b647cac3c18200ac485b04f342f00ed173c9cc46767274469a15/llvmlite-0.48.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:05f0103c8f2f96a37441337e3643863c01b8e83e530aff38960dcb383c54a065", size = 59890115, upload-time = "2026-07-01T18:42:17.805Z" }, + { url = "https://files.pythonhosted.org/packages/f7/c3/470b8c4ff9ae2db2f9cf5c3e73de76ed908a32788ae9eb5602d43e6a476b/llvmlite-0.48.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:37d66fae72802175b0bfe1ea06e624b51e2d7aee6c3c34bbd09739b8f88e8e0b", size = 58343457, upload-time = "2026-07-01T18:42:13.217Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2d/6a5171fb7236ac0895e1a02ccba3735bf291e8597239aa6421894d3c0ba8/llvmlite-0.48.0-cp314-cp314-win_amd64.whl", hash = "sha256:966dcab0a598e2bd8fb5f2cc082cf7b07bae564fc485a3a8692393caf986facf", size = 42986372, upload-time = "2026-07-01T18:42:21.483Z" }, + { url = "https://files.pythonhosted.org/packages/94/e3/7a93e09c9f94e637ca90209ceef0334a9a1d45b0bdb7c92ff922d25d6187/llvmlite-0.48.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7a5c413317050a1d67c34708bde97707f9b2257ef1017f7532d21fe7d9a9ff30", size = 40480654, upload-time = "2026-07-01T18:42:25.076Z" }, + { url = "https://files.pythonhosted.org/packages/27/98/a29133b4728671a175f7d616fab8b1c6e1d8c269d1523581d3160697bfb1/llvmlite-0.48.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d9f952dff6c350c529997423d4fa43abae9722a884ac7ffafc37a3af676e7db", size = 59890119, upload-time = "2026-07-01T18:42:33.88Z" }, + { url = "https://files.pythonhosted.org/packages/1a/cf/7aac11a1f1c7ec54b60c7f6814e87561fb6b55b2f290455d7941eb113420/llvmlite-0.48.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:054aa7d46595935565f276cf0c1659b4f10929c996dd4a606875fae26fba2a23", size = 58343460, upload-time = "2026-07-01T18:42:29.545Z" }, + { url = "https://files.pythonhosted.org/packages/db/41/b96f440c7df5ebba07872cad4e30fbc3560387755b1ea0b629adb76d5ca8/llvmlite-0.48.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d0b3c61aac83b42fb48cc96bffbf57c81b82b2aa92276b7ed6420c814629a99a", size = 42986383, upload-time = "2026-07-01T18:42:37.544Z" }, +] + +[[package]] +name = "lxml" +version = "6.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/3b/aab6728cae887456f409b4d75e8a01856e4f04bd510de38052a47768b680/lxml-6.1.1.tar.gz", hash = "sha256:ba96ae44888e0185281e937633a743ea90d5a196c6000f82565ebb0580012d40", size = 4197430, upload-time = "2026-05-18T19:19:06.424Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/da/dbe4dfc01ac226fb0504fad035f4d69f3202f3502e20e68537631daddd96/lxml-6.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:09dd5b7075dc2f7709654a46543ba1ea3c2e217b2ed8fbd413a8a945a0f40f60", size = 8541124, upload-time = "2026-05-18T19:17:11.589Z" }, + { url = "https://files.pythonhosted.org/packages/78/20/f7095ed9fc2c025f9cfe71cc6ec9f1feb05624edc1812423b5f1aecf3d4b/lxml-6.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f6ac4ef4d82dff54670227a69c67782ae0b811b5cf6b17954f1e8f7502fc0d1d", size = 4602783, upload-time = "2026-05-18T19:17:20.888Z" }, + { url = "https://files.pythonhosted.org/packages/4a/a4/65c63ca98bd129f6cff7b8c2fa48953ab058cc6005b541354e7dd54d8000/lxml-6.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:556e94a63c9b04716f8e4de2abb65775061f846e89331b6c5be79183a24f98ea", size = 5002687, upload-time = "2026-05-18T19:17:01.738Z" }, + { url = "https://files.pythonhosted.org/packages/96/1d/ab7a5c4b5a394d98a94e2d0fc67bab8297597426770dd4978370fbdaf531/lxml-6.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5c6bf403fbb3b3e348a561a5f4f0b9961835657981c802a1df03653eef8a9074", size = 5155099, upload-time = "2026-05-18T19:17:05.159Z" }, + { url = "https://files.pythonhosted.org/packages/d0/b1/07603bfeeb891a2596d5c2a68f7d2f70f7d11c841ebe391412c69c2857b0/lxml-6.1.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1dde6131244bba38a17c745836ba190bc753fd73c9291666287fd0a3fa3dcf30", size = 5057225, upload-time = "2026-05-18T19:17:08.117Z" }, + { url = "https://files.pythonhosted.org/packages/7a/16/cb391ee4b90186fa16d9ebcbe3ea96c71b8da3b0686386c8dcbcc3c67d44/lxml-6.1.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:98fc784c2c1440667aeedf8465bdfe10208acf0ead656a2c68627299f546b315", size = 5287643, upload-time = "2026-05-18T19:17:11.507Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d6/b619717f918fd76747448fdbaee0e769edbc70e659b5b5d0112b7020b7a3/lxml-6.1.1-cp310-cp310-manylinux_2_28_i686.whl", hash = "sha256:add8cf6ddf9a65116119a28ece0f7886e30af27ba724a7594305f1d1b58a92a1", size = 5412445, upload-time = "2026-05-18T19:17:22.182Z" }, + { url = "https://files.pythonhosted.org/packages/c6/80/12bc5390ac0a3edeb579d9535e5049a5dda663438728e179d52fb319c33a/lxml-6.1.1-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:cf9d57306d848218f3601fee7601fab1a327c942d56e2e97610583cb4dd74206", size = 4770864, upload-time = "2026-05-18T19:17:26.851Z" }, + { url = "https://files.pythonhosted.org/packages/0b/59/6500c09da3137f54f020e908d81cfc5ee3e8888e908fd380207afad7c2e6/lxml-6.1.1-cp310-cp310-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:88136950da4d13c318bde414ce10219931937851327f44328f2df4d2c4614067", size = 5359594, upload-time = "2026-05-18T19:17:32.527Z" }, + { url = "https://files.pythonhosted.org/packages/f2/9b/f64b4cc6b7ebcf75d95af3cde934d254b5f2f10d4163928d838d86b6eb48/lxml-6.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cecdd5dfdc87b1fd87dbf81d4b037a544f47f4c744200a67013771682d67686a", size = 5107713, upload-time = "2026-05-18T19:17:04.402Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/c7388ad5d3a72315d2832dc1458cbf4f2af7f2b990b606ff4876efd04511/lxml-6.1.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:cd312b9692e831d2ffcad61eab31d91d4b4655a962e61de8fb410472cbcd37aa", size = 4803973, upload-time = "2026-05-18T19:17:06.545Z" }, + { url = "https://files.pythonhosted.org/packages/3f/22/76197f0bbf165f0b9e75be59be4997e5259cde973f12f098c1b54c7f5d60/lxml-6.1.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:5b7328b46d49fc9477d91ae8f6d55340347d827b7734ba3ea33faae0efef1383", size = 5349925, upload-time = "2026-05-18T19:17:09.743Z" }, + { url = "https://files.pythonhosted.org/packages/24/52/d2a0cfeccb9bcdc47c7ee05cdae5d69b48c9acf20997790a6338bb0d0b3b/lxml-6.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37a58976370f36d9329d118ad0b953c5aeb9119ac9c6a4e258942a225d0573a1", size = 5309825, upload-time = "2026-05-18T19:17:13.831Z" }, + { url = "https://files.pythonhosted.org/packages/19/4a/b30944266776c2f49749ef2445aa7e78898194134b80ad776386f61b56ae/lxml-6.1.1-cp310-cp310-win32.whl", hash = "sha256:cea3f4c1af79af13cdb2da0c028111d8f8522d4f22a000c82385535f24e5cf3a", size = 3598402, upload-time = "2026-05-18T19:17:08.21Z" }, + { url = "https://files.pythonhosted.org/packages/9e/97/33691c66a4d7ec1a5a98e7c909a5b83ee45c7f7ba4cf92b1c4cf26e98079/lxml-6.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:3abf332af33a74288675d936fe861fd4344da0dd6622193fbc4f2bfbb35536b5", size = 4021295, upload-time = "2026-05-18T19:17:28.638Z" }, + { url = "https://files.pythonhosted.org/packages/d0/5f/26a4dd0e12b9456ff7b12a21af5b491eb6629680d1edd73f4140fd386bcf/lxml-6.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:8dadbe5b217ff35b6a8d16610dd710219b59b76d13f0e3f0d9f36786206e4485", size = 3667717, upload-time = "2026-05-19T19:22:44.474Z" }, + { url = "https://files.pythonhosted.org/packages/62/b0/83f481780d1548750b8ce2ec824073deef2f452d9cd1a6faff8507e3d16d/lxml-6.1.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:53b7d2b7a10b1c35c0a5e21e9224accf60c1bbfba523990732e521b2b73adef2", size = 8526461, upload-time = "2026-05-18T19:17:25.862Z" }, + { url = "https://files.pythonhosted.org/packages/b9/d5/30fa0f808002c7329397bfbb24e306789c0b29f04aa5842c07b174b4216f/lxml-6.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ff3f333630ab480244a1bff72043e511a91eb22e7595dead8653ee5612dd8f3d", size = 4595375, upload-time = "2026-05-18T19:17:34.555Z" }, + { url = "https://files.pythonhosted.org/packages/4f/d2/edb71cf0e561581a7c5eb2626244320eb04e9f8ce6d563184fd668b45073/lxml-6.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a4bbea04c97f6d78a48e3fbc1cb9116d2780b1b39e03a23f6eb9b603fd61f510", size = 4923654, upload-time = "2026-05-18T19:17:42.917Z" }, + { url = "https://files.pythonhosted.org/packages/4c/77/1bc7eeb0de4577d783fb625aa092cc9357883bba35845a3666bf1259f3dc/lxml-6.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:db1d75f6617a49c1c01bc7023713e0ff59ab32c9579ae62a7674c0e34f3b0b0a", size = 5067921, upload-time = "2026-05-18T19:17:49.175Z" }, + { url = "https://files.pythonhosted.org/packages/1b/3c/c0690d74bd2bc17bc03b5b0d093569ead597dd0bfa088bf99eef8c24e19c/lxml-6.1.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a12689be69a28ddaa0ab99a5a1137da2afd5f8f16df7b5680b66f616d3eda1d", size = 5002456, upload-time = "2026-05-18T19:17:59.715Z" }, + { url = "https://files.pythonhosted.org/packages/66/8d/d1b3271af0c0f1e27e8472a849e4d2c65bc7766884b9ad2da9e76e145c88/lxml-6.1.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b73c339ae29b90fd2d06e58ebd555a751bde9cd6bbd36cc0281b9a2c94e9d8", size = 5202776, upload-time = "2026-05-18T19:18:08.924Z" }, + { url = "https://files.pythonhosted.org/packages/7a/45/689824ffb237fd10125ad273f32b28ff04dc6203c2822c85ff65a93df65e/lxml-6.1.1-cp311-cp311-manylinux_2_28_i686.whl", hash = "sha256:752d3bbfe874715ccd0aec7f88d7fc623c0f1fd7aa7b3238a084e017bad2a009", size = 5329945, upload-time = "2026-05-18T19:18:13.673Z" }, + { url = "https://files.pythonhosted.org/packages/5d/c0/ef73af53767e958fd87d437c170f272e2f6e6c0f854939f133a895f1e711/lxml-6.1.1-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:6b1761fbf9ec984e2e9d9c589ef5f5fd684b7c19f92aadd567a26c5224958db6", size = 4659237, upload-time = "2026-05-18T19:18:18.657Z" }, + { url = "https://files.pythonhosted.org/packages/a0/5e/e1158e40397585e91cb0472374a1f63d0926a1ddeaa92f13d1a1ffe306d5/lxml-6.1.1-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d680fbcb768404c601ecb43519ecd8461f6954cb11c06a78962f666832ccfca8", size = 5265904, upload-time = "2026-05-18T19:18:24.883Z" }, + { url = "https://files.pythonhosted.org/packages/a0/16/8687e5d1400ed1c0bc41dace232ebb7553952b618ea1f2e5fb6e2cfbbe23/lxml-6.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:162af1091cd785f2f27e62d3547ae9bc58ec5c86dd314d67021fd02463708d83", size = 5045225, upload-time = "2026-05-18T19:17:20.073Z" }, + { url = "https://files.pythonhosted.org/packages/ca/18/d877bd1ae2e5ffdfd4836565aba350db31feb2f2656d6ce70316ed66a05e/lxml-6.1.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e9308ff8241c532df3f3e570f9a5aeed6c853f888512ba4b75638d7c11c95ef6", size = 4712721, upload-time = "2026-05-18T19:17:40.512Z" }, + { url = "https://files.pythonhosted.org/packages/44/4d/1f44fd1d770b10dacbf6b5c6e520f4d6e0708744930f719dc04e67cab981/lxml-6.1.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5f6994074ebae6ffb04447268e37dc16edc304f9859cf91acb86e0af6c1b395c", size = 5252549, upload-time = "2026-05-18T19:17:51.236Z" }, + { url = "https://files.pythonhosted.org/packages/64/5d/1d66b84f850089254c230ef6ea6b267a5a54e2e179a5d960036a05d501d7/lxml-6.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:80c2dfadb855da477cf73373ad29a333535dedb9b12bad02c9814c8e2b43bf08", size = 5226877, upload-time = "2026-05-18T19:18:00.875Z" }, + { url = "https://files.pythonhosted.org/packages/ad/00/84c4b5302d42a2d0184f38d538c8a197f33b52a50bd4f7bcfe990bce3036/lxml-6.1.1-cp311-cp311-win32.whl", hash = "sha256:30a89d3ac8faec007453fb541f3f46807eeec88edd5826f6e3fe001752a2c621", size = 3594072, upload-time = "2026-05-18T19:17:12.714Z" }, + { url = "https://files.pythonhosted.org/packages/61/9d/2e2f7d876349f45e0f3e29f72da311668853d59b58d473a2dea4f0160135/lxml-6.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:abbefa31eee84842140f67acef1c828e28bba8bbf0c3bc6e5492a9af88152c28", size = 4025469, upload-time = "2026-05-18T19:17:50.566Z" }, + { url = "https://files.pythonhosted.org/packages/b0/d5/570e6390e4110331e6208b2ba83d1482cc9146808ee118b22824a34c1070/lxml-6.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:dcb292aa7fe485ceff7af4f92e46c5af397daec5dff64871a528f0fc47a3cc5b", size = 3667640, upload-time = "2026-05-19T19:22:48.293Z" }, + { url = "https://files.pythonhosted.org/packages/6a/6e/c4add832b6fc1e887125b96f880d7b9b70aae5248718e046b1704bcac4b9/lxml-6.1.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:104c09bda8d2a562824c0e319d0768ce26a779b7601e0931d33b09b53c392ef7", size = 8570821, upload-time = "2026-05-18T19:17:42.068Z" }, + { url = "https://files.pythonhosted.org/packages/22/00/ff3009c88e65de8011630acf8ab5a09cb2becd2aaf47fba2f3449f6224e9/lxml-6.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:25c6997a9a534e016695a0ba06b2f07945de682731ff01065b6d5a4474179da1", size = 4624252, upload-time = "2026-05-18T19:17:47.897Z" }, + { url = "https://files.pythonhosted.org/packages/42/95/bb63f0fd62e554fe078e1fb3c8fe9083c14ddc7ad7fa178d10e57e071ac7/lxml-6.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c921ba5c51e4e9f63b8b00267d06566e1f63407408a0496da2d1d0bfc819c7fc", size = 4930746, upload-time = "2026-05-18T19:18:29.637Z" }, + { url = "https://files.pythonhosted.org/packages/eb/99/0013e8d9b5960f4f041cf0b73e2f80c23eb5205b1f7bfb20203243651359/lxml-6.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:54a7f95e4de5fb94e2f9f4b9055c6ba33bf3d628fd77a1d647c5923caa2cdcdc", size = 5093723, upload-time = "2026-05-18T19:18:34.168Z" }, + { url = "https://files.pythonhosted.org/packages/29/91/317b332636bfc7bddcff828d41b3307f50043f4b237e40849c333d80fa1a/lxml-6.1.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f2ec43df44b1f76249ee0a615334f9b5b060e1c8bd90e706dad2d14d02f383", size = 5005557, upload-time = "2026-05-18T19:18:39.798Z" }, + { url = "https://files.pythonhosted.org/packages/42/2f/cc9bf06afe70f9c9093ae60855d9759da9db601ec4080f7473319666ffd7/lxml-6.1.1-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:70ef8a7e102a1508f8121aae5b0867abd663f72c14f0a9c937e6554cb4587b7b", size = 5631036, upload-time = "2026-05-18T19:18:44.858Z" }, + { url = "https://files.pythonhosted.org/packages/08/f6/af32e23e563971ffb0fb86be52bc5be5c2c118858ffc119bf6a9039b173d/lxml-6.1.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ebe6af670449830d6d9b752c256a983291c766a1365ba5d5460048f9e33a7818", size = 5240367, upload-time = "2026-05-18T19:18:49.217Z" }, + { url = "https://files.pythonhosted.org/packages/78/83/8555d40948b09ce86f1bd0c68a7ac31d07b1929f92cc1b074006c97ef2d2/lxml-6.1.1-cp312-cp312-manylinux_2_28_i686.whl", hash = "sha256:27acc820660aaffa4f7c087f29120e12980f7779d56d8492d263170111284740", size = 5350171, upload-time = "2026-05-18T19:18:52.779Z" }, + { url = "https://files.pythonhosted.org/packages/63/75/5d92da93729b7bad783689e6496049fa40927b45bec7bf183c981de3ca70/lxml-6.1.1-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:1db753c9115ec7100d073b744d17e25e88a8f90f5c39b2f5dd878149af59671f", size = 4694874, upload-time = "2026-05-18T19:18:55.139Z" }, + { url = "https://files.pythonhosted.org/packages/c5/b5/3aad415a9a25b822e783f15deeb4dffccf5113030f1afa2222dd929313d9/lxml-6.1.1-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c4f469aebd783bb741c2ecb2a681008fd26bfe5c16a9a72ed5467f834e810df2", size = 5244492, upload-time = "2026-05-18T19:19:01.28Z" }, + { url = "https://files.pythonhosted.org/packages/f1/a1/5fcf7eb9904b80086aa47dcf0027de07b1bb990afad2e6823144c368ae04/lxml-6.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:766b010012d59470072c1816b5b6c69f1d243e5db36ea5968e94accf430a4635", size = 5048232, upload-time = "2026-05-18T19:18:12.67Z" }, + { url = "https://files.pythonhosted.org/packages/77/74/1f601b63c7a69fcdf10fa9b148c81da8442204194f6c55509cc485c786b9/lxml-6.1.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b8d812c6011c08b8111a15e54dd990b8923692d80adf35488bee34026c35accf", size = 4777023, upload-time = "2026-05-18T19:18:15.928Z" }, + { url = "https://files.pythonhosted.org/packages/a2/b9/7a78f51aec95b1bf780d78e12705a9f6533284f8693dc5c0e6724fa53d3f/lxml-6.1.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:fe0306bd29505a9177aac19f1877174b0e7422c222a59f70b2cd41633448c3dc", size = 5645773, upload-time = "2026-05-18T19:18:23.223Z" }, + { url = "https://files.pythonhosted.org/packages/a5/6e/98a7b7ad54e4e74fa1f20fff776913980619d0ebe5558232d7da6580bdd8/lxml-6.1.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:5ba186ad207446c65d3bb3d3e0412b032b1d9f595e59861e2354798c5703d955", size = 5233088, upload-time = "2026-05-18T19:18:31.433Z" }, + { url = "https://files.pythonhosted.org/packages/65/d1/bc0ed2427bf609f2ee10da303a6a226f9c8bce94f945dc29a32ce55de6e4/lxml-6.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aa366a1e55b8ebfe8ca8ddc3cfe75c8ebade181aeb0f661d0cb05986b647f72a", size = 5260995, upload-time = "2026-05-18T19:18:37.091Z" }, + { url = "https://files.pythonhosted.org/packages/69/8b/6772e1a4b513fc50a8d931f19edde0e13ae6918510a1e13ff67864f3e5ed/lxml-6.1.1-cp312-cp312-win32.whl", hash = "sha256:126c93f7f56f0eda92f6d8c619edc463a4f23d9252f1c9d0405a76f25fa9f11a", size = 3596382, upload-time = "2026-05-18T19:17:18.37Z" }, + { url = "https://files.pythonhosted.org/packages/1b/89/45198e9624762af2dfd2cb8782598477ceb29f6e59caab560388ae1f4ec1/lxml-6.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:26e6eda8d38c1fcab1090dd196ee87cbd13788e531937610e2589085de074e77", size = 3997255, upload-time = "2026-05-18T19:17:56.781Z" }, + { url = "https://files.pythonhosted.org/packages/90/a9/7a54b6834088d9ae528a7b780584ba6a39a9457b0ac330479f20ffbc9449/lxml-6.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:6540377fbd53fe1b629172288c464fb18db11ce1fa7dc15891da10aa9dcc3e7f", size = 3659610, upload-time = "2026-05-19T19:22:50.843Z" }, + { url = "https://files.pythonhosted.org/packages/a5/eb/7e6f37c5584ccbb2ff267f56fd0339016938c1c8684cfefab9b33ffc2f36/lxml-6.1.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:68a9198d0fc122d14bb76837de9aa80cf84caed990b5b237f532ed87d3706736", size = 8559780, upload-time = "2026-05-18T19:17:57.661Z" }, + { url = "https://files.pythonhosted.org/packages/a1/36/587c2521cf23a2cd6c9c22108aa7528f683a1f195ed7ccd23a4b1786ad36/lxml-6.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7d47866cb32fb503450b6edc9df355d10dc49836af2e89901bd6ac6b0896d9d9", size = 4618006, upload-time = "2026-05-18T19:18:04.452Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ca/ab7bfe2bf4c972af5e7878262845ead3a24a929a9b04bc11c7c1ece6c82a/lxml-6.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb7c9811bfaa8b1ed5ed319f5d370dfbcaa59d52ea64be2a5a85e18195930354", size = 4924139, upload-time = "2026-05-18T19:19:04.873Z" }, + { url = "https://files.pythonhosted.org/packages/6b/55/a0c72851dfee5ecc689f949723a73dea457758912542cb955b108eaf0d8f/lxml-6.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:762ff394d5bd56da0cf034a23dcce4e13923f15321a2adfa2ac00201dc6d3fca", size = 5082329, upload-time = "2026-05-18T19:19:09.728Z" }, + { url = "https://files.pythonhosted.org/packages/f0/b6/0608f7d61a3b96cc67e5648a3d906e31a5082093e10e7be65b3886289938/lxml-6.1.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a088f287f7d8275a33c07f2cac6c50b9319309a0200a39e7e75d80c707723099", size = 4993564, upload-time = "2026-05-18T19:19:13.608Z" }, + { url = "https://files.pythonhosted.org/packages/4c/66/ae227524b066d29d55bf0b453d93d2d793c40218657d643dcbbca13b8faf/lxml-6.1.1-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e902da4b04e6b52e5893900d4b8ab46068f75f3561f01bf1080957f9fd932ed6", size = 5613467, upload-time = "2026-05-18T19:19:16.228Z" }, + { url = "https://files.pythonhosted.org/packages/a6/76/dbe4a00b50385e40194231dcfe5a12c059de7cf90e89c83407d2b085b719/lxml-6.1.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1d4962d4c66bf830a7e59ed6cfc17d148149898a3aefa8ec6e59763e6e3ed085", size = 5228304, upload-time = "2026-05-18T19:19:19.354Z" }, + { url = "https://files.pythonhosted.org/packages/1c/01/00b1b8442ed2041793336868ba0b9ea4b13d7da7c085c6404c207a63bf79/lxml-6.1.1-cp313-cp313-manylinux_2_28_i686.whl", hash = "sha256:581d4c8ae690a6609e64862dd6b7c2489635c2d13907fc2b20f2bc200ff1d21e", size = 5341607, upload-time = "2026-05-18T19:19:22.297Z" }, + { url = "https://files.pythonhosted.org/packages/63/36/1ad29931e9a4638bb707869f01d423a6c815f82152138d1a40dfcfde2b95/lxml-6.1.1-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:876e1ff5930ed8bf295ec5ef9a8155e9b6b1876bbf1deed8b3a8069311875a8f", size = 4700168, upload-time = "2026-05-18T19:19:25.133Z" }, + { url = "https://files.pythonhosted.org/packages/3c/d1/a9536cecf9be18a0dc72d32bead283a2332d1ffebd2dd3ac70ce444686e5/lxml-6.1.1-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9eb9b5a968f6e0f6d640092a567e14529ff8cea2e29d00da6f78a79fa49f013c", size = 5232487, upload-time = "2026-05-18T19:19:28.603Z" }, + { url = "https://files.pythonhosted.org/packages/0e/77/b4fb1e03bf5d130e879214d3100092e386418807fb74dd0adc4b0a48f351/lxml-6.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:aa49e06d94aba782c6a02eecb7e507969e7e7a41b267f1b359bb35585f295d5b", size = 5044231, upload-time = "2026-05-18T19:18:42.246Z" }, + { url = "https://files.pythonhosted.org/packages/26/4c/d00daeeb0a5530c4028a9232aa1b93db3ef4ed2158c116ea73c79a9765b3/lxml-6.1.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:70cdfd80589d59e43e18005dd7244e8895e93db8ab6a620b7e23df5445a4e3d2", size = 4769450, upload-time = "2026-05-18T19:18:48.013Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6a/715a3a8d156ce42f29cf014706f5410c2ff3b02267774110fc23266409fe/lxml-6.1.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:aad9aa39483ed8ec44d6d2e59e5b98a0d80676ef0d92f44bfc374836111f62f5", size = 5635874, upload-time = "2026-05-18T19:18:51.914Z" }, + { url = "https://files.pythonhosted.org/packages/45/37/0544bc21dde2a88f3a17b504e6fc79c0e01d25a33c2f6079724e9e72b9c7/lxml-6.1.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:d49514be2f28d895c38cf9d2b72d7b9a07d00314519f456c0b50b53cfcf4c785", size = 5223987, upload-time = "2026-05-18T19:18:59.715Z" }, + { url = "https://files.pythonhosted.org/packages/4d/f8/f6a5e8185bcb28c2befae3d31f8e3df3b811cb0f47746517a81279fcafe1/lxml-6.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:47402e62c52ff5988c1e8c6c63177f5708bccf48e366dea4e3dcf1e645e04947", size = 5250276, upload-time = "2026-05-18T19:19:03.834Z" }, + { url = "https://files.pythonhosted.org/packages/c7/f2/1a2b9f1b7a49d45495369be7ef9ad05b262930f2eab3e3145706fca8083f/lxml-6.1.1-cp313-cp313-win32.whl", hash = "sha256:3483644525531e1d5762b0c44a8e18b6efba321b6dcf8a8952de10b037618bca", size = 3596903, upload-time = "2026-05-18T19:17:29.863Z" }, + { url = "https://files.pythonhosted.org/packages/e6/99/f4ffb024f238eec2131aaa09f3278fb6129cf892741bf68e1fc1afb8c100/lxml-6.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:a10bd2fd62e8ce916ececb342f348f190724a098c1faa056fdfb2a22ad5e8660", size = 3995869, upload-time = "2026-05-18T19:18:02.596Z" }, + { url = "https://files.pythonhosted.org/packages/d1/53/70eb8c5c6037f27448f1e3c54ebede9545a801ae63f0a7254afca4fe8e45/lxml-6.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:424aa57aca0897eb922aef34395bd1289b3b6f04e6bae20ea123c0c7e333cffc", size = 3658490, upload-time = "2026-05-19T19:22:53.846Z" }, + { url = "https://files.pythonhosted.org/packages/13/e2/2e325795566de01d0d7c3bb57d3c370616b2d07b01214e84eec5d3b10963/lxml-6.1.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:19b7ab10b210b0b3ad7985d9ac4eb66ab09a90b20fe6e2f7ba55d01a234345d0", size = 8577146, upload-time = "2026-05-18T19:18:17.765Z" }, + { url = "https://files.pythonhosted.org/packages/93/cf/5630b5e4be7d2e6bee8efe83865c925221103cf0221303b104ce134b01e2/lxml-6.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c08e5c694306507275f2290073350c4f32e383db15213b2c69e7ff39c1193840", size = 4623866, upload-time = "2026-05-18T19:18:30.669Z" }, + { url = "https://files.pythonhosted.org/packages/d2/51/3904907c063451cf8d4a5c9fe0cad95fa1f4ec57f4e3884fa0731bd7a305/lxml-6.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:74a9717fd0d82effef5c2854f0d917231d5324b5a3eb7275c43ac9fa32f97a14", size = 4950022, upload-time = "2026-05-18T19:19:31.958Z" }, + { url = "https://files.pythonhosted.org/packages/94/cd/9c7611a51c37a2830928405817cc5d56a97f64fab83cc3f628748b135749/lxml-6.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:efe0374196335f93b53269acd811b944f2e6bdc88e8894f214bd636455484909", size = 5086695, upload-time = "2026-05-18T19:19:34.764Z" }, + { url = "https://files.pythonhosted.org/packages/da/d6/24e3b5906abb0b674ff2ae195bc3ce59708df2bcd17cf17703b2d7dd643a/lxml-6.1.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac931cdc9442c1763b8a8f6cd62c0c938737eafc5be75eff88df55fc73bc0d00", size = 5031642, upload-time = "2026-05-18T19:19:37.771Z" }, + { url = "https://files.pythonhosted.org/packages/2d/db/6ec54f99019838bff54785c51da07f189eb4676861c5f2730962b0d8d665/lxml-6.1.1-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:aee395f5d0927f947758b4ec119fd5fc8ec71f07a1c5c52077b30b04c0fa6955", size = 5647338, upload-time = "2026-05-18T19:19:40.553Z" }, + { url = "https://files.pythonhosted.org/packages/42/3d/ef4dcfffd22d27a61805d8ed9f7fb888495bc6aa88648fa07c1eaa5586b6/lxml-6.1.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9395002973c827b3ed67db77e6ec09f092919a587022174554096a269378fb13", size = 5239528, upload-time = "2026-05-18T19:19:43.657Z" }, + { url = "https://files.pythonhosted.org/packages/62/bb/37fb3f0dff146bdcfa78eec47879273820b2a0bf350ec236ce14bd0b1c26/lxml-6.1.1-cp314-cp314-manylinux_2_28_i686.whl", hash = "sha256:73bc2086f141224ebddb7fc5c6a36ca58b31b94b561e1dfe8e073e3270fad1e7", size = 5350730, upload-time = "2026-05-18T19:19:46.307Z" }, + { url = "https://files.pythonhosted.org/packages/90/42/43253f168388df4fae1f38c01df36ddb9bee39e2048167b54cdcbae85ea3/lxml-6.1.1-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:3779def59032b81e44a5f70096ef6bf2082f8d901937dca354474ba09782e245", size = 4697530, upload-time = "2026-05-18T19:19:49.889Z" }, + { url = "https://files.pythonhosted.org/packages/eb/a8/c5a8504f81bbdfc8e7094c2c850cdb4ed6777fc4d5ddd9e5ab819f3b0d54/lxml-6.1.1-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:86c89b9d55ebf820ad7c90bc533410f0d098054f293351f10603c0c46ff598f5", size = 5250670, upload-time = "2026-05-18T19:19:53.199Z" }, + { url = "https://files.pythonhosted.org/packages/77/b7/c7e76ab18744d75e21f320ebf9ff9d1ceae2b54dd431ea5a64caf26c9672/lxml-6.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19607c6bbff2a44cf3fe8250abccd20942d3462473e0a721d01d379ed017e462", size = 5084485, upload-time = "2026-05-18T19:19:08.422Z" }, + { url = "https://files.pythonhosted.org/packages/31/31/b35c53f8ef7b7c31cacd23d3638652fff7bcd1deb6eedb709ab43b685908/lxml-6.1.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:c6ed5141a5c7507cf3ee76bd363b0d6f801e3321adc35b5d825a23115faa5465", size = 4737635, upload-time = "2026-05-18T19:19:12.321Z" }, + { url = "https://files.pythonhosted.org/packages/d9/06/31f23c813a7fe8e0cb1b175e915b08c9bf4e86d225b210feadbdbe519667/lxml-6.1.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:62aeb7e85b5d60320b9d77eef2e773994e2c0ce10121b277e0a19804e1654a5a", size = 5670681, upload-time = "2026-05-18T19:19:15.001Z" }, + { url = "https://files.pythonhosted.org/packages/1a/bc/ce619bccc89b1fd9ad8a8e1330ee3f3beff9f2ff95b712d7bbcdd6e22fc3/lxml-6.1.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:b1b963fd8f5caa68e99dfae060d54de1fe9cba899b8718b44a00cdca53c3e590", size = 5238229, upload-time = "2026-05-18T19:19:18.131Z" }, + { url = "https://files.pythonhosted.org/packages/2f/5d/b329acbbedc0b619ebc2be6cf7ee9ed07e80892c88d4dfd612c33805789a/lxml-6.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:63876be28efefa04a1df615b46770e82042cce445cfdce55160522f57b231ccb", size = 5264191, upload-time = "2026-05-18T19:19:21.118Z" }, + { url = "https://files.pythonhosted.org/packages/d6/85/be36fb1425b30db3c3f9df75fe86343ebffb79e6320bd7f588e25bfeac39/lxml-6.1.1-cp314-cp314-win32.whl", hash = "sha256:7f7a92e8583f06b1fd49d01158143b8461cfcd135dcb10ec807270a3051bd603", size = 3657202, upload-time = "2026-05-18T19:17:39.509Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ce/3cf9a827342269f54d405a6202397de63f07c69cbd6ce7d183a3f0cba1e9/lxml-6.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:b2d444f2e66624d68e9c6b211e28a76e22fff5fcabcfff4deac18b529b7d4137", size = 4064497, upload-time = "2026-05-18T19:18:14.662Z" }, + { url = "https://files.pythonhosted.org/packages/d9/3e/1a957bde8f0760039e627f94699f82caa782c9d838d86c3d28245ee67212/lxml-6.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:3fd9728a2735fda14f4e8235830c86b539e9661e849665bf926d3f867943b4bf", size = 3741991, upload-time = "2026-05-19T19:22:59.111Z" }, + { url = "https://files.pythonhosted.org/packages/78/b2/00ed55b3a2efa4658fb795c38d1090ec9b3e8a6c3683d4441fa517f09c3b/lxml-6.1.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:787b2496d0dbe8cd180984e8d29e3a6f76e7ea34db781cb3bd55e4ba1ef8b4ee", size = 8827545, upload-time = "2026-05-18T19:18:41.193Z" }, + { url = "https://files.pythonhosted.org/packages/c0/73/74573db19baa618d5f266f2407898b087ff6927115b00b71e5fc1b700847/lxml-6.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2c8daa471358dc2d6fcf02165e80ec68f77871a286df95bc5cc3816153b0fd2c", size = 4735736, upload-time = "2026-05-18T19:18:46.761Z" }, + { url = "https://files.pythonhosted.org/packages/16/02/6f7061f4f95f51e545d48e87647c54791d204a4e881be4156e7a26ba5338/lxml-6.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:acd7d70b64c0aae0c7922cca83d288a16f5f6da523637697872253415269baef", size = 4970291, upload-time = "2026-05-18T19:19:56.215Z" }, + { url = "https://files.pythonhosted.org/packages/b0/02/55fc057d8283427dea7d6edb102e7a840239c77a64a983d92f62a304c0e9/lxml-6.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4f0dd2f01f9f8a89f565d000e03abcf0a13d692a346c8d22f628d49af098777a", size = 5102822, upload-time = "2026-05-18T19:19:59.223Z" }, + { url = "https://files.pythonhosted.org/packages/e4/48/8e1cf78d89d66850121d9255a2a24414c98f775da93b90cf976956c24b14/lxml-6.1.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b7e8a14c8634bf6f7a568634cb395305a6d964aeb5b7ee32248094bed3a7e2c", size = 5027923, upload-time = "2026-05-18T19:20:01.549Z" }, + { url = "https://files.pythonhosted.org/packages/ed/00/0632a0647612c8af24d26997b3b961397daa9d5b2581444805933629a4cb/lxml-6.1.1-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:86281fbdd6a8162756f8d603f37e3435bfa38043adb79c6dc6a2dfee065e7525", size = 5595843, upload-time = "2026-05-18T19:20:03.93Z" }, + { url = "https://files.pythonhosted.org/packages/bc/86/ab008a7dc360711b66858d61c80a5979a70a09f2aa2b05d9698df80b803d/lxml-6.1.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5d7152ec39ca7c402d8fb9bad86140a15b9503bd0c54484e3f1bbe3dd37ceca", size = 5224515, upload-time = "2026-05-18T19:20:06.381Z" }, + { url = "https://files.pythonhosted.org/packages/75/c6/2702ff375e728e34f56d9a45339a9cf7e4427e917f542225242d63a05afa/lxml-6.1.1-cp314-cp314t-manylinux_2_28_i686.whl", hash = "sha256:88d8cb75b9d82858497a5393e3c63cfbf03035225e4b35a49ed7ccb151e4dc0e", size = 5312511, upload-time = "2026-05-18T19:20:09.308Z" }, + { url = "https://files.pythonhosted.org/packages/b7/57/a5807c98f87a86f10ef9ffab35516df7c0f0c4b6d5d33e9f608ab9c04a31/lxml-6.1.1-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:f64ec5397ea6a41fc1b4af0380d79b44a755b5531dcaccd9940fb260dca93038", size = 4639206, upload-time = "2026-05-18T19:20:11.704Z" }, + { url = "https://files.pythonhosted.org/packages/1f/e1/8a0a2c35734812395f4da4eaf33748a7e5705bfb2a58b128da764339d5ec/lxml-6.1.1-cp314-cp314t-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d34bbf07dbc7ca5970671b1512e928991fb5e9d95365636c9b2d8b4f53af405e", size = 5232404, upload-time = "2026-05-18T19:20:14.064Z" }, + { url = "https://files.pythonhosted.org/packages/c2/e2/0e6a4dd5ad84d01d99aa7bae7cfefd4a760a0e0f8176818241de17d9b6c0/lxml-6.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:17e0e18d4ad8adbd0399291bc44845b69d9dd68439a3cdebdf35ff902ec05072", size = 5083769, upload-time = "2026-05-18T19:19:23.758Z" }, + { url = "https://files.pythonhosted.org/packages/a0/7e/161f33d463f6ffc1c7679104b65086dea120080d49dde4d238f015aaee2f/lxml-6.1.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:3ab541146f1f6968c462d6c2ac495148e8cdba2f8347700b2141b6ec5a75bf52", size = 4758936, upload-time = "2026-05-18T19:19:27.256Z" }, + { url = "https://files.pythonhosted.org/packages/f1/fb/2369825e3f6ca99305bf9f7b7085fda91c8b0922a89e54d900974aa3ef85/lxml-6.1.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:2a0217714657e023ef4293500f65aa20fce6164c8fd6b08fa5bd4a859fb14b9b", size = 5620296, upload-time = "2026-05-18T19:19:29.993Z" }, + { url = "https://files.pythonhosted.org/packages/30/90/d61e383146f74c5ab683947ea14dc7b82778838ab9b95ea73a23b60d0191/lxml-6.1.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:05a82eb6e1530a64f26225b55cbd178113bd0b5af1c2b625f25e5296742c26d2", size = 5228598, upload-time = "2026-05-18T19:19:33.523Z" }, + { url = "https://files.pythonhosted.org/packages/76/2d/2dafd8149e94b05bb070690efd5bb2680720681e03ff03fc57d2b70a1105/lxml-6.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9e36f163528fc50cbef305f02a5fd66d404edf7049cdaff211dbc2cba5a7013e", size = 5247845, upload-time = "2026-05-18T19:19:36.649Z" }, + { url = "https://files.pythonhosted.org/packages/ce/68/b30e913340c380ddac9580c6e6230991fc37240ec4f64704833e4f3e2769/lxml-6.1.1-cp314-cp314t-win32.whl", hash = "sha256:649dda677cf3bd6ac9ae14007ba0c824ded8ce5808b53fc7431d9140399118c1", size = 3897345, upload-time = "2026-05-18T19:17:33.562Z" }, + { url = "https://files.pythonhosted.org/packages/3c/4e/9eb2af5335545f9fbcd7af57bcf87c6025d31eaa31b14ec184a6c8675328/lxml-6.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:793033d6c5cdf33a573f910d9bea14ef8f5771820411d118da8e1182edb53d5e", size = 4393350, upload-time = "2026-05-18T19:18:10.076Z" }, + { url = "https://files.pythonhosted.org/packages/7f/2c/0f1e93c636720e8a3eb59af2bfda99d98b55891e1c53bc30c2e0e865f01b/lxml-6.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:58bb955caba94e467d2a96da17660d2d704e0675894cba21ab8a775b8621fd1c", size = 3817223, upload-time = "2026-05-19T19:22:56.823Z" }, + { url = "https://files.pythonhosted.org/packages/b5/32/86a3f0f724a3a402d4627937a7fc27b160e45e7012b4adf47f6e1e844511/lxml-6.1.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:31033dc34636ea6b7d5cc11b1ddbda78a14de858ba9d3e1ed4b69a3085bc521e", size = 3930127, upload-time = "2026-05-18T19:19:02.27Z" }, + { url = "https://files.pythonhosted.org/packages/40/44/d832e82af08723761556d004b1d04d281c09f9a8cecd7d3148548c9941a3/lxml-6.1.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3893c14c4b6ac5b2d54ba8cf03e99fe5104e592de491f19bd6b82756c09f8004", size = 4210769, upload-time = "2026-05-18T19:20:41.427Z" }, + { url = "https://files.pythonhosted.org/packages/6d/39/0dc5949f759ed7d951e0bb8c2f2d9d7aca1908d22352fa84a8afd2ea54af/lxml-6.1.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c07da4cebf6889f03ebac8d238f62318e29f495de0aa18a51ea14e61ae907e2e", size = 4318163, upload-time = "2026-05-18T19:20:44.702Z" }, + { url = "https://files.pythonhosted.org/packages/e6/fb/8ab3845fe046ba4cbf74536bcf6801a774b7caf4350de1c5d37f1f0a9e90/lxml-6.1.1-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f6f0ce10945fab9c4c06ce14e22af9059d1a87493a9af4501a5b0b9187e21cf2", size = 4250945, upload-time = "2026-05-18T19:20:47.385Z" }, + { url = "https://files.pythonhosted.org/packages/68/1b/7553ab136894374ffae8851ec06f98f511cd8e66246e41b6be059d0a7289/lxml-6.1.1-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f8844cd288697c6425c9beba919302241e3278871dc6519515e72b04e987abcf", size = 4401664, upload-time = "2026-05-18T19:20:50.489Z" }, + { url = "https://files.pythonhosted.org/packages/db/a4/441aee36c6f6b249823d20fd91f9be9ab89d7c5a8ae542a4a4ca6d342d56/lxml-6.1.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:ed21202aec73cda4d55d1ce57b389aadb90ffb044e6cd1080b8347efe1b1ec84", size = 3508989, upload-time = "2026-05-18T19:18:38.158Z" }, +] + +[package.optional-dependencies] +html-clean = [ + { name = "lxml-html-clean" }, +] + +[[package]] +name = "lxml-html-clean" +version = "0.4.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0a/63/195dfdde380a84df309e3bccf4384b034b745dba43426886f7ae623b4fba/lxml_html_clean-0.4.5.tar.gz", hash = "sha256:e2a4c7d5beedd17cd7b484d848a0571e54baa239a4f9df5546e3acba7f990560", size = 24142, upload-time = "2026-05-20T12:17:53.574Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/bd/6e2b76a6c5dee10397db9c929f0c5066766ec1036046f0335b7ca7ca08b8/lxml_html_clean-0.4.5-py3-none-any.whl", hash = "sha256:c76fcadd1e5bfb9b8bafc2200d51e4e78eb0dad67f56881c21dfb6484c7e7746", size = 14573, upload-time = "2026-05-20T12:17:52.215Z" }, +] + +[[package]] +name = "magika" +version = "0.6.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.12.*' and sys_platform == 'win32'", +] +dependencies = [ + { name = "click", marker = "python_full_version == '3.12.*' and sys_platform == 'win32'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and sys_platform == 'win32'" }, + { name = "onnxruntime", version = "1.27.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and sys_platform == 'win32'" }, + { name = "python-dotenv", marker = "python_full_version == '3.12.*' and sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fe/b6/8fdd991142ad3e037179a494b153f463024e5a211ef3ad948b955c26b4de/magika-0.6.2.tar.gz", hash = "sha256:37eb6ae8020f6e68f231bc06052c0a0cbe8e6fa27492db345e8dc867dbceb067", size = 3036634, upload-time = "2025-05-02T14:54:18.88Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/07/4f7748f34279f2852068256992377474f9700b6fbad6735d6be58605178f/magika-0.6.2-py3-none-any.whl", hash = "sha256:5ef72fbc07723029b3684ef81454bc224ac5f60986aa0fc5a28f4456eebcb5b2", size = 2967609, upload-time = "2025-05-02T14:54:09.696Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1f/28e412d0ccedc068fbccdae6a6233faaa97ec3e5e2ffd242e49655b10064/magika-0.6.2-py3-none-win_amd64.whl", hash = "sha256:711f427a633e0182737dcc2074748004842f870643585813503ff2553b973b9f", size = 12385740, upload-time = "2025-05-02T14:54:14.096Z" }, +] + +[[package]] +name = "magika" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform == 'win32'", + "python_full_version == '3.14.*' and sys_platform == 'win32'", + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +dependencies = [ + { name = "click", marker = "python_full_version != '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.11.*' and sys_platform == 'win32') or (python_full_version >= '3.13' and sys_platform == 'win32')" }, + { name = "onnxruntime", version = "1.20.1", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version < '3.11' and sys_platform != 'win32') or (python_full_version != '3.12.*' and sys_platform == 'win32')" }, + { name = "onnxruntime", version = "1.27.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11' and sys_platform != 'win32'" }, + { name = "python-dotenv", marker = "python_full_version != '3.12.*' or sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/f3/3d1dcdd7b9c41d589f5cff252d32ed91cdf86ba84391cfc81d9d8773571d/magika-0.6.3.tar.gz", hash = "sha256:7cc52aa7359af861957043e2bf7265ed4741067251c104532765cd668c0c0cb1", size = 3042784, upload-time = "2025-10-30T15:22:34.499Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/e4/35c323beb3280482c94299d61626116856ac2d4ec16ecef50afc4fdd4291/magika-0.6.3-py3-none-any.whl", hash = "sha256:eda443d08006ee495e02083b32e51b98cb3696ab595a7d13900d8e2ef506ec9d", size = 2969474, upload-time = "2025-10-30T15:22:25.298Z" }, + { url = "https://files.pythonhosted.org/packages/25/8f/132b0d7cd51c02c39fd52658a5896276c30c8cc2fd453270b19db8c40f7e/magika-0.6.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:86901e64b05dde5faff408c9b8245495b2e1fd4c226e3393d3d2a3fee65c504b", size = 13358841, upload-time = "2025-10-30T15:22:27.413Z" }, + { url = "https://files.pythonhosted.org/packages/c4/03/5ed859be502903a68b7b393b17ae0283bf34195cfcca79ce2dc25b9290e7/magika-0.6.3-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:3d9661eedbdf445ac9567e97e7ceefb93545d77a6a32858139ea966b5806fb64", size = 15367335, upload-time = "2025-10-30T15:22:29.907Z" }, + { url = "https://files.pythonhosted.org/packages/7b/9e/f8ee7d644affa3b80efdd623a3d75865c8f058f3950cb87fb0c48e3559bc/magika-0.6.3-py3-none-win_amd64.whl", hash = "sha256:e57f75674447b20cab4db928ae58ab264d7d8582b55183a0b876711c2b2787f3", size = 12692831, upload-time = "2025-10-30T15:22:32.063Z" }, +] + +[[package]] +name = "mammoth" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cobble" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/3c/a58418d2af00f2da60d4a51e18cd0311307b72d48d2fffec36a97b4a5e44/mammoth-1.11.0.tar.gz", hash = "sha256:a0f59e442f34d5b6447f4b0999306cbf3e67aaabfa8cb516f878fb1456744637", size = 53142, upload-time = "2025-09-19T10:35:20.373Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/54/2e39566a131b13f6d8d193f974cb6a34e81bb7cc2fa6f7e03de067b36588/mammoth-1.11.0-py2.py3-none-any.whl", hash = "sha256:c077ab0d450bd7c0c6ecd529a23bf7e0fa8190c929e28998308ff4eada3f063b", size = 54752, upload-time = "2025-09-19T10:35:18.699Z" }, +] + +[[package]] +name = "markdown" +version = "3.10.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload-time = "2026-02-09T14:57:26.942Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload-time = "2026-05-07T12:08:28.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload-time = "2026-05-07T12:08:27.182Z" }, +] + +[[package]] +name = "markdownify" +version = "1.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/92/ab/d1297139c0e2ceb151ae564c8c4f57ac0155d8f1f8b4cbd5d6523c82ea36/markdownify-1.2.3.tar.gz", hash = "sha256:1a176f05522c8a2cb1dd3ab9d307dcdadbed5c26ae717855bfc42b3b6d38d937", size = 18852, upload-time = "2026-06-30T20:27:39.06Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/10/fa543d484e8b1199243fe20eedd02cc5af050edebce98a7293a5773df592/markdownify-1.2.3-py3-none-any.whl", hash = "sha256:a189a0bedfd14009030fde5f85bb6f77c56897cb839b5c25315dd7d4e3e290ba", size = 15732, upload-time = "2026-06-30T20:27:38.094Z" }, +] + +[[package]] +name = "markitdown" +version = "0.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "charset-normalizer" }, + { name = "defusedxml" }, + { name = "magika", version = "0.6.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.12.*' and sys_platform == 'win32'" }, + { name = "magika", version = "0.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version != '3.12.*' or sys_platform != 'win32'" }, + { name = "markdownify" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/18/b7/91fe0e2df07107ab701a15c8ad3213135707e4d6206ae9bd8f457a7ad86a/markitdown-0.1.6.tar.gz", hash = "sha256:e5bdbaffd971b29598c7c39ef0e9afce2f08c0751fbfa4e4257678ebaf8cfc7e", size = 50795, upload-time = "2026-05-26T22:43:59.318Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/30/8031f183ee86ea8ac4e7ea1296bab4cca1bee2fd036a26df69764eb7ca74/markitdown-0.1.6-py3-none-any.whl", hash = "sha256:07b2d5bf87b5c53e13a9f2fdc440df8ccc85e26f40c1e557781727b700049775", size = 70032, upload-time = "2026-05-26T22:44:03.209Z" }, +] + +[package.optional-dependencies] +docx = [ + { name = "lxml" }, + { name = "mammoth" }, +] +pdf = [ + { name = "pdfminer-six" }, + { name = "pdfplumber" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "marshmallow" +version = "3.26.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/79/de6c16cc902f4fc372236926b0ce2ab7845268dcc30fb2fbb7f71b418631/marshmallow-3.26.2.tar.gz", hash = "sha256:bbe2adb5a03e6e3571b573f42527c6fe926e17467833660bebd11593ab8dfd57", size = 222095, upload-time = "2025-12-22T06:53:53.309Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/2f/5108cb3ee4ba6501748c4908b908e55f42a5b66245b4cfe0c99326e1ef6e/marshmallow-3.26.2-py3-none-any.whl", hash = "sha256:013fa8a3c4c276c24d26d84ce934dc964e2aa794345a0f8c7e5a7191482c8a73", size = 50964, upload-time = "2025-12-22T06:53:51.801Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.10.9" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +dependencies = [ + { name = "contourpy", version = "1.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "cycler", marker = "python_full_version < '3.11'" }, + { name = "fonttools", marker = "python_full_version < '3.11'" }, + { name = "kiwisolver", marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "packaging", marker = "python_full_version < '3.11'" }, + { name = "pillow", marker = "python_full_version < '3.11'" }, + { name = "pyparsing", marker = "python_full_version < '3.11'" }, + { name = "python-dateutil", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/1b/4be5be87d43d327a0cf4de1a56e86f7f84c89312452406cf122efe2839e6/matplotlib-3.10.9.tar.gz", hash = "sha256:fd66508e8c6877d98e586654b608a0456db8d7e8a546eb1e2600efd957302358", size = 34811233, upload-time = "2026-04-24T00:14:13.539Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/6f/340b04986e67aac6f66c5145ce68bf72c64bed30f92c8913499a6e6b8f99/matplotlib-3.10.9-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77210dce9cb8153dffc967efaae990543392563d5a376d4dd8539bebcb0ed217", size = 8296625, upload-time = "2026-04-24T00:11:43.376Z" }, + { url = "https://files.pythonhosted.org/packages/bb/2f/127081eb83162053ebb9678ceac64220b93a663e0167432566e9c7c82aab/matplotlib-3.10.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1e7698ac9868428e84d2c967424803b2472ff7167d9d6590d4204ed775343c3b", size = 8188790, upload-time = "2026-04-24T00:11:46.556Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b7/d8bcec2626c35f96972bff656299fef4578113ea6193c8fdad324710410c/matplotlib-3.10.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1aa972116abb4c9d201bf245620b433726cb6856f3bef6a78f776a00f5c92d37", size = 8769389, upload-time = "2026-04-24T00:11:48.959Z" }, + { url = "https://files.pythonhosted.org/packages/12/49/b78e214a527ea732033b7f4d37f7afb504d74ba9d134bd47938230dfb8b1/matplotlib-3.10.9-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae2f11957b27ce53497dd4d7b235c4d4f1faf383dfb39d0c5beb833bff883294", size = 9589657, upload-time = "2026-04-24T00:11:51.915Z" }, + { url = "https://files.pythonhosted.org/packages/5f/15/5246f7b43beae19c74dfee651d58d6cc8112e06f77adb4e88cc04f2e3a23/matplotlib-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b049278ddce116aaa1c1377ebf58adea909132dfce0281cf7e3a1ea9fc2e2c65", size = 9651983, upload-time = "2026-04-24T00:11:54.766Z" }, + { url = "https://files.pythonhosted.org/packages/75/77/5acecfe672ba0fa1b8c0454f69ce155d1e6fc5852fa7206bf9afaf767121/matplotlib-3.10.9-cp310-cp310-win_amd64.whl", hash = "sha256:82834c3c292d24d3a8aae77cd2d20019de69d692a34a970e4fdb8d33e2ea3dda", size = 8199701, upload-time = "2026-04-24T00:11:58.389Z" }, + { url = "https://files.pythonhosted.org/packages/4c/8c/290f021104741fea63769c31494f5324c0cd249bf536a65a4350767b1f22/matplotlib-3.10.9-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:68cfdcede415f7c8f5577b03303dd94526cdb6d11036cecdc205e08733b2d2bb", size = 8306860, upload-time = "2026-04-24T00:12:01.207Z" }, + { url = "https://files.pythonhosted.org/packages/51/18/325cd32ece1120d1da51cc4e4294c6580190699490183fc2fe8cb6d61ec5/matplotlib-3.10.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfca0129678bd56379db26c52b5d77ed7de314c047492fbdc763aa7501710cfb", size = 8199254, upload-time = "2026-04-24T00:12:04.239Z" }, + { url = "https://files.pythonhosted.org/packages/79/db/e28c1b83e3680740aa78925f5fb2ae4d16207207419ad75ea9fe604f8676/matplotlib-3.10.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8e436d155fa8a3399dc62683f8f5d0e2e50d25d0144a73edd73f82eec8f4abfb", size = 8777092, upload-time = "2026-04-24T00:12:06.793Z" }, + { url = "https://files.pythonhosted.org/packages/55/fa/3ce7adfe9ba101748f465211660d9c6374c876b671bdb8c2bb6d347e8b94/matplotlib-3.10.9-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:56fc0bd271b00025c6edfdc7c2dcd247372c8e1544971d62e1dc7c17367e8bf9", size = 9595691, upload-time = "2026-04-24T00:12:09.706Z" }, + { url = "https://files.pythonhosted.org/packages/36/c4/6960a76686ed668f2c60f84e9799ba4c0d56abdb36b1577b60c1d061d1ec/matplotlib-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a5a6104ed666402ba5106d7f36e0e0cdca4e8d7fa4d39708ca88019e2835a2eb", size = 9659771, upload-time = "2026-04-24T00:12:12.766Z" }, + { url = "https://files.pythonhosted.org/packages/7e/0d/271aace3342157c64700c9ff4c59c7b392f3dbab393692e8db6fbe7ab96c/matplotlib-3.10.9-cp311-cp311-win_amd64.whl", hash = "sha256:d730e984eddf56974c3e72b6129c7ca462ac38dc624338f4b0b23eb23ecba00f", size = 8205112, upload-time = "2026-04-24T00:12:15.773Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ee/cb57ad4754f3e7b9174ce6ce66d9205fb827067e48a9f58ac09d7e7d6b77/matplotlib-3.10.9-cp311-cp311-win_arm64.whl", hash = "sha256:51bf0ddbdc598e060d46c16b5590708f81a1624cefbaaf62f6a81bf9285b8c80", size = 8132310, upload-time = "2026-04-24T00:12:18.645Z" }, + { url = "https://files.pythonhosted.org/packages/35/c6/5581e26c72233ebb2a2a6fed2d24fb7c66b4700120b813f51b0555acf0b6/matplotlib-3.10.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f0c3c28d9fbcc1fe7a03be236d73430cf6409c41fb2383a7ac52fe932b072cb1", size = 8319908, upload-time = "2026-04-24T00:12:21.323Z" }, + { url = "https://files.pythonhosted.org/packages/b7/18/4880dd762e40cd360c1bf06e890c5a97b997e91cb324602b1a19950ad5ce/matplotlib-3.10.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41cb28c2bd769aa3e98322c6ab09854cbcc52ab69d2759d681bba3e327b2b320", size = 8216016, upload-time = "2026-04-24T00:12:23.4Z" }, + { url = "https://files.pythonhosted.org/packages/32/91/d024616abdba99e83120e07a20658976f6a343646710760c4a51df126029/matplotlib-3.10.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae20801130378b82d647ff5047c07316295b68dc054ca6b3c13519d0ea624285", size = 8789336, upload-time = "2026-04-24T00:12:26.096Z" }, + { url = "https://files.pythonhosted.org/packages/5c/04/030a2f61ef2158f5e4c259487a92ac877732499fb33d871585d89e03c42d/matplotlib-3.10.9-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c63ebcd8b4b169eb2f5c200552ae6b8be8999a005b6b507ed76fb8d7d674fe2", size = 9604602, upload-time = "2026-04-24T00:12:29.052Z" }, + { url = "https://files.pythonhosted.org/packages/fc/c2/541e4d09d87bb6b5830fc28b4c887a9a8cf4e1c6cee698a8c05552ae2003/matplotlib-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d75d11c949914165976c621b2324f9ef162af7ebf4b057ddf95dd1dba7e5edcf", size = 9670966, upload-time = "2026-04-24T00:12:32.131Z" }, + { url = "https://files.pythonhosted.org/packages/04/a1/4571fc46e7702de8d0c2dc54ad1b2f8e29328dea3ee90831181f7353d93c/matplotlib-3.10.9-cp312-cp312-win_amd64.whl", hash = "sha256:d091f9d758b34aaaaa6331d13574bf01891d903b3dec59bfff458ef7551de5d6", size = 8217462, upload-time = "2026-04-24T00:12:35.226Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d0/2269edb12aa30c13c8bcc9382892e39943ce1d28aab4ec296e0381798e81/matplotlib-3.10.9-cp312-cp312-win_arm64.whl", hash = "sha256:10cc5ce06d10231c36f40e875f3c7e8050362a4ee8f0ee5d29a6b3277d57bb42", size = 8136688, upload-time = "2026-04-24T00:12:37.442Z" }, + { url = "https://files.pythonhosted.org/packages/aa/d3/8d4f6afbecb49fc04e060a57c0fce39ea51cc163a6bd87303ccd698e4fa6/matplotlib-3.10.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b580440f1ff81a0e34122051a3dfabb7e4b7f9e380629929bde0eff9af72165f", size = 8320331, upload-time = "2026-04-24T00:12:39.688Z" }, + { url = "https://files.pythonhosted.org/packages/63/d9/9e14bc7564bf92d5ffa801ae5fac819ce74b925dfb55e3ebde61a3bbad3e/matplotlib-3.10.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b1b745c489cd1a77a0dc1120a05dc87af9798faebc913601feb8c73d89bf2d1e", size = 8216461, upload-time = "2026-04-24T00:12:42.494Z" }, + { url = "https://files.pythonhosted.org/packages/8a/17/4402d0d14ccf1dfc70932600b68097fbbf9c898a4871d2cbbe79c7801a32/matplotlib-3.10.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8f3bcac1ca5ed000a6f4337d47ba67dfddf37ed6a46c15fd7f014997f7bf865f", size = 8790091, upload-time = "2026-04-24T00:12:44.789Z" }, + { url = "https://files.pythonhosted.org/packages/3e/0b/322aeec06dd9b91411f92028b37d447342770a24392aa4813e317064dad5/matplotlib-3.10.9-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a8d66a55def891c33147ba3ba9bfcabf0b526a43764c818acbb4525e5ed0838", size = 9605027, upload-time = "2026-04-24T00:12:47.583Z" }, + { url = "https://files.pythonhosted.org/packages/74/88/5f13482f55e7b00bcfc09838b093c2456e1379978d2a146844aae05350ad/matplotlib-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d843374407c4017a6403b59c6c81606773d136f3259d5b6da3131bc814542cc2", size = 9671269, upload-time = "2026-04-24T00:12:50.878Z" }, + { url = "https://files.pythonhosted.org/packages/c5/e0/0840fd2f93da988ec660b8ad1984abe9f25d2aed22a5e394ff1c68c88307/matplotlib-3.10.9-cp313-cp313-win_amd64.whl", hash = "sha256:f4399f64b3e94cd500195490972ae1ee81170df1636fa15364d157d5bdd7b921", size = 8217588, upload-time = "2026-04-24T00:12:53.784Z" }, + { url = "https://files.pythonhosted.org/packages/47/b9/d706d06dd605c49b9f83a2aed8c13e3e5db70697d7a80b7e3d7915de6b17/matplotlib-3.10.9-cp313-cp313-win_arm64.whl", hash = "sha256:ba7b3b8ef09eab7df0e86e9ae086faa433efbfbdb46afcb3aa16aabf779469a8", size = 8136913, upload-time = "2026-04-24T00:12:56.501Z" }, + { url = "https://files.pythonhosted.org/packages/9b/45/6e32d96978264c8ca8c4b1010adb955a1a49cfaf314e212bbc8908f04a61/matplotlib-3.10.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:09218df8a93712bd6ea133e83a153c755448cf7868316c531cffcc43f69d1cc9", size = 8368019, upload-time = "2026-04-24T00:12:58.896Z" }, + { url = "https://files.pythonhosted.org/packages/86/0a/c8e3d3bba245f0f7fc424937f8ff7ef77291a36af3edb97ccd78aa93d84f/matplotlib-3.10.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:82368699727bfb7b0182e1aa13082e3c08e092fa1a25d3e1fd92405bff96f6d4", size = 8264645, upload-time = "2026-04-24T00:13:01.406Z" }, + { url = "https://files.pythonhosted.org/packages/3d/aa/5bf5a14fe4fed73a4209a155606f8096ff797aad89c6c35179026571133e/matplotlib-3.10.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3225f4e1edcb8c86c884ddf79ebe20ecd0a67d30188f279897554ccd8fded4dc", size = 8802194, upload-time = "2026-04-24T00:13:03.702Z" }, + { url = "https://files.pythonhosted.org/packages/dd/5e/b4be852d6bba6fd15893fadf91ff26ae49cb91aac789e95dde9d342e664f/matplotlib-3.10.9-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de2445a0c6690d21b7eb6ce071cebad6d40a2e9bdf10d039074a96ba19797b99", size = 9622684, upload-time = "2026-04-24T00:13:06.647Z" }, + { url = "https://files.pythonhosted.org/packages/4c/3d/ed428c971139112ef730f62770654d609467346d09d4b62617e1afd68a5a/matplotlib-3.10.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:b2b9516251cb89ff618d757daec0e2ed1bf21248013844a853d87ef85ab3081d", size = 9680790, upload-time = "2026-04-24T00:13:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/e7/09/052e884aaf2b985c63cb79f715f1d5b6a3eaa7de78f6a52b9dbc077d5b53/matplotlib-3.10.9-cp313-cp313t-win_amd64.whl", hash = "sha256:e9fae004b941b23ff2edcf1567a857ed77bafc8086ffa258190462328434faf8", size = 8287571, upload-time = "2026-04-24T00:13:13.087Z" }, + { url = "https://files.pythonhosted.org/packages/f4/38/ae27288e788c35a4250491422f3db7750366fc8c97d6f36fbdecfc1f5518/matplotlib-3.10.9-cp313-cp313t-win_arm64.whl", hash = "sha256:6b63d9c7c769b88ab81e10dc86e4e0607cf56817b9f9e6cf24b2a5f1693b8e38", size = 8188292, upload-time = "2026-04-24T00:13:15.546Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e6/3bd8afd04949f02eabc1c17115ea5255e19cacd4d06fc5abdde4eeb0052c/matplotlib-3.10.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:172db52c9e683f5d12eaf57f0f54834190e12581fe1cc2a19595a8f5acb4e77d", size = 8321276, upload-time = "2026-04-24T00:13:18.318Z" }, + { url = "https://files.pythonhosted.org/packages/41/86/86231232fff41c9f8e4a1a7d7a597d349a02527109c3af7d618366122139/matplotlib-3.10.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97e35e8d39ccc85859095e01a53847432ba9a53ddf7986f7a54a11b73d0e143f", size = 8218218, upload-time = "2026-04-24T00:13:20.974Z" }, + { url = "https://files.pythonhosted.org/packages/85/8f/becc9722cafc64f5d2eb0b7c1bf5f585271c618a45dbd8fabeb021f898b6/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aba1615dabe83188e19d4f75a253c6a08423e04c1425e64039f800050a69de6b", size = 9608145, upload-time = "2026-04-24T00:13:23.228Z" }, + { url = "https://files.pythonhosted.org/packages/32/5d/f7e914f7d9325abff4057cee62c0fa70263683189f774473cbfb534cd13b/matplotlib-3.10.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34cf8167e023ad956c15f36302911d5406bd99a9862c1a8499ea6f7c0e015dc2", size = 9885085, upload-time = "2026-04-24T00:13:25.849Z" }, + { url = "https://files.pythonhosted.org/packages/a5/fd/fa69f2221534e80cc5772ac2b7d222011a2acafc2ec7216d5dd174c864ae/matplotlib-3.10.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:59476c6d29d612b8e9bb6ce8c5b631be6ba8f9e3a2421f22a02b192c7dd28716", size = 9672358, upload-time = "2026-04-24T00:13:28.906Z" }, + { url = "https://files.pythonhosted.org/packages/ab/1a/5a4f747a8b271cbb024946d2dd3c913ab5032ba430626f8c3528ada96b4b/matplotlib-3.10.9-cp314-cp314-win_amd64.whl", hash = "sha256:336b9acc64d309063126edcdaca00db9373af3c476bb94388fe9c5a53ad13e6f", size = 8349970, upload-time = "2026-04-24T00:13:31.904Z" }, + { url = "https://files.pythonhosted.org/packages/64/dc/95d60ecaefe30680a154b52ea96ab4b0dab547f1fd6aa12f5fb655e89cae/matplotlib-3.10.9-cp314-cp314-win_arm64.whl", hash = "sha256:2dc9477819ffd78ad12a20df1d9d6a6bd4fec6aaa9072681465fddca052f1456", size = 8272785, upload-time = "2026-04-24T00:13:34.511Z" }, + { url = "https://files.pythonhosted.org/packages/70/a0/005d68bc8b8418300ce6591f18586910a8526806e2ab663933d9f20a41e9/matplotlib-3.10.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:da4e09638420548f31c354032a6250e473c68e5a4e96899b4844cf39ddea23fe", size = 8367999, upload-time = "2026-04-24T00:13:36.962Z" }, + { url = "https://files.pythonhosted.org/packages/22/05/1236cc9290be70b2498af20ca348add76e3fffe7f67b477db5133a84f3ea/matplotlib-3.10.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:345f6f68ecc8da0ca56fad2ea08fde1a115eda530079eca185d50a7bc3e146c6", size = 8264543, upload-time = "2026-04-24T00:13:39.851Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c2/071f5a5ff6c5bd63aaaf2f45c811d9bf2ced94bde188d9e1a519e21d0cba/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4edcfbd8565339aa62f1cd4012f7180926fdbe71850f7b0d3c379c175cd6b66c", size = 9622800, upload-time = "2026-04-24T00:13:42.296Z" }, + { url = "https://files.pythonhosted.org/packages/95/57/da7d1f10a85624b9e7db68e069dd94e58dc41dbf9463c5921632ecbe3661/matplotlib-3.10.9-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6be157fe17fc37cb95ac1d7374cf717ce9259616edec911a78d9d26dae8522d4", size = 9888561, upload-time = "2026-04-24T00:13:45.026Z" }, + { url = "https://files.pythonhosted.org/packages/67/b2/ef8d6bb59b0edb6c16c968b70f548aa13b54348972def5aa6ac85df67145/matplotlib-3.10.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4e42042d54db34fda4e95a7bd3e5789c2a995d2dad3eb8850232ee534092fbbf", size = 9680884, upload-time = "2026-04-24T00:13:48.066Z" }, + { url = "https://files.pythonhosted.org/packages/61/1c/d21bfeb9931881ebe96bcfcff27c7ae4b160ae0ec291a714c42641a56d75/matplotlib-3.10.9-cp314-cp314t-win_amd64.whl", hash = "sha256:c27df8b3848f32a83d1767566595e43cfaa4460380974da06f4279a7ec143c39", size = 8432333, upload-time = "2026-04-24T00:13:51.008Z" }, + { url = "https://files.pythonhosted.org/packages/78/23/92493c3e6e1b635ccfff146f7b99e674808787915420373ac399283764c2/matplotlib-3.10.9-cp314-cp314t-win_arm64.whl", hash = "sha256:a49f1eadc84ca85fd72fa4e89e70e61bf86452df6f971af04b12c60761a0772c", size = 8324785, upload-time = "2026-04-24T00:13:53.633Z" }, + { url = "https://files.pythonhosted.org/packages/2c/2b/0e92ad0ac446633f928a1563db4aa8add407e1924faf0ded5b95b35afb27/matplotlib-3.10.9-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1872fb212a05b729e649754a72d5da61d03e0554d76e80303b6f83d1d2c0552b", size = 8293058, upload-time = "2026-04-24T00:13:56.339Z" }, + { url = "https://files.pythonhosted.org/packages/4b/23/74682fd369f5299ceda438fea2a0662e6383b85c9383fb9cdfcf04713e07/matplotlib-3.10.9-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:985f2238880e2e69093f588f5fe2e46771747febf0649f3cf7f7b7480875317f", size = 8186627, upload-time = "2026-04-24T00:13:58.623Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e8/368aab88f3c4cd8992800f31abfe0670c3e47540ba20a97e9fdbcde594b3/matplotlib-3.10.9-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6640f75af2c6148293caa0a2b39dd806a492dd66c8a8b04035813e33d0fd2585", size = 8764117, upload-time = "2026-04-24T00:14:01.684Z" }, + { url = "https://files.pythonhosted.org/packages/63/e2/9f66ca6a651a52abfe0d4964ce01439ed34f3f1e119de10ff3a07f403043/matplotlib-3.10.9-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:42fb814efabe95c06c1994d8ab5a8385f43a249e23badd3ba931d4308e5bca20", size = 8304420, upload-time = "2026-04-24T00:14:04.57Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e8/467c03568218792906aa87b5e7bb379b605e056ed0c74fe00c051786d925/matplotlib-3.10.9-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f76e640a5268850bfda54b5131b1b1941cc685e42c5fa98ed9f2d64038308cba", size = 8197981, upload-time = "2026-04-24T00:14:07.233Z" }, + { url = "https://files.pythonhosted.org/packages/6f/87/afead29192170917537934c6aff4b008c805fff7b1ccea0c79120d96beda/matplotlib-3.10.9-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3fc0364dfbe1d07f6d15c5ebd0c5bf89e126916e5a8667dd4a7a6e84c36653d4", size = 8774002, upload-time = "2026-04-24T00:14:09.816Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.11.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +dependencies = [ + { name = "contourpy", version = "1.3.3", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "cycler", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "fonttools", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "kiwisolver", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "packaging", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pillow", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pyparsing", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "python-dateutil", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/24/080c99d223d158d3a8902769269ab6da5b50f7a0e6e072513907e02b7a6c/matplotlib-3.11.0.tar.gz", hash = "sha256:68c0c7be01b30dcca3638934f7f591df73401235cbdbf0d1ab1c71e7db7f8b57", size = 33251176, upload-time = "2026-06-12T02:29:15.508Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/a2/78f662f1b18968531f67d3fcde1b7ea8496920bacd4f16ddb5b79d112e46/matplotlib-3.11.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f857524b442f0f36e641868ce2171aafa88cb0bc0644f4e1d8a5df9b32649fef", size = 9436261, upload-time = "2026-06-12T02:27:34.161Z" }, + { url = "https://files.pythonhosted.org/packages/5e/92/044f1de43901310202f4c79acf4f141be53b2ca8d8380e2fcefb3d523a75/matplotlib-3.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:57baa92fdc82948ed716eae6d2579d4d6f40965cd8d2f416755b4a72580a3233", size = 9264669, upload-time = "2026-06-12T02:27:37.413Z" }, + { url = "https://files.pythonhosted.org/packages/53/f4/f0b4f9ba7ec14a7af8151f3ad71ecfe3561e6ba38cfab1db3681ba4ca112/matplotlib-3.11.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:630eee0e67d35cce2019a0e670719f4816e3b86aff0fa72729f6c69786fceb45", size = 10021076, upload-time = "2026-06-12T02:27:39.926Z" }, + { url = "https://files.pythonhosted.org/packages/d7/33/4d679c6dcd594a156542080ac907ddccf7b09ca11655c4b28eca8e9ee5da/matplotlib-3.11.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5106c444d0bf966eee2853548c03772af4ab7199118e086c62fbac8ccb07c055", size = 10828999, upload-time = "2026-06-12T02:27:42.433Z" }, + { url = "https://files.pythonhosted.org/packages/07/74/0a3683802037d8cd013144d77c247219b47f2aabace6fdde74faa12bacf7/matplotlib-3.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4d7aea652b58e686444079be3376ef546bffa1eee9b9bb9c472b9fcf6cf410d3", size = 10913103, upload-time = "2026-06-12T02:27:44.827Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9f/970fcbf381e82ec66fdf5da8ea76e2e9240f61a24011ce9fd1d42c37ac2d/matplotlib-3.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:70a5b3e9a5dab708c0f039709ae7c68d5b4d254e291ef76492cdba230c8bb5e4", size = 9310945, upload-time = "2026-06-12T02:27:46.867Z" }, + { url = "https://files.pythonhosted.org/packages/14/4e/6e7cfed23611265ded53806852343b5c59339e506e84c474a9b5afc3b249/matplotlib-3.11.0-cp311-cp311-win_arm64.whl", hash = "sha256:3d68266213e73823ac3be90615bab0cf31f88851e114cdb1dd25dacf3b01e1a7", size = 8999304, upload-time = "2026-06-12T02:27:48.798Z" }, + { url = "https://files.pythonhosted.org/packages/da/17/f5276b496c61477a6c4fc5e7401f4bfe1c2e5ef7c6cd67896f2ade3809cb/matplotlib-3.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:06b5872e9cf11adc8f589ded3ce11bc3e1061ad498259664fabc1f6615beb918", size = 9449976, upload-time = "2026-06-12T02:27:50.989Z" }, + { url = "https://files.pythonhosted.org/packages/82/34/bdd77418adb2178a1d59f044bd67bfebb115896e91b840b8a197eb3f4f4e/matplotlib-3.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0515d495124be3124340e59f164d901ed4484e2246a5b74cfa483cac3b80bd97", size = 9279307, upload-time = "2026-06-12T02:27:53.247Z" }, + { url = "https://files.pythonhosted.org/packages/94/95/7f522393c88313336b20d70fc849555757b2e5febc22b83b3a3f0fd4bce9/matplotlib-3.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be5f93a1d21981bfb802ded0d77a0caa92d4342a47d45754fac77e314a506344", size = 10031353, upload-time = "2026-06-12T02:27:55.215Z" }, + { url = "https://files.pythonhosted.org/packages/87/ce/8f25a0e3186aefd61913e7467d1b999465bcd0d0c03ac695c1b26ca559b7/matplotlib-3.11.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41635d7909d19e52e924a521dde6d8f670b0f53ab1d0e8c331fa831554f681d1", size = 10839232, upload-time = "2026-06-12T02:27:57.746Z" }, + { url = "https://files.pythonhosted.org/packages/85/c2/db15da2bbdf9e3ca66df7db8e2c33a1dfed67be24a24d2c878efaaff01d6/matplotlib-3.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:94f5000f67ca9faa300863ea17f8bce9175cb67b88bec4bc7780502d53dd7c9e", size = 10923899, upload-time = "2026-06-12T02:28:00.223Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2f/a58a4443a4d052a4ea77557478336aefc26c7981f6408d37adba763aa758/matplotlib-3.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:ac6f1ef39f3d0f9e2463303013094992cdbe0f85f43bc54155bc472b2042768e", size = 9329528, upload-time = "2026-06-12T02:28:02.27Z" }, + { url = "https://files.pythonhosted.org/packages/61/0f/4b669589d47733b97ab9df4b58d6fc1e68acb5ea42a928dc7cbdd6bf5871/matplotlib-3.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:9dd11fb612ce7bc60b1de5b4fc87ff959d22317b5de42aabf392f66f97af22eb", size = 9003413, upload-time = "2026-06-12T02:28:04.49Z" }, + { url = "https://files.pythonhosted.org/packages/55/41/aa47f156b061d14c98b906f76c428507397708ec63ff94f410ae1752b426/matplotlib-3.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce3b839b34ae1f430b4616893a2945a2999debaa7e94e7e29a2a8bbf286f7b5", size = 9450532, upload-time = "2026-06-12T02:28:06.769Z" }, + { url = "https://files.pythonhosted.org/packages/8c/4f/5a9eb0375e81413953febf8af7b012a6b6357f53438a15c4f5ad86c6bbb5/matplotlib-3.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:373db8f91214e8ccaf35ac833cc1dd59dd961e148bbd55dd027141591dde1313", size = 9279760, upload-time = "2026-06-12T02:28:09.152Z" }, + { url = "https://files.pythonhosted.org/packages/a4/c0/1117d53077e3ac3152503a84e9cf7a5c239576805ee71276e80c2aaa7471/matplotlib-3.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be152b7570324dc8d01574cc9474dd2d803237acf528bcbb5b211fa347461a09", size = 10031623, upload-time = "2026-06-12T02:28:11.26Z" }, + { url = "https://files.pythonhosted.org/packages/92/7e/e937138daffad65b71bf831a377809dcbc830fb4f31a31e067dc1faa2575/matplotlib-3.11.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:126f256df600652d7e4b394cf3164ff75210a00038f287c95a012a6f58d0e83f", size = 10839372, upload-time = "2026-06-12T02:28:14.102Z" }, + { url = "https://files.pythonhosted.org/packages/1d/c2/438ecc197ffb8023b6b9922915542f2172f5fd45b76703b0b4fc47322243/matplotlib-3.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:03acfeddf87b0dddb11b081ef7740ad445a3ca8bcb6b8e3011b08f2cf802b75c", size = 10924099, upload-time = "2026-06-12T02:28:16.383Z" }, + { url = "https://files.pythonhosted.org/packages/40/2e/395883da416f378b3ed2c9f3e843ac477eae1ce731b671b79adaa6f0bacd/matplotlib-3.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:ab3722f04f3ff34c23b5012c5873d2894174e06c3822fcdac3610965a5ac7d06", size = 9329727, upload-time = "2026-06-12T02:28:18.581Z" }, + { url = "https://files.pythonhosted.org/packages/61/82/2c388956abf8bf392dfb5b8917c502f1082df6a941b781ab8c8e5ba2474b/matplotlib-3.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:c945824670fb8915b4ac879e5e61f3c58e0913022f70a0de4c082b17372f8771", size = 9003506, upload-time = "2026-06-12T02:28:20.474Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c1/34454baa44da7975ada82e9aea37105ec47059514dc967d3be14426ba8dc/matplotlib-3.11.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3489c3dc487669b4a980bc3068f87856de7a1564248d3f6c629efb2a58b03f24", size = 9499838, upload-time = "2026-06-12T02:28:22.713Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c3/98fe79a398cf232219f090163a7fa7e6766e9f2e0ad26df54d6f8934d8ee/matplotlib-3.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6a98f5476ce784a50ce09998f4ae1e6a9f25043cef8a480c98949902eda74620", size = 9332298, upload-time = "2026-06-12T02:28:24.796Z" }, + { url = "https://files.pythonhosted.org/packages/95/e4/b4b7c33151e74e5c802f3cde1ba807ebfc38401e329b44e215a5888dd76d/matplotlib-3.11.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:565af866fd63e4bd3f987d580afe27c44c2552a3b3305f4ecbb85133601ea6f3", size = 10045491, upload-time = "2026-06-12T02:28:27.141Z" }, + { url = "https://files.pythonhosted.org/packages/71/28/394548efd68354110c1a1be11fe6b6e559e06d1a23da35908a0e316c55a9/matplotlib-3.11.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e6b3e64dea5062c570f04358e2711859f3531b459f29516274fbad889079e4f3", size = 10857059, upload-time = "2026-06-12T02:28:29.222Z" }, + { url = "https://files.pythonhosted.org/packages/c8/44/e7922e6e2a4d63bdfbc9dc4a53e3850ab438d46cf42e6779bb15ec92c948/matplotlib-3.11.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:942b37c5db1899610bd1543ce8e13e4ecff9a4633e7f63bb6aa9205d2644ebd1", size = 10939576, upload-time = "2026-06-12T02:28:31.66Z" }, + { url = "https://files.pythonhosted.org/packages/3d/be/b1ca96003a441d619b727fee21d671fdff7a5ce2f1bb797b2521aa2f679a/matplotlib-3.11.0-cp313-cp313t-win_amd64.whl", hash = "sha256:c08e649a6313e1291e713623b97a38e5bb4aa580b2a100a94a3309bc6b9c8eb3", size = 9379519, upload-time = "2026-06-12T02:28:33.888Z" }, + { url = "https://files.pythonhosted.org/packages/e3/72/4bf3b91821c34596dd6a7bdac5836d94f744144c8208939ef49d8ec43f7e/matplotlib-3.11.0-cp313-cp313t-win_arm64.whl", hash = "sha256:2746cd2c113742ff6ce37a864c5ac5fd7aa644568f445e66166e457ac78e40e0", size = 9055456, upload-time = "2026-06-12T02:28:35.878Z" }, + { url = "https://files.pythonhosted.org/packages/57/52/a94102ac99eb78e2fe9b826674f9ef9ee23327110ea6ab4776c1b4eb6209/matplotlib-3.11.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:3338e3e3de128cf50d0d2fb92a122815daf9c755bd882a474343c05f8fd7ec79", size = 9452137, upload-time = "2026-06-12T02:28:37.93Z" }, + { url = "https://files.pythonhosted.org/packages/7c/03/b8cdb625a21f710dfa11bbca1f48fb4057d2c0286975f8b415bf80942c99/matplotlib-3.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:25c2e5455efd8d99f41fb79871a31feb7d301569642e332ec58d72cfe9282bc3", size = 9281514, upload-time = "2026-06-12T02:28:40.028Z" }, + { url = "https://files.pythonhosted.org/packages/b7/2d/4e1240ea82ee197dfb3851e71f71c87eeeb975f1753b56a0588e4e80739a/matplotlib-3.11.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9695457a467ff86d23f35037a43deb6f1134dd6d3e2ac8ce1e2087cff09ffb9", size = 10843005, upload-time = "2026-06-12T02:28:42.39Z" }, + { url = "https://files.pythonhosted.org/packages/29/dc/6377ecfaa5fef79430f74a1a16638b4e2aa30d4692bae2c19f9d76fe3b01/matplotlib-3.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:19c16c61dea63b3582918503e6b294193961261d9daa806d4ae2151f1ad05430", size = 11127459, upload-time = "2026-06-12T02:28:44.483Z" }, + { url = "https://files.pythonhosted.org/packages/6f/41/795c405aa7560443a3b01309424cde4a1113b85c90b8a63417444a749617/matplotlib-3.11.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2d72ea8b7924f3cb955e61518d21e43b3df1e6c8a793b480a0c1214f185d30ba", size = 10925160, upload-time = "2026-06-12T02:28:46.564Z" }, + { url = "https://files.pythonhosted.org/packages/1a/f7/3a9e6389a7cfaeff76c56e40c2dabcb13110e21e82f837228c834ebe748c/matplotlib-3.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:1c02da0a629dfa9debf52725ea06866b74c1fb70a895bae05e4493d34074f9f2", size = 9485186, upload-time = "2026-06-12T02:28:49.344Z" }, + { url = "https://files.pythonhosted.org/packages/8b/c0/396478ee7cf2091d182db8b4a8695f6a37f1ddb978989cf9dbb84cd5c123/matplotlib-3.11.0-cp314-cp314-win_arm64.whl", hash = "sha256:aa55d73b3117d4b07f959cd9eb6f69b375d8df3414139c479388e551aa5d999d", size = 9160349, upload-time = "2026-06-12T02:28:51.382Z" }, + { url = "https://files.pythonhosted.org/packages/c5/6f/1c3bd51bb2b34eaacdcf3c3d859dbb357f952fc8020c617dc118ad7c9e38/matplotlib-3.11.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a9d8c6e7cd2f0ddf11d8d92e520dd1d9d2abb0cf6ac8831e338666c81e905847", size = 9500921, upload-time = "2026-06-12T02:28:53.443Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/4d861d0121840cb1a3fd4a10deb211efd6fccd481ed23e553f31f4f4da4a/matplotlib-3.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:be050fcf32f729eda99f7f75a80bf67612ce16ab9ac1c23a387dcaede95cb70e", size = 9332190, upload-time = "2026-06-12T02:28:55.623Z" }, + { url = "https://files.pythonhosted.org/packages/4b/cb/22f6bc35711a0b5639a784e74e653e77c86210bd4304449dd399a482f74e/matplotlib-3.11.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dfabef0230d0697aa0d717385194dd41162e00207a68bf4abf94c2bf4c27dca0", size = 10854181, upload-time = "2026-06-12T02:28:57.856Z" }, + { url = "https://files.pythonhosted.org/packages/3f/7e/9a9eaca731a2939589da520f0ebe8fd8753d0f51fca98c7d20af6dbe261a/matplotlib-3.11.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1644db30e759199443493ac5e5caec24fdb775a8f6123021f85ba47c4133c3cb", size = 11137715, upload-time = "2026-06-12T02:29:00.555Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f9/9b030b6088354acb0296871bb624b25befc1c42509d3c6cd17420c83a5b8/matplotlib-3.11.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:15b0d160079cb10699a0e98b5989c70677b2df7cacdc62af67c30f2facec46d9", size = 10939427, upload-time = "2026-06-12T02:29:02.527Z" }, + { url = "https://files.pythonhosted.org/packages/59/94/6b273eaee4ee250863567d100865da61a5c1527fa67f527b7ed22e0dd29c/matplotlib-3.11.0-cp314-cp314t-win_amd64.whl", hash = "sha256:446307e6b04b57b1f1239e228a1ec2af0d589a1008cebc3dfa3f5441d095cfb6", size = 9535809, upload-time = "2026-06-12T02:29:04.994Z" }, + { url = "https://files.pythonhosted.org/packages/60/95/1d36bddf2b7e2692c1540e78a6e5bc88bc1496b137e3e35a611f91b65ac3/matplotlib-3.11.0-cp314-cp314t-win_arm64.whl", hash = "sha256:652fb5696271d4c50f196d22a5ff4f8e4444c74f847423570d7dc0aa2bbd0159", size = 9209226, upload-time = "2026-06-12T02:29:07.033Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c2/f5da6cd37ed6871f5c9b3c0507ddb69f14d6c36fac4541e4e0c60cb8cdfc/matplotlib-3.11.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:81ae77077a1e16d37a5b61096ccb07c8d90a99b518fa8256b8f21578932f2f62", size = 9434094, upload-time = "2026-06-12T02:29:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/f8/07/56f66906e0f87a0c6d0d0acbd34dbc9432b1931d8f26ef618bd6f92932a9/matplotlib-3.11.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ddef37840695f5eef65f9f070fe2d2f510f584c2156203f9f622a5b0584efffd", size = 9262183, upload-time = "2026-06-12T02:29:11.283Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d8/c4ecab06b7ea36a570c4f3bd2d48d1799fd5d9174470e45c2194199431e7/matplotlib-3.11.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cf662e5ac5707658cb931e19972c4bd99f7b4f8b7bf79d3c821d239fa6b71e64", size = 10015653, upload-time = "2026-06-12T02:29:13.251Z" }, +] + +[[package]] +name = "mcp" +version = "1.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "jsonschema" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "python-multipart" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6e/77/9450b8f251a13affb6281997d0523c4615f8a8b35d0b21ff30db3a5aac9d/mcp-1.28.1.tar.gz", hash = "sha256:d51e36a5f5644faea4f85ea649bfffa6bc6c26770d42798ad6a3de3d2ba69683", size = 638501, upload-time = "2026-06-26T12:57:29.093Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/5e/d118fce19f87a2e7d8101c35c8ae0ec289098a4df0ff244cec23e415aca0/mcp-1.28.1-py3-none-any.whl", hash = "sha256:2726bca5e7193f61c5dde8b12500a6de2d9acf6d1a1c0be9e8c2e706437991df", size = 222620, upload-time = "2026-06-26T12:57:27.218Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "mf2py" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "html5lib" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/7d/bccfc42706cb24053e7897c33c14e79a8c9c69379d21edfca13ec93ed0ac/mf2py-2.0.1.tar.gz", hash = "sha256:1380924633413b8d72e704b5c86b4382c4b1371699edecc907b01cd21138d7cd", size = 21843, upload-time = "2023-12-08T03:41:59.755Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/88/b1d83c9e71cbdaefcec38ea350d2bd6360a9d1e030b090ad4b0fcc421ca1/mf2py-2.0.1-py3-none-any.whl", hash = "sha256:092806e17f1a93db4aafa5e8d3c4124b5e42cd89027e2db48a5248ef4eabde03", size = 25767, upload-time = "2023-12-08T03:41:58.443Z" }, +] + +[[package]] +name = "ml-dtypes" +version = "0.5.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/4a/c27b42ed9b1c7d13d9ba8b6905dece787d6259152f2309338aed29b2447b/ml_dtypes-0.5.4.tar.gz", hash = "sha256:8ab06a50fb9bf9666dd0fe5dfb4676fa2b0ac0f31ecff72a6c3af8e22c063453", size = 692314, upload-time = "2025-11-17T22:32:31.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/3a/c5b855752a70267ff729c349e650263adb3c206c29d28cc8ea7ace30a1d5/ml_dtypes-0.5.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b95e97e470fe60ed493fd9ae3911d8da4ebac16bd21f87ffa2b7c588bf22ea2c", size = 679735, upload-time = "2025-11-17T22:31:31.367Z" }, + { url = "https://files.pythonhosted.org/packages/41/79/7433f30ee04bd4faa303844048f55e1eb939131c8e5195a00a96a0939b64/ml_dtypes-0.5.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4b801ebe0b477be666696bda493a9be8356f1f0057a57f1e35cd26928823e5a", size = 5051883, upload-time = "2025-11-17T22:31:33.658Z" }, + { url = "https://files.pythonhosted.org/packages/10/b1/8938e8830b0ee2e167fc75a094dea766a1152bde46752cd9bfc57ee78a82/ml_dtypes-0.5.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:388d399a2152dd79a3f0456a952284a99ee5c93d3e2f8dfe25977511e0515270", size = 5030369, upload-time = "2025-11-17T22:31:35.595Z" }, + { url = "https://files.pythonhosted.org/packages/c7/a3/51886727bd16e2f47587997b802dd56398692ce8c6c03c2e5bb32ecafe26/ml_dtypes-0.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:4ff7f3e7ca2972e7de850e7b8fcbb355304271e2933dd90814c1cb847414d6e2", size = 210738, upload-time = "2025-11-17T22:31:37.43Z" }, + { url = "https://files.pythonhosted.org/packages/c6/5e/712092cfe7e5eb667b8ad9ca7c54442f21ed7ca8979745f1000e24cf8737/ml_dtypes-0.5.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6c7ecb74c4bd71db68a6bea1edf8da8c34f3d9fe218f038814fd1d310ac76c90", size = 679734, upload-time = "2025-11-17T22:31:39.223Z" }, + { url = "https://files.pythonhosted.org/packages/4f/cf/912146dfd4b5c0eea956836c01dcd2fce6c9c844b2691f5152aca196ce4f/ml_dtypes-0.5.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc11d7e8c44a65115d05e2ab9989d1e045125d7be8e05a071a48bc76eb6d6040", size = 5056165, upload-time = "2025-11-17T22:31:41.071Z" }, + { url = "https://files.pythonhosted.org/packages/a9/80/19189ea605017473660e43762dc853d2797984b3c7bf30ce656099add30c/ml_dtypes-0.5.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:19b9a53598f21e453ea2fbda8aa783c20faff8e1eeb0d7ab899309a0053f1483", size = 5034975, upload-time = "2025-11-17T22:31:42.758Z" }, + { url = "https://files.pythonhosted.org/packages/b4/24/70bd59276883fdd91600ca20040b41efd4902a923283c4d6edcb1de128d2/ml_dtypes-0.5.4-cp311-cp311-win_amd64.whl", hash = "sha256:7c23c54a00ae43edf48d44066a7ec31e05fdc2eee0be2b8b50dd1903a1db94bb", size = 210742, upload-time = "2025-11-17T22:31:44.068Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c9/64230ef14e40aa3f1cb254ef623bf812735e6bec7772848d19131111ac0d/ml_dtypes-0.5.4-cp311-cp311-win_arm64.whl", hash = "sha256:557a31a390b7e9439056644cb80ed0735a6e3e3bb09d67fd5687e4b04238d1de", size = 160709, upload-time = "2025-11-17T22:31:46.557Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b8/3c70881695e056f8a32f8b941126cf78775d9a4d7feba8abcb52cb7b04f2/ml_dtypes-0.5.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a174837a64f5b16cab6f368171a1a03a27936b31699d167684073ff1c4237dac", size = 676927, upload-time = "2025-11-17T22:31:48.182Z" }, + { url = "https://files.pythonhosted.org/packages/54/0f/428ef6881782e5ebb7eca459689448c0394fa0a80bea3aa9262cba5445ea/ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a7f7c643e8b1320fd958bf098aa7ecf70623a42ec5154e3be3be673f4c34d900", size = 5028464, upload-time = "2025-11-17T22:31:50.135Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cb/28ce52eb94390dda42599c98ea0204d74799e4d8047a0eb559b6fd648056/ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ad459e99793fa6e13bd5b7e6792c8f9190b4e5a1b45c63aba14a4d0a7f1d5ff", size = 5009002, upload-time = "2025-11-17T22:31:52.001Z" }, + { url = "https://files.pythonhosted.org/packages/f5/f0/0cfadd537c5470378b1b32bd859cf2824972174b51b873c9d95cfd7475a5/ml_dtypes-0.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:c1a953995cccb9e25a4ae19e34316671e4e2edaebe4cf538229b1fc7109087b7", size = 212222, upload-time = "2025-11-17T22:31:53.742Z" }, + { url = "https://files.pythonhosted.org/packages/16/2e/9acc86985bfad8f2c2d30291b27cd2bb4c74cea08695bd540906ed744249/ml_dtypes-0.5.4-cp312-cp312-win_arm64.whl", hash = "sha256:9bad06436568442575beb2d03389aa7456c690a5b05892c471215bfd8cf39460", size = 160793, upload-time = "2025-11-17T22:31:55.358Z" }, + { url = "https://files.pythonhosted.org/packages/d9/a1/4008f14bbc616cfb1ac5b39ea485f9c63031c4634ab3f4cf72e7541f816a/ml_dtypes-0.5.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c760d85a2f82e2bed75867079188c9d18dae2ee77c25a54d60e9cc79be1bc48", size = 676888, upload-time = "2025-11-17T22:31:56.907Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b7/dff378afc2b0d5a7d6cd9d3209b60474d9819d1189d347521e1688a60a53/ml_dtypes-0.5.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce756d3a10d0c4067172804c9cc276ba9cc0ff47af9078ad439b075d1abdc29b", size = 5036993, upload-time = "2025-11-17T22:31:58.497Z" }, + { url = "https://files.pythonhosted.org/packages/eb/33/40cd74219417e78b97c47802037cf2d87b91973e18bb968a7da48a96ea44/ml_dtypes-0.5.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:533ce891ba774eabf607172254f2e7260ba5f57bdd64030c9a4fcfbd99815d0d", size = 5010956, upload-time = "2025-11-17T22:31:59.931Z" }, + { url = "https://files.pythonhosted.org/packages/e1/8b/200088c6859d8221454825959df35b5244fa9bdf263fd0249ac5fb75e281/ml_dtypes-0.5.4-cp313-cp313-win_amd64.whl", hash = "sha256:f21c9219ef48ca5ee78402d5cc831bd58ea27ce89beda894428bc67a52da5328", size = 212224, upload-time = "2025-11-17T22:32:01.349Z" }, + { url = "https://files.pythonhosted.org/packages/8f/75/dfc3775cb36367816e678f69a7843f6f03bd4e2bcd79941e01ea960a068e/ml_dtypes-0.5.4-cp313-cp313-win_arm64.whl", hash = "sha256:35f29491a3e478407f7047b8a4834e4640a77d2737e0b294d049746507af5175", size = 160798, upload-time = "2025-11-17T22:32:02.864Z" }, + { url = "https://files.pythonhosted.org/packages/4f/74/e9ddb35fd1dd43b1106c20ced3f53c2e8e7fc7598c15638e9f80677f81d4/ml_dtypes-0.5.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:304ad47faa395415b9ccbcc06a0350800bc50eda70f0e45326796e27c62f18b6", size = 702083, upload-time = "2025-11-17T22:32:04.08Z" }, + { url = "https://files.pythonhosted.org/packages/74/f5/667060b0aed1aa63166b22897fdf16dca9eb704e6b4bbf86848d5a181aa7/ml_dtypes-0.5.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a0df4223b514d799b8a1629c65ddc351b3efa833ccf7f8ea0cf654a61d1e35d", size = 5354111, upload-time = "2025-11-17T22:32:05.546Z" }, + { url = "https://files.pythonhosted.org/packages/40/49/0f8c498a28c0efa5f5c95a9e374c83ec1385ca41d0e85e7cf40e5d519a21/ml_dtypes-0.5.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:531eff30e4d368cb6255bc2328d070e35836aa4f282a0fb5f3a0cd7260257298", size = 5366453, upload-time = "2025-11-17T22:32:07.115Z" }, + { url = "https://files.pythonhosted.org/packages/8c/27/12607423d0a9c6bbbcc780ad19f1f6baa2b68b18ce4bddcdc122c4c68dc9/ml_dtypes-0.5.4-cp313-cp313t-win_amd64.whl", hash = "sha256:cb73dccfc991691c444acc8c0012bee8f2470da826a92e3a20bb333b1a7894e6", size = 225612, upload-time = "2025-11-17T22:32:08.615Z" }, + { url = "https://files.pythonhosted.org/packages/e5/80/5a5929e92c72936d5b19872c5fb8fc09327c1da67b3b68c6a13139e77e20/ml_dtypes-0.5.4-cp313-cp313t-win_arm64.whl", hash = "sha256:3bbbe120b915090d9dd1375e4684dd17a20a2491ef25d640a908281da85e73f1", size = 164145, upload-time = "2025-11-17T22:32:09.782Z" }, + { url = "https://files.pythonhosted.org/packages/72/4e/1339dc6e2557a344f5ba5590872e80346f76f6cb2ac3dd16e4666e88818c/ml_dtypes-0.5.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2b857d3af6ac0d39db1de7c706e69c7f9791627209c3d6dedbfca8c7e5faec22", size = 673781, upload-time = "2025-11-17T22:32:11.364Z" }, + { url = "https://files.pythonhosted.org/packages/04/f9/067b84365c7e83bda15bba2b06c6ca250ce27b20630b1128c435fb7a09aa/ml_dtypes-0.5.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:805cef3a38f4eafae3a5bf9ebdcdb741d0bcfd9e1bd90eb54abd24f928cd2465", size = 5036145, upload-time = "2025-11-17T22:32:12.783Z" }, + { url = "https://files.pythonhosted.org/packages/c6/bb/82c7dcf38070b46172a517e2334e665c5bf374a262f99a283ea454bece7c/ml_dtypes-0.5.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14a4fd3228af936461db66faccef6e4f41c1d82fcc30e9f8d58a08916b1d811f", size = 5010230, upload-time = "2025-11-17T22:32:14.38Z" }, + { url = "https://files.pythonhosted.org/packages/e9/93/2bfed22d2498c468f6bcd0d9f56b033eaa19f33320389314c19ef6766413/ml_dtypes-0.5.4-cp314-cp314-win_amd64.whl", hash = "sha256:8c6a2dcebd6f3903e05d51960a8058d6e131fe69f952a5397e5dbabc841b6d56", size = 221032, upload-time = "2025-11-17T22:32:15.763Z" }, + { url = "https://files.pythonhosted.org/packages/76/a3/9c912fe6ea747bb10fe2f8f54d027eb265db05dfb0c6335e3e063e74e6e8/ml_dtypes-0.5.4-cp314-cp314-win_arm64.whl", hash = "sha256:5a0f68ca8fd8d16583dfa7793973feb86f2fbb56ce3966daf9c9f748f52a2049", size = 163353, upload-time = "2025-11-17T22:32:16.932Z" }, + { url = "https://files.pythonhosted.org/packages/cd/02/48aa7d84cc30ab4ee37624a2fd98c56c02326785750cd212bc0826c2f15b/ml_dtypes-0.5.4-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:bfc534409c5d4b0bf945af29e5d0ab075eae9eecbb549ff8a29280db822f34f9", size = 702085, upload-time = "2025-11-17T22:32:18.175Z" }, + { url = "https://files.pythonhosted.org/packages/5a/e7/85cb99fe80a7a5513253ec7faa88a65306be071163485e9a626fce1b6e84/ml_dtypes-0.5.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2314892cdc3fcf05e373d76d72aaa15fda9fb98625effa73c1d646f331fcecb7", size = 5355358, upload-time = "2025-11-17T22:32:19.7Z" }, + { url = "https://files.pythonhosted.org/packages/79/2b/a826ba18d2179a56e144aef69e57fb2ab7c464ef0b2111940ee8a3a223a2/ml_dtypes-0.5.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d2ffd05a2575b1519dc928c0b93c06339eb67173ff53acb00724502cda231cf", size = 5366332, upload-time = "2025-11-17T22:32:21.193Z" }, + { url = "https://files.pythonhosted.org/packages/84/44/f4d18446eacb20ea11e82f133ea8f86e2bf2891785b67d9da8d0ab0ef525/ml_dtypes-0.5.4-cp314-cp314t-win_amd64.whl", hash = "sha256:4381fe2f2452a2d7589689693d3162e876b3ddb0a832cde7a414f8e1adf7eab1", size = 236612, upload-time = "2025-11-17T22:32:22.579Z" }, + { url = "https://files.pythonhosted.org/packages/ad/3f/3d42e9a78fe5edf792a83c074b13b9b770092a4fbf3462872f4303135f09/ml_dtypes-0.5.4-cp314-cp314t-win_arm64.whl", hash = "sha256:11942cbf2cf92157db91e5022633c0d9474d4dfd813a909383bd23ce828a4b7d", size = 168825, upload-time = "2025-11-17T22:32:23.766Z" }, +] + +[[package]] +name = "more-itertools" +version = "11.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/1d/f4da6f02cdffe04d6362210b807146a26044c88d839208aec273bb0d9184/more_itertools-11.1.0.tar.gz", hash = "sha256:48e8f4d9e7e5878571ecf6f2b4e57634f93cd474cc8cfbd2376f2d11b396e30d", size = 145772, upload-time = "2026-05-22T14:14:29.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/3d/1087453384dbde46a8c7f9356eead2c58be8a7bf156bca40243377c85715/more_itertools-11.1.0-py3-none-any.whl", hash = "sha256:4b65538ae22f6fed0ce4874efd317463a7489796a0939fa66824dd542125a192", size = 72226, upload-time = "2026-05-22T14:14:28.824Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, +] + +[[package]] +name = "msgpack" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/31/f9/c0a1c127f9049db9155afc316952ea571720dd01833ff5e4d7e8e6352dbb/msgpack-1.2.1.tar.gz", hash = "sha256:04c721c2c7448767e9e3f2520a475663d8ee0f09c31890f6d2bd70fd636a9647", size = 183960, upload-time = "2026-06-18T16:13:52.594Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/16/f70100614b69feb3ade7285f08c9c52d6cda0a5c03f3f5e2facd63acb211/msgpack-1.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8c7b398c56ff125feae96c2737abfec5595f1fa0aa186df60c56040b8accb95c", size = 82926, upload-time = "2026-06-18T16:12:31.531Z" }, + { url = "https://files.pythonhosted.org/packages/e4/3c/08ecd5cdfe4e2de43aec79062028ad0f7b2d9b1fea5430068c198ba570da/msgpack-1.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1548006a91aa93c5da81f3bdcebc1a0d10cea2d25969754fbe848da622b2b895", size = 82730, upload-time = "2026-06-18T16:12:32.894Z" }, + { url = "https://files.pythonhosted.org/packages/19/9f/a70c9cb1a04ecc134005149367dcfe35d167284e8f65035a1e4156ad17b5/msgpack-1.2.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1dabedcd0f23559f3596428c6589c1cd8c6eaed3a0d720795b07b0225d769203", size = 400729, upload-time = "2026-06-18T16:12:34.052Z" }, + { url = "https://files.pythonhosted.org/packages/fa/7f/5ce020168cf0439041526e95aa068c722c016aee21624e331aeabeee2e8e/msgpack-1.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:83efa1c898e0fc5380fc0cabbf75164c52e3b5cbb45973710d75821928380c73", size = 407625, upload-time = "2026-06-18T16:12:35.239Z" }, + { url = "https://files.pythonhosted.org/packages/79/70/fb7668ce0386819303047057aef6fc1da73b584291d9cff82b821744e2ef/msgpack-1.2.1-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:01e2dd6c9b19d333a00282330cc8a73d38d8dabc306dc5b42cd668c3ac82e833", size = 377891, upload-time = "2026-06-18T16:12:36.684Z" }, + { url = "https://files.pythonhosted.org/packages/3d/dc/9ebe654a73c3aed2e40aa6b52e3c2a02b5f53ef0085fa235a45d5b367f87/msgpack-1.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:350cb813d0af6e65d2f7ef0d729f7ff5be5a8bce03665892f43e5883d4ecc1b8", size = 391987, upload-time = "2026-06-18T16:12:37.839Z" }, + { url = "https://files.pythonhosted.org/packages/42/eb/b67cf64218a2fa25e1c671fe1d3dbb06cbeb973e71bc4b822da079862d0b/msgpack-1.2.1-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:ee1d9ed27d0497b848923746cf762ed2e7db24f4be7eec8e5cbe8c766aa707b7", size = 374603, upload-time = "2026-06-18T16:12:39.221Z" }, + { url = "https://files.pythonhosted.org/packages/a2/2e/9ee200cde32fd1a0101b4006202fde554c1860adfb9bf7bff31ea4c08df8/msgpack-1.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:633727297ed063441fd1cda2288865487f33ad14eeb8831afb5f0c396a62cfce", size = 405121, upload-time = "2026-06-18T16:12:40.524Z" }, + { url = "https://files.pythonhosted.org/packages/43/b6/f10117be7ca7a51e8feed699a907b8e663a8cd66e115ae6b4fb30cc7945c/msgpack-1.2.1-cp310-cp310-win32.whl", hash = "sha256:298872ecf9e61950f1c6af4ca969b859ee91783bb920ef6e6172697d0c8aad74", size = 64088, upload-time = "2026-06-18T16:12:41.762Z" }, + { url = "https://files.pythonhosted.org/packages/ba/93/89976c696fb0224662239d952c47b4d1661b34d79a332ef5584facaa8579/msgpack-1.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:2ff164c1b0bcb740b073b99e945234d0212852fa378e44a208c425379140dbeb", size = 70113, upload-time = "2026-06-18T16:12:42.78Z" }, + { url = "https://files.pythonhosted.org/packages/f4/6b/e9b1cdc042c4458801d2545ed782a95f3d6ba8e270cce8745b8603c7f748/msgpack-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:29a3f6e9667868429d8240dfd063ea5ffdc1321c13d783aa23827a38de0dcb22", size = 82812, upload-time = "2026-06-18T16:12:45.022Z" }, + { url = "https://files.pythonhosted.org/packages/0c/3a/dd518a1bf78ed1e9ad8afe57307c079a00eafe4b3068932a27ca1ea56b4f/msgpack-1.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:aded5bdf32609dc7987a49bbbd15a8ef096193f96dd8bbeb791de729e650acf5", size = 82739, upload-time = "2026-06-18T16:12:46.025Z" }, + { url = "https://files.pythonhosted.org/packages/70/e0/7ba9e1542bf0771a27b8b37c1316e3f95ae9d748fd765284655c476ad4ef/msgpack-1.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:146ee4e9ce80b365c6d4c47073da9da7bcec473e58194ceee5dd7620ace77e06", size = 414233, upload-time = "2026-06-18T16:12:47.029Z" }, + { url = "https://files.pythonhosted.org/packages/03/8d/671d81534ea0e2b0e8a121be100020da09eb78861fe3aa8f3ef7dcd3bed1/msgpack-1.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a28d076ca7c82b9c8728ad90b7147489449557038bed50e4241eb832395169b4", size = 423843, upload-time = "2026-06-18T16:12:48.19Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b6/e5c737515ed1f166664b87601b532f58cbb73d8aa6a90b99f7c2c5037e8e/msgpack-1.2.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7d31c0ac0c640f877804c67cb2bc9f4e23dc2db97e96c2e67fa27d38283b41f8", size = 390772, upload-time = "2026-06-18T16:12:49.624Z" }, + { url = "https://files.pythonhosted.org/packages/a8/46/62ed8c2e87d7021eab19921594d961ef3aa3794eec76c716dc30f3bfd433/msgpack-1.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8ff92d7feeaf5bc26c51495b69e2f99ed97ab79346fb6555f44be7dd2ac6503b", size = 409559, upload-time = "2026-06-18T16:12:50.936Z" }, + { url = "https://files.pythonhosted.org/packages/70/ff/59aa3887b860bbf43532835e192b1c388a17590d6068ae4f8b2bc74c906e/msgpack-1.2.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:779197a6513bab3c3632265e3d0f7cb3227e62510841a6f34f1eaa37efbb345e", size = 387838, upload-time = "2026-06-18T16:12:52.161Z" }, + { url = "https://files.pythonhosted.org/packages/09/11/f8563e471093420cf6478cb3271a0175d8402b82d879783d4035d2d03360/msgpack-1.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:67f6dd22fa72a93752643f07889796d62739a13415ee630169a8ce764f86cf9f", size = 421732, upload-time = "2026-06-18T16:12:53.556Z" }, + { url = "https://files.pythonhosted.org/packages/57/cf/e673683c4c6c90c1022b24c65af4b03eda72b182a1176ef6449069d66acc/msgpack-1.2.1-cp311-cp311-win32.whl", hash = "sha256:91054a783328e0ea7954b8771095705c8d2243b814743fbaadf14552c9c52c5d", size = 64091, upload-time = "2026-06-18T16:12:54.821Z" }, + { url = "https://files.pythonhosted.org/packages/3f/07/ca212739d179f9083bff2c7c08c24101c3555a334fadc2b876b18768a3ae/msgpack-1.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2eda0b7ebb1283a98d3e4492ac933c8af6aff59fd3df1c3ed024f536af4b1dc8", size = 70462, upload-time = "2026-06-18T16:12:55.898Z" }, + { url = "https://files.pythonhosted.org/packages/6d/be/6798347b425e26f35db82e69dd83c09716c856a3714e7bffc4c0860fd830/msgpack-1.2.1-cp311-cp311-win_arm64.whl", hash = "sha256:6ee967f7c7e1df2890c671ff2ee51a28ded0efc95da3e507176dee881ce36c66", size = 65059, upload-time = "2026-06-18T16:12:57.053Z" }, + { url = "https://files.pythonhosted.org/packages/bc/dd/9e8cbd8f5582ca4b590336f2b91ee5662f6a6ca562b565abaf696a0f81ff/msgpack-1.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2ef59c659f289eddf8aa6623823f19fa2f40a4029266889eac7a2505dd210c35", size = 83531, upload-time = "2026-06-18T16:12:58.249Z" }, + { url = "https://files.pythonhosted.org/packages/50/2e/ebdb85a8da151397a2790363676b7ed7c125924fe618e4c6d8befb0cc62c/msgpack-1.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d3567748a5107cb40cdf66a275430c2f87c07777698f4bfd25c35f44d533258c", size = 82657, upload-time = "2026-06-18T16:12:59.396Z" }, + { url = "https://files.pythonhosted.org/packages/26/aa/753ad8b007b464e1d8aa0c8e650b9c5f4f725e658fc5ac8a7635c55b7f6e/msgpack-1.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60926b75d00c8e816ef98f3034f484a8bc64242d66839cef4cf7e503142316a0", size = 410634, upload-time = "2026-06-18T16:13:00.383Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/6adabd4f6d5e686f97dd02ce7fce3fe4cf672cbac36b8f67ff4040e8ad8b/msgpack-1.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:020e881a764b20d8d7ca1a54fc01b8175519d108e3c3f194fddc200bda95951a", size = 419989, upload-time = "2026-06-18T16:13:01.776Z" }, + { url = "https://files.pythonhosted.org/packages/5a/cc/85039b7b0eb168aaad7383a23c97e291a11f08351cb45a606ce865e4e3f1/msgpack-1.2.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4202c74688ca06591f78cb18988228bd4cca2cc75d57b60008372892d2f1e6e6", size = 377544, upload-time = "2026-06-18T16:13:03.637Z" }, + { url = "https://files.pythonhosted.org/packages/ed/bf/35963899493b32030c85fc513b723ae66144ac70c11ebc52e889e16e3d99/msgpack-1.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8b267ce94efb76fbd1b3373511420074ee3187f0f7811bf394531de13294735a", size = 400842, upload-time = "2026-06-18T16:13:05.012Z" }, + { url = "https://files.pythonhosted.org/packages/a6/df/8e2ac970c8f99264cd9997d1c73df5466bc19da3301d7dc5500862a9b089/msgpack-1.2.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:e4f1d0f8f98ade9634e01fb704a408f9336c0a8f1117b369f5db83dc7551d8b1", size = 374108, upload-time = "2026-06-18T16:13:06.232Z" }, + { url = "https://files.pythonhosted.org/packages/17/dd/fa8bd265110dfa51c20cb529f9e6d240a16fafe7e645004c6af2d01353ba/msgpack-1.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f02cf17a6ca1abe29b5f980644f7551f94d71f2011509b26d8625ce038f0df64", size = 414939, upload-time = "2026-06-18T16:13:07.478Z" }, + { url = "https://files.pythonhosted.org/packages/2e/b9/8377a5ad8953fc0437c70cc98d9ae29f27fe5ac5109fbec0812085865735/msgpack-1.2.1-cp312-cp312-win32.whl", hash = "sha256:0c0d9802354507bcba62af19c17918e3eb437cc25e6f50657d511b5856a77aac", size = 64504, upload-time = "2026-06-18T16:13:08.822Z" }, + { url = "https://files.pythonhosted.org/packages/57/7f/ce1e377df7e62461fefd9eb23bfb93a4a523f40a517b377b8f844d836828/msgpack-1.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:5c24aa15d5963051e1a5c62b12c50cd705992502b5ec1f3bece6046f33c9fc24", size = 71421, upload-time = "2026-06-18T16:13:09.828Z" }, + { url = "https://files.pythonhosted.org/packages/8f/32/ebfe84c9929f08f188d56c7a2fd913406a9ddad76a634697c1c43b8112e6/msgpack-1.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:4227224aaec8f7fbcbfbd4272319347b2bb4030366502600f8c45588c5187b07", size = 64775, upload-time = "2026-06-18T16:13:11.056Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ac/dcddcab6f6c20ecb387ca5e980371cdb3f87ff69aeca388be97eebc4c074/msgpack-1.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0a70e3cf2804a300d921bb0940426e35f4e489a23adfb77a808892241db0a064", size = 83151, upload-time = "2026-06-18T16:13:12.173Z" }, + { url = "https://files.pythonhosted.org/packages/64/71/fbcfa83a1d6a9c6091942d1cfd070962244664b87427a9a49a6897b1b219/msgpack-1.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:491cc39455ca765fad51fb451bf2915eb2cf41192ab5801ce8d67c1d614fe056", size = 82351, upload-time = "2026-06-18T16:13:13.194Z" }, + { url = "https://files.pythonhosted.org/packages/e3/10/ddf7b06db879e8792d13934ddda09ff20bd2a583fd84c9b59aae9b0e650b/msgpack-1.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f310233ef7fb9c14e201c93639fe5f5260b005f56f0b29048e999c30935596cc", size = 407518, upload-time = "2026-06-18T16:13:14.233Z" }, + { url = "https://files.pythonhosted.org/packages/79/d3/36a46a8ed992b781acbc05928bd5bee3c810cb0c3563bf81a7b0c04a1a76/msgpack-1.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:787c9bebb5833e8f6fc8abca3c0597683d8d87f56a8842b6b89c75a5f3176e2d", size = 416405, upload-time = "2026-06-18T16:13:15.435Z" }, + { url = "https://files.pythonhosted.org/packages/f9/84/e8e9598b557c0ba6ddae901a73780a4c75ac667dddf59414b1e56a42fb34/msgpack-1.2.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dc871b997a9370d855b7394465f2f350e847a5b806dd38dcc9c989e7d87da155", size = 376257, upload-time = "2026-06-18T16:13:17.022Z" }, + { url = "https://files.pythonhosted.org/packages/40/16/738fe6d875ad7e2a9429c165322a4ec088f4f273cdfae63d96a89c467961/msgpack-1.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:85f57e960d877f2977f6430896191b04a21f8901b3b4baf2e4604329f4db5402", size = 397469, upload-time = "2026-06-18T16:13:18.287Z" }, + { url = "https://files.pythonhosted.org/packages/ca/be/6d5952df75a7f24f35833af764c3a6860780364cb3a0030beb8099e1b2b4/msgpack-1.2.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:1233ee2dd0cefba127583de50ea654677277047d238303521db35def3d7b2e7c", size = 372802, upload-time = "2026-06-18T16:13:19.685Z" }, + { url = "https://files.pythonhosted.org/packages/e1/39/e2ef7dbf0473bcb8dc7c50bf782a892d67414877b63e47fc88eb189ef5e6/msgpack-1.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e3dc2feb0876209d9c38aa56cb1de169bd6c4348f1aa48271f241226590993e6", size = 411273, upload-time = "2026-06-18T16:13:21.028Z" }, + { url = "https://files.pythonhosted.org/packages/ef/c5/133f4512a56e983a93445c836c9d94d88f3bc2e0980ff4b9e577bd8416ce/msgpack-1.2.1-cp313-cp313-win32.whl", hash = "sha256:6d09badf350af2be9d189184e04e64cf54ad93569ab3d96fca58bd3e84aad707", size = 64471, upload-time = "2026-06-18T16:13:22.293Z" }, + { url = "https://files.pythonhosted.org/packages/e2/98/577e10b055096a7dd40732358cabaf7180a20c79ed1dcdbb618e4b9deac7/msgpack-1.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:33f14fba63278b714efe6ad07e50ea5f03d91537aa6a1c5f1ceca4cf44013ca9", size = 71274, upload-time = "2026-06-18T16:13:23.455Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ee/0c0048e7cfbef23c6a94791b8959ab28155232e7956de8a305b5ff588f05/msgpack-1.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:afc5febcd4c99effbc02b528e49d6fd0760b2b7d48c05239e345a5fa6e743d9a", size = 64795, upload-time = "2026-06-18T16:13:24.687Z" }, + { url = "https://files.pythonhosted.org/packages/77/58/cce442852c6b9e1639c7c8ac8fd9143121cb32dab0f308df4d1426a8eb9c/msgpack-1.2.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:05f340e47e7e47d2da8db9b53e1bb1d294369e9ef45a747441309f6650b8351d", size = 83610, upload-time = "2026-06-18T16:13:25.724Z" }, + { url = "https://files.pythonhosted.org/packages/60/5c/15b4c7a0182f75ffa90751958ba36a9c01cafee367d49a3edc10ed140b01/msgpack-1.2.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:810b916696c86ef0deb3b74588480224df4c1b071136c34183e4a2a4284d7ac7", size = 83138, upload-time = "2026-06-18T16:13:26.781Z" }, + { url = "https://files.pythonhosted.org/packages/b8/a6/99e58722feaffc5f2fbcc0c8c0d1451ab9f84097f7af87291b46af2390f4/msgpack-1.2.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ca0dacff965c47afdc3749a8469d7302a8f801d6a28758d55120d75e66ce6889", size = 406090, upload-time = "2026-06-18T16:13:28.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/03/8c63e8cf52958534ef688625965ab04c269a6cadd8caef16758b380a821a/msgpack-1.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e2bf9280bceb5efca998435904b5d3e9fdbcc11d90dc9df30aec7973252b720", size = 412106, upload-time = "2026-06-18T16:13:29.427Z" }, + { url = "https://files.pythonhosted.org/packages/63/d2/155d9e71b40e41fd934bc0c48b9b2770f22263e1ac20aad8e29fdca7be3f/msgpack-1.2.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:aa6c4be5d1c02a42b066ca6ddb71adf36432868fdcdb6ee87e634e86e0674190", size = 374851, upload-time = "2026-06-18T16:13:30.631Z" }, + { url = "https://files.pythonhosted.org/packages/98/48/deaf2326262a8d5ea3295ce9649912ecd3f551ba7ec8e33c665d2ba583f3/msgpack-1.2.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec0e675d59150a6269ddc9139087c722292664a37d071a849c05c473350f1f2d", size = 396168, upload-time = "2026-06-18T16:13:31.977Z" }, + { url = "https://files.pythonhosted.org/packages/10/2a/b4410f906c2ec0008f1608d3ab5143afc3ad3f4e6da0fed3ea2231d0bef4/msgpack-1.2.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:dd3bfe82d53edfe4b7fc9a7ec9761e23a7a5b1dac22264505af428253c29ed24", size = 371959, upload-time = "2026-06-18T16:13:33.282Z" }, + { url = "https://files.pythonhosted.org/packages/59/86/1edc67270099a528fa2093ea60fe191233cd238e4bd30cfacf7db79fc959/msgpack-1.2.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5ad5467fc3f68b5468e06c5f788d712e9f8ffc8b0cd1bcb160c105c1ee92dae7", size = 408457, upload-time = "2026-06-18T16:13:34.567Z" }, + { url = "https://files.pythonhosted.org/packages/82/90/8b630fef07d8c5ab457b71ff2c217910c83d333c7a68472c186e87cc504a/msgpack-1.2.1-cp314-cp314-win32.whl", hash = "sha256:98b58bdb89c46190e4609bb36abe17c6d4105ad13f9c5f8f6f64d320f8ced3fb", size = 65942, upload-time = "2026-06-18T16:13:36.056Z" }, + { url = "https://files.pythonhosted.org/packages/16/f1/467b81e98b24dd3885d7b1857728797b4ffc76a7a7483af4fb321a07de3c/msgpack-1.2.1-cp314-cp314-win_amd64.whl", hash = "sha256:74847557e28ce71bd3c438a447ca90e4b507e997ddbdef8a12a7b283b86c156b", size = 72627, upload-time = "2026-06-18T16:13:37.079Z" }, + { url = "https://files.pythonhosted.org/packages/a7/1d/5d8c4c89985feb6acefb82a09e501c60392261856d2408d20bfe4f0360b1/msgpack-1.2.1-cp314-cp314-win_arm64.whl", hash = "sha256:b50b727bd652bdc37d950336c848ef20ec54a4cafc38dce19b1cd86ad625d0f7", size = 66908, upload-time = "2026-06-18T16:13:38.23Z" }, + { url = "https://files.pythonhosted.org/packages/1b/02/ad2afb678b4de94496cd432b581759b756a92c1192d8c767edd6b132efdc/msgpack-1.2.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:8d00f177ca88a77c1cf848d204a38f249751650b601cb6532acc68805d8a8273", size = 86000, upload-time = "2026-06-18T16:13:39.44Z" }, + { url = "https://files.pythonhosted.org/packages/54/74/0b797484013128837f3b1cbb6cea019277c4de4e377dc512b4d9a0f92940/msgpack-1.2.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5bb9c386f0a329c035ddbab4b72d1028bf9627add8dda41070288563d57ed1b1", size = 86544, upload-time = "2026-06-18T16:13:40.447Z" }, + { url = "https://files.pythonhosted.org/packages/a9/b4/b774d7eb95561739907fec675582f83203cf41c597a418c2589b4bfb8e9d/msgpack-1.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:20466cca18c49c7292a8984bc15d65857b171e7264bdcb5f96baf8be238791fc", size = 427661, upload-time = "2026-06-18T16:13:41.574Z" }, + { url = "https://files.pythonhosted.org/packages/b2/f9/3243191dc9937e00756c8bc1b0272fed8f23758e43df2a3b46f533e5090f/msgpack-1.2.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:196300e7e5d6e74d50f1607ab9c06c4a1484c383cd22defd727902591f7e8dde", size = 426375, upload-time = "2026-06-18T16:13:42.936Z" }, + { url = "https://files.pythonhosted.org/packages/23/c7/1693111db9944ba4ad4b67a1e788400d78a0b6af7a6523dc7e4e58f8274b/msgpack-1.2.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:575957e79cd51903a4e8495a242442949641e08f1efd5197b43bebd3ea7682b4", size = 380495, upload-time = "2026-06-18T16:13:44.306Z" }, + { url = "https://files.pythonhosted.org/packages/3e/2b/92f86956a0c13e8662f7e2ad630c4eb4db07497b967589bd5245e018b2c1/msgpack-1.2.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8c2ed1e48cc0f460bf3c7780e7137ff21a4e18433451916f2442c1b21036cd7d", size = 410897, upload-time = "2026-06-18T16:13:45.629Z" }, + { url = "https://files.pythonhosted.org/packages/da/ea/1479f72d200313a76fc2f823a79d1e07ed052ab7b8a0280640aa7b95de42/msgpack-1.2.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:5f6277e5f783c36786a145e0247fc189a03f35f84b251646e53592d2bc12b355", size = 378519, upload-time = "2026-06-18T16:13:46.998Z" }, + { url = "https://files.pythonhosted.org/packages/f5/4d/fa006060ffa1011d32bfae826fe766fe73e02982183601633b7121058ab3/msgpack-1.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f9389552ecf4784886345ead0647e4edc96bee37cbab05b75540f542f766c48c", size = 419815, upload-time = "2026-06-18T16:13:48.205Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/aab6c946570496b78e67804721f3d5e2d62a93081b9b37df77764ef56347/msgpack-1.2.1-cp314-cp314t-win32.whl", hash = "sha256:c1c79a604a2969a868a78b6ebd27a887e00c624f14f66b3038e0590cb23332d1", size = 70914, upload-time = "2026-06-18T16:13:49.385Z" }, + { url = "https://files.pythonhosted.org/packages/13/0a/e608956488a2af014cfe6e3d665e090b8ee42aa14b07f8f95b8880d66b09/msgpack-1.2.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f12038a35fabd52e56a3547bab42401af49a45caa6dd00b34c44de235bc93ee2", size = 77999, upload-time = "2026-06-18T16:13:50.467Z" }, + { url = "https://files.pythonhosted.org/packages/d2/8a/27e2e57055176e366a46b85d02d68e7a5bcfbdd8474c9706375d965f24d3/msgpack-1.2.1-cp314-cp314t-win_arm64.whl", hash = "sha256:0adcf06ffde0777c0e1a9b771a2b1c4226ba1bbf748c8efcc02fcdeca3299107", size = 71160, upload-time = "2026-06-18T16:13:51.498Z" }, +] + +[[package]] +name = "msoffcrypto-tool" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "olefile" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/34/6250bdddaeaae24098e45449ea362fb3555a65fba30cad0ad5630ea48d1a/msoffcrypto_tool-6.0.0.tar.gz", hash = "sha256:9a5ebc4c0096b42e5d7ebc2350afdc92dc511061e935ca188468094fdd032bbe", size = 40593, upload-time = "2026-01-12T08:59:56.73Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/85/9e359fa9279e1d6861faaf9b6f037a3226374deb20a054c3937be6992013/msoffcrypto_tool-6.0.0-py3-none-any.whl", hash = "sha256:46c394ed5d9641e802fc79bf3fb0666a53748b23fa8c4aa634ae9d30d46fe397", size = 48791, upload-time = "2026-01-12T08:59:55.394Z" }, +] + +[[package]] +name = "multidict" +version = "6.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010, upload-time = "2026-01-26T02:46:45.979Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/0b/19348d4c98980c4851d2f943f8ebafdece2ae7ef737adcfa5994ce8e5f10/multidict-6.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c93c3db7ea657dd4637d57e74ab73de31bccefe144d3d4ce370052035bc85fb5", size = 77176, upload-time = "2026-01-26T02:42:59.784Z" }, + { url = "https://files.pythonhosted.org/packages/ef/04/9de3f8077852e3d438215c81e9b691244532d2e05b4270e89ce67b7d103c/multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:974e72a2474600827abaeda71af0c53d9ebbc3c2eb7da37b37d7829ae31232d8", size = 44996, upload-time = "2026-01-26T02:43:01.674Z" }, + { url = "https://files.pythonhosted.org/packages/31/5c/08c7f7fe311f32e83f7621cd3f99d805f45519cd06fafb247628b861da7d/multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdea2e7b2456cfb6694fb113066fd0ec7ea4d67e3a35e1f4cbeea0b448bf5872", size = 44631, upload-time = "2026-01-26T02:43:03.169Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7f/0e3b1390ae772f27501199996b94b52ceeb64fe6f9120a32c6c3f6b781be/multidict-6.7.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17207077e29342fdc2c9a82e4b306f1127bf1ea91f8b71e02d4798a70bb99991", size = 242561, upload-time = "2026-01-26T02:43:04.733Z" }, + { url = "https://files.pythonhosted.org/packages/dd/f4/8719f4f167586af317b69dd3e90f913416c91ca610cac79a45c53f590312/multidict-6.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4f49cb5661344764e4c7c7973e92a47a59b8fc19b6523649ec9dc4960e58a03", size = 242223, upload-time = "2026-01-26T02:43:06.695Z" }, + { url = "https://files.pythonhosted.org/packages/47/ab/7c36164cce64a6ad19c6d9a85377b7178ecf3b89f8fd589c73381a5eedfd/multidict-6.7.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a9fc4caa29e2e6ae408d1c450ac8bf19892c5fca83ee634ecd88a53332c59981", size = 222322, upload-time = "2026-01-26T02:43:08.472Z" }, + { url = "https://files.pythonhosted.org/packages/f5/79/a25add6fb38035b5337bc5734f296d9afc99163403bbcf56d4170f97eb62/multidict-6.7.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c5f0c21549ab432b57dcc82130f388d84ad8179824cc3f223d5e7cfbfd4143f6", size = 254005, upload-time = "2026-01-26T02:43:10.127Z" }, + { url = "https://files.pythonhosted.org/packages/4a/7b/64a87cf98e12f756fc8bd444b001232ffff2be37288f018ad0d3f0aae931/multidict-6.7.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7dfb78d966b2c906ae1d28ccf6e6712a3cd04407ee5088cd276fe8cb42186190", size = 251173, upload-time = "2026-01-26T02:43:11.731Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ac/b605473de2bb404e742f2cc3583d12aedb2352a70e49ae8fce455b50c5aa/multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b0d9b91d1aa44db9c1f1ecd0d9d2ae610b2f4f856448664e01a3b35899f3f92", size = 243273, upload-time = "2026-01-26T02:43:13.063Z" }, + { url = "https://files.pythonhosted.org/packages/03/65/11492d6a0e259783720f3bc1d9ea55579a76f1407e31ed44045c99542004/multidict-6.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dd96c01a9dcd4889dcfcf9eb5544ca0c77603f239e3ffab0524ec17aea9a93ee", size = 238956, upload-time = "2026-01-26T02:43:14.843Z" }, + { url = "https://files.pythonhosted.org/packages/5f/a7/7ee591302af64e7c196fb63fe856c788993c1372df765102bd0448e7e165/multidict-6.7.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:067343c68cd6612d375710f895337b3a98a033c94f14b9a99eff902f205424e2", size = 233477, upload-time = "2026-01-26T02:43:16.025Z" }, + { url = "https://files.pythonhosted.org/packages/9c/99/c109962d58756c35fd9992fed7f2355303846ea2ff054bb5f5e9d6b888de/multidict-6.7.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5884a04f4ff56c6120f6ccf703bdeb8b5079d808ba604d4d53aec0d55dc33568", size = 243615, upload-time = "2026-01-26T02:43:17.84Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5f/1973e7c771c86e93dcfe1c9cc55a5481b610f6614acfc28c0d326fe6bfad/multidict-6.7.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8affcf1c98b82bc901702eb73b6947a1bfa170823c153fe8a47b5f5f02e48e40", size = 249930, upload-time = "2026-01-26T02:43:19.06Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a5/f170fc2268c3243853580203378cd522446b2df632061e0a5409817854c7/multidict-6.7.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0d17522c37d03e85c8098ec8431636309b2682cf12e58f4dbc76121fb50e4962", size = 243807, upload-time = "2026-01-26T02:43:20.286Z" }, + { url = "https://files.pythonhosted.org/packages/de/01/73856fab6d125e5bc652c3986b90e8699a95e84b48d72f39ade6c0e74a8c/multidict-6.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24c0cf81544ca5e17cfcb6e482e7a82cd475925242b308b890c9452a074d4505", size = 239103, upload-time = "2026-01-26T02:43:21.508Z" }, + { url = "https://files.pythonhosted.org/packages/e7/46/f1220bd9944d8aa40d8ccff100eeeee19b505b857b6f603d6078cb5315b0/multidict-6.7.1-cp310-cp310-win32.whl", hash = "sha256:d82dd730a95e6643802f4454b8fdecdf08667881a9c5670db85bc5a56693f122", size = 41416, upload-time = "2026-01-26T02:43:22.703Z" }, + { url = "https://files.pythonhosted.org/packages/68/00/9b38e272a770303692fc406c36e1a4c740f401522d5787691eb38a8925a8/multidict-6.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf37cbe5ced48d417ba045aca1b21bafca67489452debcde94778a576666a1df", size = 46022, upload-time = "2026-01-26T02:43:23.77Z" }, + { url = "https://files.pythonhosted.org/packages/64/65/d8d42490c02ee07b6bbe00f7190d70bb4738b3cce7629aaf9f213ef730dd/multidict-6.7.1-cp310-cp310-win_arm64.whl", hash = "sha256:59bc83d3f66b41dac1e7460aac1d196edc70c9ba3094965c467715a70ecb46db", size = 43238, upload-time = "2026-01-26T02:43:24.882Z" }, + { url = "https://files.pythonhosted.org/packages/ce/f1/a90635c4f88fb913fbf4ce660b83b7445b7a02615bda034b2f8eb38fd597/multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d", size = 76626, upload-time = "2026-01-26T02:43:26.485Z" }, + { url = "https://files.pythonhosted.org/packages/a6/9b/267e64eaf6fc637a15b35f5de31a566634a2740f97d8d094a69d34f524a4/multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e", size = 44706, upload-time = "2026-01-26T02:43:27.607Z" }, + { url = "https://files.pythonhosted.org/packages/dd/a4/d45caf2b97b035c57267791ecfaafbd59c68212004b3842830954bb4b02e/multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855", size = 44356, upload-time = "2026-01-26T02:43:28.661Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d2/0a36c8473f0cbaeadd5db6c8b72d15bbceeec275807772bfcd059bef487d/multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3", size = 244355, upload-time = "2026-01-26T02:43:31.165Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/8c65be997fd7dd311b7d39c7b6e71a0cb449bad093761481eccbbe4b42a2/multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e", size = 246433, upload-time = "2026-01-26T02:43:32.581Z" }, + { url = "https://files.pythonhosted.org/packages/01/fb/4dbd7e848d2799c6a026ec88ad39cf2b8416aa167fcc903baa55ecaa045c/multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a", size = 225376, upload-time = "2026-01-26T02:43:34.417Z" }, + { url = "https://files.pythonhosted.org/packages/b6/8a/4a3a6341eac3830f6053062f8fbc9a9e54407c80755b3f05bc427295c2d0/multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8", size = 257365, upload-time = "2026-01-26T02:43:35.741Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a2/dd575a69c1aa206e12d27d0770cdf9b92434b48a9ef0cd0d1afdecaa93c4/multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0", size = 254747, upload-time = "2026-01-26T02:43:36.976Z" }, + { url = "https://files.pythonhosted.org/packages/5a/56/21b27c560c13822ed93133f08aa6372c53a8e067f11fbed37b4adcdac922/multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144", size = 246293, upload-time = "2026-01-26T02:43:38.258Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a4/23466059dc3854763423d0ad6c0f3683a379d97673b1b89ec33826e46728/multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49", size = 242962, upload-time = "2026-01-26T02:43:40.034Z" }, + { url = "https://files.pythonhosted.org/packages/1f/67/51dd754a3524d685958001e8fa20a0f5f90a6a856e0a9dcabff69be3dbb7/multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71", size = 237360, upload-time = "2026-01-26T02:43:41.752Z" }, + { url = "https://files.pythonhosted.org/packages/64/3f/036dfc8c174934d4b55d86ff4f978e558b0e585cef70cfc1ad01adc6bf18/multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3", size = 245940, upload-time = "2026-01-26T02:43:43.042Z" }, + { url = "https://files.pythonhosted.org/packages/3d/20/6214d3c105928ebc353a1c644a6ef1408bc5794fcb4f170bb524a3c16311/multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c", size = 253502, upload-time = "2026-01-26T02:43:44.371Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e2/c653bc4ae1be70a0f836b82172d643fcf1dade042ba2676ab08ec08bff0f/multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0", size = 247065, upload-time = "2026-01-26T02:43:45.745Z" }, + { url = "https://files.pythonhosted.org/packages/c8/11/a854b4154cd3bd8b1fd375e8a8ca9d73be37610c361543d56f764109509b/multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa", size = 241870, upload-time = "2026-01-26T02:43:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/13/bf/9676c0392309b5fdae322333d22a829715b570edb9baa8016a517b55b558/multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a", size = 41302, upload-time = "2026-01-26T02:43:48.753Z" }, + { url = "https://files.pythonhosted.org/packages/c9/68/f16a3a8ba6f7b6dc92a1f19669c0810bd2c43fc5a02da13b1cbf8e253845/multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b", size = 45981, upload-time = "2026-01-26T02:43:49.921Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ad/9dd5305253fa00cd3c7555dbef69d5bf4133debc53b87ab8d6a44d411665/multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6", size = 43159, upload-time = "2026-01-26T02:43:51.635Z" }, + { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893, upload-time = "2026-01-26T02:43:52.754Z" }, + { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456, upload-time = "2026-01-26T02:43:53.893Z" }, + { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872, upload-time = "2026-01-26T02:43:55.041Z" }, + { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018, upload-time = "2026-01-26T02:43:56.198Z" }, + { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883, upload-time = "2026-01-26T02:43:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413, upload-time = "2026-01-26T02:43:58.755Z" }, + { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404, upload-time = "2026-01-26T02:44:00.216Z" }, + { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456, upload-time = "2026-01-26T02:44:02.202Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322, upload-time = "2026-01-26T02:44:03.56Z" }, + { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955, upload-time = "2026-01-26T02:44:04.845Z" }, + { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254, upload-time = "2026-01-26T02:44:06.133Z" }, + { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059, upload-time = "2026-01-26T02:44:07.518Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588, upload-time = "2026-01-26T02:44:09.382Z" }, + { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642, upload-time = "2026-01-26T02:44:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377, upload-time = "2026-01-26T02:44:12.042Z" }, + { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887, upload-time = "2026-01-26T02:44:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053, upload-time = "2026-01-26T02:44:15.371Z" }, + { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307, upload-time = "2026-01-26T02:44:16.852Z" }, + { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174, upload-time = "2026-01-26T02:44:18.509Z" }, + { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116, upload-time = "2026-01-26T02:44:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524, upload-time = "2026-01-26T02:44:21.571Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368, upload-time = "2026-01-26T02:44:22.803Z" }, + { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952, upload-time = "2026-01-26T02:44:24.306Z" }, + { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317, upload-time = "2026-01-26T02:44:25.772Z" }, + { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132, upload-time = "2026-01-26T02:44:27.648Z" }, + { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140, upload-time = "2026-01-26T02:44:29.588Z" }, + { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277, upload-time = "2026-01-26T02:44:30.902Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291, upload-time = "2026-01-26T02:44:32.31Z" }, + { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156, upload-time = "2026-01-26T02:44:33.734Z" }, + { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742, upload-time = "2026-01-26T02:44:35.222Z" }, + { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221, upload-time = "2026-01-26T02:44:36.604Z" }, + { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664, upload-time = "2026-01-26T02:44:38.008Z" }, + { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490, upload-time = "2026-01-26T02:44:39.386Z" }, + { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695, upload-time = "2026-01-26T02:44:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884, upload-time = "2026-01-26T02:44:42.488Z" }, + { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122, upload-time = "2026-01-26T02:44:43.664Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175, upload-time = "2026-01-26T02:44:44.894Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460, upload-time = "2026-01-26T02:44:46.106Z" }, + { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930, upload-time = "2026-01-26T02:44:47.278Z" }, + { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582, upload-time = "2026-01-26T02:44:48.604Z" }, + { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031, upload-time = "2026-01-26T02:44:50.544Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596, upload-time = "2026-01-26T02:44:51.951Z" }, + { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492, upload-time = "2026-01-26T02:44:53.902Z" }, + { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899, upload-time = "2026-01-26T02:44:55.316Z" }, + { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970, upload-time = "2026-01-26T02:44:56.783Z" }, + { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060, upload-time = "2026-01-26T02:44:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888, upload-time = "2026-01-26T02:44:59.57Z" }, + { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554, upload-time = "2026-01-26T02:45:01.054Z" }, + { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341, upload-time = "2026-01-26T02:45:02.484Z" }, + { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391, upload-time = "2026-01-26T02:45:03.862Z" }, + { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422, upload-time = "2026-01-26T02:45:05.296Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770, upload-time = "2026-01-26T02:45:06.754Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109, upload-time = "2026-01-26T02:45:08.044Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573, upload-time = "2026-01-26T02:45:09.349Z" }, + { url = "https://files.pythonhosted.org/packages/91/cc/db74228a8be41884a567e88a62fd589a913708fcf180d029898c17a9a371/multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee", size = 75190, upload-time = "2026-01-26T02:45:10.651Z" }, + { url = "https://files.pythonhosted.org/packages/d5/22/492f2246bb5b534abd44804292e81eeaf835388901f0c574bac4eeec73c5/multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2", size = 44486, upload-time = "2026-01-26T02:45:11.938Z" }, + { url = "https://files.pythonhosted.org/packages/f1/4f/733c48f270565d78b4544f2baddc2fb2a245e5a8640254b12c36ac7ac68e/multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1", size = 43219, upload-time = "2026-01-26T02:45:14.346Z" }, + { url = "https://files.pythonhosted.org/packages/24/bb/2c0c2287963f4259c85e8bcbba9182ced8d7fca65c780c38e99e61629d11/multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d", size = 245132, upload-time = "2026-01-26T02:45:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f9/44d4b3064c65079d2467888794dea218d1601898ac50222ab8a9a8094460/multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31", size = 252420, upload-time = "2026-01-26T02:45:17.293Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/78f7275e73fa17b24c9a51b0bd9d73ba64bb32d0ed51b02a746eb876abe7/multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048", size = 233510, upload-time = "2026-01-26T02:45:19.356Z" }, + { url = "https://files.pythonhosted.org/packages/4b/25/8167187f62ae3cbd52da7893f58cb036b47ea3fb67138787c76800158982/multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362", size = 264094, upload-time = "2026-01-26T02:45:20.834Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e7/69a3a83b7b030cf283fb06ce074a05a02322359783424d7edf0f15fe5022/multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37", size = 260786, upload-time = "2026-01-26T02:45:22.818Z" }, + { url = "https://files.pythonhosted.org/packages/fe/3b/8ec5074bcfc450fe84273713b4b0a0dd47c0249358f5d82eb8104ffe2520/multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709", size = 248483, upload-time = "2026-01-26T02:45:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/48/5a/d5a99e3acbca0e29c5d9cba8f92ceb15dce78bab963b308ae692981e3a5d/multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0", size = 248403, upload-time = "2026-01-26T02:45:25.982Z" }, + { url = "https://files.pythonhosted.org/packages/35/48/e58cd31f6c7d5102f2a4bf89f96b9cf7e00b6c6f3d04ecc44417c00a5a3c/multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb", size = 240315, upload-time = "2026-01-26T02:45:27.487Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/1cd210229559cb90b6786c30676bb0c58249ff42f942765f88793b41fdce/multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd", size = 245528, upload-time = "2026-01-26T02:45:28.991Z" }, + { url = "https://files.pythonhosted.org/packages/64/f2/6e1107d226278c876c783056b7db43d800bb64c6131cec9c8dfb6903698e/multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601", size = 258784, upload-time = "2026-01-26T02:45:30.503Z" }, + { url = "https://files.pythonhosted.org/packages/4d/c1/11f664f14d525e4a1b5327a82d4de61a1db604ab34c6603bb3c2cc63ad34/multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1", size = 251980, upload-time = "2026-01-26T02:45:32.603Z" }, + { url = "https://files.pythonhosted.org/packages/e1/9f/75a9ac888121d0c5bbd4ecf4eead45668b1766f6baabfb3b7f66a410e231/multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b", size = 243602, upload-time = "2026-01-26T02:45:34.043Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e7/50bf7b004cc8525d80dbbbedfdc7aed3e4c323810890be4413e589074032/multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d", size = 40930, upload-time = "2026-01-26T02:45:36.278Z" }, + { url = "https://files.pythonhosted.org/packages/e0/bf/52f25716bbe93745595800f36fb17b73711f14da59ed0bb2eba141bc9f0f/multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f", size = 45074, upload-time = "2026-01-26T02:45:37.546Z" }, + { url = "https://files.pythonhosted.org/packages/97/ab/22803b03285fa3a525f48217963da3a65ae40f6a1b6f6cf2768879e208f9/multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5", size = 42471, upload-time = "2026-01-26T02:45:38.889Z" }, + { url = "https://files.pythonhosted.org/packages/e0/6d/f9293baa6146ba9507e360ea0292b6422b016907c393e2f63fc40ab7b7b5/multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581", size = 82401, upload-time = "2026-01-26T02:45:40.254Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/53b5494738d83558d87c3c71a486504d8373421c3e0dbb6d0db48ad42ee0/multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a", size = 48143, upload-time = "2026-01-26T02:45:41.635Z" }, + { url = "https://files.pythonhosted.org/packages/37/e8/5284c53310dcdc99ce5d66563f6e5773531a9b9fe9ec7a615e9bc306b05f/multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c", size = 46507, upload-time = "2026-01-26T02:45:42.99Z" }, + { url = "https://files.pythonhosted.org/packages/e4/fc/6800d0e5b3875568b4083ecf5f310dcf91d86d52573160834fb4bfcf5e4f/multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262", size = 239358, upload-time = "2026-01-26T02:45:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/41/75/4ad0973179361cdf3a113905e6e088173198349131be2b390f9fa4da5fc6/multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59", size = 246884, upload-time = "2026-01-26T02:45:47.167Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9c/095bb28b5da139bd41fb9a5d5caff412584f377914bd8787c2aa98717130/multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889", size = 225878, upload-time = "2026-01-26T02:45:48.698Z" }, + { url = "https://files.pythonhosted.org/packages/07/d0/c0a72000243756e8f5a277b6b514fa005f2c73d481b7d9e47cd4568aa2e4/multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4", size = 253542, upload-time = "2026-01-26T02:45:50.164Z" }, + { url = "https://files.pythonhosted.org/packages/c0/6b/f69da15289e384ecf2a68837ec8b5ad8c33e973aa18b266f50fe55f24b8c/multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d", size = 252403, upload-time = "2026-01-26T02:45:51.779Z" }, + { url = "https://files.pythonhosted.org/packages/a2/76/b9669547afa5a1a25cd93eaca91c0da1c095b06b6d2d8ec25b713588d3a1/multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609", size = 244889, upload-time = "2026-01-26T02:45:53.27Z" }, + { url = "https://files.pythonhosted.org/packages/7e/a9/a50d2669e506dad33cfc45b5d574a205587b7b8a5f426f2fbb2e90882588/multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489", size = 241982, upload-time = "2026-01-26T02:45:54.919Z" }, + { url = "https://files.pythonhosted.org/packages/c5/bb/1609558ad8b456b4827d3c5a5b775c93b87878fd3117ed3db3423dfbce1b/multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c", size = 232415, upload-time = "2026-01-26T02:45:56.981Z" }, + { url = "https://files.pythonhosted.org/packages/d8/59/6f61039d2aa9261871e03ab9dc058a550d240f25859b05b67fd70f80d4b3/multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e", size = 240337, upload-time = "2026-01-26T02:45:58.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/29/fdc6a43c203890dc2ae9249971ecd0c41deaedfe00d25cb6564b2edd99eb/multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c", size = 248788, upload-time = "2026-01-26T02:46:00.862Z" }, + { url = "https://files.pythonhosted.org/packages/a9/14/a153a06101323e4cf086ecee3faadba52ff71633d471f9685c42e3736163/multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9", size = 242842, upload-time = "2026-01-26T02:46:02.824Z" }, + { url = "https://files.pythonhosted.org/packages/41/5f/604ae839e64a4a6efc80db94465348d3b328ee955e37acb24badbcd24d83/multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2", size = 240237, upload-time = "2026-01-26T02:46:05.898Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/c3a5187bf66f6fb546ff4ab8fb5a077cbdd832d7b1908d4365c7f74a1917/multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7", size = 48008, upload-time = "2026-01-26T02:46:07.468Z" }, + { url = "https://files.pythonhosted.org/packages/0c/f7/addf1087b860ac60e6f382240f64fb99f8bfb532bb06f7c542b83c29ca61/multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5", size = 53542, upload-time = "2026-01-26T02:46:08.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/81/4629d0aa32302ef7b2ec65c75a728cc5ff4fa410c50096174c1632e70b3e/multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2", size = 44719, upload-time = "2026-01-26T02:46:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319, upload-time = "2026-01-26T02:46:44.004Z" }, +] + +[[package]] +name = "murmurhash" +version = "1.0.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/23/2e/88c147931ea9725d634840d538622e94122bceaf346233349b7b5c62964b/murmurhash-1.0.15.tar.gz", hash = "sha256:58e2b27b7847f9e2a6edf10b47a8c8dd70a4705f45dccb7bf76aeadacf56ba01", size = 13291, upload-time = "2025-11-14T09:51:15.272Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/3c/5e59e29fe971365d27f191a5cbf8a5fb492746e458604fe5d39810da4668/murmurhash-1.0.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4989c16053a9a83b02c520dd00a31f0877d5fd2ab8a9b6b75ed9eba0e25c489", size = 27463, upload-time = "2025-11-14T09:49:53.158Z" }, + { url = "https://files.pythonhosted.org/packages/38/3d/ace00a9b82beaa99a8a7a52e98171cfbf13c0066d2f820e84a5d572e3bd0/murmurhash-1.0.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:899068ba3d7c371e7edd093852c634cce802fefd9aaddfcc0d2fda1d7433c7f9", size = 27714, upload-time = "2025-11-14T09:49:54.855Z" }, + { url = "https://files.pythonhosted.org/packages/10/0f/34f1c4f97424ea1bc72b1e3bdf61ac34f4c5555ec9163721f1e4cafe5b1d/murmurhash-1.0.15-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fe883982114de576c793fd1cf55945c8ee6453ad4c4785ac1a48f84e74fdc650", size = 122570, upload-time = "2025-11-14T09:49:55.977Z" }, + { url = "https://files.pythonhosted.org/packages/b9/75/0019717a16ce5a7b088fc50a3ecb513035e4196c5e569bf4a2e16bcc0414/murmurhash-1.0.15-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:342277d8d7f712d136507fb3ccdba26c076a34ca0f8d1b96f65f0daa556da2e9", size = 123194, upload-time = "2025-11-14T09:49:57.462Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a4/c1c95ce60b816c2255098164e424752779269c93f5d6dceaa213346789a2/murmurhash-1.0.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bc54facccb32fe1e97d6231edd4f3e2937467c35658b26aa35bbd6a87ebb7cb0", size = 122461, upload-time = "2025-11-14T09:49:58.686Z" }, + { url = "https://files.pythonhosted.org/packages/63/28/e1f79369a6e8d1a5901346ed2fd3a5c56e647d0b849044870c071cb64e1c/murmurhash-1.0.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e525bbd8e26e6b9ab1b56758a59b16c2fffd73bad2f7b8bf361c16f70ff1d980", size = 121676, upload-time = "2025-11-14T09:49:59.888Z" }, + { url = "https://files.pythonhosted.org/packages/1d/7c/e2be1f5387e5898f6551cf81c4220975858b9dbda4d471b133750945599a/murmurhash-1.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:2224f30f7729717644745a6f513ea7662517dfe7b1867cf1588177f64c61df3c", size = 25156, upload-time = "2025-11-14T09:50:01.016Z" }, + { url = "https://files.pythonhosted.org/packages/74/07/0df6e1a753de68368662cbbb8f88558e2c877d3886ac12b30953fb8ed335/murmurhash-1.0.15-cp310-cp310-win_arm64.whl", hash = "sha256:8a181494b5f03ba831f9a13f2de3aab9ef591e508e57239043d65c5c592f5837", size = 23270, upload-time = "2025-11-14T09:50:01.99Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ca/77d3e69924a8eb4508bb4f0ad34e46adbeedeb93616a71080e61e53dad71/murmurhash-1.0.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f32307fb9347680bb4fe1cbef6362fb39bd994f1b59abd8c09ca174e44199081", size = 27397, upload-time = "2025-11-14T09:50:03.077Z" }, + { url = "https://files.pythonhosted.org/packages/e6/53/a936f577d35b245d47b310f29e5e9f09fcac776c8c992f1ab51a9fb0cee2/murmurhash-1.0.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:539d8405885d1d19c005f3a2313b47e8e54b0ee89915eb8dfbb430b194328e6c", size = 27692, upload-time = "2025-11-14T09:50:04.144Z" }, + { url = "https://files.pythonhosted.org/packages/4d/64/5f8cfd1fd9cbeb43fcff96672f5bd9e7e1598d1c970f808ecd915490dc20/murmurhash-1.0.15-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c4cd739a00f5a4602201b74568ddabae46ec304719d9be752fd8f534a9464b5e", size = 128396, upload-time = "2025-11-14T09:50:05.268Z" }, + { url = "https://files.pythonhosted.org/packages/ac/10/d9ce29d559a75db0d8a3f13ea12c7f541ec9de2afca38dc70418b890eedb/murmurhash-1.0.15-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:44d211bcc3ec203c47dac06f48ee871093fcbdffa6652a6cc5ea7180306680a8", size = 128687, upload-time = "2025-11-14T09:50:06.527Z" }, + { url = "https://files.pythonhosted.org/packages/48/cd/dc97ab7e68cdfa1537a56e36dbc846c5a66701cc39ecee2d4399fe61996c/murmurhash-1.0.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f9bf47101354fb1dc4b2e313192566f04ba295c28a37e2f71c692759acc1ba3c", size = 128198, upload-time = "2025-11-14T09:50:08.062Z" }, + { url = "https://files.pythonhosted.org/packages/53/73/32f2aaa22c1e4afae337106baf0c938abf36a6cc879cfee83a00461bbbf7/murmurhash-1.0.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c69b4d3bcd6233782a78907fe10b9b7a796bdc5d28060cf097d067bec280a5d", size = 127214, upload-time = "2025-11-14T09:50:09.265Z" }, + { url = "https://files.pythonhosted.org/packages/82/ed/812103a7f353eba2d83655b08205e13a38c93b4db0692f94756e1eb44516/murmurhash-1.0.15-cp311-cp311-win_amd64.whl", hash = "sha256:e43a69496342ce530bdd670264cb7c8f45490b296e4764c837ce577e3c7ebd53", size = 25241, upload-time = "2025-11-14T09:50:10.373Z" }, + { url = "https://files.pythonhosted.org/packages/eb/5f/2c511bdd28f7c24da37a00116ffd0432b65669d098f0d0260c66ac0ffdc2/murmurhash-1.0.15-cp311-cp311-win_arm64.whl", hash = "sha256:f3e99a6ee36ef5372df5f138e3d9c801420776d3641a34a49e5c2555f44edba7", size = 23216, upload-time = "2025-11-14T09:50:11.651Z" }, + { url = "https://files.pythonhosted.org/packages/b6/46/be8522d3456fdccf1b8b049c6d82e7a3c1114c4fc2cfe14b04cba4b3e701/murmurhash-1.0.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d37e3ae44746bca80b1a917c2ea625cf216913564ed43f69d2888e5df97db0cb", size = 27884, upload-time = "2025-11-14T09:50:13.133Z" }, + { url = "https://files.pythonhosted.org/packages/ed/cc/630449bf4f6178d7daf948ce46ad00b25d279065fc30abd8d706be3d87e0/murmurhash-1.0.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0861cb11039409eaf46878456b7d985ef17b6b484103a6fc367b2ecec846891d", size = 27855, upload-time = "2025-11-14T09:50:14.859Z" }, + { url = "https://files.pythonhosted.org/packages/ff/30/ea8f601a9bf44db99468696efd59eb9cff1157cd55cb586d67116697583f/murmurhash-1.0.15-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5a301decfaccfec70fe55cb01dde2a012c3014a874542eaa7cc73477bb749616", size = 134088, upload-time = "2025-11-14T09:50:15.958Z" }, + { url = "https://files.pythonhosted.org/packages/c9/de/c40ce8c0877d406691e735b8d6e9c815f36a82b499d358313db5dbe219d7/murmurhash-1.0.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:32c6fde7bd7e9407003370a07b5f4addacabe1556ad3dc2cac246b7a2bba3400", size = 133978, upload-time = "2025-11-14T09:50:17.572Z" }, + { url = "https://files.pythonhosted.org/packages/47/84/bd49963ecd84ebab2fe66595e2d1ed41d5e8b5153af5dc930f0bd827007c/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d8b43a7011540dc3c7ce66f2134df9732e2bc3bbb4a35f6458bc755e48bde26", size = 132956, upload-time = "2025-11-14T09:50:18.742Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7c/2530769c545074417c862583f05f4245644599f1e9ff619b3dfe2969aafc/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43bf4541892ecd95963fcd307bf1c575fc0fee1682f41c93007adee71ca2bb40", size = 134184, upload-time = "2025-11-14T09:50:19.941Z" }, + { url = "https://files.pythonhosted.org/packages/84/a4/b249b042f5afe34d14ada2dc4afc777e883c15863296756179652e081c44/murmurhash-1.0.15-cp312-cp312-win_amd64.whl", hash = "sha256:f4ac15a2089dc42e6eb0966622d42d2521590a12c92480aafecf34c085302cca", size = 25647, upload-time = "2025-11-14T09:50:21.049Z" }, + { url = "https://files.pythonhosted.org/packages/13/bf/028179259aebc18fd4ba5cae2601d1d47517427a537ab44336446431a215/murmurhash-1.0.15-cp312-cp312-win_arm64.whl", hash = "sha256:4a70ca4ae19e600d9be3da64d00710e79dde388a4d162f22078d64844d0ebdda", size = 23338, upload-time = "2025-11-14T09:50:22.359Z" }, + { url = "https://files.pythonhosted.org/packages/29/2f/ba300b5f04dae0409202d6285668b8a9d3ade43a846abee3ef611cb388d5/murmurhash-1.0.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fe50dc70e52786759358fd1471e309b94dddfffb9320d9dfea233c7684c894ba", size = 27861, upload-time = "2025-11-14T09:50:23.804Z" }, + { url = "https://files.pythonhosted.org/packages/34/02/29c19d268e6f4ea1ed2a462c901eed1ed35b454e2cbc57da592fad663ac6/murmurhash-1.0.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1349a7c23f6092e7998ddc5bd28546cc31a595afc61e9fdb3afc423feec3d7ad", size = 27840, upload-time = "2025-11-14T09:50:25.146Z" }, + { url = "https://files.pythonhosted.org/packages/e2/63/58e2de2b5232cd294c64092688c422196e74f9fa8b3958bdf02d33df24b9/murmurhash-1.0.15-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3ba6d05de2613535b5a9227d4ad8ef40a540465f64660d4a8800634ae10e04f", size = 133080, upload-time = "2025-11-14T09:50:26.566Z" }, + { url = "https://files.pythonhosted.org/packages/aa/9a/d13e2e9f8ba1ced06840921a50f7cece0a475453284158a3018b72679761/murmurhash-1.0.15-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fa1b70b3cc2801ab44179c65827bbd12009c68b34e9d9ce7125b6a0bd35af63c", size = 132648, upload-time = "2025-11-14T09:50:27.788Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e1/47994f1813fa205c84977b0ff51ae6709f8539af052c7491a5f863d82bdc/murmurhash-1.0.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:213d710fb6f4ef3bc11abbfad0fa94a75ffb675b7dc158c123471e5de869f9af", size = 131502, upload-time = "2025-11-14T09:50:29.339Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ea/90c1fd00b4aeb704fb5e84cd666b33ffd7f245155048071ffbb51d2bb57d/murmurhash-1.0.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b65a5c4e7f5d71f7ccac2d2b60bdf7092d7976270878cfec59d5a66a533db823", size = 132736, upload-time = "2025-11-14T09:50:30.545Z" }, + { url = "https://files.pythonhosted.org/packages/00/db/da73462dbfa77f6433b128d2120ba7ba300f8c06dc4f4e022c38d240a5f5/murmurhash-1.0.15-cp313-cp313-win_amd64.whl", hash = "sha256:9aba94c5d841e1904cd110e94ceb7f49cfb60a874bbfb27e0373622998fb7c7c", size = 25682, upload-time = "2025-11-14T09:50:31.624Z" }, + { url = "https://files.pythonhosted.org/packages/bb/83/032729ef14971b938fbef41ee125fc8800020ee229bd35178b6ede8ee934/murmurhash-1.0.15-cp313-cp313-win_arm64.whl", hash = "sha256:263807eca40d08c7b702413e45cca75ecb5883aa337237dc5addb660f1483378", size = 23370, upload-time = "2025-11-14T09:50:33.264Z" }, + { url = "https://files.pythonhosted.org/packages/10/83/7547d9205e9bd2f8e5dfd0b682cc9277594f98909f228eb359489baec1df/murmurhash-1.0.15-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:694fd42a74b7ce257169d14c24aa616aa6cd4ccf8abe50eca0557e08da99d055", size = 29955, upload-time = "2025-11-14T09:50:34.488Z" }, + { url = "https://files.pythonhosted.org/packages/b7/c7/3afd5de7a5b3ae07fe2d3a3271b327ee1489c58ba2b2f2159bd31a25edb9/murmurhash-1.0.15-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a2ea4546ba426390beff3cd10db8f0152fdc9072c4f2583ec7d8aa9f3e4ac070", size = 30108, upload-time = "2025-11-14T09:50:35.53Z" }, + { url = "https://files.pythonhosted.org/packages/02/69/d6637ee67d78ebb2538c00411f28ea5c154886bbe1db16c49435a8a4ab16/murmurhash-1.0.15-cp313-cp313t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:34e5a91139c40b10f98d0b297907f5d5267b4b1b2e5dd2eb74a021824f751b98", size = 164054, upload-time = "2025-11-14T09:50:36.591Z" }, + { url = "https://files.pythonhosted.org/packages/ab/4c/89e590165b4c7da6bf941441212a721a270195332d3aacfdfdf527d466ca/murmurhash-1.0.15-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:dc35606868a5961cf42e79314ca0bddf5a400ce377b14d83192057928d6252ec", size = 168153, upload-time = "2025-11-14T09:50:37.856Z" }, + { url = "https://files.pythonhosted.org/packages/07/7a/95c42df0c21d2e413b9fcd17317a7587351daeb264dc29c6aec1fdbd26f8/murmurhash-1.0.15-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:43cc6ac3b91ca0f7a5ae9c063ba4d6c26972c97fd7c25280ecc666413e4c5535", size = 164345, upload-time = "2025-11-14T09:50:39.346Z" }, + { url = "https://files.pythonhosted.org/packages/d0/22/9d02c880a88b83bb3ce7d6a38fb727373ab78d82e5f3d8d9fc5612219f90/murmurhash-1.0.15-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:847d712136cb462f0e4bd6229ee2d9eb996d8854eb8312dff3d20c8f5181fda5", size = 161990, upload-time = "2025-11-14T09:50:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/750232524e0dc262e8dcede6536dafc766faadd9a52f1d23746b02948ad8/murmurhash-1.0.15-cp313-cp313t-win_amd64.whl", hash = "sha256:2680851af6901dbe66cc4aa7ef8e263de47e6e1b425ae324caa571bdf18f8d58", size = 28812, upload-time = "2025-11-14T09:50:41.971Z" }, + { url = "https://files.pythonhosted.org/packages/ff/89/4ad9d215ef6ade89f27a72dc4e86b98ef1a43534cc3e6a6900a362a0bf0a/murmurhash-1.0.15-cp313-cp313t-win_arm64.whl", hash = "sha256:189a8de4d657b5da9efd66601b0636330b08262b3a55431f2379097c986995d0", size = 25398, upload-time = "2025-11-14T09:50:43.023Z" }, + { url = "https://files.pythonhosted.org/packages/1c/69/726df275edf07688146966e15eaaa23168100b933a2e1a29b37eb56c6db8/murmurhash-1.0.15-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:7c4280136b738e85ff76b4bdc4341d0b867ee753e73fd8b6994288080c040d0b", size = 28029, upload-time = "2025-11-14T09:50:44.124Z" }, + { url = "https://files.pythonhosted.org/packages/59/8f/24ecf9061bc2b20933df8aba47c73e904274ea8811c8300cab92f6f82372/murmurhash-1.0.15-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d4d681f474830489e2ec1d912095cfff027fbaf2baa5414c7e9d25b89f0fab68", size = 27912, upload-time = "2025-11-14T09:50:45.266Z" }, + { url = "https://files.pythonhosted.org/packages/ba/26/fff3caba25aa3c0622114e03c69fb66c839b22335b04d7cce91a3a126d44/murmurhash-1.0.15-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d7e47c5746785db6a43b65fac47b9e63dd71dfbd89a8c92693425b9715e68c6e", size = 131847, upload-time = "2025-11-14T09:50:46.819Z" }, + { url = "https://files.pythonhosted.org/packages/df/e4/0f2b9fc533467a27afb4e906c33f32d5f637477de87dd94690e0c44335a6/murmurhash-1.0.15-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e8e674f02a99828c8a671ba99cd03299381b2f0744e6f25c29cadfc6151dc724", size = 132267, upload-time = "2025-11-14T09:50:48.298Z" }, + { url = "https://files.pythonhosted.org/packages/da/bf/9d1c107989728ec46e25773d503aa54070b32822a18cfa7f9d5f41bc17a5/murmurhash-1.0.15-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:26fd7c7855ac4850ad8737991d7b0e3e501df93ebaf0cf45aa5954303085fdba", size = 131894, upload-time = "2025-11-14T09:50:49.485Z" }, + { url = "https://files.pythonhosted.org/packages/0d/81/dcf27c71445c0e993b10e33169a098ca60ee702c5c58fcbde205fa6332a6/murmurhash-1.0.15-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:cb8ebafae60d5f892acff533cc599a359954d8c016a829514cb3f6e9ee10f322", size = 132054, upload-time = "2025-11-14T09:50:50.747Z" }, + { url = "https://files.pythonhosted.org/packages/bc/32/e874a14b2d2246bd2d16f80f49fad393a3865d4ee7d66d2cae939a67a29a/murmurhash-1.0.15-cp314-cp314-win_amd64.whl", hash = "sha256:898a629bf111f1aeba4437e533b5b836c0a9d2dd12d6880a9c75f6ca13e30e22", size = 26579, upload-time = "2025-11-14T09:50:52.278Z" }, + { url = "https://files.pythonhosted.org/packages/af/8e/4fca051ed8ae4d23a15aaf0a82b18cb368e8cf84f1e3b474d5749ec46069/murmurhash-1.0.15-cp314-cp314-win_arm64.whl", hash = "sha256:88dc1dd53b7b37c0df1b8b6bce190c12763014492f0269ff7620dc6027f470f4", size = 24341, upload-time = "2025-11-14T09:50:53.295Z" }, + { url = "https://files.pythonhosted.org/packages/38/9c/c72c2a4edd86aac829337ab9f83cf04cdb15e5d503e4c9a3a243f30a261c/murmurhash-1.0.15-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:6cb4e962ec4f928b30c271b2d84e6707eff6d942552765b663743cfa618b294b", size = 30146, upload-time = "2025-11-14T09:50:54.705Z" }, + { url = "https://files.pythonhosted.org/packages/ac/d7/72b47ebc86436cd0aa1fd4c6e8779521ec389397ac11389990278d0f7a47/murmurhash-1.0.15-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5678a3ea4fbf0cbaaca2bed9b445f556f294d5f799c67185d05ffcb221a77faf", size = 30141, upload-time = "2025-11-14T09:50:55.829Z" }, + { url = "https://files.pythonhosted.org/packages/64/bb/6d2f09135079c34dc2d26e961c52742d558b320c61503f273eab6ba743d9/murmurhash-1.0.15-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ef19f38c6b858eef83caf710773db98c8f7eb2193b4c324650c74f3d8ba299e0", size = 163898, upload-time = "2025-11-14T09:50:56.946Z" }, + { url = "https://files.pythonhosted.org/packages/b9/e2/9c1b462e33f9cb2d632056f07c90b502fc20bd7da50a15d0557343bd2fed/murmurhash-1.0.15-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22aa3ceaedd2e57078b491ed08852d512b84ff4ff9bb2ff3f9bf0eec7f214c9e", size = 168040, upload-time = "2025-11-14T09:50:58.234Z" }, + { url = "https://files.pythonhosted.org/packages/e8/73/8694db1408fcdfa73589f7df6c445437ea146986fa1e393ec60d26d6e30c/murmurhash-1.0.15-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bba0e0262c0d08682b028cb963ac477bd9839029486fa1333fc5c01fb6072749", size = 164239, upload-time = "2025-11-14T09:50:59.95Z" }, + { url = "https://files.pythonhosted.org/packages/2d/f9/8e360bdfc3c44e267e7e046f0e0b9922766da92da26959a6963f597e6bb5/murmurhash-1.0.15-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4fd8189ee293a09f30f4931408f40c28ccd42d9de4f66595f8814879339378bc", size = 161811, upload-time = "2025-11-14T09:51:01.289Z" }, + { url = "https://files.pythonhosted.org/packages/f9/31/97649680595b1096803d877ababb9a67c07f4378f177ec885eea28b9db6d/murmurhash-1.0.15-cp314-cp314t-win_amd64.whl", hash = "sha256:66395b1388f7daa5103db92debe06842ae3be4c0749ef6db68b444518666cdcc", size = 29817, upload-time = "2025-11-14T09:51:02.493Z" }, + { url = "https://files.pythonhosted.org/packages/76/66/4fce8755f25d77324401886c00017c556be7ca3039575b94037aff905385/murmurhash-1.0.15-cp314-cp314t-win_arm64.whl", hash = "sha256:c22e56c6a0b70598a66e456de5272f76088bc623688da84ef403148a6d41851d", size = 26219, upload-time = "2025-11-14T09:51:03.563Z" }, +] + +[[package]] +name = "mypy" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ast-serialize" }, + { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, + { name = "mypy-extensions" }, + { name = "pathspec" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/12/af/4e516a05d3ca2eb9283e9ec45b2c02225c1514dd6da49fd3c9eaa6639370/mypy-2.3.0.tar.gz", hash = "sha256:465965d41cd9a2726694e983e8ce7113259327bec798115d1e1dfa2a52fb666e", size = 3988104, upload-time = "2026-07-13T11:34:53.387Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/09/f2f5f45dae0c9a0891e4751a73312730e009395102e5d72a22a976cca41f/mypy-2.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1fa8d916ac3b705af733c4c1e6c9ebe38fd0d52beb15b105c3e8355b55e6ecdc", size = 14927774, upload-time = "2026-07-13T11:28:38.224Z" }, + { url = "https://files.pythonhosted.org/packages/56/b9/345367effd3a6877275a94d481614bfca983f45e028c6290e2cc54603811/mypy-2.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:28e1e2af8cd8fff551fd30f2fe4b03fb76764ac8b1ba6c6a1bd00ad32b412db3", size = 14000127, upload-time = "2026-07-13T11:30:19.57Z" }, + { url = "https://files.pythonhosted.org/packages/99/6c/a10b7a7b9f0a755fb94e27ae834d4cea9ad6c5221f9325eef8f182641feb/mypy-2.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3e77244df3843048c3f927182916730e40c124cbaa43905c1fb86cb382aa0805", size = 14229437, upload-time = "2026-07-13T11:28:17.765Z" }, + { url = "https://files.pythonhosted.org/packages/d9/bd/a26a602acb1bbf849fa4bdac4bc657ee2f11c0c2a764a2cc87a5304e865c/mypy-2.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9559ab18a9c9957dfa3004ab57cd4bac5f26a724329a9584e583367f0c2e1117", size = 15171457, upload-time = "2026-07-13T11:29:01.834Z" }, + { url = "https://files.pythonhosted.org/packages/7f/14/124f462bef69bcbc90b9358088460b6091954a3e004852fcd9948db617a5/mypy-2.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:09abd66d8685e73f8f7d17b847c3e104d9a7b164a8706ea87d6c96a3d45816d5", size = 15478281, upload-time = "2026-07-13T11:32:23.413Z" }, + { url = "https://files.pythonhosted.org/packages/db/a4/8bdca6a8ac8d856d82ed049144af2721245a135c2e8001d3890c93975852/mypy-2.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e91adad1ca81742ac7ef9893959911df867752206b37135185e88dfb3c89494", size = 11148008, upload-time = "2026-07-13T11:34:17.332Z" }, + { url = "https://files.pythonhosted.org/packages/83/41/490eea348e60ba50decec20bc750605444149a5d7a8cc560042f90ba2c75/mypy-2.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:6f99ec626e3c3a2f7c0b22c5b90ddb5dabb1c18729c971e9bdaca1f1766d2cee", size = 10142329, upload-time = "2026-07-13T11:32:52.116Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b9/d75b3082b05f1b3028828aeb18e74ae5ab0a0936051bbf1f32f59f654747/mypy-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3419d00717afbc5265b50dd14b1278f29ea4884dd398ab67873489ac093fd329", size = 14838725, upload-time = "2026-07-13T11:32:44.655Z" }, + { url = "https://files.pythonhosted.org/packages/a9/50/79a65c6ea6e115bc73296038a4543b2d5c91f07912b918a2c616a2514bba/mypy-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cfca8ee88544090f86b6dcce05ec55d66eb48a762412ac2507810ba4bd793b6f", size = 13911128, upload-time = "2026-07-13T11:32:02.021Z" }, + { url = "https://files.pythonhosted.org/packages/90/48/e11ed7716c26953ca321f726e452e374dbf81a6f2b8b212ec02af29b6b8f/mypy-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:75cbb4b9ef04a0c84a957f07abc4504fbf64b8dcc145675101f2d3a78a4b1d6a", size = 14146742, upload-time = "2026-07-13T11:33:03.313Z" }, + { url = "https://files.pythonhosted.org/packages/06/72/6807565b1c4861ef66f7fdd98b51c61556356eab80235717b46c53bb8627/mypy-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:982e3d53dd23d0a4cef67dd66791fdbede0cf38f9eb617bf47663554c51e1e36", size = 15081418, upload-time = "2026-07-13T11:31:13.899Z" }, + { url = "https://files.pythonhosted.org/packages/00/80/1ea14c5d80e589e415973db3e47c78c2219a305b808b2b506395342c1d79/mypy-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:85c5385b93012ffa3b31479ab579aef5415f4f3a32c6cf1ae07a984d2a0ff461", size = 15328164, upload-time = "2026-07-13T11:31:35.723Z" }, + { url = "https://files.pythonhosted.org/packages/37/28/8223157404a3d51920078459c37f80fbdc590e1d8ea049dc5ce48643022a/mypy-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:13b1b16e2fa39f3b2e33fb1c468abc7a69369fa2e886b4b87b5afc81472325cd", size = 11136472, upload-time = "2026-07-13T11:27:37.018Z" }, + { url = "https://files.pythonhosted.org/packages/6f/cc/ea27e5959c5f258585a756b252031f3b313583d81b5064b2bebc41d3706b/mypy-2.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:b5cd2f027a972a4a5f2278a11fac9747f5f81a53a30b714d74950b6807e55568", size = 10135800, upload-time = "2026-07-13T11:30:08.92Z" }, + { url = "https://files.pythonhosted.org/packages/dc/94/0e7e592619e2133596a47cdd642534b0456545c218430bd3b9d8fefdd1b1/mypy-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2d53fc67b9d28a43c6199077f49fea0f05839e36cf6158500331c9549225e5a5", size = 15026523, upload-time = "2026-07-13T11:34:49.206Z" }, + { url = "https://files.pythonhosted.org/packages/f6/d2/1e1731df090a857df2807177a4626863e5ac0f0256513c35780efe53986f/mypy-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fbc00cee7bdbb9291979ddc9d08034a29dfcda4932628c9bbc28c1edd589df0c", size = 14032189, upload-time = "2026-07-13T11:33:57.168Z" }, + { url = "https://files.pythonhosted.org/packages/44/95/cab921f4a806e171f34113e6181dd23c55358ccf6a80741269ef594a410e/mypy-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:04e617030eca5221909c8b7d8d7fd1c637948199aa2100b2ad9813feb07e1491", size = 14198696, upload-time = "2026-07-13T11:32:12.767Z" }, + { url = "https://files.pythonhosted.org/packages/66/80/e6d008bb19fe446e3662d85e0e2717bf9f2d611a2164fb29d6e067dbf46c/mypy-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56c184d2c20ca6b6378d58d1960270a767f41f5e44acbbd27f05effef4f4e1d7", size = 15286904, upload-time = "2026-07-13T11:34:27.594Z" }, + { url = "https://files.pythonhosted.org/packages/db/83/94397c9293608a364aa03e8084fb34ede4ae976a260384b9b52929308135/mypy-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3961a4a34b05f7c74b0f05aa51fbfe99a2d1e126038df40318d15c8f558b7ef3", size = 15528342, upload-time = "2026-07-13T11:34:07.819Z" }, + { url = "https://files.pythonhosted.org/packages/cf/96/d8b37d819adec6cfccfb1fd3afc1735d94717ddeafb45536db9c6943e09b/mypy-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:b1942b9314d4c784b8ea1dbab4972603290e5dd5630f06675f13aec97526bc4c", size = 11218346, upload-time = "2026-07-13T11:28:27.745Z" }, + { url = "https://files.pythonhosted.org/packages/2b/cd/cd9f725b19b19e5b530a154cf9bcf9e94279c5d55b3c34fb42b3aa48ea1b/mypy-2.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:be51653d7669d7d7955d613b8d0bb57d5b652eaf71a873ddf65ac87254dd2595", size = 10204525, upload-time = "2026-07-13T11:31:02.552Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ae/f7d056eb0294586a572d0d0d89580ec633c064db520f11d37d5a2fb833bd/mypy-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:91ad22a52ae2c7e621c2f67c94d5a17f66b3209a4cff5cf8a573579835c69e97", size = 14947298, upload-time = "2026-07-13T11:27:47.734Z" }, + { url = "https://files.pythonhosted.org/packages/32/d5/db3e7af01e7844d21662c6ddc1f7825ec7cb4053f0391ac02faf3638396f/mypy-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:99ac767cc5d3b64c8d0ae226ead10c96694f94e4e7da1668642225dcd4e75aac", size = 13950768, upload-time = "2026-07-13T11:27:57.726Z" }, + { url = "https://files.pythonhosted.org/packages/d9/fb/43c031f0190513d1ec248ed037eceb742ddd2a4d74bbf406658a28173837/mypy-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de6d2c484742a4d7b0ed6d07b143375624d3b899c5749c7b3c947f56261f48a6", size = 14151586, upload-time = "2026-07-13T11:29:18.615Z" }, + { url = "https://files.pythonhosted.org/packages/ec/c3/f8b2ffc60883084da91be51af58e88a7ffd4ff9795acb7d902ff88d31eb1/mypy-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7da939dd335cfd2ad788bdfd081c9f4e47634ab995e5a45eb15fd1e5bc052f8b", size = 15227411, upload-time = "2026-07-13T11:30:29.904Z" }, + { url = "https://files.pythonhosted.org/packages/83/2e/16b917fc7adcf03f1aadddfc93aab804ffb234b1ab09c0ffd6d92a5d34a2/mypy-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7247eb2824f996722a949530183394921ca71deb9680052a338cf53cff7925c2", size = 15478790, upload-time = "2026-07-13T11:33:14.686Z" }, + { url = "https://files.pythonhosted.org/packages/c0/88/aaa65a93c73d0cdae7e42f8adb302bf6885bb281302084f99d0290a35347/mypy-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:75b0984bb3cbd76bb5c9291a8671f7ae66ca3b51c7584c358fc2e923259f0757", size = 11234919, upload-time = "2026-07-13T11:33:39.28Z" }, + { url = "https://files.pythonhosted.org/packages/35/19/b40de63f1a80e63bc2d40f0679a6a8dbd34e95176c8122119bdf406aa552/mypy-2.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:d78fcf900b59cb7e82cb7e3a235e31b462d9333d92285bd1e4952d355b8ffba1", size = 10201510, upload-time = "2026-07-13T11:31:52.619Z" }, + { url = "https://files.pythonhosted.org/packages/a4/58/fa0ae047da911f540284009b4f44b96fe09d83c076d7c103e9d645f46303/mypy-2.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ea317b060ce83e26050f8f9e4d7d6bf44ed7597c8ff9990bccffbb9d1d8522db", size = 14941909, upload-time = "2026-07-13T11:32:34.332Z" }, + { url = "https://files.pythonhosted.org/packages/15/14/2ba1d61452d7c2a7fe12741e8d374e52b183476b07aa7f9e2a0d02b0720a/mypy-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:094af99f92638aa92852326188b85a89e50f4a472f44827c03362228482f0762", size = 13967581, upload-time = "2026-07-13T11:30:00.587Z" }, + { url = "https://files.pythonhosted.org/packages/ed/5a/483fb9e5ffbbb1a28dccc7b0a13d141b17ac769b6c9f488c0a0c63698962/mypy-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de121747278144fc9ae7caa2e978cf5df12aebc82933182f5b3b86081a30baef", size = 14168807, upload-time = "2026-07-13T11:28:48.6Z" }, + { url = "https://files.pythonhosted.org/packages/ae/77/70d7a10732063beb74ad713682cf871e88f5c5fa39bfc8beff8a524bf9cb/mypy-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:37fa4de896a84e2dc9200d91e614c22563b43d1a266789d4bbac7b22ebe6192b", size = 15200144, upload-time = "2026-07-13T11:31:25.283Z" }, + { url = "https://files.pythonhosted.org/packages/56/72/766218ac783be4fdfcd699b90037b63017348a3e86fb2c1fbfb18302637d/mypy-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f1b3a98dfd21058bc759bb3337d5d1f61d0fdf9f3cf9c00f4291790fb5427bff", size = 15460389, upload-time = "2026-07-13T11:29:29.077Z" }, + { url = "https://files.pythonhosted.org/packages/38/4e/8a9db7411ecb8ec0cb1fd05dba432f28bafffcd38b4e887714a4a0506689/mypy-2.3.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:944c665d984157cb96a679dfb7a4a81dd1d36b24b9c284b699514e6e626b82d4", size = 7753664, upload-time = "2026-07-13T11:29:08.147Z" }, + { url = "https://files.pythonhosted.org/packages/65/4c/c3f8bfd6ed0e5e38b5a244403b27f821d433443df5a15a278417c10a3a3c/mypy-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:4359424140d985192c778c1ce2c114a10c1ca58a381ed79cfa70d37df94b299f", size = 11417237, upload-time = "2026-07-13T11:33:47.467Z" }, + { url = "https://files.pythonhosted.org/packages/3c/00/89a32eaf5ccf174bc4f90db0eaea5d70636c01b8d49f384bdab2e8834390/mypy-2.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:3dd0bed92c4bdec57c42505b96416fb9e6a5aa7be84d2809bcd5f2ecec2860d7", size = 10389252, upload-time = "2026-07-13T11:31:43.81Z" }, + { url = "https://files.pythonhosted.org/packages/31/56/104f93d69aa9f339b6b9d3b0a7faa699b8b466c942cf3ae86cc2a2ec0915/mypy-2.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:691fdc37132b1ae628d834f672e74de83462d9fb4aff621835767fb43a8dd373", size = 16385495, upload-time = "2026-07-13T11:29:49.818Z" }, + { url = "https://files.pythonhosted.org/packages/d2/03/f1d2123313f55efafdd27706960f43a771c62f1b68426c76043f3ab9ebf3/mypy-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:aec15d465d477558fd842757b487849007311cf3897849cdda0e3162ac0ac556", size = 15098155, upload-time = "2026-07-13T11:30:40.301Z" }, + { url = "https://files.pythonhosted.org/packages/e5/5d/d5f9200399b445e81726c4f23becee33f233aee81c72680b1ef3a258b641/mypy-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b352b7e49f5e6576009e8df730e1ff4f915cb565b851b396d2ffe2f5a6f5da88", size = 15514155, upload-time = "2026-07-13T11:34:38.569Z" }, + { url = "https://files.pythonhosted.org/packages/cd/ce/69977c555f08faa3190cfde44189b89dbd56861b1ab97aa18fc5f3a2e4a3/mypy-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c6c6bf687b17f90dbfcad95b960d32eaa0154c00da45f03ab50bf8952e047fe", size = 16766351, upload-time = "2026-07-13T11:33:29.195Z" }, + { url = "https://files.pythonhosted.org/packages/bc/92/6648b6caa3ab9e00f9ac0c2a78307805f873dd48139b24a6f6f7c3667bbf/mypy-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f4ed18f111bfe2d599bca7468e7f9251042c1c2118f762c8de2766a56d773c60", size = 17043490, upload-time = "2026-07-13T11:30:53.927Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ab/0dc91d80f3f016634c68d451f294a97320fe903a9b6f90b9e57b3f7f1717/mypy-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0b025a93cffb9781d231f232be07a17912f35f10a313c24f301c81e842870654", size = 12146869, upload-time = "2026-07-13T11:29:38.874Z" }, + { url = "https://files.pythonhosted.org/packages/85/b5/4c964d02634ba81f4d1c84838e5c5b18ab06d13ed568960f5d6318495ccc/mypy-2.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:adebc76aab4f3495a88b41d48aa4aff0c03f2822501da76625afcca5975f19e5", size = 10965113, upload-time = "2026-07-13T11:28:07.056Z" }, + { url = "https://files.pythonhosted.org/packages/2c/fa/fdc54fe583ba3cafbcedfb70eeeaf03849f75b1827a07096c7bd996f582d/mypy-2.3.0-py3-none-any.whl", hash = "sha256:6b1cdb579446b60432432b2b2403a6201b4b475a004d7f488511c9ba177c9e88", size = 2753292, upload-time = "2026-07-13T11:33:18.48Z" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, +] + +[[package]] +name = "networkx" +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368, upload-time = "2024-10-21T12:39:38.695Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263, upload-time = "2024-10-21T12:39:36.247Z" }, +] + +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform == 'win32'", + "python_full_version == '3.14.*' and sys_platform == 'win32'", + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "nh3" +version = "0.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/1b/ef84624f14954d270f74060a19fc550dd4f06656399447569afb584d8c06/nh3-0.3.6.tar.gz", hash = "sha256:f3736c9dd3d1856f80cd031715b84ca75cda2bbb1ac802c3da26bfce590838d7", size = 24684, upload-time = "2026-06-22T00:47:02.008Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/3e/6506aa4f23dc7b7993a2d0a45dca3ce864ec48380adfe15a173e643c63e8/nh3-0.3.6-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:2411e8c3cee81a1ddd62c2a5d50585c28aa5566d373ad1db92536b95ddb24ef2", size = 1421679, upload-time = "2026-06-22T00:46:20.248Z" }, + { url = "https://files.pythonhosted.org/packages/e3/e1/e96e7864a7a53bd6b6fab7e9632467382a2a2c1f3fed951918ad131542fb/nh3-0.3.6-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e196fa70c2ff2eb4de7d3df3108f8f358c1d69dff20d45b11f20a5aa227ffb6d", size = 792570, upload-time = "2026-06-22T00:46:22.179Z" }, + { url = "https://files.pythonhosted.org/packages/59/62/5b6108bedaef2b2637fed04c87bdbcb5967b9961758b41f0e466ef22a022/nh3-0.3.6-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:34d2b0d934156b87ee114f599a3ba9b8b9e17b5d79652ba3a13fa50903de965e", size = 842243, upload-time = "2026-06-22T00:46:23.801Z" }, + { url = "https://files.pythonhosted.org/packages/4b/4a/526f199626bfcb496bc01a268051b44737962005553b158e985ed7e64865/nh3-0.3.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f2f14b7ae1fca99c4a66c981aac3974e7fbc1ca30a12673d223ae1df76680917", size = 1001468, upload-time = "2026-06-22T00:46:25.481Z" }, + { url = "https://files.pythonhosted.org/packages/49/09/0d8e3101636d9ad88cdefb2914e764cb8e876ebdbb4286bfc251277d9c67/nh3-0.3.6-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:889932a97fb4abb6f95fef1914c0d269ebfb60011e67121c1163059b9449dbb4", size = 1082933, upload-time = "2026-06-22T00:46:27.15Z" }, + { url = "https://files.pythonhosted.org/packages/09/a1/ea83abe738a3fbaa203dfdb836ca7cbab0e7e9609faaee4fe1d4652599c0/nh3-0.3.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:edb2b4a1a27523e6cc7c417f8d21ce3d005243548b93e56b762b66b0c7f589f9", size = 1043120, upload-time = "2026-06-22T00:46:28.89Z" }, + { url = "https://files.pythonhosted.org/packages/66/69/0654482b8635012fbae67826bd6c381abb05d841ac7388b9b4666300fdad/nh3-0.3.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:43bc1ed3fa0716295fabee29ba42b2667e4a51d140b0a68e092170a765474fa6", size = 1023824, upload-time = "2026-06-22T00:46:30.453Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a6/1f7285ffadc8307c4dbeb08d21b920536d5117785056d1079e998c4dfa44/nh3-0.3.6-cp314-cp314t-win32.whl", hash = "sha256:597a8e843bea00b2eb5520658dc24a9bb032e7fc9e7c2c0c4cd29420220c9796", size = 599253, upload-time = "2026-06-22T00:46:32.072Z" }, + { url = "https://files.pythonhosted.org/packages/36/ea/5542f3c45da4c00290d9d67a65e996702e23e613c4b627de3e09cb9fe357/nh3-0.3.6-cp314-cp314t-win_amd64.whl", hash = "sha256:4713502748f564fee0633b37b3403783ce0a3af3a3d148ad91025a5bdadb7bc6", size = 612553, upload-time = "2026-06-22T00:46:33.53Z" }, + { url = "https://files.pythonhosted.org/packages/66/35/26bd47e6af5915a628281dccdac354ddf4e32f7397047894270acd8c9870/nh3-0.3.6-cp314-cp314t-win_arm64.whl", hash = "sha256:69bbb92865a693d909db3a700d3c01537533844d0948c1e9323561ce06ecda41", size = 595151, upload-time = "2026-06-22T00:46:34.878Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ab/a7653bce9a3b204be6a6931767a9e23595807bb84790ce6685e4d7e5bd08/nh3-0.3.6-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:a43ebd7543555c3ac1bc353023d0794e75cb76f6f18f19c32e95441496c0cc25", size = 1443564, upload-time = "2026-06-22T00:46:36.66Z" }, + { url = "https://files.pythonhosted.org/packages/41/21/e1084ab18eb589506335c7c7576f2d4643e9a0c0e33983ef0e549a256b96/nh3-0.3.6-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1b160831c9cdb06a6c79c2f9cdb11386602938f9af260d1c457a85add4f6f69", size = 838002, upload-time = "2026-06-22T00:46:38.101Z" }, + { url = "https://files.pythonhosted.org/packages/b0/94/f48d08e6f72a406300fa11d8acd929fea1a80d4bf750fa292cb10785f126/nh3-0.3.6-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d14bf7982e7a77c0c775634c29c07ce08b38a046df73e1c1f139b3e82f18a38e", size = 823045, upload-time = "2026-06-22T00:46:39.495Z" }, + { url = "https://files.pythonhosted.org/packages/25/bb/431615ba1d1d3eb63cde0f974f2114edf863a8a3f6049a12fed23fc241d3/nh3-0.3.6-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:44673b27010051ab5a5e438a86ec31bbda61d4a77d7e900af6b7be3037c1abae", size = 1093171, upload-time = "2026-06-22T00:46:41.21Z" }, + { url = "https://files.pythonhosted.org/packages/0e/24/a0d80182a18919665fefd19c1c06f1d1df1c9a6455d0252de40c034a0bc3/nh3-0.3.6-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6b7beece07525dc6e6b0fc2f104442de2ba328360ad00e50cbe2e1fd620447d", size = 1049217, upload-time = "2026-06-22T00:46:42.804Z" }, + { url = "https://files.pythonhosted.org/packages/0a/13/6f1e302ca674ac74362e150848ad56a1be5145391204f74facdb8e94df12/nh3-0.3.6-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:455469a29951edc92bc48b47ac2281c3f2609e6c4f6a047056449f8c2c23facf", size = 917372, upload-time = "2026-06-22T00:46:44.495Z" }, + { url = "https://files.pythonhosted.org/packages/5b/67/314f6151bad77a93d751978a344033e1fc890822f05f0416079338e34231/nh3-0.3.6-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:905f877dc66dd7aea4a76e54bcb26acb5ff8216f720c0017ccf63e0e6035698e", size = 806699, upload-time = "2026-06-22T00:46:45.99Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a6/bfaa00046e58603507dcfc266c4778e3ab7adf68a5dedd73b6274b8d9314/nh3-0.3.6-cp38-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:25c733bee928530556b1db0ea46c52cf5aa686146e38e60a6fc7cb801ef91cec", size = 835165, upload-time = "2026-06-22T00:46:47.617Z" }, + { url = "https://files.pythonhosted.org/packages/30/a8/fb2c38845efb703a9173bffdfc745fc64d2b0e55cfc73a3647d2f028250c/nh3-0.3.6-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2f90d9a0cfdbee218994fdaaeeb5a0fde62d08f35e4eef0378ec1e2200172fd0", size = 858282, upload-time = "2026-06-22T00:46:49.276Z" }, + { url = "https://files.pythonhosted.org/packages/68/17/06e72a18ee9b572914447338237ca7eb164c0df901f141bc10d1282247a2/nh3-0.3.6-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:82ca5bf427ad1b216b65ede1a2e2d87dc49bec417ceba0f297213107d3cd9d78", size = 1014328, upload-time = "2026-06-22T00:46:51.026Z" }, + { url = "https://files.pythonhosted.org/packages/11/f9/3966c61455668c08853bf5e33b4bed93c421f3194ce4de896dc248d6f6ce/nh3-0.3.6-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:f5ed5fe84aee7f39db95c214a7421bf0499fbf500fec6d86a4e29bfc37971438", size = 1098207, upload-time = "2026-06-22T00:46:52.674Z" }, + { url = "https://files.pythonhosted.org/packages/19/d3/479cb4ae440424825735d60525b53e3c77fd60fd6e6afc0e984f00eb0178/nh3-0.3.6-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:082675ff87b9385ec430ffe6d5847ba7456cc39b73720cd4add472f9f4cffd56", size = 1056961, upload-time = "2026-06-22T00:46:54.335Z" }, + { url = "https://files.pythonhosted.org/packages/17/0c/6cdb5ee1e127be50dc8391e54bddc1f64e87bf4bfad0c55633320e2e02db/nh3-0.3.6-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36d06341bd501240d320f5942481ed5e6846136b666e1ba4faf802b78ebc875f", size = 1033829, upload-time = "2026-06-22T00:46:56.258Z" }, + { url = "https://files.pythonhosted.org/packages/e9/55/9de666ad975d6ccd77d799ea0add55ee2347aa81286ce21b2a97c070746b/nh3-0.3.6-cp38-abi3-win32.whl", hash = "sha256:5276ef17bdba9ad8040575c74072008b13aae429436e9d0429e718bb5f90f4da", size = 609081, upload-time = "2026-06-22T00:46:57.665Z" }, + { url = "https://files.pythonhosted.org/packages/82/fa/2b5d684e3edf1e81bfd02d298c78c3e3da77ca1d8a2be3183a79544a7548/nh3-0.3.6-cp38-abi3-win_amd64.whl", hash = "sha256:f338ac7d594c067679f1e99b4f5ec3906842979560f9d8f15d6bdfa39a353b10", size = 624461, upload-time = "2026-06-22T00:46:59.163Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e5/7cafee2f0413ca4cb0ef3bd111e94d408a48810008b283ad8aee00dd1809/nh3-0.3.6-cp38-abi3-win_arm64.whl", hash = "sha256:69f365963f63a1e9bff53bdbb3c542c7c2efed3e163c9d5d83a772a2ac468c21", size = 603060, upload-time = "2026-06-22T00:47:00.596Z" }, +] + +[[package]] +name = "nltk" +version = "3.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click", marker = "python_full_version < '3.11'" }, + { name = "defusedxml", marker = "python_full_version < '3.11'" }, + { name = "joblib", marker = "python_full_version < '3.11'" }, + { name = "regex", marker = "python_full_version < '3.11'" }, + { name = "tqdm", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/96/02/df4f105b28a7c16b0e41423bc09cf0f1b8a305df4ef0b10ca74a2e4c648c/nltk-3.10.0.tar.gz", hash = "sha256:4fbac1d98203cbcd1b5d94a2877fb822300072d80604a5e7fae49d2c5f84e8c1", size = 3089244, upload-time = "2026-07-08T02:39:13.562Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6e/89/a0b0f35e2820d6a99d75ea1c11977ee6d5c9e6658eceb45b0c7620881faa/nltk-3.10.0-py3-none-any.whl", hash = "sha256:54ff84d4916d3ef127e8953bee0023f6a6b320b75d634a19e06ef056d3d244bf", size = 1716144, upload-time = "2026-07-08T02:39:09.753Z" }, +] + +[[package]] +name = "nodeenv" +version = "1.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb", size = 55611, upload-time = "2025-12-20T14:08:54.006Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827", size = 23438, upload-time = "2025-12-20T14:08:52.782Z" }, +] + +[[package]] +name = "numba" +version = "0.66.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "llvmlite" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/a0/570e3dc53e5602b49108f62a13e529f1eec8bfc7ef37d49c825924dcf546/numba-0.66.0.tar.gz", hash = "sha256:b900e63a0e26c05ea9a6d5a3a5a0a177cb64c5011887bf43edb8c3ed2c38d363", size = 2806181, upload-time = "2026-07-01T23:12:46.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/48/d139bde40f2359351bfe26ee1b261937f458ac177ab810d4f045ae1c9d92/numba-0.66.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:27951c47e0def9bf8afe580eb961102902e2fd23cb77924b7d9d7cc0f8b444cb", size = 2727368, upload-time = "2026-07-01T23:12:04.282Z" }, + { url = "https://files.pythonhosted.org/packages/36/e4/b780bfa9191410da50ba249cb3248a75014e17f611e72709cbddcb21f42d/numba-0.66.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc408c54b450f41582f4be1608f8981c1dcc44c7f40355cc150dd93015753407", size = 3803554, upload-time = "2026-07-01T23:12:06.379Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b2/a051b96626bdf5c4d8fa6b8d450605c09638d85dc872ab63ef9a67096dca/numba-0.66.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c14c044c06b453ec3fa7715dfe75425e2ba72c73377a7ffde6d9ec511dfd94c", size = 3510065, upload-time = "2026-07-01T23:12:08.051Z" }, + { url = "https://files.pythonhosted.org/packages/34/01/24dcdc3e919522e2efbd92969c281ff40deb1d5f8a994bcd0057081c158c/numba-0.66.0-cp310-cp310-win_amd64.whl", hash = "sha256:2338cc0d43609fe448930848fd35a5bc688761b986f81b597a6f45cc0f8c9577", size = 2780379, upload-time = "2026-07-01T23:12:09.772Z" }, + { url = "https://files.pythonhosted.org/packages/9e/02/970796b4daa709604cde22e87a7cda9bde473c278ea4a75f59fe38cee47f/numba-0.66.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:bbd531c327557a9004507fa6bff06c53ab51a7a5776b75261bb9cef1efe2b2ea", size = 2727049, upload-time = "2026-07-01T23:12:11.296Z" }, + { url = "https://files.pythonhosted.org/packages/8c/99/33a6ed9c1a0b5e42efa98eb0edf617d61dca576c82625947377b1d4540c9/numba-0.66.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc6629becb21a867d85401ec89f426dd24c484a4193ade8a38309debfd1529ca", size = 3808870, upload-time = "2026-07-01T23:12:12.944Z" }, + { url = "https://files.pythonhosted.org/packages/04/20/8c51126025211659235b8de2866dfa226984ae0c8273461a3cf374716741/numba-0.66.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aac69f3ccb8af100f5913c1241edc9692bad1cdd2508721713f426eb06c9a659", size = 3514498, upload-time = "2026-07-01T23:12:15.307Z" }, + { url = "https://files.pythonhosted.org/packages/5e/c9/9476940bc6d5caf5c0cf2e4c5feecbf01244bbe6f914614082dd7a3e520e/numba-0.66.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb601841d9e02e6237bb6522e36d0741614be3cfe2b482a6f00a41b5ba209443", size = 2780225, upload-time = "2026-07-01T23:12:16.924Z" }, + { url = "https://files.pythonhosted.org/packages/62/a3/70deb7f88461c1cd5d16aa990c2380604102661a427667b8950dcdccc27f/numba-0.66.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:53ca5900b7cab15109796030113a6b28576bae5ad7bb507ad6dd1360ddd81ba4", size = 2727264, upload-time = "2026-07-01T23:12:18.669Z" }, + { url = "https://files.pythonhosted.org/packages/2d/55/25c319845e9a4e08f16611ddbda56a192eb7b6ed13e1a2bff2da272ffb97/numba-0.66.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0999e3ee1b18c48e1fb51d11af35ef59852c7f4f50569c9550c25faef0616ad1", size = 3866252, upload-time = "2026-07-01T23:12:20.429Z" }, + { url = "https://files.pythonhosted.org/packages/71/ef/a82d6fd6bf1b0fe461651e924d3647eeec9ac17f8eee4896264bf7480930/numba-0.66.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:efe0d2d5099790df945e0cb6e1b3104bd965d7bbfac50d62f1d5d1d6ade0825d", size = 3566974, upload-time = "2026-07-01T23:12:22.116Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/9e6171e378822ab191c7abcfd3d8cfc8644516f6c7834c22e210e4acc070/numba-0.66.0-cp312-cp312-win_amd64.whl", hash = "sha256:b075a4e7ebc43dc6294f223e2821659656209fd5e0ce53245877c23d66d6e1a9", size = 2797403, upload-time = "2026-07-01T23:12:23.724Z" }, + { url = "https://files.pythonhosted.org/packages/03/52/176c02d005c5c5143cde10a85bbcdcb6236d9e34c3aac089380e0506cd1d/numba-0.66.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:380b2556a2019ccd1e956ae77dd257eaa39403f7520768b626d44b755112785e", size = 2727084, upload-time = "2026-07-01T23:12:25.434Z" }, + { url = "https://files.pythonhosted.org/packages/44/b5/e930010965568fe7f2c6c962fd2849d458cb9f62c3ab7584af8a19a2b40a/numba-0.66.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:939316d5d8619751207b8972a67852b5a7646665298cb4de693cd6bf135152f4", size = 3873663, upload-time = "2026-07-01T23:12:27.308Z" }, + { url = "https://files.pythonhosted.org/packages/d0/ec/5b51457cbe96e4831141d83e892e65191b23a1b78728456c62909d231ace/numba-0.66.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cdf506775d9f02eb92a87bf5c5b1e0d25506fd18cafd769f4ed914a8feac73e7", size = 3573529, upload-time = "2026-07-01T23:12:28.944Z" }, + { url = "https://files.pythonhosted.org/packages/83/7e/cea7710e96913d3c7f2999f16db1b28e6c5be5171cbf40f77f98333a7243/numba-0.66.0-cp313-cp313-win_amd64.whl", hash = "sha256:c5bfe5350284509ab0474390321454c3a8627a188af5b68c910e83df3e2db4a7", size = 2797247, upload-time = "2026-07-01T23:12:30.774Z" }, + { url = "https://files.pythonhosted.org/packages/96/7a/7e0e73550eb4e41ede6e72fb5371f4539537a4d770a3b73fa9b61aea0622/numba-0.66.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:46ae5f2b19e2af3c33c2df100306a90ea2f981c8158b0390f8bf6c20eee7357e", size = 2727296, upload-time = "2026-07-01T23:12:32.39Z" }, + { url = "https://files.pythonhosted.org/packages/0f/26/885774c006de6620ed3d10f45d8e20fe0b8e6aad6d573211a2cbc8b3e528/numba-0.66.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e2b101f23b8b63978d334574d2039f27f0dccfe1d891756f33a2e2f3e4c88cf4", size = 3842720, upload-time = "2026-07-01T23:12:33.938Z" }, + { url = "https://files.pythonhosted.org/packages/93/99/edebf7de890b73973d839dd971cf73734adfb81ffa1b4504f84b9059c3e5/numba-0.66.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:63b943eb2c9ba371908ce2cd6dfc643db51fc40f7966993376a1701bc922f537", size = 3543537, upload-time = "2026-07-01T23:12:35.566Z" }, + { url = "https://files.pythonhosted.org/packages/66/c5/b46ad28ac3681d035ea21365c5e052149062e1a0a9affd0563d2760ea6ff/numba-0.66.0-cp314-cp314-win_amd64.whl", hash = "sha256:bd57790acd20f6a468e0ad333ef6b82355e309a92310fb7dff80e919f01a21a9", size = 2799250, upload-time = "2026-07-01T23:12:37.154Z" }, + { url = "https://files.pythonhosted.org/packages/10/6f/5e77a7397a37dd16f57a7b72e7e470db5227b68e3639df0d13a8e674883d/numba-0.66.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:db7735d15ea17a283d6485b9fa3504769f78fd86e5146638ad5e8da57c031b9e", size = 2730342, upload-time = "2026-07-01T23:12:38.758Z" }, + { url = "https://files.pythonhosted.org/packages/39/fd/e9c9680a3813f3d781c20e5d53c1074801b787d4feecca0472fdd7c05ce1/numba-0.66.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:651a2b53298340956db26ecbe7ab043106b50a40c2807e66d617a4917245a4ab", size = 3878695, upload-time = "2026-07-01T23:12:40.302Z" }, + { url = "https://files.pythonhosted.org/packages/61/3a/9b363287b85fcd4537ea3878793822878b2ac1008a78159d2096fea628de/numba-0.66.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8c1144ba1720ea59ad79f4f488ed54d149b2613b357f7e445678b7d0739c70e9", size = 3596323, upload-time = "2026-07-01T23:12:42.805Z" }, + { url = "https://files.pythonhosted.org/packages/4c/f2/dca53d50b8f2289dd01954ace9da261e0487d5b74b188b4304e4ecc3492c/numba-0.66.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d426178fb991a85714c43112a8ea7b9d9579ea856ad8dcdb9c1c3941903ba5be", size = 2804772, upload-time = "2026-07-01T23:12:44.399Z" }, +] + +[[package]] +name = "numpy" +version = "2.2.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform == 'win32'", + "python_full_version == '3.14.*' and sys_platform == 'win32'", + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda", size = 20735807, upload-time = "2026-05-18T23:37:14.07Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/49/ec46835a70be8fa6446c495126ac84fdb28cb2558e1620ffb87a10c8b64c/numpy-2.4.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4", size = 16969194, upload-time = "2026-05-18T23:33:13.503Z" }, + { url = "https://files.pythonhosted.org/packages/0e/0d/f5957185c0ee2f3e12f78715aa9e3b353fd83633316c8532b38faa37e3f6/numpy-2.4.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d", size = 14964111, upload-time = "2026-05-18T23:33:17.795Z" }, + { url = "https://files.pythonhosted.org/packages/ad/40/40a40ee0ddf7ceb782c49af278894b686e586d65d8c1889c8b5da01a3d7d/numpy-2.4.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8", size = 5469159, upload-time = "2026-05-18T23:33:20.654Z" }, + { url = "https://files.pythonhosted.org/packages/63/13/f9a8046535cb21deae82f8d03de9617e08882d274fad2539630761888228/numpy-2.4.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538", size = 6798936, upload-time = "2026-05-18T23:33:22.987Z" }, + { url = "https://files.pythonhosted.org/packages/33/a8/6fa8c1a345a8c85dbb21932c447bee07c30a2c2a3f31e369c0a84b300147/numpy-2.4.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47", size = 15966692, upload-time = "2026-05-18T23:33:26.62Z" }, + { url = "https://files.pythonhosted.org/packages/02/03/74fe2a4cb3817d94d86402f2506554130a2f01414e299b5a843e5a8a957f/numpy-2.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93", size = 16918164, upload-time = "2026-05-18T23:33:29.955Z" }, + { url = "https://files.pythonhosted.org/packages/c5/80/3615be3313f7e7696609bc194b9f0101da809df79e859bdb84e0cd043f46/numpy-2.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8", size = 17322877, upload-time = "2026-05-18T23:33:34.724Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ac/a691e0fe2675e370d0e08ff905adc49a1c8830e8cae03efe4477e92cd55d/numpy-2.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6", size = 18651487, upload-time = "2026-05-18T23:33:38.217Z" }, + { url = "https://files.pythonhosted.org/packages/15/a7/9bc1cd626d7bf6869bfedf27b91b6ab5dd607758bf8e959d6fa80c6a59cb/numpy-2.4.6-cp311-cp311-win32.whl", hash = "sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8", size = 6233945, upload-time = "2026-05-18T23:33:41.331Z" }, + { url = "https://files.pythonhosted.org/packages/c5/31/7fc6239c12bce7e931463251cca4426c465e1876ba3cc785402ef4dd8f4e/numpy-2.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147", size = 12608406, upload-time = "2026-05-18T23:33:44.131Z" }, + { url = "https://files.pythonhosted.org/packages/27/83/140f85a466595a16382996a1bf06b2b54bcd597488921b0c9daaeeda72af/numpy-2.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577", size = 10479528, upload-time = "2026-05-18T23:33:50.725Z" }, + { url = "https://files.pythonhosted.org/packages/95/2a/3d7b5ac8aac24feaf9ad7ed58f45b0bbc06d37e4338ae84c9f2298b570f9/numpy-2.4.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1", size = 16689119, upload-time = "2026-05-18T23:33:54.065Z" }, + { url = "https://files.pythonhosted.org/packages/ea/12/92c4c131527599e8288d6918e888d88726f84d805d784b771f32408aeaef/numpy-2.4.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb", size = 14699246, upload-time = "2026-05-18T23:33:57.621Z" }, + { url = "https://files.pythonhosted.org/packages/ad/fe/c0a6b7b2ca128a8fb228575147073b660656734b8ebe4d76c8fd748dcc79/numpy-2.4.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41", size = 5204410, upload-time = "2026-05-18T23:34:00.302Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d4/9770d14ba719432bb90a421bfd443872ed0f70f7264b64bec12ea363d5fd/numpy-2.4.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698", size = 6551240, upload-time = "2026-05-18T23:34:02.852Z" }, + { url = "https://files.pythonhosted.org/packages/c9/c6/50a46a6205feba2343f1d6d17438107c5dc491ed1c736e6ea68689fd906b/numpy-2.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f", size = 15671012, upload-time = "2026-05-18T23:34:05.485Z" }, + { url = "https://files.pythonhosted.org/packages/99/60/14115e6364fa676c5397c2ad3004e527e9aa487abf5d0706ec81bbd08529/numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853", size = 16645538, upload-time = "2026-05-18T23:34:09.265Z" }, + { url = "https://files.pythonhosted.org/packages/ae/c5/693cbe59e57db94d2231fa519ca3978dc9e19da5a8f088588f5c6e947ff2/numpy-2.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a", size = 17020706, upload-time = "2026-05-18T23:34:13.053Z" }, + { url = "https://files.pythonhosted.org/packages/ef/fc/85b7c4eff9b4966ade25c2273cf7e7012e92366c032058653934b37de044/numpy-2.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2", size = 18368541, upload-time = "2026-05-18T23:34:17.024Z" }, + { url = "https://files.pythonhosted.org/packages/f6/81/e1b27545deedce7f4a0b348618c6b62d74e36a4dc9ccd42f3eb2f85eee32/numpy-2.4.6-cp312-cp312-win32.whl", hash = "sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45", size = 5962825, upload-time = "2026-05-18T23:34:20.3Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ca/feab00bd44aa5fe1ad2c18f08b4d3bb92e26484b0b1d1443897809ed528c/numpy-2.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751", size = 12321687, upload-time = "2026-05-18T23:34:23.095Z" }, + { url = "https://files.pythonhosted.org/packages/63/cf/5a6d34850a39d1093558564f77ee8e8e0bee5061151b8f05a55711001ec7/numpy-2.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8", size = 10221482, upload-time = "2026-05-18T23:34:25.876Z" }, + { url = "https://files.pythonhosted.org/packages/fb/82/bdab26d7438c6791ca31b7c024ca37c1eab8b726ba236129005cd4a06e45/numpy-2.4.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0", size = 16684648, upload-time = "2026-05-18T23:34:29.41Z" }, + { url = "https://files.pythonhosted.org/packages/1b/30/a80189bcc7f5e4258b3fbc3968d909d1756f54d023299ecc39ad6fdb9ef8/numpy-2.4.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb", size = 14693902, upload-time = "2026-05-18T23:34:33.013Z" }, + { url = "https://files.pythonhosted.org/packages/97/12/70b5d0d7c15e1ebb8a6a84a8caa1d19e181d84fb58bb6d70aca29099dec1/numpy-2.4.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f", size = 5198992, upload-time = "2026-05-18T23:34:36.132Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8c/ebd2a8f8a83541f8d38cc5667e8c2b69cecfd30da6e45693e8158857d44b/numpy-2.4.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3", size = 6546944, upload-time = "2026-05-18T23:34:38.484Z" }, + { url = "https://files.pythonhosted.org/packages/bb/c5/7b863a97a91671a0338f4253bd3b5a3d3852f0692dae91711c9f4a10e787/numpy-2.4.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b", size = 15669392, upload-time = "2026-05-18T23:34:41.257Z" }, + { url = "https://files.pythonhosted.org/packages/a5/9d/3584b9984ca4c047aea75214ce1a4c4c73d849bd71b604264b7f5653f8a8/numpy-2.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089", size = 16633220, upload-time = "2026-05-18T23:34:45.075Z" }, + { url = "https://files.pythonhosted.org/packages/05/ae/7c67fba23bd98caec7c99261f3a16072ade14813486b0282cb29846de832/numpy-2.4.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a", size = 17020800, upload-time = "2026-05-18T23:34:49.065Z" }, + { url = "https://files.pythonhosted.org/packages/d9/5d/3b6725cb31d983c5e66916f5d36f6d7e5521129e4c4404d64f918292a5b6/numpy-2.4.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605", size = 18357600, upload-time = "2026-05-18T23:34:52.709Z" }, + { url = "https://files.pythonhosted.org/packages/f7/da/2ccc6c2fe8898dee01d90c75c5f5f914a23daf99e3e0f59516a08760c8b5/numpy-2.4.6-cp313-cp313-win32.whl", hash = "sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91", size = 5961134, upload-time = "2026-05-18T23:34:55.618Z" }, + { url = "https://files.pythonhosted.org/packages/b5/cd/9cc4dc876fb065d5c220aae4d5e14826b2715331bb7618ce1fb07a679d99/numpy-2.4.6-cp313-cp313-win_amd64.whl", hash = "sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359", size = 12318598, upload-time = "2026-05-18T23:34:58.928Z" }, + { url = "https://files.pythonhosted.org/packages/39/1e/c0bcba1f8694116485fe28fd1be698c278fcda4141c5b0e53a2aed8b12a8/numpy-2.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778", size = 10222272, upload-time = "2026-05-18T23:35:02.167Z" }, + { url = "https://files.pythonhosted.org/packages/63/6d/cc5619247c8f4204e507f5883528372e4ac4bb189e579fb859a12e480b1f/numpy-2.4.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1", size = 14821197, upload-time = "2026-05-18T23:35:05.468Z" }, + { url = "https://files.pythonhosted.org/packages/00/58/f1c39161c87d9e9bed660f1ed4bafc0e403d5ec9650b6dd77aead07d489b/numpy-2.4.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe", size = 5326287, upload-time = "2026-05-18T23:35:08.693Z" }, + { url = "https://files.pythonhosted.org/packages/af/57/3917ab0fd97f271a8694513581b8a36c655f111c446852c302f04ccdb6fc/numpy-2.4.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997", size = 6646763, upload-time = "2026-05-18T23:35:11.459Z" }, + { url = "https://files.pythonhosted.org/packages/eb/0f/037e64c494b67581ae18193d770adef354c41f3f2c8ebf865602d949bf8f/numpy-2.4.6-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20", size = 15728070, upload-time = "2026-05-18T23:35:14.79Z" }, + { url = "https://files.pythonhosted.org/packages/21/a6/5d2bae9c9542eb4df16dc9c46dc79c186e9bad53805dfa5399a6023c6db0/numpy-2.4.6-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d", size = 16681752, upload-time = "2026-05-18T23:35:18.836Z" }, + { url = "https://files.pythonhosted.org/packages/92/14/23d1dfb410ae362cd59ce53e936b1513d545eb40db3949ced632e19a459e/numpy-2.4.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67", size = 17086024, upload-time = "2026-05-18T23:35:22.52Z" }, + { url = "https://files.pythonhosted.org/packages/4b/6e/23595a2c642cdf3bc567877064bdd7f91c8b0038a4453cf2daf7248eafe9/numpy-2.4.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd", size = 18403398, upload-time = "2026-05-18T23:35:26.398Z" }, + { url = "https://files.pythonhosted.org/packages/8a/90/0ac3bc947217e66dec77e7cbc6a1979d1af70b6461b82f620d3bccd5e4c8/numpy-2.4.6-cp313-cp313t-win32.whl", hash = "sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab", size = 6084971, upload-time = "2026-05-18T23:35:29.387Z" }, + { url = "https://files.pythonhosted.org/packages/77/71/5673e351671a1d2bd6063b91b44f70c0affea7d1516fa7a6572941ba4aa1/numpy-2.4.6-cp313-cp313t-win_amd64.whl", hash = "sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75", size = 12458532, upload-time = "2026-05-18T23:35:32.175Z" }, + { url = "https://files.pythonhosted.org/packages/3f/88/19d3503c5046e688f049274b27a3ef3d771152fa80d3ba3d01a3dff61abe/numpy-2.4.6-cp313-cp313t-win_arm64.whl", hash = "sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd", size = 10291881, upload-time = "2026-05-18T23:35:35.465Z" }, + { url = "https://files.pythonhosted.org/packages/f8/91/3ab2044d05fd16d343c5ac2e69b127f1b2854040dd20b193257c78028bd3/numpy-2.4.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079", size = 16683458, upload-time = "2026-05-18T23:35:38.353Z" }, + { url = "https://files.pythonhosted.org/packages/8e/62/764ce66fa4147ae6d73071a3abf804ffe606f174618697c571acdf26a7c9/numpy-2.4.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7", size = 14704559, upload-time = "2026-05-18T23:35:42.14Z" }, + { url = "https://files.pythonhosted.org/packages/60/61/23f27c172f022e04025b7dc2367f4d63c1a398120607ec896228649a6f48/numpy-2.4.6-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5", size = 5209716, upload-time = "2026-05-18T23:35:45.377Z" }, + { url = "https://files.pythonhosted.org/packages/03/71/21cf70dc6ea3e3acb95fc53a265b2fc248b981f0194ceb5b475271b8809d/numpy-2.4.6-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096", size = 6543947, upload-time = "2026-05-18T23:35:47.926Z" }, + { url = "https://files.pythonhosted.org/packages/d5/91/64288395ee1799bd2e0b04a305dce9666da90c961e1f3fe982a05ee1c036/numpy-2.4.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b", size = 15685197, upload-time = "2026-05-18T23:35:50.863Z" }, + { url = "https://files.pythonhosted.org/packages/f3/eb/ebffaa97dc55502df69584a8f0dcf07f69a3e0b3e2323670a2722db9aa39/numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8", size = 16638245, upload-time = "2026-05-18T23:35:54.752Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0b/54f9da33128d7e350fab89c7455902eeae70349ee52bddb448dc4a576f45/numpy-2.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402", size = 17036587, upload-time = "2026-05-18T23:35:58.355Z" }, + { url = "https://files.pythonhosted.org/packages/b6/f0/fdebc1052db1cc37c64beb22072d67cd6d1c71adca1299f53dec2b5e20d3/numpy-2.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb", size = 18363226, upload-time = "2026-05-18T23:36:02.845Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b4/298628d98c72b57e57f7165ae6a481a1deaf6f3c28262a6e4c739c275930/numpy-2.4.6-cp314-cp314-win32.whl", hash = "sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1", size = 6010196, upload-time = "2026-05-18T23:36:05.92Z" }, + { url = "https://files.pythonhosted.org/packages/df/ac/46de6dda46478f7942f839e094970be2d4a861e005c4b3bf07c92e291a09/numpy-2.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261", size = 12450334, upload-time = "2026-05-18T23:36:09.107Z" }, + { url = "https://files.pythonhosted.org/packages/78/92/b8b798ac784102c0da830d2257d59358e3d3d90d1e2b3f2575dad976c5cf/numpy-2.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6", size = 10495678, upload-time = "2026-05-18T23:36:12.766Z" }, + { url = "https://files.pythonhosted.org/packages/30/34/ec28d1aa8115971537c01469ab2011ee96827930f0a124de1000cc2a7ed7/numpy-2.4.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a", size = 14823672, upload-time = "2026-05-18T23:36:16.473Z" }, + { url = "https://files.pythonhosted.org/packages/16/bd/f6d1fede4e54e8042a7ff97bb495510f3c220f94bcd9e8b228e87c92cc0d/numpy-2.4.6-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e", size = 5328731, upload-time = "2026-05-18T23:36:19.767Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f0/e105b9e2fd728a9910103884decd6951d9dd73896b914a98d9a231de02ee/numpy-2.4.6-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e", size = 6649805, upload-time = "2026-05-18T23:36:22.266Z" }, + { url = "https://files.pythonhosted.org/packages/82/dd/1206a7ca6ab15e3f02069707ca96222e202af681bb73756da7527f3cb837/numpy-2.4.6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43", size = 15730496, upload-time = "2026-05-18T23:36:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/51/e7/38d3ea825dcab85a591734decb2f6c67caa7c8367d374df1a1c3842f9b07/numpy-2.4.6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e", size = 16679616, upload-time = "2026-05-18T23:36:29.652Z" }, + { url = "https://files.pythonhosted.org/packages/93/b7/caabfdf53edf663e0b4eb74d7d405d83baef09eb5e83bcd32d601d72b93e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895", size = 17085145, upload-time = "2026-05-18T23:36:33.449Z" }, + { url = "https://files.pythonhosted.org/packages/f9/45/68d7c33a6bcf3e5aa3bdbd57a367e6f615286dfd6482f97e8ffeb734306e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4", size = 18403813, upload-time = "2026-05-18T23:36:37.369Z" }, + { url = "https://files.pythonhosted.org/packages/9c/50/0753655aa844c99cd9e018aacf76f130f1bd81d881bb74bc0aef5d73a8ba/numpy-2.4.6-cp314-cp314t-win32.whl", hash = "sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063", size = 6156982, upload-time = "2026-05-18T23:36:40.817Z" }, + { url = "https://files.pythonhosted.org/packages/b2/d4/7c67becf668f973cb490cec3e98dfd799d866f9c989a54d355672cfa0db6/numpy-2.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627", size = 12638908, upload-time = "2026-05-18T23:36:43.996Z" }, + { url = "https://files.pythonhosted.org/packages/43/bb/e1c71a4295b1b1d1393d50dbb4f2a36283c6859d9d3892e84f00ec5a91d5/numpy-2.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66", size = 10565867, upload-time = "2026-05-18T23:36:47.114Z" }, + { url = "https://files.pythonhosted.org/packages/de/12/b422cc84439adc0d00de605bf4a308890ae5c26f2c71fbd73e5d08fbb0dd/numpy-2.4.6-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662", size = 16847511, upload-time = "2026-05-18T23:36:50.673Z" }, + { url = "https://files.pythonhosted.org/packages/44/53/f481bef68011740f8849418d82db07230e825013f31f4eef5ba5b805316a/numpy-2.4.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7", size = 14889064, upload-time = "2026-05-18T23:36:53.879Z" }, + { url = "https://files.pythonhosted.org/packages/7f/57/42ed575c10ced8af951d426bc4e1f8aff16fd851db33f067036215a7f860/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f", size = 5394157, upload-time = "2026-05-18T23:36:57.194Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ef/f66cc724fcc36c1e364c67f51ae9146090b8b584f27d58b97fdae3edd737/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c", size = 6708728, upload-time = "2026-05-18T23:36:59.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/9c/c531f2293b91265d8b48e9b329f54fdd7ffae73cb4134ea10cca4237e9cc/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0", size = 15798374, upload-time = "2026-05-18T23:37:02.674Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b0/413077f6b1153ed3cba361401c6783bbad6114804a000cc22eb71c13e190/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02", size = 16747286, upload-time = "2026-05-18T23:37:06.327Z" }, + { url = "https://files.pythonhosted.org/packages/15/ce/e5ec180bc41812edcd8daeb8639d205622c0e8c02259d8ab25a0201b3c2a/numpy-2.4.6-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73", size = 12504263, upload-time = "2026-05-18T23:37:09.715Z" }, +] + +[[package]] +name = "nvidia-cublas" +version = "13.1.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cuda-nvrtc", marker = "sys_platform != 'win32'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/a1/0bd24ee8c8d03adac032fd2909426a00c88f8c57961b1277ded97f91119f/nvidia_cublas-13.1.1.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:b7a210458267ac818974c53038fbec2e969d5c99f305ab15c72522fa9f001dd5", size = 542848918, upload-time = "2026-04-08T18:46:22.985Z" }, + { url = "https://files.pythonhosted.org/packages/3b/cd/154ca20c38269e05eff77c1464e6c1da89f50a6390b565e9d82e06bc11e1/nvidia_cublas-13.1.1.3-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:37936a16db8fe4ac1f065c2139360608a543a09275cb1a1af612e08cfa065436", size = 423138758, upload-time = "2026-04-08T18:46:58.655Z" }, +] + +[[package]] +name = "nvidia-cuda-cupti" +version = "13.0.85" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/2a/80353b103fc20ce05ef51e928daed4b6015db4aaa9162ed0997090fe2250/nvidia_cuda_cupti-13.0.85-py3-none-manylinux_2_25_aarch64.whl", hash = "sha256:796bd679890ee55fb14a94629b698b6db54bcfd833d391d5e94017dd9d7d3151", size = 10310827, upload-time = "2025-09-04T08:26:42.012Z" }, + { url = "https://files.pythonhosted.org/packages/33/6d/737d164b4837a9bbd202f5ae3078975f0525a55730fe871d8ed4e3b952b0/nvidia_cuda_cupti-13.0.85-py3-none-manylinux_2_25_x86_64.whl", hash = "sha256:4eb01c08e859bf924d222250d2e8f8b8ff6d3db4721288cf35d14252a4d933c8", size = 10715597, upload-time = "2025-09-04T08:26:51.312Z" }, +] + +[[package]] +name = "nvidia-cuda-nvrtc" +version = "13.0.88" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/68/483a78f5e8f31b08fb1bb671559968c0ca3a065ac7acabfc7cee55214fd6/nvidia_cuda_nvrtc-13.0.88-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:ad9b6d2ead2435f11cbb6868809d2adeeee302e9bb94bcf0539c7a40d80e8575", size = 90215200, upload-time = "2025-09-04T08:28:44.204Z" }, + { url = "https://files.pythonhosted.org/packages/b7/dc/6bb80850e0b7edd6588d560758f17e0550893a1feaf436807d64d2da040f/nvidia_cuda_nvrtc-13.0.88-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d27f20a0ca67a4bb34268a5e951033496c5b74870b868bacd046b1b8e0c3267b", size = 43015449, upload-time = "2025-09-04T08:28:20.239Z" }, +] + +[[package]] +name = "nvidia-cuda-runtime" +version = "13.0.96" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/4f/17d7b9b8e285199c58ce28e31b5c5bbaa4d8271af06a89b6405258245de2/nvidia_cuda_runtime-13.0.96-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ef9bcbe90493a2b9d810e43d249adb3d02e98dd30200d86607d8d02687c43f55", size = 2261060, upload-time = "2025-10-09T08:55:15.78Z" }, + { url = "https://files.pythonhosted.org/packages/2e/24/d1558f3b68b1d26e706813b1d10aa1d785e4698c425af8db8edc3dced472/nvidia_cuda_runtime-13.0.96-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7f82250d7782aa23b6cfe765ecc7db554bd3c2870c43f3d1821f1d18aebf0548", size = 2243632, upload-time = "2025-10-09T08:55:36.117Z" }, +] + +[[package]] +name = "nvidia-cudnn-cu13" +version = "9.20.0.48" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas", marker = "sys_platform != 'win32'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/c5/83384d846b2fd17c44bd499b36c75a45ed4f095fbbb2252294e89cea5c5c/nvidia_cudnn_cu13-9.20.0.48-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:e31454ae00094b0c55319d9d15b6fa2fc50a9e1c0f5c8c80fb75258234e731e1", size = 444574296, upload-time = "2026-03-09T19:28:27.751Z" }, + { url = "https://files.pythonhosted.org/packages/6e/5e/edb9c0ae051602c3ccaffe424256463636d639e27d7f302dde9975ef9e7a/nvidia_cudnn_cu13-9.20.0.48-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:0c45dd8eeb50b603f07995b1b300c62ffe6a1980482b82b3bcf94a4ca9d49304", size = 366173588, upload-time = "2026-03-09T19:29:34.474Z" }, +] + +[[package]] +name = "nvidia-cufft" +version = "12.0.0.61" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink", marker = "sys_platform != 'win32'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/ae/f417a75c0259e85c1d2f83ca4e960289a5f814ed0cea74d18c353d3e989d/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2708c852ef8cd89d1d2068bdbece0aa188813a0c934db3779b9b1faa8442e5f5", size = 214053554, upload-time = "2025-09-04T08:31:38.196Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2f/7b57e29836ea8714f81e9898409196f47d772d5ddedddf1592eadb8ab743/nvidia_cufft-12.0.0.61-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6c44f692dce8fd5ffd3e3df134b6cdb9c2f72d99cf40b62c32dde45eea9ddad3", size = 214085489, upload-time = "2025-09-04T08:31:56.044Z" }, +] + +[[package]] +name = "nvidia-cufile" +version = "1.15.1.6" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/70/4f193de89a48b71714e74602ee14d04e4019ad36a5a9f20c425776e72cd6/nvidia_cufile-1.15.1.6-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:08a3ecefae5a01c7f5117351c64f17c7c62efa5fffdbe24fc7d298da19cd0b44", size = 1223672, upload-time = "2025-09-04T08:32:22.779Z" }, + { url = "https://files.pythonhosted.org/packages/ab/73/cc4a14c9813a8a0d509417cf5f4bdaba76e924d58beb9864f5a7baceefbf/nvidia_cufile-1.15.1.6-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:bdc0deedc61f548bddf7733bdc216456c2fdb101d020e1ab4b88d232d5e2f6d1", size = 1136992, upload-time = "2025-09-04T08:32:14.119Z" }, +] + +[[package]] +name = "nvidia-curand" +version = "10.4.0.35" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/72/7c2ae24fb6b63a32e6ae5d241cc65263ea18d08802aaae087d9f013335a2/nvidia_curand-10.4.0.35-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:133df5a7509c3e292aaa2b477afd0194f06ce4ea24d714d616ff36439cee349a", size = 61962106, upload-time = "2025-08-04T10:21:41.128Z" }, + { url = "https://files.pythonhosted.org/packages/a5/9f/be0a41ca4a4917abf5cb9ae0daff1a6060cc5de950aec0396de9f3b52bc5/nvidia_curand-10.4.0.35-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:1aee33a5da6e1db083fe2b90082def8915f30f3248d5896bcec36a579d941bfc", size = 59544258, upload-time = "2025-08-04T10:22:03.992Z" }, +] + +[[package]] +name = "nvidia-cusolver" +version = "12.0.4.66" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-cublas", marker = "sys_platform != 'win32'" }, + { name = "nvidia-cusparse", marker = "sys_platform != 'win32'" }, + { name = "nvidia-nvjitlink", marker = "sys_platform != 'win32'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/c3/b30c9e935fc01e3da443ec0116ed1b2a009bb867f5324d3f2d7e533e776b/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:02c2457eaa9e39de20f880f4bd8820e6a1cfb9f9a34f820eb12a155aa5bc92d2", size = 223467760, upload-time = "2025-09-04T08:33:04.222Z" }, + { url = "https://files.pythonhosted.org/packages/5f/67/cba3777620cdacb99102da4042883709c41c709f4b6323c10781a9c3aa34/nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:0a759da5dea5c0ea10fd307de75cdeb59e7ea4fcb8add0924859b944babf1112", size = 200941980, upload-time = "2025-09-04T08:33:22.767Z" }, +] + +[[package]] +name = "nvidia-cusparse" +version = "12.6.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nvidia-nvjitlink", marker = "sys_platform != 'win32'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/94/5c26f33738ae35276672f12615a64bd008ed5be6d1ebcb23579285d960a9/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:80bcc4662f23f1054ee334a15c72b8940402975e0eab63178fc7e670aa59472c", size = 162155568, upload-time = "2025-09-04T08:33:42.864Z" }, + { url = "https://files.pythonhosted.org/packages/fa/18/623c77619c31d62efd55302939756966f3ecc8d724a14dab2b75f1508850/nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2b3c89c88d01ee0e477cb7f82ef60a11a4bcd57b6b87c33f789350b59759360b", size = 145942937, upload-time = "2025-09-04T08:33:58.029Z" }, +] + +[[package]] +name = "nvidia-cusparselt-cu13" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/e1/cdc1797eadf82d3a9a575a19b33fdc871a97edbec42c00b5b5e914f4aff4/nvidia_cusparselt_cu13-0.8.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:4dca476c50bf4780d46cd0bfbd82e2bc10a08e4fef7950917ce8d7578d22a23f", size = 221051344, upload-time = "2025-09-05T18:49:51.289Z" }, + { url = "https://files.pythonhosted.org/packages/34/7d/2661f2fb3ac4302f3a246f5fc030213ac60c1fe0bce84f9783dbd831dbb7/nvidia_cusparselt_cu13-0.8.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:786ce87568c303fadb5afcc7102d454cd3040d75f6f8626f5db460d1871f4dd0", size = 170148586, upload-time = "2025-09-05T18:50:50.248Z" }, +] + +[[package]] +name = "nvidia-nccl-cu13" +version = "2.29.7" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/0d/daf50d44177ee0cbc7ff0a0c91eb5ff676c82be42f9a970bc7597f440c3a/nvidia_nccl_cu13-2.29.7-py3-none-manylinux_2_18_aarch64.whl", hash = "sha256:674a12383e3c38a1bcccae7d4f3633b37852230b6047883cb2f4c2d1b36d9bf5", size = 206014712, upload-time = "2026-03-03T05:34:20.843Z" }, + { url = "https://files.pythonhosted.org/packages/67/f4/58e4e91b6919367c7aafb8e36fce9aad1a3047e536bf7e2fd560927d3a4c/nvidia_nccl_cu13-2.29.7-py3-none-manylinux_2_18_x86_64.whl", hash = "sha256:edd81538446786ec3b73972543e53bb43bcaf0bfc8ef76cb679fcc390ffe136d", size = 205976000, upload-time = "2026-03-03T05:36:24.472Z" }, +] + +[[package]] +name = "nvidia-nvjitlink" +version = "13.3.33" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/ee/580ca6f29dcab0221db8706badca1bbbb084f1975c4d4e83329c3a7e31f0/nvidia_nvjitlink-13.3.33-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:26a6de7fb4c8fdaa7703d3dad720d6d427ddfea5c48a528fd97c11733ad830e5", size = 40742423, upload-time = "2026-05-26T16:54:51.613Z" }, + { url = "https://files.pythonhosted.org/packages/69/30/45414e35ff2eee7db3da037e5707037ccf9d2b5218ffbdb055ea4d5aa98a/nvidia_nvjitlink-13.3.33-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ce48b37dfeb3cb1eae4cf85adacb47d7a6539ea2272870c9a3628ce275c2037e", size = 39168635, upload-time = "2026-05-26T16:54:13.906Z" }, +] + +[[package]] +name = "nvidia-nvshmem-cu13" +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/0f/05cc9c720236dcd2db9c1ab97fff629e96821be2e63103569da0c9b72f19/nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dc2a197f38e5d0376ad52cd1a2a3617d3cdc150fd5966f4aee9bcebb1d68fe9", size = 60215947, upload-time = "2025-09-06T00:32:20.022Z" }, + { url = "https://files.pythonhosted.org/packages/3c/35/a9bf80a609e74e3b000fef598933235c908fcefcef9026042b8e6dfde2a9/nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:290f0a2ee94c9f3687a02502f3b9299a9f9fe826e6d0287ee18482e78d495b80", size = 60412546, upload-time = "2025-09-06T00:32:41.564Z" }, +] + +[[package]] +name = "nvidia-nvtx" +version = "13.0.85" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/f3/d86c845465a2723ad7e1e5c36dcd75ddb82898b3f53be47ebd429fb2fa5d/nvidia_nvtx-13.0.85-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4936d1d6780fbe68db454f5e72a42ff64d1fd6397df9f363ae786930fd5c1cd4", size = 148047, upload-time = "2025-09-04T08:29:01.761Z" }, + { url = "https://files.pythonhosted.org/packages/a8/64/3708a90d1ebe202ffdeb7185f878a3c84d15c2b2c31858da2ce0583e2def/nvidia_nvtx-13.0.85-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cb7780edb6b14107373c835bf8b72e7a178bac7367e23da7acb108f973f157a6", size = 148878, upload-time = "2025-09-04T08:28:53.627Z" }, +] + +[[package]] +name = "olefile" +version = "0.47" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/69/1b/077b508e3e500e1629d366249c3ccb32f95e50258b231705c09e3c7a4366/olefile-0.47.zip", hash = "sha256:599383381a0bf3dfbd932ca0ca6515acd174ed48870cbf7fee123d698c192c1c", size = 112240, upload-time = "2023-12-01T16:22:53.025Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/d3/b64c356a907242d719fc668b71befd73324e47ab46c8ebbbede252c154b2/olefile-0.47-py2.py3-none-any.whl", hash = "sha256:543c7da2a7adadf21214938bb79c83ea12b473a4b6ee4ad4bf854e7715e13d1f", size = 114565, upload-time = "2023-12-01T16:22:51.518Z" }, +] + +[[package]] +name = "omegaconf" +version = "2.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "antlr4-python3-runtime", marker = "python_full_version < '3.11'" }, + { name = "pyyaml", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/3d/e4b57b8d9008c6ebe0d5eff901f91d5700cf7bdb8c8863df817463a7fd5e/omegaconf-2.3.1.tar.gz", hash = "sha256:e5e7de64aeebeddaf8e6d3f7a783b32ac2a01c0fbd9c878012caecb891a1f42a", size = 3298472, upload-time = "2026-06-11T05:05:12.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/0e/152509871bf30df6fc38569f52a2db9b55dd41aae957adae50a053ac7778/omegaconf-2.3.1-py3-none-any.whl", hash = "sha256:3d701d14e9a8828f1edd28bb70b725908b34277cdd72cf7d6a83f94dadc6b6a0", size = 79502, upload-time = "2026-06-11T05:05:09.954Z" }, +] + +[[package]] +name = "onnx" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ml-dtypes", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "protobuf", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/19/8ea73a64b368b75fe339771a20a02bc61ea1f551484c9e3d9d0bfbd0450f/onnx-1.22.0.tar.gz", hash = "sha256:ef40c0aaf0b643857ea9306fc7eddce17eaf9fb0407e4801f1fc5758443a38e0", size = 12024721, upload-time = "2026-06-15T12:50:05.354Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/04/471f234e2716c83f17a26e1b50cd64c39428373e91dd018aafb3d499c108/onnx-1.22.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:6d0ffffd63a4ecc21ddaeddd5bf02099cb701aa4243f2de00122726869065ca4", size = 20167110, upload-time = "2026-06-15T12:48:59.152Z" }, + { url = "https://files.pythonhosted.org/packages/99/40/540a2fe3c49ce1709ff2015de20d9a351264fb442f8998f92cf0ba7e279e/onnx-1.22.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33ce94119bbb7f05d9caea4ea7549f5185a54369f6bbc9f70171bd5ee6935bbc", size = 18892738, upload-time = "2026-06-15T12:49:02.139Z" }, + { url = "https://files.pythonhosted.org/packages/f8/0c/f41d5b89c38fb2ec410ab23c24fa110af786093b140644f7f953e436743b/onnx-1.22.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:87a3077958f66f9a26dec10077ac28326d9cec2cbe1f0b040947243449754573", size = 19110354, upload-time = "2026-06-15T12:49:05.031Z" }, + { url = "https://files.pythonhosted.org/packages/11/8e/9f41d132855e93c2808cdd4afab1b5af67bd5e82e4a4fa9248006e4df87e/onnx-1.22.0-cp310-cp310-win32.whl", hash = "sha256:8a5eccce2d5fc6c5046928a9aa7cdd9750ea4a586f8de341d3d40d820c35fdec", size = 17083595, upload-time = "2026-06-15T12:49:08.599Z" }, + { url = "https://files.pythonhosted.org/packages/e8/52/86caff81786a5428485795c79175ae2b12a630795bcb267b84e5f9e98450/onnx-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:5c1c0408a9d4b4df33851672e5fc7590b96301ee123396d608f9ab6f045ab06b", size = 17215270, upload-time = "2026-06-15T12:49:11.483Z" }, + { url = "https://files.pythonhosted.org/packages/0c/55/30825c02c92a0380ce84c3feeeec95d329fa77548ba58cb10ad4bbfd83c6/onnx-1.22.0-cp311-cp311-macosx_12_0_universal2.whl", hash = "sha256:2d8f229a553fa440fe623ed7b36fca5e7762da3af871c3f8f8ce451df73e2914", size = 20167891, upload-time = "2026-06-15T12:49:14.212Z" }, + { url = "https://files.pythonhosted.org/packages/4b/24/cd4ab52ecaf41c3fbed674772ccbfe39041cb257b8471a47a37e48bff3f8/onnx-1.22.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1a89a7cb9ba13d78f009bdec448ec82a98972589734f157022a2bff7a5973a6", size = 18892720, upload-time = "2026-06-15T12:49:16.904Z" }, + { url = "https://files.pythonhosted.org/packages/2b/a0/c9d9d56ceadb1c0a90a7cbec5a0510520ab6538938944fa84548e4b5b054/onnx-1.22.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1d0a2bdb15eb2b3cb65c438f3423d9620d14fdce32f92380e6bb1b2e09568ef5", size = 19110720, upload-time = "2026-06-15T12:49:19.812Z" }, + { url = "https://files.pythonhosted.org/packages/0a/6e/e43e5a68d9cadde55df75310027f87127333a77e5ddcea14c73e96a10cac/onnx-1.22.0-cp311-cp311-win32.whl", hash = "sha256:239958534464612fbcb6ed23d5228aaa925b39b8773f58726809ffdccb4edd1c", size = 17083746, upload-time = "2026-06-15T12:49:22.935Z" }, + { url = "https://files.pythonhosted.org/packages/54/57/cc0a9f2cf4522e42829d089927b4b75924d32f50dca237482e7b741df003/onnx-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:8561a2c00041c07e08db0c228593b5b4694100398685f348532af7dbb84189da", size = 17215684, upload-time = "2026-06-15T12:49:26.084Z" }, + { url = "https://files.pythonhosted.org/packages/c9/99/0f049f9eaa06c8383060c5f0a338e3a6caac8822e6e326c9162f05abf95a/onnx-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:8907b9b9389893bc0dc6314cc00ee1e3a69844e48d689eacc6a0340411a7da58", size = 17210398, upload-time = "2026-06-15T12:49:29.091Z" }, + { url = "https://files.pythonhosted.org/packages/ee/6a/481561f1093834376ed493e4ca42a73e5be0d50031f2969c86593bdc7c96/onnx-1.22.0-cp312-abi3-macosx_12_0_universal2.whl", hash = "sha256:596fbf0490947533c1c1045ba860851dc9fb77471023dac9a71ba5b42ceab103", size = 20167081, upload-time = "2026-06-15T12:49:32.078Z" }, + { url = "https://files.pythonhosted.org/packages/84/55/b34fc2aa30aa54b4a775402d24c4082242c720283a274fe976ac8eb94480/onnx-1.22.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae5a563f281cd9d2845622cecf6c092a57e4ee1b138f66fdbbdd4200567a5e16", size = 18889249, upload-time = "2026-06-15T12:49:34.7Z" }, + { url = "https://files.pythonhosted.org/packages/09/a6/bd32357e6cc1ecb473afd78193d7231724f284435d2db25696ecfaaa1503/onnx-1.22.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:955e02e1f6d385b53d52f9cd7b9cdf5caf417c300bcfe3c64c6d542be763845b", size = 19106514, upload-time = "2026-06-15T12:49:37.424Z" }, + { url = "https://files.pythonhosted.org/packages/5a/9d/3af461ac6c714b8b369cb71499659932f4f12cfb066250b62f7567c3d530/onnx-1.22.0-cp312-abi3-pyemscripten_2025_0_wasm32.whl", hash = "sha256:82e9f27fc1223cb06d68a56bed6f9d3caf3d0dad1b61bce45006d529b15bd94c", size = 16966387, upload-time = "2026-06-15T12:49:40.918Z" }, + { url = "https://files.pythonhosted.org/packages/d0/f0/68195b5e5a53e333faf2660f5352ee43738d0e42fc5216cc6b1871a9fbfb/onnx-1.22.0-cp312-abi3-win32.whl", hash = "sha256:cc8b66b312f8f03a53e268afb67180a2d97dd12cc79e2b61361c6c0073448016", size = 17081568, upload-time = "2026-06-15T12:49:43.398Z" }, + { url = "https://files.pythonhosted.org/packages/13/a8/734725bb703c5fabb687f79c79e51249475212b3eb37771ac4a4ac9b487f/onnx-1.22.0-cp312-abi3-win_amd64.whl", hash = "sha256:72ccebab3bac07215c204ce8848d42e78eaaa666badbf72d25cd359b9f269e3a", size = 17213290, upload-time = "2026-06-15T12:49:45.933Z" }, + { url = "https://files.pythonhosted.org/packages/bd/2a/8ce48d8ae26a8761ad4e5dc771961b155c5c3c7c8540ec7f2f2d71b69af0/onnx-1.22.0-cp312-abi3-win_arm64.whl", hash = "sha256:f3c120dcdb70ad738f3c061b32798f408ea299eb69f84dd69ab4a6bf3c2ec01f", size = 17207030, upload-time = "2026-06-15T12:49:48.635Z" }, + { url = "https://files.pythonhosted.org/packages/f3/13/47323b97846387848efb1044ded11bb94b83526f3d1fbdb37c6480d4520f/onnx-1.22.0-cp314-cp314t-macosx_12_0_universal2.whl", hash = "sha256:19e45e4af88e3fe3261458d4b8cc461957ae2782a358a3560503569bf3b23b72", size = 20176465, upload-time = "2026-06-15T12:49:51.311Z" }, + { url = "https://files.pythonhosted.org/packages/13/0c/d3b8a7e7eee123938586c608bb9894b5723f2342b9450c0eec59fbec7099/onnx-1.22.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c21a0e59fd967a95b358e4a6e756d1f1eec2d304a83480f329f66e30d2bf0223", size = 18894028, upload-time = "2026-06-15T12:49:54.451Z" }, + { url = "https://files.pythonhosted.org/packages/b8/8a/da2a97ab46fe6e0cd9beb3ac14603a22f5be492f9ca347faf8233a07bb33/onnx-1.22.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2632406b8f523ef2e2873c363f90b20a3d88c0fbcfac757d3addffccf8f452c2", size = 19110420, upload-time = "2026-06-15T12:49:57.665Z" }, + { url = "https://files.pythonhosted.org/packages/b9/a3/ce984063017518307ebfaa545782fc400e593dc2d7fdf4f23ce4be1ed197/onnx-1.22.0-cp314-cp314t-win_amd64.whl", hash = "sha256:a3a39fc4643867aecb33417fdddb11e308ee79d2d4a584b9d50cc7aec2091b13", size = 17237547, upload-time = "2026-06-15T12:50:00.382Z" }, + { url = "https://files.pythonhosted.org/packages/00/50/257a880384a1dd502d543b0067945074d63cd17d0840e958355bc8197da8/onnx-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:8e268cdc0547e3949799ffd4a44451dc2b9080b57d0824a2db680b6ec65506f0", size = 17231391, upload-time = "2026-06-15T12:50:03.047Z" }, +] + +[[package]] +name = "onnxruntime" +version = "1.20.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform == 'win32'", + "python_full_version == '3.14.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +dependencies = [ + { name = "coloredlogs", marker = "(python_full_version < '3.11' and sys_platform != 'win32') or (python_full_version != '3.12.*' and sys_platform == 'win32')" }, + { name = "flatbuffers", marker = "(python_full_version < '3.11' and sys_platform != 'win32') or (python_full_version != '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version == '3.11.*' and sys_platform == 'win32') or (python_full_version >= '3.13' and sys_platform == 'win32')" }, + { name = "packaging", marker = "(python_full_version < '3.11' and sys_platform != 'win32') or (python_full_version != '3.12.*' and sys_platform == 'win32')" }, + { name = "protobuf", marker = "(python_full_version < '3.11' and sys_platform != 'win32') or (python_full_version != '3.12.*' and sys_platform == 'win32')" }, + { name = "sympy", marker = "(python_full_version < '3.11' and sys_platform != 'win32') or (python_full_version != '3.12.*' and sys_platform == 'win32')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/28/99f903b0eb1cd6f3faa0e343217d9fb9f47b84bca98bd9859884631336ee/onnxruntime-1.20.1-cp310-cp310-macosx_13_0_universal2.whl", hash = "sha256:e50ba5ff7fed4f7d9253a6baf801ca2883cc08491f9d32d78a80da57256a5439", size = 30996314, upload-time = "2024-11-21T00:48:31.43Z" }, + { url = "https://files.pythonhosted.org/packages/6d/c6/c4c0860bee2fde6037bdd9dcd12d323f6e38cf00fcc9a5065b394337fc55/onnxruntime-1.20.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7b2908b50101a19e99c4d4e97ebb9905561daf61829403061c1adc1b588bc0de", size = 11954010, upload-time = "2024-11-21T00:48:35.254Z" }, + { url = "https://files.pythonhosted.org/packages/63/47/3dc0b075ab539f16b3d8b09df6b504f51836086ee709690a6278d791737d/onnxruntime-1.20.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d82daaec24045a2e87598b8ac2b417b1cce623244e80e663882e9fe1aae86410", size = 13330452, upload-time = "2024-11-21T00:48:40.02Z" }, + { url = "https://files.pythonhosted.org/packages/27/ef/80fab86289ecc01a734b7ddf115dfb93d8b2e004bd1e1977e12881c72b12/onnxruntime-1.20.1-cp310-cp310-win32.whl", hash = "sha256:4c4b251a725a3b8cf2aab284f7d940c26094ecd9d442f07dd81ab5470e99b83f", size = 9813849, upload-time = "2024-11-21T00:48:43.569Z" }, + { url = "https://files.pythonhosted.org/packages/a9/e6/33ab10066c9875a29d55e66ae97c3bf91b9b9b987179455d67c32261a49c/onnxruntime-1.20.1-cp310-cp310-win_amd64.whl", hash = "sha256:d3b616bb53a77a9463707bb313637223380fc327f5064c9a782e8ec69c22e6a2", size = 11329702, upload-time = "2024-11-21T00:48:46.599Z" }, + { url = "https://files.pythonhosted.org/packages/95/8d/2634e2959b34aa8a0037989f4229e9abcfa484e9c228f99633b3241768a6/onnxruntime-1.20.1-cp311-cp311-macosx_13_0_universal2.whl", hash = "sha256:06bfbf02ca9ab5f28946e0f912a562a5f005301d0c419283dc57b3ed7969bb7b", size = 30998725, upload-time = "2024-11-21T00:48:51.013Z" }, + { url = "https://files.pythonhosted.org/packages/a5/da/c44bf9bd66cd6d9018a921f053f28d819445c4d84b4dd4777271b0fe52a2/onnxruntime-1.20.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f6243e34d74423bdd1edf0ae9596dd61023b260f546ee17d701723915f06a9f7", size = 11955227, upload-time = "2024-11-21T00:48:54.556Z" }, + { url = "https://files.pythonhosted.org/packages/11/ac/4120dfb74c8e45cce1c664fc7f7ce010edd587ba67ac41489f7432eb9381/onnxruntime-1.20.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5eec64c0269dcdb8d9a9a53dc4d64f87b9e0c19801d9321246a53b7eb5a7d1bc", size = 13331703, upload-time = "2024-11-21T00:48:57.97Z" }, + { url = "https://files.pythonhosted.org/packages/12/f1/cefacac137f7bb7bfba57c50c478150fcd3c54aca72762ac2c05ce0532c1/onnxruntime-1.20.1-cp311-cp311-win32.whl", hash = "sha256:a19bc6e8c70e2485a1725b3d517a2319603acc14c1f1a017dda0afe6d4665b41", size = 9813977, upload-time = "2024-11-21T00:49:00.519Z" }, + { url = "https://files.pythonhosted.org/packages/2c/2d/2d4d202c0bcfb3a4cc2b171abb9328672d7f91d7af9ea52572722c6d8d96/onnxruntime-1.20.1-cp311-cp311-win_amd64.whl", hash = "sha256:8508887eb1c5f9537a4071768723ec7c30c28eb2518a00d0adcd32c89dea3221", size = 11329895, upload-time = "2024-11-21T00:49:03.845Z" }, + { url = "https://files.pythonhosted.org/packages/e5/39/9335e0874f68f7d27103cbffc0e235e32e26759202df6085716375c078bb/onnxruntime-1.20.1-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:22b0655e2bf4f2161d52706e31f517a0e54939dc393e92577df51808a7edc8c9", size = 31007580, upload-time = "2024-11-21T00:49:07.029Z" }, + { url = "https://files.pythonhosted.org/packages/c5/9d/a42a84e10f1744dd27c6f2f9280cc3fb98f869dd19b7cd042e391ee2ab61/onnxruntime-1.20.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f56e898815963d6dc4ee1c35fc6c36506466eff6d16f3cb9848cea4e8c8172", size = 11952833, upload-time = "2024-11-21T00:49:10.563Z" }, + { url = "https://files.pythonhosted.org/packages/47/42/2f71f5680834688a9c81becbe5c5bb996fd33eaed5c66ae0606c3b1d6a02/onnxruntime-1.20.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bb71a814f66517a65628c9e4a2bb530a6edd2cd5d87ffa0af0f6f773a027d99e", size = 13333903, upload-time = "2024-11-21T00:49:12.984Z" }, + { url = "https://files.pythonhosted.org/packages/c8/f1/aabfdf91d013320aa2fc46cf43c88ca0182860ff15df872b4552254a9680/onnxruntime-1.20.1-cp312-cp312-win32.whl", hash = "sha256:bd386cc9ee5f686ee8a75ba74037750aca55183085bf1941da8efcfe12d5b120", size = 9814562, upload-time = "2024-11-21T00:49:15.453Z" }, + { url = "https://files.pythonhosted.org/packages/dd/80/76979e0b744307d488c79e41051117634b956612cc731f1028eb17ee7294/onnxruntime-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:19c2d843eb074f385e8bbb753a40df780511061a63f9def1b216bf53860223fb", size = 11331482, upload-time = "2024-11-21T00:49:19.412Z" }, + { url = "https://files.pythonhosted.org/packages/f7/71/c5d980ac4189589267a06f758bd6c5667d07e55656bed6c6c0580733ad07/onnxruntime-1.20.1-cp313-cp313-macosx_13_0_universal2.whl", hash = "sha256:cc01437a32d0042b606f462245c8bbae269e5442797f6213e36ce61d5abdd8cc", size = 31007574, upload-time = "2024-11-21T00:49:23.225Z" }, + { url = "https://files.pythonhosted.org/packages/81/0d/13bbd9489be2a6944f4a940084bfe388f1100472f38c07080a46fbd4ab96/onnxruntime-1.20.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fb44b08e017a648924dbe91b82d89b0c105b1adcfe31e90d1dc06b8677ad37be", size = 11951459, upload-time = "2024-11-21T00:49:26.269Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ea/4454ae122874fd52bbb8a961262de81c5f932edeb1b72217f594c700d6ef/onnxruntime-1.20.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bda6aebdf7917c1d811f21d41633df00c58aff2bef2f598f69289c1f1dabc4b3", size = 13331620, upload-time = "2024-11-21T00:49:28.875Z" }, + { url = "https://files.pythonhosted.org/packages/d8/e0/50db43188ca1c945decaa8fc2a024c33446d31afed40149897d4f9de505f/onnxruntime-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:d30367df7e70f1d9fc5a6a68106f5961686d39b54d3221f760085524e8d38e16", size = 11331758, upload-time = "2024-11-21T00:49:31.417Z" }, + { url = "https://files.pythonhosted.org/packages/d8/55/3821c5fd60b52a6c82a00bba18531793c93c4addfe64fbf061e235c5617a/onnxruntime-1.20.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9158465745423b2b5d97ed25aa7740c7d38d2993ee2e5c3bfacb0c4145c49d8", size = 11950342, upload-time = "2024-11-21T00:49:34.164Z" }, + { url = "https://files.pythonhosted.org/packages/14/56/fd990ca222cef4f9f4a9400567b9a15b220dee2eafffb16b2adbc55c8281/onnxruntime-1.20.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0df6f2df83d61f46e842dbcde610ede27218947c33e994545a22333491e72a3b", size = 13337040, upload-time = "2024-11-21T00:49:37.271Z" }, +] + +[[package]] +name = "onnxruntime" +version = "1.27.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +dependencies = [ + { name = "flatbuffers", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "packaging", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "protobuf", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/e4/5353d7e09ced4a8f473f843223fc75d726b2b5519dcefc12f22a6c92852d/onnxruntime-1.27.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:8ba14a38c570087f3cdb8cfba33f7a38a1e826c1e5b29e17c28ceda0cc910016", size = 18416484, upload-time = "2026-06-15T22:43:43.894Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1f/a2117aa3f144fce88774efa37440d0ca72d0c9144854dfc0961f2b04c6fc/onnxruntime-1.27.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2eb083321af8a236a84c7c140a7f4cecbfa2a987a18c07c78db471c20cd390ef", size = 16419330, upload-time = "2026-06-15T22:42:37.58Z" }, + { url = "https://files.pythonhosted.org/packages/e0/cd/74bb804170ceb622fda9111df31a07b3024f7491472256d3a90b5391a4d2/onnxruntime-1.27.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e4f7b0e90d2d212e2c2deaa6c8291616183ab815d3ec558ea12d3ac8b26d36f4", size = 18636930, upload-time = "2026-06-15T22:43:01.584Z" }, + { url = "https://files.pythonhosted.org/packages/fe/8f/5b8e2b85e81735696887175dbaf6409f215683f5ca9d4928fbb038211d32/onnxruntime-1.27.0-cp311-cp311-win_amd64.whl", hash = "sha256:ff050e4f6bf7f12918fa14dcb047c0b02e295f35e86d42532552be4b3d54e977", size = 13356110, upload-time = "2026-06-15T22:43:32.172Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3a/4f568de678126b6a371a93862f015a82138359decd97fcac61fc84b5b774/onnxruntime-1.27.0-cp311-cp311-win_arm64.whl", hash = "sha256:75fbc1e1fb43a39a856c8209c544cca7817b5de7ac16b15b1bdf55d1cc67b9df", size = 13098635, upload-time = "2026-06-15T22:43:19.607Z" }, + { url = "https://files.pythonhosted.org/packages/c3/b7/dd3a524ed93a820dff1af902d0412957ab12499953333e9daa01af5bc480/onnxruntime-1.27.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a14c2ce45312def86b77aea651f46565e45960cf5f0721bfdff449165086ab76", size = 18433506, upload-time = "2026-06-15T22:43:47.026Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/c3b6b17745a1997d784dadc9bd88d713d2e6721139a5a0e885b28cfb79b1/onnxruntime-1.27.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c6fddce0539a4898c7bef35b052ffd37935b2190e35488eab99ce91887743ea1", size = 16438140, upload-time = "2026-06-15T22:42:40.666Z" }, + { url = "https://files.pythonhosted.org/packages/26/81/24dd9b31b0fb912ee19ca53ac1c9764bfd79d58a2ccef564eb693be831a5/onnxruntime-1.27.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c65a7438632d55dfbc8a02ee60bd6cf7dd9d1ba05a43d4b851452f32338e194", size = 18658316, upload-time = "2026-06-15T22:43:04.012Z" }, + { url = "https://files.pythonhosted.org/packages/4f/88/8ec9db1a4d126bb8b758992beb40d1249df171917d75f44a327eb5f20dda/onnxruntime-1.27.0-cp312-cp312-win_amd64.whl", hash = "sha256:20c321cf187ba496e648acf6b4cf90b4d398b0d17c2a77fdaeba365b908cc1c1", size = 13358769, upload-time = "2026-06-15T22:43:34.581Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9f/fdad359dfcba7e7cd8815569b304a596531d4efa77a75d77f8b4981891a2/onnxruntime-1.27.0-cp312-cp312-win_arm64.whl", hash = "sha256:d0d1f68868e2ef30ef70998ba9bbbc5c305e9b17041e3936751c1b8aa6aade06", size = 13104440, upload-time = "2026-06-15T22:43:22.893Z" }, + { url = "https://files.pythonhosted.org/packages/fb/2b/54208fd03ad410480bc17edf4869376362da8bbf46fe186ddf4cb5cc20fe/onnxruntime-1.27.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:b3e5b58b8c89c2b20e086e890aa9527377e5c240dc3ecc1640d18e07705eeb1c", size = 18432958, upload-time = "2026-06-15T22:42:53.105Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/24fc51fcbb126da6d032372314e47b55c3faad58f2aa78c0e199ccd20b9c/onnxruntime-1.27.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48b3d87eb560ff6a772240506f3c78d6d27c63cafedd5c775672e1194f968cfd", size = 16438180, upload-time = "2026-06-15T22:42:43.093Z" }, + { url = "https://files.pythonhosted.org/packages/cb/19/14929c3c2fe0b79b41cce24463062bf3afa4cdd3c19dccf00319caa92bff/onnxruntime-1.27.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6872443f236a554921cda6f318c900e2d0c226792cf3534d00e5057c6926e5d2", size = 18658445, upload-time = "2026-06-15T22:43:08.053Z" }, + { url = "https://files.pythonhosted.org/packages/7f/76/59ed932b0244acd7bbbd6449480053a6d958ea66357f022f932872e19287/onnxruntime-1.27.0-cp313-cp313-win_amd64.whl", hash = "sha256:760021bca514d64a811837820d351a08a41741f16f8b4c26450da708fecf14e6", size = 13357856, upload-time = "2026-06-15T22:43:37.315Z" }, + { url = "https://files.pythonhosted.org/packages/79/51/d1ec60ec7b1e2ae2d7340ba52b8a13529140039cd4407ba8dddbbc046582/onnxruntime-1.27.0-cp313-cp313-win_arm64.whl", hash = "sha256:2fdfa9df40a0ded0028ce6f9cd863264237f3970559dea2b81456e9ac4622b94", size = 13104412, upload-time = "2026-06-15T22:43:27.457Z" }, + { url = "https://files.pythonhosted.org/packages/5e/7d/e6bb1c6445c94f708c38cd8fbb7bf0264108c33498b9445c93e60fe6d329/onnxruntime-1.27.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:54c0c4e9202c36c4ecdb1f3443f5dfbfd5ee3b54d1362c4b4c6134110e74fb32", size = 16443331, upload-time = "2026-06-15T22:42:45.649Z" }, + { url = "https://files.pythonhosted.org/packages/72/1b/b18b31e806eabc41077810199fbbb36fbc2d5f19912416e5ccfbf73053d1/onnxruntime-1.27.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1b215aa662c8f983f7d6dedafe65a9be72c26e5338e0fe98b3e0422c32c85428", size = 18670967, upload-time = "2026-06-15T22:43:10.621Z" }, + { url = "https://files.pythonhosted.org/packages/3a/37/48ab79c39b58a7c9f6f5aac1fa0ff2b993eb2643393d6ed9e839ddb6f347/onnxruntime-1.27.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:0874edc171f470fc4dd2bbb60bc0989612ed1a8b89b365cda016630a93227f13", size = 18433941, upload-time = "2026-06-15T22:42:58.867Z" }, + { url = "https://files.pythonhosted.org/packages/6e/24/d535ca8a09dbf697f853377c8dc0820dbcaae5f334316b400b953afbcba8/onnxruntime-1.27.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5b51c014cf1a4fcd93c29a97eac8071fa27710dae05a4d0380bb60a66d60a62c", size = 16439970, upload-time = "2026-06-15T22:42:48.023Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b1/ea9ee80c0bdaa4efb13f29f8c236f3740f6655e8c092a2d119515a5a652c/onnxruntime-1.27.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:445fb702ea5241ba813a3ce2febe2e9408a64f6ad2eb610924322c536165f7cd", size = 18659240, upload-time = "2026-06-15T22:43:13.165Z" }, + { url = "https://files.pythonhosted.org/packages/e9/f2/1404507d76a21940e8bf46f414e3d1abd94dc888cb89a30f4a540275846f/onnxruntime-1.27.0-cp314-cp314-win_amd64.whl", hash = "sha256:49e416be0d717338b6d041b99911b716d70c397d277056450724f93bdded3fc2", size = 13685306, upload-time = "2026-06-15T22:43:40.416Z" }, + { url = "https://files.pythonhosted.org/packages/10/e5/ca5cf012ccccb806c70e94aadfebca5606acc62b33eb88cec13352d0778f/onnxruntime-1.27.0-cp314-cp314-win_arm64.whl", hash = "sha256:856032937dd3bc7a7c141909c8d7ae4fde3e3f59bddf061ae627b9a051bda95c", size = 13456280, upload-time = "2026-06-15T22:43:29.693Z" }, + { url = "https://files.pythonhosted.org/packages/67/7b/dca330a8397e9d816c976d7aed4e24a4a2d279bb1e551e3d0221d1389b1d/onnxruntime-1.27.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c6197a02e3f620c4dc13cff51b80672409fc1ffab3aa2593911b19fd322ff48b", size = 16443274, upload-time = "2026-06-15T22:42:50.467Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f6/2bac21f722aa45d876d4a51f26bd0ef30e704068a3cd5021a5a7cd784271/onnxruntime-1.27.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:370d211e1ceeac4cd5f45301655463ac59e27cdc74d9f7aeb2d19ff4b7a76715", size = 18670781, upload-time = "2026-06-15T22:43:17.151Z" }, +] + +[[package]] +name = "openai-whisper" +version = "20250625" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools", marker = "python_full_version >= '3.11'" }, + { name = "numba", marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "tiktoken", marker = "python_full_version >= '3.11'" }, + { name = "torch", marker = "python_full_version >= '3.11'" }, + { name = "tqdm", marker = "python_full_version >= '3.11'" }, + { name = "triton", marker = "(python_full_version >= '3.11' and platform_machine == 'x86_64' and sys_platform == 'linux') or (python_full_version >= '3.11' and sys_platform == 'linux2')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/35/8e/d36f8880bcf18ec026a55807d02fe4c7357da9f25aebd92f85178000c0dc/openai_whisper-20250625.tar.gz", hash = "sha256:37a91a3921809d9f44748ffc73c0a55c9f366c85a3ef5c2ae0cc09540432eb96", size = 803191, upload-time = "2025-06-26T01:06:13.34Z" } + +[[package]] +name = "opencv-python" +version = "5.0.0.93" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/79/4c/a438d23e09ce2033c09f7b784ad2fbdb0adf529e434101ed28f142226f98/opencv_python-5.0.0.93.tar.gz", hash = "sha256:66aac3e5b5faa48d4025816592f3af19e4bfc2c68dec067bae2dbb4ca10aa9e2", size = 81802749, upload-time = "2026-07-02T06:59:53.815Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/75/76f6ade78f6102c61034f828e2a22616708df2c9504bc8d6af9dd8f73dc5/opencv_python-5.0.0.93-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:198a75138241810206a17c829dbcc40a7cb1841cda538ca86cbbfc6c7d95f898", size = 48322443, upload-time = "2026-07-02T05:50:25.466Z" }, + { url = "https://files.pythonhosted.org/packages/15/8c/bc1bda6aae69a32e9d84fc34153ba104cd25226861eb4aea33b2cea4860d/opencv_python-5.0.0.93-cp37-abi3-macosx_14_0_x86_64.whl", hash = "sha256:6bbc32f59e1b1a7db7b39c81f63d00625f041d333037fd8702f6da52cc39108b", size = 34782755, upload-time = "2026-07-02T05:51:30.556Z" }, + { url = "https://files.pythonhosted.org/packages/f4/8a/b04776ec45d2dea08a1b176f1829201db3515d4ed16c35f8fcc9fa7beb16/opencv_python-5.0.0.93-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2b4272e736836f66c2d176e43ab8101f3a00d45654916399f52e150c58981ac", size = 50614064, upload-time = "2026-07-02T06:53:22.604Z" }, + { url = "https://files.pythonhosted.org/packages/95/54/eb47866b94f2b5b42dde17644b78055ef1ee05aae59962c7290e55270803/opencv_python-5.0.0.93-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f8b6d0a212253dd26ad338c812f1f23ca118fdf05a9c8c6b9444f161aa8c5881", size = 71064711, upload-time = "2026-07-02T06:54:13.148Z" }, + { url = "https://files.pythonhosted.org/packages/93/da/962579f1e703cbf8c5422fd1f576467dcb3b5b0b0b81c1471c979764353a/opencv_python-5.0.0.93-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:08d5d91d967b58d6db86073b2ad3eaef88ca4ebdfd45c9059bf59f5ded0c7ad2", size = 49798576, upload-time = "2026-07-02T06:54:33.781Z" }, + { url = "https://files.pythonhosted.org/packages/cf/4c/c73f828fdbcd37eaf21d08fa852544a3ca7c2dbb3ea76873d64f2ea413d1/opencv_python-5.0.0.93-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c8de2dec111122a02e8beb28e16c31904992dfd6186560b142a92c71403c1039", size = 73783032, upload-time = "2026-07-02T06:55:03.415Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4b/edaf83b996ca5a1a3d8ccad485706b9c6d4742b13b9c4586bf1c1e7d9423/opencv_python-5.0.0.93-cp37-abi3-win32.whl", hash = "sha256:4b4b1a34c79bf8d3738e3cfe9a9e67b51a79663f6b692cbdad8c31f570da4157", size = 35564734, upload-time = "2026-07-02T05:49:57.704Z" }, + { url = "https://files.pythonhosted.org/packages/21/f0/9fa6e85cb10c8eb36a0222d27e50fe381b86ce49a55446bf39f491727564/opencv_python-5.0.0.93-cp37-abi3-win_amd64.whl", hash = "sha256:f90ba04b8f73bc5c3814037699739f0156f597338a98f05956c684e7c3ca10d2", size = 44000345, upload-time = "2026-07-02T05:49:54.971Z" }, +] + +[[package]] +name = "openpyxl" +version = "3.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "et-xmlfile" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186464, upload-time = "2024-06-28T14:03:44.161Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size = 250910, upload-time = "2024-06-28T14:03:41.161Z" }, +] + +[[package]] +name = "packageurl-python" +version = "0.17.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f5/d6/3b5a4e3cfaef7a53869a26ceb034d1ff5e5c27c814ce77260a96d50ab7bb/packageurl_python-0.17.6.tar.gz", hash = "sha256:1252ce3a102372ca6f86eb968e16f9014c4ba511c5c37d95a7f023e2ca6e5c25", size = 50618, upload-time = "2025-11-24T15:20:17.998Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/2f/c7277b7615a93f51b5fbc1eacfc1b75e8103370e786fd8ce2abf6e5c04ab/packageurl_python-0.17.6-py3-none-any.whl", hash = "sha256:31a85c2717bc41dd818f3c62908685ff9eebcb68588213745b14a6ee9e7df7c9", size = 36776, upload-time = "2025-11-24T15:20:16.962Z" }, +] + +[[package]] +name = "packaging" +version = "26.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, +] + +[[package]] +name = "pandas" +version = "2.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c", size = 11555763, upload-time = "2025-09-29T23:16:53.287Z" }, + { url = "https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a", size = 10801217, upload-time = "2025-09-29T23:17:04.522Z" }, + { url = "https://files.pythonhosted.org/packages/1d/03/3fc4a529a7710f890a239cc496fc6d50ad4a0995657dccc1d64695adb9f4/pandas-2.3.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1", size = 12148791, upload-time = "2025-09-29T23:17:18.444Z" }, + { url = "https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838", size = 12769373, upload-time = "2025-09-29T23:17:35.846Z" }, + { url = "https://files.pythonhosted.org/packages/df/91/82cc5169b6b25440a7fc0ef3a694582418d875c8e3ebf796a6d6470aa578/pandas-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250", size = 13200444, upload-time = "2025-09-29T23:17:49.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/ae/89b3283800ab58f7af2952704078555fa60c807fff764395bb57ea0b0dbd/pandas-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4", size = 13858459, upload-time = "2025-09-29T23:18:03.722Z" }, + { url = "https://files.pythonhosted.org/packages/85/72/530900610650f54a35a19476eca5104f38555afccda1aa11a92ee14cb21d/pandas-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826", size = 11346086, upload-time = "2025-09-29T23:18:18.505Z" }, + { url = "https://files.pythonhosted.org/packages/c1/fa/7ac648108144a095b4fb6aa3de1954689f7af60a14cf25583f4960ecb878/pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523", size = 11578790, upload-time = "2025-09-29T23:18:30.065Z" }, + { url = "https://files.pythonhosted.org/packages/9b/35/74442388c6cf008882d4d4bdfc4109be87e9b8b7ccd097ad1e7f006e2e95/pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45", size = 10833831, upload-time = "2025-09-29T23:38:56.071Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e4/de154cbfeee13383ad58d23017da99390b91d73f8c11856f2095e813201b/pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66", size = 12199267, upload-time = "2025-09-29T23:18:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b", size = 12789281, upload-time = "2025-09-29T23:18:56.834Z" }, + { url = "https://files.pythonhosted.org/packages/f2/00/a5ac8c7a0e67fd1a6059e40aa08fa1c52cc00709077d2300e210c3ce0322/pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791", size = 13240453, upload-time = "2025-09-29T23:19:09.247Z" }, + { url = "https://files.pythonhosted.org/packages/27/4d/5c23a5bc7bd209231618dd9e606ce076272c9bc4f12023a70e03a86b4067/pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151", size = 13890361, upload-time = "2025-09-29T23:19:25.342Z" }, + { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702, upload-time = "2025-09-29T23:19:38.296Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload-time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload-time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload-time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload-time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload-time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload-time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload-time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload-time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload-time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload-time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload-time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload-time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload-time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload-time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload-time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload-time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload-time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload-time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload-time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload-time = "2025-09-29T23:24:24.876Z" }, + { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635, upload-time = "2025-09-29T23:25:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079, upload-time = "2025-09-29T23:26:33.204Z" }, + { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049, upload-time = "2025-09-29T23:27:15.384Z" }, + { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638, upload-time = "2025-09-29T23:27:51.625Z" }, + { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834, upload-time = "2025-09-29T23:28:21.289Z" }, + { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925, upload-time = "2025-09-29T23:28:58.261Z" }, + { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071, upload-time = "2025-09-29T23:32:27.484Z" }, + { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504, upload-time = "2025-09-29T23:29:31.47Z" }, + { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702, upload-time = "2025-09-29T23:29:54.591Z" }, + { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535, upload-time = "2025-09-29T23:30:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582, upload-time = "2025-09-29T23:30:43.391Z" }, + { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963, upload-time = "2025-09-29T23:31:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175, upload-time = "2025-09-29T23:31:59.173Z" }, +] + +[[package]] +name = "pathspec" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/82/42f767fc1c1143d6fd36efb827202a2d997a375e160a71eb2888a925aac1/pathspec-1.1.1.tar.gz", hash = "sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a", size = 135180, upload-time = "2026-04-27T01:46:08.907Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl", hash = "sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189", size = 57328, upload-time = "2026-04-27T01:46:07.06Z" }, +] + +[[package]] +name = "pdf2image" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/d8/b280f01045555dc257b8153c00dee3bc75830f91a744cd5f84ef3a0a64b1/pdf2image-1.17.0.tar.gz", hash = "sha256:eaa959bc116b420dd7ec415fcae49b98100dda3dd18cd2fdfa86d09f112f6d57", size = 12811, upload-time = "2024-01-07T20:33:01.965Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/33/61766ae033518957f877ab246f87ca30a85b778ebaad65b7f74fa7e52988/pdf2image-1.17.0-py3-none-any.whl", hash = "sha256:ecdd58d7afb810dffe21ef2b1bbc057ef434dabbac6c33778a38a3f7744a27e2", size = 11618, upload-time = "2024-01-07T20:32:59.957Z" }, +] + +[[package]] +name = "pdfminer-six" +version = "20260107" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "charset-normalizer" }, + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/34/a4/5cec1112009f0439a5ca6afa8ace321f0ab2f48da3255b7a1c8953014670/pdfminer_six-20260107.tar.gz", hash = "sha256:96bfd431e3577a55a0efd25676968ca4ce8fd5b53f14565f85716ff363889602", size = 8512094, upload-time = "2026-01-07T13:29:12.937Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/8b/28c4eaec9d6b036a52cb44720408f26b1a143ca9bce76cc19e8f5de00ab4/pdfminer_six-20260107-py3-none-any.whl", hash = "sha256:366585ba97e80dffa8f00cebe303d2f381884d8637af4ce422f1df3ef38111a9", size = 6592252, upload-time = "2026-01-07T13:29:10.742Z" }, +] + +[[package]] +name = "pdfplumber" +version = "0.11.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pdfminer-six" }, + { name = "pillow" }, + { name = "pypdfium2" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/56/6f450312ba05a27d7713b73857c1a25100dbda04fbc1331b13fb227a607d/pdfplumber-0.11.10.tar.gz", hash = "sha256:b95b2d28c66efb0a794a83b88c6c6aea5987532a445d20a1cbcfa657022e6e57", size = 102892, upload-time = "2026-06-15T03:31:31.035Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/9a/07d658e1e7fad860f1c541ab941348125dbdab773be3a0afaf32361866c7/pdfplumber-0.11.10-py3-none-any.whl", hash = "sha256:7741ea81bf165b474b153e6789d10d18e06b6ddcf3ec84289c3ef2fed6802580", size = 60047, upload-time = "2026-06-15T03:31:29.702Z" }, +] + +[[package]] +name = "phonenumbers" +version = "9.0.34" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/86/c3/e154829a50679c38ae28ec9c4f151f2c425db5e70fd445266e76f6d6cd65/phonenumbers-9.0.34.tar.gz", hash = "sha256:00751c75d1166485ca80ce02ec15b6a61a2628e9b313381579330bc70c934075", size = 2306776, upload-time = "2026-07-03T06:30:37.358Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/0a/3a7980f3b071dde9a297d85cf6b18ba4bc2e5024e1c453b3da8a1dc14268/phonenumbers-9.0.34-py2.py3-none-any.whl", hash = "sha256:1221bf8e65bd2c02770226488af806d4636814bc997104d3a1f7de6ed6410bd2", size = 2595344, upload-time = "2026-07-03T06:30:33.913Z" }, +] + +[[package]] +name = "pi-heif" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/a2/70168b601b41bdf5726dfc8dc110eb4052a2e851fed9c9bdae95910e401d/pi_heif-1.4.0.tar.gz", hash = "sha256:e1199d9d41d9ecc877cf3ae7322ff099f6404574f2e62da47590cd4ecb9ec554", size = 17125614, upload-time = "2026-06-10T16:03:53.207Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/62/fdd32400ebe46a357aede2ee691edd06738c7b794345c153b2421a236301/pi_heif-1.4.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:a72f81f7837d298c283e893d4f8805a1eaea9c55df7dd0efe8615a6511bd5add", size = 1063529, upload-time = "2026-06-10T16:02:43.152Z" }, + { url = "https://files.pythonhosted.org/packages/f1/7e/06551546ed9d9169c2b83cd267f11e8cb3813e0223ca34b55be87233b41f/pi_heif-1.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eeea6d0291bb16f674b2de5088630c580a101b90bcca4990a7dca236959cbf9d", size = 959643, upload-time = "2026-06-10T16:02:44.897Z" }, + { url = "https://files.pythonhosted.org/packages/45/c5/8fc0df0452a4cdcd4cb5525708279bb9331f522e2c62d379b3f30bea7720/pi_heif-1.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c1d598f0afa3eccff8aa27d9bc4fbb68a39931d6937be57379fb9ee61d5cd8b8", size = 1352607, upload-time = "2026-06-10T16:02:46.39Z" }, + { url = "https://files.pythonhosted.org/packages/56/eb/702e960ea90a2098f9deab023ae20518258478d13349b9e4c1774b4fdb46/pi_heif-1.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:97e4048cbddc3d0d7b0c629f02c9d5e4f911b4ae8e7c088a0c315487b972f405", size = 1486573, upload-time = "2026-06-10T16:02:47.718Z" }, + { url = "https://files.pythonhosted.org/packages/e9/91/dbed0d95c1dc1c791e66332a59d49809d514c4558d760aa97f151a50bc52/pi_heif-1.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a8aba0545e1c54a05b8914665f2bda5ae4826e34eb779a3d2a7f613931d1d14d", size = 2335346, upload-time = "2026-06-10T16:02:49.13Z" }, + { url = "https://files.pythonhosted.org/packages/0c/8e/50eb30c18ab03c570fd5792286c65417ac6991db7e931e6181f0f24c33ca/pi_heif-1.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c1acbbc08fe2a85a58c1dd4c2bcc247f37b50f07e6842bc1d7ff6fa2162236fa", size = 2505847, upload-time = "2026-06-10T16:02:50.708Z" }, + { url = "https://files.pythonhosted.org/packages/03/f4/601f0a15a5ab5987f7e65d1cf416e07af1536b5bee5f2061bd66e3aa3744/pi_heif-1.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:fcfb9422c9c9c8f84d6a18ebf256b872556bf4f05697430e790a16bb197a8f26", size = 2383129, upload-time = "2026-06-10T16:02:52.181Z" }, + { url = "https://files.pythonhosted.org/packages/1e/de/9f1414c732781b7ac13a5879bbc9709aa17f97a7f176345ff7d68b62ae8a/pi_heif-1.4.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:b13e807418c60f1b6bda75a2afe9bab4dd1b47b4bf393fa45eff0f3bd884e74a", size = 1063526, upload-time = "2026-06-10T16:02:53.908Z" }, + { url = "https://files.pythonhosted.org/packages/e2/71/d027a0d3102cdf76da416a30754baabc6f94ae1b84dc9c467e572f9808f1/pi_heif-1.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dafa2ea7e7ff594f64fa60e0cd25b3dea9d200277d7aed9fb2b73835fa41fb6d", size = 959643, upload-time = "2026-06-10T16:02:55.278Z" }, + { url = "https://files.pythonhosted.org/packages/06/f0/a6a60e848466c506280fd996864c545ecf90d69a6a21701b543f5f8ee766/pi_heif-1.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8789b56a4eb1bda9ec3479e22537f20a3e42e98e145dfc4825ebf5ec945cdd9", size = 1354310, upload-time = "2026-06-10T16:02:56.584Z" }, + { url = "https://files.pythonhosted.org/packages/fb/b7/864ed7b2c1663b004e8bff2fe0cab23710839a636c65d405047b71a33678/pi_heif-1.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48554de1080094557f75d090bac1b8004850f11b2be91efe7de9d51d6d620f81", size = 1488131, upload-time = "2026-06-10T16:02:57.935Z" }, + { url = "https://files.pythonhosted.org/packages/88/c9/916e8850733699d21e3779e8614458145f646d4a47d8f671142cffaf1fa1/pi_heif-1.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a4f83306843c80ccd4784cfd73ea78a96a59abdfbb0fc16b2646bd76b8fff438", size = 2336858, upload-time = "2026-06-10T16:02:59.269Z" }, + { url = "https://files.pythonhosted.org/packages/78/b2/a667c3a5f027fdd3673efb212560828ea852527f46b99e850a3edc36076a/pi_heif-1.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:759dc764b45efcb62c1ad26355c7d46be1ed5d5e93e86fe19992ecfeab305e7a", size = 2507428, upload-time = "2026-06-10T16:03:00.932Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/b5047514725f4708d82dd6b1184694e5d32e3fc432558485c540f84da0f1/pi_heif-1.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:9b568e747e31dfc4ca09d5464e8d9475eb5958bf5289767c38280920f6454ba0", size = 2383130, upload-time = "2026-06-10T16:03:02.364Z" }, + { url = "https://files.pythonhosted.org/packages/7b/b4/abfa8d2264144454c1bb18b0339a35bddb1010c078429ced386eab58246e/pi_heif-1.4.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:58320bee5fac8923aa8e09439c7e8778ba4afb146d2cd658be9f4160cb72aec3", size = 1063771, upload-time = "2026-06-10T16:03:03.634Z" }, + { url = "https://files.pythonhosted.org/packages/dc/8e/5367ffae4518b884218d3a49e28edcb0dbd28e71ed67a7eb0a1c82ac4f0c/pi_heif-1.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04d5b253bc463839beb50ac9fdf9f13a79125ee80346a53030f43962e565f928", size = 959618, upload-time = "2026-06-10T16:03:05.302Z" }, + { url = "https://files.pythonhosted.org/packages/21/ac/96a896a984923bc0de64c6c68e0dcd6f0c2d9f33d5e13f8294fc58b2ea9c/pi_heif-1.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4cc3a6a55d31f7961d7bf16103a47704adf33c06209d9f86351caea2084c40a", size = 1352877, upload-time = "2026-06-10T16:03:06.739Z" }, + { url = "https://files.pythonhosted.org/packages/20/49/7d95867e0190e7396a4ee2d7951483d03c02d803f05d22cf90d401a6157d/pi_heif-1.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:482bf2d9b26f4e3399a304bb8d14e01aaf0b806f22615e2cc98a0bdbda895d22", size = 1487485, upload-time = "2026-06-10T16:03:08.153Z" }, + { url = "https://files.pythonhosted.org/packages/b4/eb/672a162c58e3a16acbdd8407e4dac8d4f86a945f3bcb61077c99f5204156/pi_heif-1.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4fab02de6b0e445d8e7ab2f232338e242d6b5b54c0bddf12959ede248f176518", size = 2335564, upload-time = "2026-06-10T16:03:09.748Z" }, + { url = "https://files.pythonhosted.org/packages/0e/bf/cd127c7cd1cfe6fcd7c49d203b1384ccda9bd0ae4748cdfd8dafb486cda1/pi_heif-1.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5b58514d1b76fb488e4f78ac4717371c8077f6422298d0fc9a21c2fa72d8907b", size = 2506643, upload-time = "2026-06-10T16:03:11.158Z" }, + { url = "https://files.pythonhosted.org/packages/3b/63/d3b8597da25b0dd62e587a7089ce40dbbaa72449b2680f26220fb6a7688a/pi_heif-1.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:81cb473227b2da35bfd7c69a12764f664d91e44b0ec2547cdfe5ca6b8b52cab9", size = 2383230, upload-time = "2026-06-10T16:03:12.512Z" }, + { url = "https://files.pythonhosted.org/packages/f1/68/3a1d43994865829ae5c2aea40cefa85940b709009c1dd03914a220fd21f9/pi_heif-1.4.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:1c7d6829532ff6ac195e63879b399530de8e693a621d3755581574da7ef74676", size = 1063754, upload-time = "2026-06-10T16:03:13.747Z" }, + { url = "https://files.pythonhosted.org/packages/c5/9e/22a938ed3d56451e42f4a0383fc16cdd04480b16244f4901ec92f1306b4a/pi_heif-1.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c95f5cf99285403698fc48436a05af01d4c38cbedc01949dd4d96f53590fbd33", size = 959625, upload-time = "2026-06-10T16:03:15.04Z" }, + { url = "https://files.pythonhosted.org/packages/77/09/e2f51a7569f5950d52e8d1b140f10bdd62aeac079b7e1af11fa16b269cbf/pi_heif-1.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cd041cdf552019737f665fdcdf9c831ef354785a92d930d7f546ba9959a0284", size = 1352920, upload-time = "2026-06-10T16:03:16.247Z" }, + { url = "https://files.pythonhosted.org/packages/50/a8/59742173bc4c9c4831fbea9c4da542b9e28782bea13df9dc9d7902451369/pi_heif-1.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fd498fabcdc77159414cccfd966ca48735497fd8c038d1b0135025f3cceac90", size = 1487546, upload-time = "2026-06-10T16:03:17.645Z" }, + { url = "https://files.pythonhosted.org/packages/26/b0/db7ccdda10f788f98fad033b39b332be6fb2c317f151022101be5c271f68/pi_heif-1.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:21a907c3ba6b72ffa97c308aa5678764be82b5510b4f0b67a9d50fdb99e0935e", size = 2335583, upload-time = "2026-06-10T16:03:19.105Z" }, + { url = "https://files.pythonhosted.org/packages/bc/21/f4758d8208f59229a0f9f796485772ed8d21e47d7c10b40e5277245bd1f5/pi_heif-1.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:406584a8f6d1d59f6d401af3d434f3e6a9df5c49681f87023c602f755c647b4e", size = 2506684, upload-time = "2026-06-10T16:03:20.587Z" }, + { url = "https://files.pythonhosted.org/packages/0a/7f/f1c748d8fadfe4bbde5960c83abacef7fdefd7242b16002f37e4e5f54b94/pi_heif-1.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:7692b50e0305170502fdd0657b31818e724f9630629bdbc05a91b10a7979d786", size = 2383227, upload-time = "2026-06-10T16:03:21.954Z" }, + { url = "https://files.pythonhosted.org/packages/35/79/eb28acbc84d7a62121c90d97b4e5672f221d4cc1e856f81ac590d40a1080/pi_heif-1.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:13eceb34f2bfe06b1e59296e958a67cbe864adb10d30e825890e54111b895aa0", size = 1063777, upload-time = "2026-06-10T16:03:23.596Z" }, + { url = "https://files.pythonhosted.org/packages/f5/4a/49ca58461582c03984957d87066ff3f3106e1e97b4893442ca3f2e623e77/pi_heif-1.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3d5396f500e70de167307e0cabcc2b3895d2e623ad4243811f44d578b55c9e1c", size = 959661, upload-time = "2026-06-10T16:03:25.007Z" }, + { url = "https://files.pythonhosted.org/packages/ec/b4/ccc8a00b74af6e7b33a670a5a58b82e9c04be9a95c02246de36dbe02ba8d/pi_heif-1.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5ecc06e86a0170ed3782ec27c854b5b334d44d7651d5c0bbff0c123ea44d5f9", size = 1353096, upload-time = "2026-06-10T16:03:26.292Z" }, + { url = "https://files.pythonhosted.org/packages/91/3d/2973bdea79a7886479089f596af4e99a6d980231d848daadb12a5fb92145/pi_heif-1.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:298a84c8865a2fa6a795bdd9e532bfa07dd87a6b289caff03b26a0993c06558b", size = 1487574, upload-time = "2026-06-10T16:03:28.009Z" }, + { url = "https://files.pythonhosted.org/packages/59/e4/013c64b9f5c300a8f5d2621ad6c4262e01b7311dccdb3734a9cadc4ebfc7/pi_heif-1.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:939f8eeb63a3897357807766cf0eea3fca3310427ec66a000b86ba1f30af21ab", size = 2335671, upload-time = "2026-06-10T16:03:29.348Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ba/c9873a94211eee70e142d764b9373abc423118e9b03fa8bbbb5406fbedee/pi_heif-1.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:229af3701358ccc3428081586fe4c11d7badc8dbf995aa686cc4f0344c3966dd", size = 2506758, upload-time = "2026-06-10T16:03:30.799Z" }, + { url = "https://files.pythonhosted.org/packages/a6/67/1373582c4bfa3ca2092befd5555fc52d581fc34ad4a5cb0d8401d7f847b4/pi_heif-1.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:743b971b9c0d35be8435702443596e3e9280084e68fc8d5c4de4b31fb12a1417", size = 2471355, upload-time = "2026-06-10T16:03:32.388Z" }, + { url = "https://files.pythonhosted.org/packages/f5/59/e539c90fb7f6c53b1f0f2d265fcd6e2010f99223664add8f5e08874d912f/pi_heif-1.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:0da6168084d6c50f6a44538273f58d3aa2ec96ebdc3539efd65ecb98a1bb08e8", size = 1064733, upload-time = "2026-06-10T16:03:33.813Z" }, + { url = "https://files.pythonhosted.org/packages/21/7e/1815b5bcd40597dd9b2600f33e8d28fedeeb33fe0cc8c5f331b36c4c9b7d/pi_heif-1.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:55f9b4567b84b72e39fd62982ab780631cad71ebe082b6834ce300fe46fcc389", size = 960460, upload-time = "2026-06-10T16:03:35.339Z" }, + { url = "https://files.pythonhosted.org/packages/d5/14/4c87a33d05b2c39c78bccd86e34dd807403e7e213f2fc1ae54ebb38f99c3/pi_heif-1.4.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d0f2512d2e03ea33777c2ca3f1bec33db260bb9dd013ffd350a20fe28452d33f", size = 1358236, upload-time = "2026-06-10T16:03:36.68Z" }, + { url = "https://files.pythonhosted.org/packages/ee/eb/86ea7e4869f38144aab8981c0f1660cd20dc2be92d81ece65c6ce5afd922/pi_heif-1.4.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c791710e3d152637123ad204016fa6154040b1957e95fb1cb234014c423a0a3", size = 1491720, upload-time = "2026-06-10T16:03:38.643Z" }, + { url = "https://files.pythonhosted.org/packages/e1/16/22f0c4729cbf4c4d11100fea73e44b37e3167afc969ef5f77fca267f6c68/pi_heif-1.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:055610c9eceb621f51117ab1900d4a9a519824427428c93a3c546b4e39e72df3", size = 2340766, upload-time = "2026-06-10T16:03:40.248Z" }, + { url = "https://files.pythonhosted.org/packages/1b/41/8935ea651b6c8d89bc1ff60e73f6137e654204c3b4e39f0bc588fded6c27/pi_heif-1.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9400e8f27b13646bcb3bac2fbdcd8903b6f8e03dc269aabb3d852f15245b85ee", size = 2510828, upload-time = "2026-06-10T16:03:41.621Z" }, + { url = "https://files.pythonhosted.org/packages/e7/75/82467e303e3e7eb08966381645bbaf1c5b1f1d21d40baa65dc51c56bb7fb/pi_heif-1.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:04f5648d670e33aef5d0bc6a0f1875efd6093217a826a6d123cbac6022434a70", size = 2471952, upload-time = "2026-06-10T16:03:43.427Z" }, + { url = "https://files.pythonhosted.org/packages/5f/4a/376d99ce769353df9445e76fe8f4072a854695d57da65d67d948c895dfd3/pi_heif-1.4.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2395973961b19e7d72f31f8283279dd0112c20d892e35417ebe09fb8e54c6f51", size = 1051878, upload-time = "2026-06-10T16:03:44.833Z" }, + { url = "https://files.pythonhosted.org/packages/50/59/25f92e8bf833c67f90edb80734fdc50a71becde90d877d0d6f822883222a/pi_heif-1.4.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:2d1577df3172de68ec095cd9b7fc065f396093473f5826a6a82e07a7d26af2af", size = 956097, upload-time = "2026-06-10T16:03:46.206Z" }, + { url = "https://files.pythonhosted.org/packages/9c/22/a4ae6a69a89ce499dcfa26f306bf3de1802bd0e5231311c25ab05f4074c6/pi_heif-1.4.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c5fe6ca4b5b5e6c9d2d645d30c8cbd9a4fc4087aeb8b45f2872729a5f568b18", size = 1312163, upload-time = "2026-06-10T16:03:47.674Z" }, + { url = "https://files.pythonhosted.org/packages/14/0e/a9fac916c201aff86e51d1bb6ee1565334fe43fef18acedf3228af48a921/pi_heif-1.4.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13beb46287e190fbaeedcf157a2be6f9ac56a9e91d7a7a7de9264ea2f195643f", size = 1442979, upload-time = "2026-06-10T16:03:48.988Z" }, + { url = "https://files.pythonhosted.org/packages/c0/97/c9e13f864dd2647dc2a231bdb7fd4c8e78362eb9801f042feb0f2356b50b/pi_heif-1.4.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:43241a5fb8a34bd6c822f47022e9b53276db7f42379074e281da2053ca0eca0c", size = 2383479, upload-time = "2026-06-10T16:03:50.477Z" }, +] + +[[package]] +name = "pikepdf" +version = "10.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "packaging" }, + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/e7/45265a52196e7b1e4d1fdee57159d25670275784f5eeb3651327cf68e137/pikepdf-10.10.0.tar.gz", hash = "sha256:9f134806b2fe608ccb21379a664ddcefeac3f6944100d343b350299d3c69754e", size = 23886210, upload-time = "2026-07-10T05:35:11.776Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dd/cd/70d186b1495af4c3305c0c2d9c6a7159c1323f81234996ae590e0700f3db/pikepdf-10.10.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:a2e4f6f3353ddf6c99fd761de7329079ce17d7c37635cb0c4c9f4f5d13c2657d", size = 4455069, upload-time = "2026-07-10T05:33:41.402Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d6/d28b754b67427f205193adedcbc3f012d7e8138b37de0b9be2805ff2040b/pikepdf-10.10.0-cp310-cp310-macosx_15_0_x86_64.whl", hash = "sha256:ce246d90519d9672d3fd6ca008139865f0b9243806bb4b11c2d09f9955d00394", size = 4774282, upload-time = "2026-07-10T05:33:44.524Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c9/19d71511b2f2de8cb8df37791716a3297ab860673b2dd77a25a8d384886e/pikepdf-10.10.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:01570abfc8c1891f34514e12ebee0606b580bc57e39c8fe3f023842fbe8ca5e0", size = 2027476, upload-time = "2026-07-10T05:33:46.311Z" }, + { url = "https://files.pythonhosted.org/packages/1b/c6/1d966cc4e1b1eecae49d53ce048f02dbe94427cdb12a5ee17d544bcac3f7/pikepdf-10.10.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:395a7a45bec7d457d9d5d7fe6e130aa144647e977a30bc88a2558197e9440271", size = 2220230, upload-time = "2026-07-10T05:33:48.026Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7b/6aaf0c05c444cdc49b850bc5404eede6e206fa29edf05a129bc88eed7b6d/pikepdf-10.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c7f5651953a18cb4c9c2266e5a11d0ac107ae969b8a53cad90ead707cf0a84ba", size = 3665355, upload-time = "2026-07-10T05:33:49.793Z" }, + { url = "https://files.pythonhosted.org/packages/50/89/12d687fc08fc6a2d41de1cd80ab6d1b53616c665921e0e1b595e5d2f4806/pikepdf-10.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1856a1da03d0121f99ab9a228c1697acd965341addd44ce2aceca36f6598e964", size = 3863859, upload-time = "2026-07-10T05:33:51.611Z" }, + { url = "https://files.pythonhosted.org/packages/cf/aa/62b56df62517b8ac789710a5e7d1ef79981ba693103d19d02faf48f22cac/pikepdf-10.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:f007a15fd80c4f55de535977cf19ad08111f0063356e8eb5c78ae878334f4955", size = 3320274, upload-time = "2026-07-10T05:33:53.359Z" }, + { url = "https://files.pythonhosted.org/packages/0a/76/90d0379b6ba04ea7273d3e7773a03c19a2b4ebd1c4dd3dc88f049d95f0f9/pikepdf-10.10.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4a82c1299bd66df6e106ed3e90749b7bdede075f5773ac88ef6a5b240e57ce21", size = 4454981, upload-time = "2026-07-10T05:33:55.162Z" }, + { url = "https://files.pythonhosted.org/packages/b2/0c/2829f9fea18e0c41339d29d5edebbb219f4aa044af6b79146c57de4fdfe6/pikepdf-10.10.0-cp311-cp311-macosx_15_0_x86_64.whl", hash = "sha256:2131bb45953de837a52c061b7a8b88a4f360774bf2ad4edd51ea5bbfe66672a7", size = 4774282, upload-time = "2026-07-10T05:33:57.073Z" }, + { url = "https://files.pythonhosted.org/packages/1d/89/a58d1197f14ecc7f2fa868a7a655d90e8293f4663b76b9c804db465698b4/pikepdf-10.10.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:99000cc686792aa4f8d11ef888d35814c6451562e846bd338ebcf2e339028500", size = 2027362, upload-time = "2026-07-10T05:33:59.139Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8c/1da925574d98ef25dbaf9af4bba94059452298d3856447711da1f8530eb1/pikepdf-10.10.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9428d0eef71b7419dfa4aea091039a442a5830af8aa8cf3a0f5ae7c698bb3fa9", size = 2220139, upload-time = "2026-07-10T05:34:01.089Z" }, + { url = "https://files.pythonhosted.org/packages/56/27/89929e566006843f69613818e89ecff7acc2991690662e8d4773a269e400/pikepdf-10.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f3112dccc0948ae04c3b83efd56eeadad8d29bca68df6bd1275f2925ae7fee24", size = 3665355, upload-time = "2026-07-10T05:34:03.019Z" }, + { url = "https://files.pythonhosted.org/packages/d5/95/dd54a9775e9470dcd07c69423b28490a2be662d2554a844125efb37ae336/pikepdf-10.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0d06d6052604c9c7a55fc4210abb5e262cb289c6c083e7b8e79e03699f1af3a2", size = 3863368, upload-time = "2026-07-10T05:34:04.921Z" }, + { url = "https://files.pythonhosted.org/packages/2d/74/2cd6952f1cf4be1d9e1e0aa2cfc659a69221e4aa190fc1159a7ede6988a5/pikepdf-10.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:4800e1207a1a9a9668bdccdb0296c52cdd07d3c1443c12f64a7fc13ea414bbfb", size = 3320327, upload-time = "2026-07-10T05:34:06.807Z" }, + { url = "https://files.pythonhosted.org/packages/8a/94/a30157ea052c9f8c8c5fee97dceba09f374dd564ed91fa8b8d9c48cfb622/pikepdf-10.10.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:ccfa2288bbc206bfe7197f8614ee20de902e511ff968da86bebf814280124156", size = 4454121, upload-time = "2026-07-10T05:34:09.054Z" }, + { url = "https://files.pythonhosted.org/packages/bc/86/313554efb00675f6e9b75bf012368e7c114174680f1c13035eba6e4a75de/pikepdf-10.10.0-cp312-cp312-macosx_15_0_x86_64.whl", hash = "sha256:19c14b76a240f3cd067abc77b62843268d56dce45b7787ea70fd8cceb11cc5dc", size = 4774365, upload-time = "2026-07-10T05:34:11.251Z" }, + { url = "https://files.pythonhosted.org/packages/a3/b6/0cceaa5a1084730154e8e948b181d2eee2f7f2f3a110b919263ea29e4a0a/pikepdf-10.10.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:81c938b33db9f32b7f419f06dbb97eca3e2629c57c0b18a7b719d81563c48d3f", size = 2025196, upload-time = "2026-07-10T05:34:13.727Z" }, + { url = "https://files.pythonhosted.org/packages/46/b0/fc1e0e3f0a6a652f71387c4f9061457202369e98074def130f15173a7a6c/pikepdf-10.10.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:feccd53d5620c908fbb79399b2daee9103dee27d744bc80946daca22500be90f", size = 2218460, upload-time = "2026-07-10T05:34:15.479Z" }, + { url = "https://files.pythonhosted.org/packages/7c/94/f2447204b7f63e25ec43d9641347e0736fa540b495b61315c9dceca89f03/pikepdf-10.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2333431f739205de480e547fab5dcc512668ea4af8f3f02f0d620730413d3772", size = 3663344, upload-time = "2026-07-10T05:34:18.302Z" }, + { url = "https://files.pythonhosted.org/packages/b0/b1/d318daa40e36b1beea2faec63bc4db8d246e0945279af4b3583274edb426/pikepdf-10.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6ab09282067a6e95cf0b997df020c38bb0474ed2af99edaa472ab90ef1f18929", size = 3861830, upload-time = "2026-07-10T05:34:20.475Z" }, + { url = "https://files.pythonhosted.org/packages/4d/fb/21b6c283a216864f185fe124745bad1b72270aa0ec0912e8bb6691c16326/pikepdf-10.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:e4845031acf29026a597a207c6a07b471577e8db3b30bac172ab4ac6b4ee4be7", size = 3320968, upload-time = "2026-07-10T05:34:22.357Z" }, + { url = "https://files.pythonhosted.org/packages/da/8b/31c62f96479bb4168fed80541d8bc037bdf832e1751aef50ab62f65121ec/pikepdf-10.10.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:ebfc8e36608c01271fdeec6c08e1c87148ac9c275766876e9ac1b2c91879a0db", size = 4454123, upload-time = "2026-07-10T05:34:24.573Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6a/fb00002df0479806408becc7ce658145269a87aa0c5355bf11371288e81d/pikepdf-10.10.0-cp313-cp313-macosx_15_0_x86_64.whl", hash = "sha256:e2eb3faee72fc74352e481fa174b4f0c7c2ed8516aed5bf73f9dfb7a57c3212f", size = 4774307, upload-time = "2026-07-10T05:34:26.51Z" }, + { url = "https://files.pythonhosted.org/packages/45/07/310138761c00d1fe19e6d16b81a02ec32627343a171eaca43c4f8b74054e/pikepdf-10.10.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4851b2b5c80916c0b57b9928b7fd9d1565f68c5e9c75a6304876cbd103812eed", size = 2025133, upload-time = "2026-07-10T05:34:28.536Z" }, + { url = "https://files.pythonhosted.org/packages/2d/0b/4e5271bdd40041f1b7d81cd3879003d84ece955e502f18567d4c26926e58/pikepdf-10.10.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c3e725ffe276b5ab86734b2a5f7025f3e1cb3b1d26063a39adc7490834846449", size = 2218319, upload-time = "2026-07-10T05:34:30.618Z" }, + { url = "https://files.pythonhosted.org/packages/3c/bb/361bdd9b030b974e2eee6d886ae529d3fced1378fd75b2b087ad87aa926c/pikepdf-10.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:425a76bb45ee713dbbee5b524f179f6797fd768f26d1bcf6049cc7181d479ec5", size = 3663292, upload-time = "2026-07-10T05:34:32.491Z" }, + { url = "https://files.pythonhosted.org/packages/a3/c0/0c6e903a55cf1672921bd519823c2ea2f9ee421c5fa4b8371d2ef0b1c6c5/pikepdf-10.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d1a781fca5ad09b6ee964e2971819f82f21218636b3a5bb62fb6c89816f2b88a", size = 3861541, upload-time = "2026-07-10T05:34:34.446Z" }, + { url = "https://files.pythonhosted.org/packages/aa/e3/6d17f19fd3c7c5d84c14d29906bba2897e739eaedff5b83e3a7cea6961d6/pikepdf-10.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:5b4460b6c610d89a1e3f52d2f48b811216b02cd18aee5c853e2cf2e8551b1ecd", size = 3320900, upload-time = "2026-07-10T05:34:36.578Z" }, + { url = "https://files.pythonhosted.org/packages/25/49/c181448d33d533003aaf7e688448355a2ffc0de132fbaa650ec6be2667b1/pikepdf-10.10.0-cp314-abi3-macosx_14_0_arm64.whl", hash = "sha256:84481f8768a9bcbd0bd490fa1b9d737bd50ef6e4c1651115b2df133c90ca229e", size = 4454276, upload-time = "2026-07-10T05:34:38.615Z" }, + { url = "https://files.pythonhosted.org/packages/8c/14/6fcaf8f95b21e167faa9095850cafeb0cbc24c8eda7e91ec288dfb1a2906/pikepdf-10.10.0-cp314-abi3-macosx_15_0_x86_64.whl", hash = "sha256:3867848e8dcca701be50464ead7e06a43a8c064ac48fb6d26faee79336e86f95", size = 4774492, upload-time = "2026-07-10T05:34:40.69Z" }, + { url = "https://files.pythonhosted.org/packages/7a/93/5b9d3104dfa1671c6d476c161ce728176787090a4137457801d40132e6f8/pikepdf-10.10.0-cp314-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3056dbbac60d97529560d3baecd9450c03683f4d9e72e5fb4a0c5aa50f01f3cc", size = 2023029, upload-time = "2026-07-10T05:34:42.65Z" }, + { url = "https://files.pythonhosted.org/packages/1a/a0/f55e196e18c238ec6ba88f377ca24da3af2754ad47bc284213420d101ea0/pikepdf-10.10.0-cp314-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:33adc935f6e0a195e1c1aa1e0c47047d6a29835d5643d07dac9c98996a619e05", size = 2216226, upload-time = "2026-07-10T05:34:45.633Z" }, + { url = "https://files.pythonhosted.org/packages/e1/48/3724e868913669b5a715ad6bc371986d52a99e5d9747e652da29559b1b65/pikepdf-10.10.0-cp314-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc7812a9ac54442fed4cd370e61d9fc294fa05577d14c13087c310eb8cafa1c0", size = 3660978, upload-time = "2026-07-10T05:34:48.019Z" }, + { url = "https://files.pythonhosted.org/packages/de/7a/ea908e0a1daadbded49d74823b62a16bf0e2b1991f17be7c57fe269db44d/pikepdf-10.10.0-cp314-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a094ce9636652f5aff8d62c004383f13cdb4312d2d854b6096bb6e15e3c0a269", size = 3858870, upload-time = "2026-07-10T05:34:50.388Z" }, + { url = "https://files.pythonhosted.org/packages/58/2a/5d86ec58d8ef6e295807c99196f4ef795aa89d04abde4837bcbfb4b0785f/pikepdf-10.10.0-cp314-abi3-win_amd64.whl", hash = "sha256:66567891906906e8733f1ef19cd133f46f34349cb415c858ee64db807d82413c", size = 3414578, upload-time = "2026-07-10T05:34:52.771Z" }, + { url = "https://files.pythonhosted.org/packages/a1/2e/34a171f0789ebc029531ba4c7a54109eedd3f63ebd024ed1771309b0be3f/pikepdf-10.10.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:d29487188c9f4aa9dd6decd403f76b4cb23e886c701dcd4cac508c257dbeac0b", size = 4459828, upload-time = "2026-07-10T05:34:55.096Z" }, + { url = "https://files.pythonhosted.org/packages/f4/92/8eb3fa7ae994ebe6bc3628ab867b5b000f77e3480f180e68560830ce4218/pikepdf-10.10.0-cp314-cp314t-macosx_15_0_x86_64.whl", hash = "sha256:e19fdc44c2e71cb5a150b270f0602aecabcd2432e6f9eef6f24742ff4d498b20", size = 4781116, upload-time = "2026-07-10T05:34:57.352Z" }, + { url = "https://files.pythonhosted.org/packages/6a/9b/b45e3b96842053ac0c8d0d0d2cefbc3e86aa9625bddd72e66f564e79220b/pikepdf-10.10.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a1d830217af7a179984f156bc6d2dee3b2f6662286f993554e53b4f73452932", size = 2029491, upload-time = "2026-07-10T05:34:59.818Z" }, + { url = "https://files.pythonhosted.org/packages/65/e2/c0661a580d52c2294a6480cf63dc48695ba38bb611ad60959359d7e46a73/pikepdf-10.10.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c2ba4bafdfbfcc417a38f817e317be905e749893104c5bfa02eb29010c3c8d5", size = 2221465, upload-time = "2026-07-10T05:35:02.264Z" }, + { url = "https://files.pythonhosted.org/packages/de/93/ea3456ee4c2957ad8f27b315b0f215f39c2f6284ed41aa1748393296692b/pikepdf-10.10.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3670a7eb6e1263750a50cbf01b947f0a5fefd1a43a1a7aa09e2752cc54c7f80d", size = 3667441, upload-time = "2026-07-10T05:35:04.801Z" }, + { url = "https://files.pythonhosted.org/packages/24/f4/76332de5a6755ab0910d89cc64d1a621a09821b46383ae664afd0c5396cb/pikepdf-10.10.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4dd93d81e77e67937d76592ae3438ad80b2b6c9619846fbc400dd9d3e71cc689", size = 3866534, upload-time = "2026-07-10T05:35:07.01Z" }, + { url = "https://files.pythonhosted.org/packages/51/ec/a249a101d8e254b887353e6c98dad29f6133fb550e593c28cc47811ee0b4/pikepdf-10.10.0-cp314-cp314t-win_amd64.whl", hash = "sha256:616adec2b1e3e2cf0640c8dc0f479ed9a07db298e32166ee7b60fb8b33dc98af", size = 3446758, upload-time = "2026-07-10T05:35:09.106Z" }, +] + +[[package]] +name = "pillow" +version = "12.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce", size = 47025035, upload-time = "2026-07-01T11:56:38.965Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/c2/669d88644cddb1485bd9534e63e8cf476c8e51cb3c3a1297677023505c0e/pillow-12.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6c0016e7b354317c4e9e525b937ac8596c38d2d232b419529b9cd7a1cd46e39a", size = 5392418, upload-time = "2026-07-01T11:53:27.808Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ba/3762f376a2948e3036488d773a146e0ae6ecc2ca03ac20e2615bd0b2ba02/pillow-12.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bcc33feacfaefce60c12fd500a277533bdc02b10a19f7f6d348763d8140bbba7", size = 4785287, upload-time = "2026-07-01T11:53:29.761Z" }, + { url = "https://files.pythonhosted.org/packages/07/50/b5d688cc9c52d4482f3d5bcab6ce20bc2a74a85d2343841c907444a3be2c/pillow-12.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5594fc43d548a7ed94949d139aa1341b270f1863f11cfd37f5a6c8b778a6b67f", size = 6253754, upload-time = "2026-07-01T11:53:32.298Z" }, + { url = "https://files.pythonhosted.org/packages/4e/89/36f4cd76cf4baf05c50ababb976249153f18c959171c7f6ba09a6f217260/pillow-12.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0606c8bf2cdefea14a43530f7657cbbb7ecf1c4222512492ef4a4434a9501ec", size = 6925605, upload-time = "2026-07-01T11:53:34.487Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c0/4de58cf6633b9e3a6061ef4be6fb91fc3c90b812ece886f531e3c523d777/pillow-12.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:85f998ea1848bc6757289e739cfbdda3a04adfd58b02fc018ce54d754a5ce468", size = 6327788, upload-time = "2026-07-01T11:53:36.433Z" }, + { url = "https://files.pythonhosted.org/packages/87/3c/14d53682a19550dbbaf3b598f807d5457646c510805a44c7d7891cd1cd1a/pillow-12.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:25b9b82bb22e6e2b3cd07b39c68b7b862001226cb3dff7130d1cb914121b39ed", size = 7036288, upload-time = "2026-07-01T11:53:38.712Z" }, + { url = "https://files.pythonhosted.org/packages/38/1d/36279e3c77efe034e4cc2b0393ee74ffdb5a62391dacbf9b916154f5f0b8/pillow-12.3.0-cp310-cp310-win32.whl", hash = "sha256:37dc8f7bbb66efe481bb60defacef820c950c24713fb44962ed6aa2a50966de1", size = 6472396, upload-time = "2026-07-01T11:53:40.781Z" }, + { url = "https://files.pythonhosted.org/packages/48/7c/8fa0039574c476d7c6fa57dd7c32a130436877c6ec1e5ce1cc8ec44878c1/pillow-12.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:300557495eb45ebb8aec96c2da9c4be642fbf7cd937278b4013ba894ea8eb0eb", size = 7226887, upload-time = "2026-07-01T11:53:42.764Z" }, + { url = "https://files.pythonhosted.org/packages/fa/17/e324be141d173c1c919428066c3259f21c1b8982e564e01a4a81e96dbdcf/pillow-12.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:514435a37670e3e5e08f3945b68718b6ed329bb84367777e16f9f4dfe1e61a0f", size = 2568039, upload-time = "2026-07-01T11:53:45.372Z" }, + { url = "https://files.pythonhosted.org/packages/fb/c8/0a78b0e02d7ac54bc03e5321c9220da52f0c2ea83b21f7c40e7f3169c502/pillow-12.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:00808c5e14ef63ac5161091d242999076604ff74b883423a11e5d7bbb38bf756", size = 5392415, upload-time = "2026-07-01T11:53:47.162Z" }, + { url = "https://files.pythonhosted.org/packages/b2/5b/a02d30018abd97ced9f5a6c63d28597694a00d066516b9c1c6de45859fc9/pillow-12.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37d6d0a00072fd2948eb22bce7e1475f34569d90c87c59f7a2ec59541b77f7a6", size = 4785266, upload-time = "2026-07-01T11:53:49.079Z" }, + { url = "https://files.pythonhosted.org/packages/c8/98/766667a4be768150a202836acd9fad19c06824ca86c4286d3cf6b274964e/pillow-12.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcb46e2f9feff8d06323983bd83ed00c201fdcab3d74973e7072a889b3979fcd", size = 6263814, upload-time = "2026-07-01T11:53:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2d/ede717bc1144f63886c21fd349bb95860b0d1a21149ff16f2bb362b612b6/pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23d27a3e0307ec2244cc51e7287b919aa68d097504ebe19df4e76a98a3eea5bd", size = 6934408, upload-time = "2026-07-01T11:53:53.487Z" }, + { url = "https://files.pythonhosted.org/packages/a3/48/9c58b685e69d49c31af6c8eb9012055fab7e665785165c84796e2c73ce72/pillow-12.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4f883547d4b7f0495ebe7056b0cc2aea76094e7a4abc8e933540f3271df27d9c", size = 6337160, upload-time = "2026-07-01T11:53:55.457Z" }, + { url = "https://files.pythonhosted.org/packages/ff/fa/dc2a5c0ba6df93f67c31d34b808b7ce440b40cdbf96f0b81cde1d1e6fa93/pillow-12.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:236ff70b9312fb68943c703aa842ca6a758abfa45ac187a5e7c1452e96ef72b5", size = 7045172, upload-time = "2026-07-01T11:53:57.736Z" }, + { url = "https://files.pythonhosted.org/packages/86/a5/444817a4d4c4c2417df00513086ca196f388d8f9ef40c2e4ccd1ad1af54b/pillow-12.3.0-cp311-cp311-win32.whl", hash = "sha256:10e41f0fbf1eec8cfd234b8fe17a4caac7c9d0db4c204d3c173a8f9f6ef3232b", size = 6472232, upload-time = "2026-07-01T11:53:59.767Z" }, + { url = "https://files.pythonhosted.org/packages/63/c6/4bad1b18d132a50b27e1365e1ab163616f7a5bb56d330f66f9d1d9d4f9d4/pillow-12.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e95e1385e4998ae9694eeaa4730ba5457ff61185b3a55e2e7bea0880aef452a", size = 7233653, upload-time = "2026-07-01T11:54:02.066Z" }, + { url = "https://files.pythonhosted.org/packages/fd/16/00f91ab7760dc842f5aad55217e80fc4a7067a0604535249bc8a2d6d9870/pillow-12.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:ebaea975e03d3141d9d3a507df75c9b3ec90fa9d2ffd07567b3a978d9d790b26", size = 2568195, upload-time = "2026-07-01T11:54:04.622Z" }, + { url = "https://files.pythonhosted.org/packages/37/bf/fb3ebff8ddcb76aac5a01389251bbbb9519922a9b520d8247c1ca864a25d/pillow-12.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ba09209fbe443b4acccebe845d8a138b89a8f4fbaeedd44953490b5315d5e965", size = 5345969, upload-time = "2026-07-01T11:54:06.397Z" }, + { url = "https://files.pythonhosted.org/packages/d8/66/9a386a92561f402389a4fc70c18838bf6d35eb5eb5c6850b4b2dc64f5048/pillow-12.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffd0c5368496f41b0944be820fcb7a838aa6e623d250b01acf2643939c3f99d7", size = 4780323, upload-time = "2026-07-01T11:54:09.351Z" }, + { url = "https://files.pythonhosted.org/packages/25/27/ac8f99618ffd3dde21db0f4d4b1d2ab00c0880595bfd17df103f7f39fd0c/pillow-12.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9c7f76c0673154f044e9d78c8655fb4213f6ca31a836df48b40fe5d187717b9", size = 6266838, upload-time = "2026-07-01T11:54:11.71Z" }, + { url = "https://files.pythonhosted.org/packages/84/21/a35af28dcc61f37ed850a2d64c65c701321dfbf25085e469d5559360cbbf/pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:78cb2c6865a35ab8ff8b75fd122f6033b92a62c82801110e48ddd6c936a45d91", size = 6940830, upload-time = "2026-07-01T11:54:13.732Z" }, + { url = "https://files.pythonhosted.org/packages/eb/51/8b08617af3ad95e33ce6d7dd2c99ed6c8298f7fb131636303956be022e25/pillow-12.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e491916b378fba47242221bb9ead245211b70d504f495d105d17b14a24b4907c", size = 6344383, upload-time = "2026-07-01T11:54:15.756Z" }, + { url = "https://files.pythonhosted.org/packages/1d/72/cf78ac9780bb93c28328f408973845a309d4d145041665f734572ced1b52/pillow-12.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0dd2064cbc55aaec028ef5fbb60fa47bb6c3e7918e07ff17935284b227a9d2df", size = 7052934, upload-time = "2026-07-01T11:54:17.721Z" }, + { url = "https://files.pythonhosted.org/packages/20/20/25e0f4dc178a6bc0696793720055519a0de89e7661dae886992decbd2f81/pillow-12.3.0-cp312-cp312-win32.whl", hash = "sha256:dbce0b29841537a2fa4a214c2bbf14de3587c9680caa9b4e217568472490b28f", size = 6472684, upload-time = "2026-07-01T11:54:19.839Z" }, + { url = "https://files.pythonhosted.org/packages/45/89/da2f7971a317f83d807fdd4065c0af40208e59e692cc43d315a71a0e96d1/pillow-12.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a2b55dd6b2a4c4b7d87ffa56bdb33fdc5fdb9a462173861a7bc097f17d91cb09", size = 7227137, upload-time = "2026-07-01T11:54:22.025Z" }, + { url = "https://files.pythonhosted.org/packages/de/47/4845a0a6c0dbf1db8456bd9fc791f13c5ced7ced20606d08a0aacfd25b49/pillow-12.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:331b624368d4f1d069149002f25f44bc61c8919ce8ddb3c45bdad8f6e2d89510", size = 2568267, upload-time = "2026-07-01T11:54:24.051Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ac/31fb64e1e7efb5a4b50cd3d92049ba89ac6e4d8d3bb6a74e15048ca3353e/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:21900ce7ba264168cd50defae43cd75d25c833ad4ad6e73ffc5596d12e25ac89", size = 4161684, upload-time = "2026-07-01T11:54:25.934Z" }, + { url = "https://files.pythonhosted.org/packages/87/b4/9805e23d2b4d77842b468513841fda254ee42f0289d25088340e4ff46e2d/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4e8c2a84d977f50b9daed6eeaf3baef67d00d5d74d932288f02cb94518ee3ace", size = 4255487, upload-time = "2026-07-01T11:54:27.935Z" }, + { url = "https://files.pythonhosted.org/packages/df/39/ecf519435a200c693fe053a6ee4d835b41cf963a4dfc2551c4e637cb2a71/pillow-12.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:ae26d61dfa7a47befdc7572b521024e8745f3d809bd95ca9505a7bba9ef849ec", size = 3696433, upload-time = "2026-07-01T11:54:29.813Z" }, + { url = "https://files.pythonhosted.org/packages/42/92/2fc3ffad878ae8dd5469ec1bc8eb83b71f48e13efdf68f02709003982a32/pillow-12.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a743ff716f746fc19a9557f60dab1600d4613255f8a7aeb3cdde4db7eb15a66", size = 5345889, upload-time = "2026-07-01T11:54:31.97Z" }, + { url = "https://files.pythonhosted.org/packages/10/76/8803c13605b763d33d156c4678fc77f8443389c0c51c8aef707bb02015f4/pillow-12.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d69141514cc30b774ceea5e3ed3a6635c8d8a96edf664689b890f4089111fb35", size = 4780109, upload-time = "2026-07-01T11:54:34.026Z" }, + { url = "https://files.pythonhosted.org/packages/1f/01/e18aff37cb0b4aac47ac90f016d347a49aca667ef97f190b06ac2aabc928/pillow-12.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7401aebd7f581d7f83a439d87d474999317ee099218e5ad25d125290990ba65", size = 6263736, upload-time = "2026-07-01T11:54:36.131Z" }, + { url = "https://files.pythonhosted.org/packages/f7/62/de5bdd77d935331f4f802edc11e4d82950f642caad6cb2f949837b8560e2/pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0847a763afefb695bc912d7c131e7e0632d4edc1d8698f58ddabec8e46b8b6d3", size = 6937129, upload-time = "2026-07-01T11:54:38.216Z" }, + { url = "https://files.pythonhosted.org/packages/70/4d/105627a13300c5e0df1d174230b32fd1273062c96f7745fd552b945d1e1d/pillow-12.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:571b9fcb07b97ef3a492028fb3d2dc0993ca23a06138b0315286566d29ef718a", size = 6339562, upload-time = "2026-07-01T11:54:40.354Z" }, + { url = "https://files.pythonhosted.org/packages/6b/1d/f13de01a553988ab895ba1c722e06cf3144d4f57656fd5b81b6d881f1179/pillow-12.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:756c768d0c9c2955feb7a56c37ea24aea2e369f8d36a88da270b6a9f19e62b5e", size = 7049439, upload-time = "2026-07-01T11:54:42.489Z" }, + { url = "https://files.pythonhosted.org/packages/c9/f9/066794cca041b969964f779ee5fa66a9498bbf34248ac39c5d7954e4198f/pillow-12.3.0-cp313-cp313-win32.whl", hash = "sha256:a876864214e136f0eb367788dbd7df045f4806801518e2cfe9e13229cfe06d8f", size = 6473287, upload-time = "2026-07-01T11:54:44.9Z" }, + { url = "https://files.pythonhosted.org/packages/a6/9b/7a58e61d62be561da3a356fe2384d4059a6345fc130e23ef1c36a5b81d24/pillow-12.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:1cca606cd25738df4ed873d5ad46bbdb3d83b5cbca291f6b4ff13a4df6b0bbe8", size = 7239691, upload-time = "2026-07-01T11:54:47.141Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b0/c4ed4f0ef8f8fa5ee8351537db6650bb8189f7e118842978dd6589065692/pillow-12.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:b629de27fda84b42cde7edef0d85f13b958b47f6e9bbcbba9b673c562a89bd8b", size = 2568185, upload-time = "2026-07-01T11:54:49.137Z" }, + { url = "https://files.pythonhosted.org/packages/dc/01/001f65b68192f0228cc1dbbc8d2530ab5d58b61037ba0587f946fea607cd/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9cf95fe4d0f84c82d282745d9bb08ad9f926efa00be4697e767b814ce40d4330", size = 4161736, upload-time = "2026-07-01T11:54:51.156Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d2/0219746d0fd16fc8a84498e79452375be3797d3ce4044596ce565164b84f/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8728f216dcdb6e6d555cf971cb34076139ad74b31fc2c14da4fafc741c5f6217", size = 4255435, upload-time = "2026-07-01T11:54:53.414Z" }, + { url = "https://files.pythonhosted.org/packages/c8/02/8d0bc62ef0302318c46ff2a512822d2610e81c7aa46c9b3abe6cbaca5ad0/pillow-12.3.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:a45650e8ce7fafffd731db8550230db6b0d306d181a90b67d3e6bca2f1990930", size = 3696262, upload-time = "2026-07-01T11:54:55.739Z" }, + { url = "https://files.pythonhosted.org/packages/85/e2/73c77d218410b14f5f2d565e8a998d5317b7b9c75368d29985139f7a46f0/pillow-12.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ba54cfebe86920a559a7c4d6b9050791c20513650a1952ebe3368c7dc70306f8", size = 5350344, upload-time = "2026-07-01T11:54:57.657Z" }, + { url = "https://files.pythonhosted.org/packages/c7/da/32c752228ae345f489e3a42499d817b6c3996da7e8a3bc7a04fc806b243b/pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e158cb00350dc278f3b91551101aa7d12415a66ebf2c91d8d5ac14e56ddd3ad0", size = 4780131, upload-time = "2026-07-01T11:54:59.713Z" }, + { url = "https://files.pythonhosted.org/packages/b1/9d/8b2c807dbef61a5197c047afe99823787eb66f63daf9fb2432f91d6f0462/pillow-12.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9aeb04d6aef139de265b29683e119b638208f88cf73cdd1658aa07221165321", size = 6263757, upload-time = "2026-07-01T11:55:01.778Z" }, + { url = "https://files.pythonhosted.org/packages/5c/44/c85361f65dbe00eea8576ee467c768d25129989efb76e94f205e9ca9bb46/pillow-12.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:251bf95b67017e27b13d82f5b326234ca62d70f9cf4c2b9032de2358a3b12c7b", size = 6936962, upload-time = "2026-07-01T11:55:03.93Z" }, + { url = "https://files.pythonhosted.org/packages/18/7e/e483414b35800b86b6f08dbbc7803fb5cd52c4d6f897f47d53ea2c7e6f65/pillow-12.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fe3cca2e4e8a592be0f269a1ca4835c25199d9f3ce815c8491048f785b0a0198", size = 6339171, upload-time = "2026-07-01T11:55:05.989Z" }, + { url = "https://files.pythonhosted.org/packages/f0/f4/68c491844841ede6bed70189546b3ee9731cf9f2cbad396faff5e1ccba45/pillow-12.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:23aceaa007d6172b02c277f0cd359c79492bbb14f7072b4ede9fbcaf20648130", size = 7048116, upload-time = "2026-07-01T11:55:08.131Z" }, + { url = "https://files.pythonhosted.org/packages/a3/34/77f3f793fed8efc7d243f21b33c5a3f0d1c97ee70346d3db855587e155ff/pillow-12.3.0-cp314-cp314-win32.whl", hash = "sha256:af8d94b0db561cf68b88a267c5c44b49e134f525d0dc2cb7ed413a66bc23559a", size = 6467209, upload-time = "2026-07-01T11:55:10.408Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e0/492879f69d94f91f60fc8cd05ba03650e9520afebb2fb7aa12777d7c7f38/pillow-12.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:fdafc9cce40277e0f7a0feabce0ee50dd2fa1800f3b38015e51296b5e814048d", size = 7237707, upload-time = "2026-07-01T11:55:12.745Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ac/6b11f2875f1c2ac040d84e1bbf9cf22a88038f901ca1037898b280b38365/pillow-12.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:e91206ee562682b51b98ef4b26a6ef48fd84e15fd4c4bc5ec768eb641d206838", size = 2565995, upload-time = "2026-07-01T11:55:14.736Z" }, + { url = "https://files.pythonhosted.org/packages/52/69/c2208e56af9bfc1913afb24020297a691eb1d4ef688474c8a04913f65e04/pillow-12.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:164b31cd1a0490ab6efae01aa5df49da7061be0af1b30e035b6e9a1bfe34ee6e", size = 5352503, upload-time = "2026-07-01T11:55:17.076Z" }, + { url = "https://files.pythonhosted.org/packages/07/70/e5686d753e898a45d778ff1718dba8516ead6ab6b95d85fc8c4b70650cf2/pillow-12.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5afb51d599ea772b8365ae807ae557f18bccfe46ab261fd1c2a9ed700fc6eb17", size = 4782956, upload-time = "2026-07-01T11:55:19.448Z" }, + { url = "https://files.pythonhosted.org/packages/d5/37/25c6692f06927ee973ff18c8d9ee98ad0b4d84ee67a09610c2dd1447958e/pillow-12.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3edce1d53195db527e0191f84b71d02022de0540bf43a16ed734ed7537b07385", size = 6322855, upload-time = "2026-07-01T11:55:21.613Z" }, + { url = "https://files.pythonhosted.org/packages/cc/91/420637fcb8f1bc11029e403b4538e6694744428d8246118e45719f944556/pillow-12.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf16ba1b4d0b6b7c8e534936632270cf70eb00dbe09005bc345b2677b726855c", size = 6989642, upload-time = "2026-07-01T11:55:24.006Z" }, + { url = "https://files.pythonhosted.org/packages/10/08/b94d7811281ccf0d143a1cf768d1c49e1e54af63e7b708ab2ee3eb87face/pillow-12.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:24870b09b224f7ae3c39ed07d10e819d06f8720bc551847b1d623832b5b0e28d", size = 6391281, upload-time = "2026-07-01T11:55:26.252Z" }, + { url = "https://files.pythonhosted.org/packages/d2/87/24233f785f55474dc02ce3e739c5528a77e3a862e9333d1dd7a25cc31f70/pillow-12.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:30f2aa603c41533cc25c05acd0da21636e84a315768feb631c937177db558931", size = 7096716, upload-time = "2026-07-01T11:55:28.318Z" }, + { url = "https://files.pythonhosted.org/packages/23/26/fcb2f6e37175b04f53570b59937867e2b80ee1685e744023153028fc14f9/pillow-12.3.0-cp314-cp314t-win32.whl", hash = "sha256:4b0a7fe987b14c31ebda6083f74f22b561fd3739bc0ac51e019622e3d72668c7", size = 6474125, upload-time = "2026-07-01T11:55:30.956Z" }, + { url = "https://files.pythonhosted.org/packages/90/de/3634abee5f1c9e13c56787b7d5517b0ba8d6de51700b95578cf338349c9f/pillow-12.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:962864dc93511324d51ddbb5b9f8731bf71675b93ca612a07441896f4688fb8c", size = 7242939, upload-time = "2026-07-01T11:55:34.044Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2a/fd13f8eb24de5714a6eb444a3d67e2842c6c576e159a43793adf23051351/pillow-12.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0740a512dc522224c77d9aa5a8d70d8b7d73fb91f2c21125d8d025d3b8990e45", size = 2567506, upload-time = "2026-07-01T11:55:35.988Z" }, + { url = "https://files.pythonhosted.org/packages/5d/dc/8fdce34ec725a33c81c6ba122b904d6b9024e50ea9ac7bede62fab54506c/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0feb2e9d6ad6c9e3c06effe9d00f3f1e618a6643273576b016f591e9315a7139", size = 4162063, upload-time = "2026-07-01T11:55:37.941Z" }, + { url = "https://files.pythonhosted.org/packages/76/66/2044b9a63d3b84ff048228dfcb7cd9bf0df983e8470971bf7d4c57b693de/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:9e881fca225083806662a5c43d627d215f258ff43c890f831966c7d7ba9c7402", size = 4255549, upload-time = "2026-07-01T11:55:40.022Z" }, + { url = "https://files.pythonhosted.org/packages/52/7e/1f67e6f4ece6b582ee4b539decbcc9f848dc245a93ed8cd7338bafef72f1/pillow-12.3.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:4998562bf62a445225f22e07c896bb04b35b1b1f2eb6d760584c9c51d7a5f78c", size = 3696331, upload-time = "2026-07-01T11:55:41.98Z" }, + { url = "https://files.pythonhosted.org/packages/12/40/d306fc2c8e4d45d7f175c77edca7063be7b86fe7fe6e68f4353bf71d808c/pillow-12.3.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:dc624f6bc473dacdf7ef7eb8678d0d08edf15cd94fad6ae5c7d6cc67a4e4902f", size = 5350370, upload-time = "2026-07-01T11:55:44.028Z" }, + { url = "https://files.pythonhosted.org/packages/dd/44/668fb1437e8ce420f62d6106eb66e44a5971602a4d794615bdf79315d82d/pillow-12.3.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:71d6097b330eea8fd15097780c8e89cb1a8ce7838669f48c5bacd6f663dd4701", size = 4780147, upload-time = "2026-07-01T11:55:46.073Z" }, + { url = "https://files.pythonhosted.org/packages/0c/08/93fa2e70e30a2d81547e481b6ee2bb9522117221fb1e0ce4b5df70967677/pillow-12.3.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:28ce87c5ab450a9dd970b52e5aca5fe63ed432d18a2eaddd1979a00a1ba24ace", size = 6273659, upload-time = "2026-07-01T11:55:48.264Z" }, + { url = "https://files.pythonhosted.org/packages/f8/6d/043e96ff814fc31a33077e4cba86082167db520c93632afdf2042febbb0c/pillow-12.3.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b02afb9b97f65fbca5f31db6a2a3ba21aa93030225f150fa3f249717e938fb4", size = 6947439, upload-time = "2026-07-01T11:55:50.503Z" }, + { url = "https://files.pythonhosted.org/packages/af/92/ba71d2ee2ac0edf3fa33bd9d5ee9ee080da70b1766f3ca3934f9938ddac9/pillow-12.3.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:1182d52bc2d5e5d7d0949503aa7e36d12f42205dc287e4883f407b1988820d39", size = 6353577, upload-time = "2026-07-01T11:55:52.697Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ce/e63064e2122923ff687c8ad792d0d736a7b3920a56a46982e81a7fdd25d6/pillow-12.3.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e795b7eb908249c4e43c7c99fac7c2c75dab0c43566e37db472a355f63693d71", size = 7060394, upload-time = "2026-07-01T11:55:55.149Z" }, + { url = "https://files.pythonhosted.org/packages/54/76/a09cc3ccc8d773a7283d34c38bec1708f9e3cc932093cbc4c5e71ac4060b/pillow-12.3.0-cp315-cp315-win32.whl", hash = "sha256:57b3d78c95ba9059768b10e28b813002261d3f3dfc55cc48b0c988f625175827", size = 6467375, upload-time = "2026-07-01T11:55:57.769Z" }, + { url = "https://files.pythonhosted.org/packages/3e/03/1846c49ba3b1d5550392a4bbd06d6fb4578e1cd91a803198b5c90f5f7d53/pillow-12.3.0-cp315-cp315-win_amd64.whl", hash = "sha256:fa4ecea169a355be7a3ade2c783e2ed12f0e40d2c5621cda8b3297faf7fbb9f5", size = 7237048, upload-time = "2026-07-01T11:55:59.975Z" }, + { url = "https://files.pythonhosted.org/packages/fb/bb/89f35dcc79610423f9f195504d7def7f0d1416a711541b42867e25fe3412/pillow-12.3.0-cp315-cp315-win_arm64.whl", hash = "sha256:877c3f311ff35410f690861c4409e7ccbf0cd2f878e50628a28e5a0bb689e658", size = 2566006, upload-time = "2026-07-01T11:56:02.143Z" }, + { url = "https://files.pythonhosted.org/packages/30/88/707027ba09942dfa2c28759b5c222d769290a41c6d20ea60ec250801941f/pillow-12.3.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:e9871b1ffbfa9656b60aeee92ed5136a5742696006fa322b29ea3d8da0ecc9cf", size = 5352509, upload-time = "2026-07-01T11:56:04.2Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6d/00352fa25332c2569cd387851f568cc5a4b75a9adbfb37ac4fbce4c02eec/pillow-12.3.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:53aa02d20d10c3d814d536aa4e5ac9b84ca0ff5a88377963b085ad6822f93e64", size = 4783167, upload-time = "2026-07-01T11:56:06.631Z" }, + { url = "https://files.pythonhosted.org/packages/13/4f/9e049dfa21af7c22427275720e2490267ba8138120add5c4c574deb69782/pillow-12.3.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:446c34dcc4324b084a53b705127dc15717b22c5e140ae0a3c38349d4efec071e", size = 6329237, upload-time = "2026-07-01T11:56:08.868Z" }, + { url = "https://files.pythonhosted.org/packages/36/16/cf6eeaae8d0fce8dd390a33437cf68c5d5bd73834a2bc6e2f14efda0ab45/pillow-12.3.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf1845d02ad822a369a49f2bb9345b1614744267682e7a03527dc3bf6eea1777", size = 6997047, upload-time = "2026-07-01T11:56:11.379Z" }, + { url = "https://files.pythonhosted.org/packages/1e/69/dbf769bdd55f48bf5733cac28edc6364ffaa072ec9ba336266e4fe66be55/pillow-12.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:186941b6aef820ad110fb01fb06eb925374dc3a21b17e37ec9a53b250c6fe2d1", size = 6400440, upload-time = "2026-07-01T11:56:13.908Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e1/ffc9cfc2eea0d178da8018e18e959301ad9d6bc9f3edb7181e748a474b97/pillow-12.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:f13c32a3abd6079a66d9526e18dad9b6d280384d49d7c54040cd57b6424041d9", size = 7105895, upload-time = "2026-07-01T11:56:16.575Z" }, + { url = "https://files.pythonhosted.org/packages/18/f0/a5595c1e8c3ae44b9828cb2f0fa8155e5095ef04d6327b8f61cf44a3df85/pillow-12.3.0-cp315-cp315t-win32.whl", hash = "sha256:1657923d2d45afb66526e5b933e5b3052e6bdea196c90d3abb2424e18c77dae8", size = 6474384, upload-time = "2026-07-01T11:56:18.855Z" }, + { url = "https://files.pythonhosted.org/packages/e4/04/62bcd9f844984c5938d3b05264a61d797a29d3e0812341a8204af70bbdee/pillow-12.3.0-cp315-cp315t-win_amd64.whl", hash = "sha256:8cd2f7bdda092d99c9fc2fb7391354f306d01443d22785d0cbfafa2e2c8bb418", size = 7243537, upload-time = "2026-07-01T11:56:21.214Z" }, + { url = "https://files.pythonhosted.org/packages/3d/68/1f3066acedf37673694a7141381d8f811ae97f30d34413d236abe7d489f1/pillow-12.3.0-cp315-cp315t-win_arm64.whl", hash = "sha256:06ff022112bc9cbf83b60f8e028d94ad87b60621706487e65f673de61610ab59", size = 2567491, upload-time = "2026-07-01T11:56:23.506Z" }, + { url = "https://files.pythonhosted.org/packages/75/18/2e8b40223153ccbc60df07f9e8928dc0c76202aa4e55ae9f53962b6510d6/pillow-12.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b3c777e849237620b022f7f297dd67705f9f5cf1685f09f02e46f93e92725468", size = 5302510, upload-time = "2026-07-01T11:56:25.736Z" }, + { url = "https://files.pythonhosted.org/packages/46/3e/51fabf59d5ab801ceab709453d3ab6b180083496579549de4c45ced6528a/pillow-12.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b343699e8308bdc51978310e1c959c584e7869cc8c40780058c87da7781a1e94", size = 4736058, upload-time = "2026-07-01T11:56:28.041Z" }, + { url = "https://files.pythonhosted.org/packages/bf/20/22fe9384b7949e25fb1293bcfc84fb82590ff4ea6b37c95b24d26d793d86/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbd139c8447d25dd750ab79ee274cc5e1fe80fc56340ab10b18a195e1b6eca3e", size = 5237776, upload-time = "2026-07-01T11:56:30.263Z" }, + { url = "https://files.pythonhosted.org/packages/08/14/f6ba68107680ffa74b39985f3f30884e41318fbc4250caa423c79b4788bb/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7e480451b9fa137494bccd3a7d69adbe8ac65a87d97be61e11f1b1050a5bac3", size = 5860358, upload-time = "2026-07-01T11:56:32.68Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0169bc772ec491108b62f644f8ecf1fe5d8ae5ebafde2ee2142210166903/pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a", size = 7231786, upload-time = "2026-07-01T11:56:35.046Z" }, +] + +[[package]] +name = "pip" +version = "26.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/91/47e7d486260f618783899587af63ccf7980fb60245c3e63dd4571c6b57ad/pip-26.1.2.tar.gz", hash = "sha256:f49cd134c61cf2fd75e0ce2676db03e4054504a5a4986d00f8299ae632dc4605", size = 1840799, upload-time = "2026-05-31T17:33:58.56Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/95/6b5cb3461ea5673ba0995989746db58eb18b91b54dbf331e72f569540946/pip-26.1.2-py3-none-any.whl", hash = "sha256:382ff9f685ee3bc25864f820aa50505825f10f5458ffff07e30a6d96e5715cab", size = 1813144, upload-time = "2026-05-31T17:33:56.772Z" }, +] + +[[package]] +name = "pip-api" +version = "0.0.34" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pip" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/f1/ee85f8c7e82bccf90a3c7aad22863cc6e20057860a1361083cd2adacb92e/pip_api-0.0.34.tar.gz", hash = "sha256:9b75e958f14c5a2614bae415f2adf7eeb54d50a2cfbe7e24fd4826471bac3625", size = 123017, upload-time = "2024-07-09T20:32:30.641Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/f7/ebf5003e1065fd00b4cbef53bf0a65c3d3e1b599b676d5383ccb7a8b88ba/pip_api-0.0.34-py3-none-any.whl", hash = "sha256:8b2d7d7c37f2447373aa2cf8b1f60a2f2b27a84e1e9e0294a3f6ef10eb3ba6bb", size = 120369, upload-time = "2024-07-09T20:32:29.099Z" }, +] + +[[package]] +name = "pip-audit" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachecontrol", extra = ["filecache"] }, + { name = "cyclonedx-python-lib" }, + { name = "packaging" }, + { name = "pip-api" }, + { name = "pip-requirements-parser" }, + { name = "platformdirs" }, + { name = "requests" }, + { name = "rich" }, + { name = "tomli" }, + { name = "tomli-w" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/a4/f21d5f0a0edabcbce31560b73c7c5a6f72ae87af4236fd1069c8f59a353d/pip_audit-2.10.1.tar.gz", hash = "sha256:1eb4565d19ebe5d48996f4b770b4d2b32887e12cb12cfa637f1a064011b55ffc", size = 54275, upload-time = "2026-06-10T22:17:01.744Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/a7/b0c504148114047bd1bc9d97447453c6850ca176bb2f3c0038835994e8b7/pip_audit-2.10.1-py3-none-any.whl", hash = "sha256:99ef3f600a317c1945f1e89e227ef26e1c2d618429b8bd3fa6f4f7c440c4611a", size = 62023, upload-time = "2026-06-10T22:17:00.309Z" }, +] + +[[package]] +name = "pip-requirements-parser" +version = "32.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, + { name = "pyparsing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/2a/63b574101850e7f7b306ddbdb02cb294380d37948140eecd468fae392b54/pip-requirements-parser-32.0.1.tar.gz", hash = "sha256:b4fa3a7a0be38243123cf9d1f3518da10c51bdb165a2b2985566247f9155a7d3", size = 209359, upload-time = "2022-12-21T15:25:22.732Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/d0/d04f1d1e064ac901439699ee097f58688caadea42498ec9c4b4ad2ef84ab/pip_requirements_parser-32.0.1-py3-none-any.whl", hash = "sha256:4659bc2a667783e7a15d190f6fccf8b2486685b6dba4c19c3876314769c57526", size = 35648, upload-time = "2022-12-21T15:25:21.046Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/47/e4501f49c178ae1d9f4a75073fda4204f52647993f075a9db4d14930e0c5/platformdirs-4.10.0.tar.gz", hash = "sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7", size = 31224, upload-time = "2026-05-28T03:32:53.587Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/e6/cd9575ac904136b3cbf7aa7ee819ef86eedb7274e46f230e94ea4342e729/platformdirs-4.10.0-py3-none-any.whl", hash = "sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a", size = 22743, upload-time = "2026-05-28T03:32:52.175Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "pre-commit" +version = "4.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cfgv" }, + { name = "identify" }, + { name = "nodeenv" }, + { name = "pyyaml" }, + { name = "virtualenv" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/22/2de9408ac81acbb8a7d05d4cc064a152ccf33b3d480ebe0cd292153db239/pre_commit-4.6.0.tar.gz", hash = "sha256:718d2208cef53fdc38206e40524a6d4d9576d103eb16f0fec11c875e7716e9d9", size = 198525, upload-time = "2026-04-21T20:31:41.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/6e/4b28b62ecb6aae56769c34a8ff1d661473ec1e9519e2d5f8b2c150086b26/pre_commit-4.6.0-py2.py3-none-any.whl", hash = "sha256:e2cf246f7299edcabcf15f9b0571fdce06058527f0a06535068a86d38089f29b", size = 226472, upload-time = "2026-04-21T20:31:40.092Z" }, +] + +[[package]] +name = "preshed" +version = "3.0.13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cymem" }, + { name = "murmurhash" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/75/fe6b7bbd0dea530a001b0e24c331b21a0be2786e402abf3c57f5dce43d4b/preshed-3.0.13.tar.gz", hash = "sha256:d75f718bbfd97e992f7827e0fa7faf6a91bdd9c922d5baa4b50d62731396cb89", size = 18338, upload-time = "2026-03-23T08:57:31.378Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/7e/d55d8cdeefa78995eec15a11ae16cbd0581a0be2342527a64251fd948cef/preshed-3.0.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:42c58b07e8b431e33d0ad9922e896632453821cad8b09171b619b8c61101916f", size = 136920, upload-time = "2026-03-23T08:56:10.829Z" }, + { url = "https://files.pythonhosted.org/packages/10/bc/ee1f388a97c613e656d774b522b4ddc1cd32e984ca4eb1157c5d822e9011/preshed-3.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a06e27f4e5b9d7943840087828c6a0dae4a3475576d12c2e95b71abbb325a80b", size = 137576, upload-time = "2026-03-23T08:56:12.441Z" }, + { url = "https://files.pythonhosted.org/packages/a6/dd/24c5a576035df4043998e1069718dd7369e107ce9d169df2333d00461dbf/preshed-3.0.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8b82d7a7bb63d248a6cbbfcabb4a570c993d54d964e39dc5d85c14018ba2079e", size = 780270, upload-time = "2026-03-23T08:56:14.108Z" }, + { url = "https://files.pythonhosted.org/packages/e5/ab/fb0f6808fffad96c962ce254587cae2bb7df0fda3e6d6b481ce4f60f6c2d/preshed-3.0.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bef84b225d226af43adfee78ce5ddede72a6155ce5292c1a41dcd1f0b9c87c30", size = 779722, upload-time = "2026-03-23T08:56:15.721Z" }, + { url = "https://files.pythonhosted.org/packages/bf/7f/c9948dde95bf965c6af2c31f0dbbc6c7e5433b5de1c85f20644edf38c78c/preshed-3.0.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:70d502e081348df207d90f347f21770ed596822bb04eb3c3b32b7281579e90c6", size = 1775435, upload-time = "2026-03-23T08:56:17.655Z" }, + { url = "https://files.pythonhosted.org/packages/d2/57/8db29ac57b981ef19d1078001aa6c2055a3eed46998c1c93f3d1fdb86106/preshed-3.0.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:985cb9b097beda76cd13c01a0499707103e8915f888fa30f8aa8324ef2cc6b08", size = 1842612, upload-time = "2026-03-23T08:56:19.755Z" }, + { url = "https://files.pythonhosted.org/packages/38/e5/ead05efc423be237fba76a3bf0eeb492e5d3801504c096c3552c517f2f72/preshed-3.0.13-cp310-cp310-win_amd64.whl", hash = "sha256:867aa73abbf4ee3b4d7662148091c33a8c039271269e3a7f1e0ca995f91995c8", size = 121951, upload-time = "2026-03-23T08:56:21.138Z" }, + { url = "https://files.pythonhosted.org/packages/aa/80/9cf7f7c208046c97d4b2765f89545a6ea8cfefbd87f0141dde61e6f098ac/preshed-3.0.13-cp310-cp310-win_arm64.whl", hash = "sha256:2b704e46cb7b88f656ef16a3e5347b36525a1c53721d327a4ba1457404101f85", size = 109604, upload-time = "2026-03-23T08:56:22.537Z" }, + { url = "https://files.pythonhosted.org/packages/7c/d1/7bc39738388b38ff48cecbb326a9b2bb3f422bb32097be92e010f3162395/preshed-3.0.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5268c0e6fa96f50cdf87f516c2d4b32563c12706ee768e75c00e8d0098acd545", size = 136718, upload-time = "2026-03-23T08:56:23.889Z" }, + { url = "https://files.pythonhosted.org/packages/f6/65/de465b6801740140c2b5d2db6c312ca7937dcfd0442f1ae7d50dee529544/preshed-3.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:df642547a1a94079978a0ea8f4593ab4b8d3bd43f767bef0ef64d9a214f8c4c9", size = 137261, upload-time = "2026-03-23T08:56:25.303Z" }, + { url = "https://files.pythonhosted.org/packages/89/83/478ee078746a4a413c841542caebd2ea74b659475b8bf5f2e3724b6fe655/preshed-3.0.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09397592d333a77f88454e72b7f1f941b2afaf040b392b9e74898dbc4648cdf5", size = 821010, upload-time = "2026-03-23T08:56:26.455Z" }, + { url = "https://files.pythonhosted.org/packages/ee/2e/1ac761e973966893cd3a0ad3256360365276e2d1e779e351448981a1156a/preshed-3.0.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f8e6fe0620ed0f96a246d46447055c447e071cd8222731a045c235e8a758c918", size = 823096, upload-time = "2026-03-23T08:56:28.126Z" }, + { url = "https://files.pythonhosted.org/packages/3c/51/7824cfd85dd7fe547888de20228ebd87d9acd3708206d30b82211e382d23/preshed-3.0.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:502f93f49a22788203f02d3067d4ea077a0cca3864de6a792eae12e7ce589e14", size = 1812148, upload-time = "2026-03-23T08:56:29.755Z" }, + { url = "https://files.pythonhosted.org/packages/34/48/32160a24705d56179de6af838c10a0c735c955dae5f9e4bb344750b79bc2/preshed-3.0.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:acd4d89abeca3678c5d8c89b3cd351314465bc67c7fa053d2644f8513e543386", size = 1881154, upload-time = "2026-03-23T08:56:31.49Z" }, + { url = "https://files.pythonhosted.org/packages/ed/22/0344b50f8b1ad9e3aac08099c47e1aba91c81602fd117d2673f6606ecae6/preshed-3.0.13-cp311-cp311-win_amd64.whl", hash = "sha256:de87fbabb0f37c3c92d4dd9b94fc82ab73cdab4247cdfbd57ab3926caa983919", size = 122219, upload-time = "2026-03-23T08:56:32.74Z" }, + { url = "https://files.pythonhosted.org/packages/33/c4/812eeaa568510f396e27edab01100ca71418f032fd7098b107f12e572361/preshed-3.0.13-cp311-cp311-win_arm64.whl", hash = "sha256:5e2753779832e411e93eb727f3d409c0a6b7408e5ce4dd868076d8ece48c7693", size = 109308, upload-time = "2026-03-23T08:56:33.839Z" }, + { url = "https://files.pythonhosted.org/packages/39/fb/ccff23c44c04088c248539005fcda78b9014512a34d170c5360f02ad908b/preshed-3.0.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5d14eea14bd01291388928991d7df7d60b9fd19ae970e55006eb4d29b0c1e8eb", size = 138497, upload-time = "2026-03-23T08:56:35.321Z" }, + { url = "https://files.pythonhosted.org/packages/8e/ce/cad5a8145881a771e6c0d002f2e585fc19b962f120860b54d32af5baa342/preshed-3.0.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f05b08ce92399c0655b5e0eb5a1cc1f9e295703ed3aabdfaf6538dfa8ae23d57", size = 138010, upload-time = "2026-03-23T08:56:36.399Z" }, + { url = "https://files.pythonhosted.org/packages/a7/a2/c5fed4fb3e946699259d11e4036a3cfdd8c89b3e542e3077d46781642425/preshed-3.0.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:62cf7f3113132891d6bba70ff547ad81c6fe50a31930bbbb8499f1d47cd122b7", size = 861498, upload-time = "2026-03-23T08:56:37.67Z" }, + { url = "https://files.pythonhosted.org/packages/51/94/8c9bc48a6ea4903f53a1a0031ce8e35687526949f25821762ef21493c007/preshed-3.0.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8b8de3f58043070a354477995acdd98626ce43e4193c708ebd0f694e467f5155", size = 868988, upload-time = "2026-03-23T08:56:39.324Z" }, + { url = "https://files.pythonhosted.org/packages/b6/df/ecd2f40055ff52527ca117ffbfafb888c1a3079b59fbabe03c5b8f9b7240/preshed-3.0.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:183b339956a9e1d7a4a00038a3b9587a734db9e8bd915939a49791bd1b372156", size = 1847382, upload-time = "2026-03-23T08:56:40.89Z" }, + { url = "https://files.pythonhosted.org/packages/e6/88/bdb244e40284ded3632a9f88c23bc80230bd7b2ae4a8b7f2cc91adead7a8/preshed-3.0.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2e77bed56aded7cbe5d28d6bd2178bc5b13eda0e0e464dab205fb578fa915000", size = 1919236, upload-time = "2026-03-23T08:56:42.616Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c9/c91ea56342e6c364fc69b444a1ac5432327857199c44032c9cc9dc4c3a23/preshed-3.0.13-cp312-cp312-win_amd64.whl", hash = "sha256:04d8f13f2986e5d11af5ac51f55ce3106c70c41b483d20ea392e6180bdd0f870", size = 122938, upload-time = "2026-03-23T08:56:44.271Z" }, + { url = "https://files.pythonhosted.org/packages/b2/0b/6a99d99619fd83b14c696e2489caed7070647488d4d3ac0b723d35db2de0/preshed-3.0.13-cp312-cp312-win_arm64.whl", hash = "sha256:19318dc1cd8cac6663c6c830bf7e0002d2de853769fb03e056774e97c21bedfd", size = 109194, upload-time = "2026-03-23T08:56:45.346Z" }, + { url = "https://files.pythonhosted.org/packages/0e/2a/401158195d6dc7f6aef0b354d74d0e95c9da124499448c2b3dbb95b71204/preshed-3.0.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0d0c14187dc0078d8a63bf190ec045a4d13e7748b6caeb557a7d575e411410b", size = 137289, upload-time = "2026-03-23T08:56:46.516Z" }, + { url = "https://files.pythonhosted.org/packages/88/8f/e20e64573988528785447a6893b2e7ab287ecfd85b3888e978b28812fd20/preshed-3.0.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7770987c2e57497cd26124a9be5f652b5b3ccd0def89859ab0da8bca6144a3de", size = 136847, upload-time = "2026-03-23T08:56:47.572Z" }, + { url = "https://files.pythonhosted.org/packages/b9/72/18168f881359c4482d312f8dc196371bdd61c1583a52b34390da4c88bbea/preshed-3.0.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4a7bc48220de579be6bdb0a8715482cf36e2a625a6fd5ad26c9f43485a4a23b5", size = 831478, upload-time = "2026-03-23T08:56:48.769Z" }, + { url = "https://files.pythonhosted.org/packages/fd/3a/3543476091087102775568cea9885dde3453569e9aeee365809108de572f/preshed-3.0.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e5c8462472f790c16708306aef3a102a762bd19dfe3d2f8ee08bd5e12f51b835", size = 839913, upload-time = "2026-03-23T08:56:49.937Z" }, + { url = "https://files.pythonhosted.org/packages/cf/65/b13f01329decc44ef53cfb6b4601ba85382dcb2a4ec78d9250f03a418066/preshed-3.0.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c046736239cc8d72670749b79b526e4111839a2fc461a58545d212797649129c", size = 1816452, upload-time = "2026-03-23T08:56:51.233Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c7/f1a996c6832234efd4d543041b582418d41ac480ee55c557ec9e65344637/preshed-3.0.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7c333f18e9a81c8a6de0603fd8781e17115324b117c445ca91abdf7bfb1abe49", size = 1888978, upload-time = "2026-03-23T08:56:52.591Z" }, + { url = "https://files.pythonhosted.org/packages/e3/b9/96fb71499049885ce19545903fdd38877bbc2be0da47e37c04d01f3e9f66/preshed-3.0.13-cp313-cp313-win_amd64.whl", hash = "sha256:461327f8dd36520dcf1fd55a671e0c3c2c97a2d95e22fc85faa31173f4785dda", size = 122134, upload-time = "2026-03-23T08:56:54.392Z" }, + { url = "https://files.pythonhosted.org/packages/ef/a7/32a4903019d936a2316fdd330bedddac287ac26326107d24fb76a1fbc60a/preshed-3.0.13-cp313-cp313-win_arm64.whl", hash = "sha256:35d6c5acb3ee3b12b87a551913063f0cec784055c2af16e028c19fe875f079d0", size = 108497, upload-time = "2026-03-23T08:56:55.816Z" }, + { url = "https://files.pythonhosted.org/packages/bb/b5/993886c98f5caaa6f07a648cac97a7c62a3093091cad65e1e43a1bd41cc4/preshed-3.0.13-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d2f1efae396cadab5f3890a2fd43d2ee65373ef9096ccbb805e51e8d8bcc563b", size = 137882, upload-time = "2026-03-23T08:56:56.878Z" }, + { url = "https://files.pythonhosted.org/packages/c6/86/b7fd137cbf140afd6c45e895946068a15f5b55642916de0075e6eb18581c/preshed-3.0.13-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8d6acc1f5031a535a55a6f7148e2f274554a8343a16309c700cebea0fe7aee8c", size = 138233, upload-time = "2026-03-23T08:56:58.318Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ca/21a7e79625614134273dfed32bca5bb4c2ec1313e33fbd12d41657536f1f/preshed-3.0.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7da9d931e7660dcdd757e5870269f0c159126d682ed73ed313971d199eb0f334", size = 834835, upload-time = "2026-03-23T08:56:59.48Z" }, + { url = "https://files.pythonhosted.org/packages/8f/3a/2dbd299516461831ae90e0d5b0637137bf28520c4e6dd0b01d6f1886659a/preshed-3.0.13-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d4ae5cfe075bb7a07982e382bca44f41ddf041f4d24cbd358e8cccfc049259b8", size = 834928, upload-time = "2026-03-23T08:57:01.075Z" }, + { url = "https://files.pythonhosted.org/packages/7c/d3/af654eba4f6587c4ee02c5043e62c194b0a1c4431ffef0c67b9518f6b61c/preshed-3.0.13-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7557963d0125a3a7bcdb2eb6948f3e45da31b5a7f066b55320de3dea22d7557f", size = 1820368, upload-time = "2026-03-23T08:57:02.351Z" }, + { url = "https://files.pythonhosted.org/packages/bf/9b/ebcb2b9e8cb881e40b55b0bf450f8a6b187e2ef3ae0c685cce81d2d85026/preshed-3.0.13-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c4bc60dc994864095d784b7e4d77dba3e64188d169ac88722b699d175561fddb", size = 1888251, upload-time = "2026-03-23T08:57:04.158Z" }, + { url = "https://files.pythonhosted.org/packages/97/f7/c6c012779edcaa6e2cd092c554e98dc53e77f41205b07208655ba77e2327/preshed-3.0.13-cp314-cp314-win_amd64.whl", hash = "sha256:208dcebbe294bf1881ce33fb015d56ab2a7587aece85a09147727174207892e4", size = 125211, upload-time = "2026-03-23T08:57:05.83Z" }, + { url = "https://files.pythonhosted.org/packages/f8/82/390ef87d732ef64e673ef6bf9e5d898453986e979efa50fb3a400e2c0766/preshed-3.0.13-cp314-cp314-win_arm64.whl", hash = "sha256:cf8e1a7a1823b2a7765121446c630140ac6e8650c07a6efbf375e168d1fef4f7", size = 111942, upload-time = "2026-03-23T08:57:06.996Z" }, + { url = "https://files.pythonhosted.org/packages/80/3a/a9dde3167bcecb27ae82ce4567b5ab1aa3989113ae6814c092ce223cc4ef/preshed-3.0.13-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9ca43ecbc3783eda4d6ab3416ae2ecd9ef23dca5f53995843f69f7457bcd0677", size = 144997, upload-time = "2026-03-23T08:57:08.064Z" }, + { url = "https://files.pythonhosted.org/packages/74/d4/22d9355b50b6a13b407dcad0a81df83fb1d5602092d1f05834674dde8fda/preshed-3.0.13-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c8596e41a258ff213553a441e0bb3eb388fd8158e84a7bf3aae6d8ede2c166d3", size = 147294, upload-time = "2026-03-23T08:57:09.411Z" }, + { url = "https://files.pythonhosted.org/packages/70/42/a225ee83fdb306d2a503f21a627953b820f4e079c90c8a84338957cb8ff5/preshed-3.0.13-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4f8856ca3d88e9b250630d70abb4f260d8933151ddfb413024784b25b009868e", size = 952110, upload-time = "2026-03-23T08:57:10.592Z" }, + { url = "https://files.pythonhosted.org/packages/40/ba/09a9dfe3d22d7e745483fd5d7f2a82cd4d39c161f7d2daa0faa4bd6402be/preshed-3.0.13-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0e5b2865aecbd2e1e10e5d19bb8bfad765863c1307c6c3e51f2a08bd64122409", size = 932217, upload-time = "2026-03-23T08:57:12.124Z" }, + { url = "https://files.pythonhosted.org/packages/6c/5c/e10e2e05133e7fcbd7c40536af1148c82dd24357b8f5726e2c7bc51cfd53/preshed-3.0.13-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:09f96b477c987755b3c945df214ea1c1c80bfb350e9f34e78da89585535b77e8", size = 1896542, upload-time = "2026-03-23T08:57:13.525Z" }, + { url = "https://files.pythonhosted.org/packages/37/aa/51e5b4109a4cdfae28c3613eeeb10764a3794ebef8de93ffbb109465bea3/preshed-3.0.13-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:670db59a52e1823b5f088c764df474e65b686592d4093adbeef14581c95ee2cb", size = 1959473, upload-time = "2026-03-23T08:57:15.706Z" }, + { url = "https://files.pythonhosted.org/packages/0e/6a/1d966f367a14c703dde629d150d996c1b727d442f620300b21c9ec1a24d1/preshed-3.0.13-cp314-cp314t-win_amd64.whl", hash = "sha256:b03e21b0bf95eb56e23973f32cabb930e94f352228652f81c0955dbd6967d904", size = 146229, upload-time = "2026-03-23T08:57:17.457Z" }, + { url = "https://files.pythonhosted.org/packages/22/80/368139067603e590a000122355f9c8576c8ebed4fb0b8849feaa2698489d/preshed-3.0.13-cp314-cp314t-win_arm64.whl", hash = "sha256:b980f3ea9bb74b7f94464bc3d6eb3c9162b6b79b531febd14c6465c24344d2cc", size = 119339, upload-time = "2026-03-23T08:57:18.882Z" }, +] + +[[package]] +name = "presidio-analyzer" +version = "2.2.363" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "phonenumbers" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "regex" }, + { name = "spacy" }, + { name = "tldextract" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/c7/c88c469f06cbf44d00a3af773ea8baea7f6ee045ba39933f4a54993854f8/presidio_analyzer-2.2.363.tar.gz", hash = "sha256:f93eae598710e747e54d1a79d3a3b892caea91d46e87a32becb340fb064bf497", size = 149406, upload-time = "2026-06-28T16:09:10.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/17/1ff9fbf2cbecb9bf0bf86615aadb4641e29d9712cb6ca51aaeda481f5add/presidio_analyzer-2.2.363-py3-none-any.whl", hash = "sha256:84203d1148a87620ab80004cf31775d5868b965395f2754aa0a27c8d308e7dfb", size = 259041, upload-time = "2026-06-28T16:09:08.993Z" }, +] + +[[package]] +name = "propcache" +version = "0.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/44/c87281c333769159c50594f22610f77398a47ccbfbbf23074e744e86f87c/propcache-0.5.2.tar.gz", hash = "sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427", size = 50208, upload-time = "2026-05-08T21:02:12.199Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/56/030b7b4719d53085722893e0009dffb9236aa10bca1b12121bdc5626ef16/propcache-0.5.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5a81be28596d6559f6131ef33e10200de6e17643b3c74ce03f9eb103be6ae8b", size = 93417, upload-time = "2026-05-08T20:59:15.597Z" }, + { url = "https://files.pythonhosted.org/packages/1a/55/1140a8e067b8ec093a18a4ae7bb0045d9db65da38a08618ddc5e2f1994aa/propcache-0.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29cbaac5ea0212663e6845e04b5e188d5a6ae6dd919810ac835bf1d3b42c3f4c", size = 53847, upload-time = "2026-05-08T20:59:17.096Z" }, + { url = "https://files.pythonhosted.org/packages/20/42/0e7443c90310498561addf346e7d57fe3c6ba1914e1ba938b5464c7bbfd2/propcache-0.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6bf3be92233808fcd338eba0fb4d0b59ec5772af4f4ecfcec450d1bfc0f8b5eb", size = 53512, upload-time = "2026-05-08T20:59:18.64Z" }, + { url = "https://files.pythonhosted.org/packages/b7/db/cf51a71bab2009517d1a7f0ee07657e3bd446c4d69f67e6966cf17bcf956/propcache-0.5.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2f8ea531c794b9d6274acd4e8d2c2ebcac590a4361d27482edd3010b79f1325e", size = 58068, upload-time = "2026-05-08T20:59:20.683Z" }, + { url = "https://files.pythonhosted.org/packages/b7/43/39b6bdee9699fa1e1641c519feeb64a67e2a9f93bb465c70776b37a7333f/propcache-0.5.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:decfca4c79dd53ebab484b00cc4b6717d8c369f86e74aa4ca395a64ac651495e", size = 61020, upload-time = "2026-05-08T20:59:22.112Z" }, + { url = "https://files.pythonhosted.org/packages/26/0b/843726fbb0a29a8c5684fdb25971823638399f31e52e9d1f06a02dc9aa6b/propcache-0.5.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4621064bbf28fa77ff64dd5d94367c04684c67d3a5bf1dff25f0cd0d98a38f3b", size = 62732, upload-time = "2026-05-08T20:59:23.805Z" }, + { url = "https://files.pythonhosted.org/packages/39/6e/899fed76dc1942b8a64193a4f059d7f1a2c7ef65085e8a9366ed8ec0d199/propcache-0.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b96db7141a592cbc968daf1feea83a118e6ab378af4abbc72b248c895414c22d", size = 60140, upload-time = "2026-05-08T20:59:25.389Z" }, + { url = "https://files.pythonhosted.org/packages/ab/09/3da4be9b5b879219ad234aa535b3dd4a080ed1ad48d3a73ca07a9e798f22/propcache-0.5.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1ca071adabaab6e9219924bbe00af821f1ee7de113a9eca1cdc292de3d120f4d", size = 60400, upload-time = "2026-05-08T20:59:27.238Z" }, + { url = "https://files.pythonhosted.org/packages/60/2f/09b72b874a9aa0044faf52a69807a6ed618e267ceaa9ec4a63195fa5b504/propcache-0.5.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e4294d04a94dcab1b3bccd8b66d962dcad411a1d19414b2a41d1445f1de32ad0", size = 58155, upload-time = "2026-05-08T20:59:28.48Z" }, + { url = "https://files.pythonhosted.org/packages/8a/37/97489848c54c95578045473954f10956d619ce6a09e7ac137b71cdcb698b/propcache-0.5.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a0e399a2eccb91ed18721f86aa85757727400b6865c89e88934781deb9c8498b", size = 57037, upload-time = "2026-05-08T20:59:30.146Z" }, + { url = "https://files.pythonhosted.org/packages/22/db/6c695285ccfc49012743ee9c98212b8c5dd0aed7b63cfd816d4a0f7a1601/propcache-0.5.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:823581fd5cb08b12a48bfa11fe962a7916766b6170c17b028fbdf762b85eb9bf", size = 61103, upload-time = "2026-05-08T20:59:31.626Z" }, + { url = "https://files.pythonhosted.org/packages/98/a9/1e500401ca593b0bdb6bf75a70bc2d723835fd53360edff6af70692c7546/propcache-0.5.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:949c91d1a990cf3b2e8188dfcfb25005e0b834a06c63fa4ef9f360878ce21ecf", size = 60394, upload-time = "2026-05-08T20:59:32.829Z" }, + { url = "https://files.pythonhosted.org/packages/1f/87/f638b6e375eae0f30a1a2325d8b34fd85fdc785bb9960cf805f3bf1ec69a/propcache-0.5.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:cc1177027eda740fdb152706bd215a3f124e3eea15afc39f2cb9fe351b50619e", size = 63084, upload-time = "2026-05-08T20:59:35.964Z" }, + { url = "https://files.pythonhosted.org/packages/f6/18/884573f5d97b6d9eba68de759a82c901b7e39d7904d30f7b8d58d42d2a12/propcache-0.5.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b05d643f944a8c3c4bd86d65ffd87bf3264b617f87791940302bc474d2ff5274", size = 60999, upload-time = "2026-05-08T20:59:38.481Z" }, + { url = "https://files.pythonhosted.org/packages/8f/1a/c3915eb059ceec9e758a56e4cfd955292bc0f201be2176a46b76d94b303a/propcache-0.5.2-cp310-cp310-win32.whl", hash = "sha256:8114f28879e0904748e831c3a7774261bd9e75f49be089f389a76f959dcd13fe", size = 39036, upload-time = "2026-05-08T20:59:40.323Z" }, + { url = "https://files.pythonhosted.org/packages/5b/02/1dfd5607501a602d19c1c449d2d193b7d1c611f9246b4059026a1189a80e/propcache-0.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:5fcb98e7598b1ee0addab320d90f65b530297a867dbfe9de52ea838077e16e3d", size = 42190, upload-time = "2026-05-08T20:59:42.232Z" }, + { url = "https://files.pythonhosted.org/packages/57/93/f71588ad08b3e6f4b555b5ef215808a3c02b042d0151ad82fa6f15be677a/propcache-0.5.2-cp310-cp310-win_arm64.whl", hash = "sha256:04dc2390d9edbbaef7461f33322555976ffddf0b650a038649d026358714e6c5", size = 38545, upload-time = "2026-05-08T20:59:44.087Z" }, + { url = "https://files.pythonhosted.org/packages/e7/f1/8a8cc1c2c7e7934ab77e0163414f736fadbc0f5e8dd9673b952355ac175b/propcache-0.5.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78", size = 90744, upload-time = "2026-05-08T20:59:45.799Z" }, + { url = "https://files.pythonhosted.org/packages/c2/f4/651b1225e976bd1a2ba5cfba0c29d096581c2636b437e3a9a7ab6276270a/propcache-0.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959", size = 52033, upload-time = "2026-05-08T20:59:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/15/a8/8ede85d6aa1f79fc7dc2f8fd2c8d65920b8272c3892903c8a1affde48cfb/propcache-0.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7", size = 52754, upload-time = "2026-05-08T20:59:49.202Z" }, + { url = "https://files.pythonhosted.org/packages/7d/fe/b3551b41bbc2f5b5bb088fc6920567cd43101253e68fbaa261339eb96fe1/propcache-0.5.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511", size = 57573, upload-time = "2026-05-08T20:59:50.778Z" }, + { url = "https://files.pythonhosted.org/packages/83/27/ab851ebd1b7172e3e161f5f8d39e315d54a91bea246f01f4d872d3376aef/propcache-0.5.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660", size = 60645, upload-time = "2026-05-08T20:59:52.227Z" }, + { url = "https://files.pythonhosted.org/packages/95/7d/466b3d18022e9897cbda9c735c493c5bd747d7a4c6f5ea1480b4cec434b6/propcache-0.5.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66", size = 61563, upload-time = "2026-05-08T20:59:53.866Z" }, + { url = "https://files.pythonhosted.org/packages/27/1b/16ab7f2cf2041da2f60d156ba64c2484eadf9168075b4ff43c3ef60045af/propcache-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b", size = 58888, upload-time = "2026-05-08T20:59:55.457Z" }, + { url = "https://files.pythonhosted.org/packages/0a/67/bb777ffd907633563bf35fd859c4ce97b0512c32f4633cf5d1eb7c33512b/propcache-0.5.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67", size = 59253, upload-time = "2026-05-08T20:59:57.075Z" }, + { url = "https://files.pythonhosted.org/packages/b9/42/64f8d90b73fd9cdc1499b48057ff6d9cd2a98a25734c9bb62ecf07e87061/propcache-0.5.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f", size = 57558, upload-time = "2026-05-08T20:59:58.602Z" }, + { url = "https://files.pythonhosted.org/packages/eb/02/dba5bc03c9041f2092ea55a449caf5dfe68352c6654511b29ba0654ddb69/propcache-0.5.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c", size = 55007, upload-time = "2026-05-08T20:59:59.837Z" }, + { url = "https://files.pythonhosted.org/packages/14/c0/43f649c7aa2a77a3b100d84e9dea3a483120ecb608bfe36ce49eaff517fe/propcache-0.5.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0", size = 60355, upload-time = "2026-05-08T21:00:01.144Z" }, + { url = "https://files.pythonhosted.org/packages/83/c0/435dafd27f1cb4a495381dae60e25883ccfe4020bb72818e8184c1678092/propcache-0.5.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6", size = 59057, upload-time = "2026-05-08T21:00:02.401Z" }, + { url = "https://files.pythonhosted.org/packages/53/ae/6e292df9135d659944e96cb3389258e4a663e5b2b5f6c217ef0ddc8d2f73/propcache-0.5.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27", size = 61938, upload-time = "2026-05-08T21:00:03.638Z" }, + { url = "https://files.pythonhosted.org/packages/0b/42/314ebc50d8159055411fd6b0bda322ff510e4b1f7d2e4927940ad0f6af20/propcache-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f", size = 59731, upload-time = "2026-05-08T21:00:04.881Z" }, + { url = "https://files.pythonhosted.org/packages/b8/9b/2da6dee38871c3c8772fabc2758325a5c9077d6d18c597737dc04dd884cd/propcache-0.5.2-cp311-cp311-win32.whl", hash = "sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0", size = 38966, upload-time = "2026-05-08T21:00:06.511Z" }, + { url = "https://files.pythonhosted.org/packages/42/4e/f17363fb58c0afe05b067361cb6d86ed2d29de6506779a27547c4d183075/propcache-0.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82", size = 42135, upload-time = "2026-05-08T21:00:08.088Z" }, + { url = "https://files.pythonhosted.org/packages/c6/eb/6af6685077d22e8b33358d3c548e3282706a0b3cd85044ffba4e5dd08e3b/propcache-0.5.2-cp311-cp311-win_arm64.whl", hash = "sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab", size = 38381, upload-time = "2026-05-08T21:00:09.692Z" }, + { url = "https://files.pythonhosted.org/packages/4a/cb/e27bc2b2737a0bb49962b275efa051e8f1c35a936df7d5139b6b658b7dc9/propcache-0.5.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba", size = 95887, upload-time = "2026-05-08T21:00:11.277Z" }, + { url = "https://files.pythonhosted.org/packages/e6/13/b8ae04c59392f8d11c6cd9fb4011d1dc7c86b81225c770280300e259ffe1/propcache-0.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a", size = 54654, upload-time = "2026-05-08T21:00:12.604Z" }, + { url = "https://files.pythonhosted.org/packages/2c/7d/49777a3e20b55863d4794384a38acd460c04157b0a00f8602b0d508b8431/propcache-0.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf", size = 55190, upload-time = "2026-05-08T21:00:13.935Z" }, + { url = "https://files.pythonhosted.org/packages/44/c7/085d0cd63062e84044e3f05797749c3f8e3938ff3aeb0eb2f69d43fafc91/propcache-0.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144", size = 59995, upload-time = "2026-05-08T21:00:15.526Z" }, + { url = "https://files.pythonhosted.org/packages/9c/42/32cf8e3009e92b2645cf1e944f701e8ea4e924dffde1ee26db860bcbf7e4/propcache-0.5.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9", size = 63422, upload-time = "2026-05-08T21:00:16.824Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1b/f112433f99fc979431b87a39ef169e3f8df070d99a72792c56d6937ac48b/propcache-0.5.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42", size = 64342, upload-time = "2026-05-08T21:00:18.362Z" }, + { url = "https://files.pythonhosted.org/packages/14/15/5574111ae50dd6e879456888c0eadd4c5a869959775854e18e18a6b345f3/propcache-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476", size = 61639, upload-time = "2026-05-08T21:00:19.692Z" }, + { url = "https://files.pythonhosted.org/packages/cc/da/4d775080b1490c0ae604acda868bd71aabe3a89ed16f2aa4339eb8a283e7/propcache-0.5.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba", size = 61588, upload-time = "2026-05-08T21:00:21.155Z" }, + { url = "https://files.pythonhosted.org/packages/04/ac/f076982cbe2195ee9cf32de5a1e46951d9fb399fc207f390562dd0fd8fb2/propcache-0.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a", size = 60029, upload-time = "2026-05-08T21:00:22.713Z" }, + { url = "https://files.pythonhosted.org/packages/70/60/189be62e0dd898dce3b331e1b8c7a543cd3a405ac0c81fe8ee8a9d5d77e1/propcache-0.5.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64", size = 56774, upload-time = "2026-05-08T21:00:24.001Z" }, + { url = "https://files.pythonhosted.org/packages/ea/9e/93377b9c7939c1ffae98f878dee955efadfd638078bc86dbc21f9d52f651/propcache-0.5.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913", size = 63532, upload-time = "2026-05-08T21:00:25.545Z" }, + { url = "https://files.pythonhosted.org/packages/14/f9/590ef6cfb9b8028d516d287812ece32bb0bc5f11fbb9c8bf6b2e6313fec8/propcache-0.5.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1", size = 61592, upload-time = "2026-05-08T21:00:27.186Z" }, + { url = "https://files.pythonhosted.org/packages/b4/5e/70958b3034c297a630bba2f17ca7abc2d5f39a803ad7e370ab79d1ecd022/propcache-0.5.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33", size = 64788, upload-time = "2026-05-08T21:00:28.8Z" }, + { url = "https://files.pythonhosted.org/packages/12/fd/77fe5936d8c3086ca9048f7f415f122ed82e53884a9ec193646b42deef06/propcache-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a", size = 62514, upload-time = "2026-05-08T21:00:30.098Z" }, + { url = "https://files.pythonhosted.org/packages/cf/74/66bd798b5b3be70aa1b391f5cc9d6a0a5532d7fd3b19ec0b213e72e6ad9d/propcache-0.5.2-cp312-cp312-win32.whl", hash = "sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031", size = 39018, upload-time = "2026-05-08T21:00:31.622Z" }, + { url = "https://files.pythonhosted.org/packages/61/7c/5c0d34aa3024694d6dcb9271cdbdd08c4e47c1c0ad95ec7e7bc74cdea145/propcache-0.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42", size = 42322, upload-time = "2026-05-08T21:00:32.918Z" }, + { url = "https://files.pythonhosted.org/packages/4d/91/875812f1a3feb20ceba818ef39fbe4d92f1081e04ac815c822496d0d038b/propcache-0.5.2-cp312-cp312-win_arm64.whl", hash = "sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84", size = 38172, upload-time = "2026-05-08T21:00:35.124Z" }, + { url = "https://files.pythonhosted.org/packages/c5/09/f049e45385503fe67db75a6b6186a7b9f0c3930366dc960522c312a825b1/propcache-0.5.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a", size = 94457, upload-time = "2026-05-08T21:00:36.355Z" }, + { url = "https://files.pythonhosted.org/packages/6b/65/83d1d05655baf63113731bd5a1008435e14f8d1e5a06cbe4ec5b23ad7a31/propcache-0.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117", size = 53835, upload-time = "2026-05-08T21:00:38.072Z" }, + { url = "https://files.pythonhosted.org/packages/a9/12/a6ba6482bb5ea3260c000c9b20881c95fa11c6b30173715668259f844ed7/propcache-0.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098", size = 54545, upload-time = "2026-05-08T21:00:39.319Z" }, + { url = "https://files.pythonhosted.org/packages/a9/19/7fa086f5764c59ec8a8e157cd93aa8497acc00aba9dcdec56bfffb32602d/propcache-0.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4", size = 59886, upload-time = "2026-05-08T21:00:40.621Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e4/5d7663dc8235956c8f5281698a3af1d351d8820341ddd890f59d9a9127f2/propcache-0.5.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e", size = 63261, upload-time = "2026-05-08T21:00:41.775Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4a/15a03adee24d6350da4292caeac44c34c033d2afe5e87eb370f38854560f/propcache-0.5.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7", size = 64184, upload-time = "2026-05-08T21:00:43.018Z" }, + { url = "https://files.pythonhosted.org/packages/8b/c6/979176efdaa3d239e36d503d5af63a0a773b36662ed8f52e5b6a6d9fd40e/propcache-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d", size = 61534, upload-time = "2026-05-08T21:00:44.507Z" }, + { url = "https://files.pythonhosted.org/packages/c8/22/63e8cd1bae4c2d2be6493b6b7d10566ddafad88137cfbc99964a1119853c/propcache-0.5.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a", size = 61500, upload-time = "2026-05-08T21:00:45.796Z" }, + { url = "https://files.pythonhosted.org/packages/60/5a/28e5d9acbac1cc9ccb67045e8c1b943aa8d79fdf39c93bd73cacd68008ea/propcache-0.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2", size = 59994, upload-time = "2026-05-08T21:00:47.093Z" }, + { url = "https://files.pythonhosted.org/packages/f3/40/db650677f554a95b9c01a7c9d93d629e93a15562f5deb4573c9ee136fed2/propcache-0.5.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa", size = 56884, upload-time = "2026-05-08T21:00:48.376Z" }, + { url = "https://files.pythonhosted.org/packages/80/45/70b39b89516ff8b96bf732fa6fded8cef20f293cb1508690101c3c07ec51/propcache-0.5.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853", size = 63464, upload-time = "2026-05-08T21:00:49.954Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e2/fa59d3a89eac5534293124af4f1d0d0ada091ce4a0ab4610ce03fd2bdd8d/propcache-0.5.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a", size = 61588, upload-time = "2026-05-08T21:00:51.281Z" }, + { url = "https://files.pythonhosted.org/packages/0b/97/efb547a55c4bc7381cfb202d6a2239ac621045277bc1ea5dfd3a7f0516c0/propcache-0.5.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704", size = 64667, upload-time = "2026-05-08T21:00:52.602Z" }, + { url = "https://files.pythonhosted.org/packages/92/56/f5c7d9b4b7595d5127da38974d791b2153f3d1eae6c674af3583ace92ad3/propcache-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4", size = 62463, upload-time = "2026-05-08T21:00:54.303Z" }, + { url = "https://files.pythonhosted.org/packages/bd/3b/484a3a65fc9f9f60c41dcd17b428bace5389544e2c680994534a20755066/propcache-0.5.2-cp313-cp313-win32.whl", hash = "sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d", size = 38621, upload-time = "2026-05-08T21:00:55.808Z" }, + { url = "https://files.pythonhosted.org/packages/1c/fd/3f0f10dba4dabad3bf53102be007abf55481067952bde0fdddff439e7c61/propcache-0.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757", size = 41649, upload-time = "2026-05-08T21:00:57.061Z" }, + { url = "https://files.pythonhosted.org/packages/90/ec/6ce619cc32bb500a482f811f9cd509368b4e58e638d13f2c68f370d6b475/propcache-0.5.2-cp313-cp313-win_arm64.whl", hash = "sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f", size = 37636, upload-time = "2026-05-08T21:00:58.646Z" }, + { url = "https://files.pythonhosted.org/packages/1b/82/c1d268bbbf2ef981c5bf0fbbe746db617c66e3bcefe431a1aa8943fbe23a/propcache-0.5.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d", size = 98872, upload-time = "2026-05-08T21:00:59.889Z" }, + { url = "https://files.pythonhosted.org/packages/f4/d4/52c871e73e864e6b34c0e2d58ac1ec5ccd149497ddc7ad2137ae98323a35/propcache-0.5.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa", size = 56257, upload-time = "2026-05-08T21:01:01.195Z" }, + { url = "https://files.pythonhosted.org/packages/67/f0/9b90ca2a210b3d09bcfcd96ecd0f55545c091535abce2a45de2775cfd357/propcache-0.5.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94", size = 56696, upload-time = "2026-05-08T21:01:02.941Z" }, + { url = "https://files.pythonhosted.org/packages/9d/0e/6e9d4ba07c8e56e21ddec1e75f12148142b21ca83a51871babce095334f4/propcache-0.5.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164", size = 62378, upload-time = "2026-05-08T21:01:04.475Z" }, + { url = "https://files.pythonhosted.org/packages/65/19/c10badaa463dde8a27ce884f8ee2ec37e6035b7c9f5ff0c8f74f06f08dac/propcache-0.5.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f", size = 65283, upload-time = "2026-05-08T21:01:05.959Z" }, + { url = "https://files.pythonhosted.org/packages/b0/b6/93bea99ca80e19cef6512a8580e5b7857bbe09422d9daa7fd4ef5723306c/propcache-0.5.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c", size = 66616, upload-time = "2026-05-08T21:01:07.228Z" }, + { url = "https://files.pythonhosted.org/packages/83/e4/5c7462e50625f051f37fb38b8224f7639f667184bbd34424ec83819bb1b7/propcache-0.5.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc", size = 63773, upload-time = "2026-05-08T21:01:08.514Z" }, + { url = "https://files.pythonhosted.org/packages/ca/b6/99238894047b13c823be25027e736626cd414a52a5e30d2c3347c2733529/propcache-0.5.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f", size = 63664, upload-time = "2026-05-08T21:01:09.874Z" }, + { url = "https://files.pythonhosted.org/packages/85/1e/a3a1a63116a2b8edb415a8bb9a6f0c34bd03830b1e18e8ce2904e1dc1cf4/propcache-0.5.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb", size = 62643, upload-time = "2026-05-08T21:01:11.132Z" }, + { url = "https://files.pythonhosted.org/packages/e4/03/893cf147de2fc6543c5eaa07ad833170e7e2a2385725bbebe8c0503723bb/propcache-0.5.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751", size = 59595, upload-time = "2026-05-08T21:01:12.387Z" }, + { url = "https://files.pythonhosted.org/packages/86/3b/04c1a2e12c57766568ba75ba72b3bf2042818d4c1425fab6fc07155c7cff/propcache-0.5.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836", size = 65711, upload-time = "2026-05-08T21:01:13.676Z" }, + { url = "https://files.pythonhosted.org/packages/1c/34/80f8d0099f8d6bacc4de1624c85672681c8cd1149ca2da0e38fd120b817f/propcache-0.5.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f", size = 64247, upload-time = "2026-05-08T21:01:14.936Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1a/8b08f3a5f1037e9e370c55883ceeeee0f6dd0416fb2d2d67b8bfc91f2a79/propcache-0.5.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55", size = 67102, upload-time = "2026-05-08T21:01:16.281Z" }, + { url = "https://files.pythonhosted.org/packages/34/68/8bdb7bb7756d76e005490649d10e4a8369e610c74d619f71e1aedf889e9c/propcache-0.5.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568", size = 64964, upload-time = "2026-05-08T21:01:17.57Z" }, + { url = "https://files.pythonhosted.org/packages/0a/aa/50fb0b5d3968b61a510926ff8b8465f1d6e976b3ab74496d7a4b9fc42515/propcache-0.5.2-cp313-cp313t-win32.whl", hash = "sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191", size = 42546, upload-time = "2026-05-08T21:01:18.946Z" }, + { url = "https://files.pythonhosted.org/packages/ae/4c/0ddbae64321bd4a95bcbfc19307238016b5b1fee645c84626c8d539e5b74/propcache-0.5.2-cp313-cp313t-win_amd64.whl", hash = "sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7", size = 46330, upload-time = "2026-05-08T21:01:20.162Z" }, + { url = "https://files.pythonhosted.org/packages/00/d9/9cddc8efb78d8af264c5ec9f6d10b62f57c515feda8d321595f56010fb23/propcache-0.5.2-cp313-cp313t-win_arm64.whl", hash = "sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96", size = 40521, upload-time = "2026-05-08T21:01:21.399Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ea/23ee535d90ce8bcc465a3028eb3cc0ce3bd1005f4bb27710b30587de798d/propcache-0.5.2-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999", size = 94662, upload-time = "2026-05-08T21:01:22.683Z" }, + { url = "https://files.pythonhosted.org/packages/b5/06/c5a52f419b5d8972f8d46a7577476090d8e3263ff589ce40b5ca4968d5be/propcache-0.5.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e", size = 53928, upload-time = "2026-05-08T21:01:23.986Z" }, + { url = "https://files.pythonhosted.org/packages/63/b1/4260d67d6bd85e58a66b72d54ce15d5de789b6f3870cc6bedf8ff9667401/propcache-0.5.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539", size = 54650, upload-time = "2026-05-08T21:01:25.305Z" }, + { url = "https://files.pythonhosted.org/packages/70/06/2f46c318e3307cd7a6a7481def374ce838c0fe20084b39dd54b0879d0e99/propcache-0.5.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e", size = 59912, upload-time = "2026-05-08T21:01:26.545Z" }, + { url = "https://files.pythonhosted.org/packages/4c/29/fe1aebec2ce57ab985a9c382bded1124431f85078113aa222c5d278430d4/propcache-0.5.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979", size = 63300, upload-time = "2026-05-08T21:01:27.937Z" }, + { url = "https://files.pythonhosted.org/packages/b4/18/2334b26768b6c82be8c69e83671b767d5ef426aa09b0cba6c2ea47816774/propcache-0.5.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80", size = 64208, upload-time = "2026-05-08T21:01:29.484Z" }, + { url = "https://files.pythonhosted.org/packages/2b/76/7f1bfd6afff4c5e38e36a3c6d68eb5f4b7311ea80baf693db78d95b603c4/propcache-0.5.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825", size = 61633, upload-time = "2026-05-08T21:01:31.068Z" }, + { url = "https://files.pythonhosted.org/packages/c4/46/b3ff8aba2b4953a3e50de2cf72f1b5748b8eca93b15f3dc2c84339084c09/propcache-0.5.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39", size = 61724, upload-time = "2026-05-08T21:01:32.374Z" }, + { url = "https://files.pythonhosted.org/packages/c5/01/814cfcafbcff954f94c01cf30e097ddc88a076b5440fbcf4570753437d40/propcache-0.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4", size = 60069, upload-time = "2026-05-08T21:01:33.67Z" }, + { url = "https://files.pythonhosted.org/packages/da/68/5c6f7622d510cc666a300687e06fd060c1a43361c0c9b20d284f06d8096a/propcache-0.5.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5", size = 57099, upload-time = "2026-05-08T21:01:34.915Z" }, + { url = "https://files.pythonhosted.org/packages/55/27/9cb0b4c679124085327957d42521c99dba04c88c90c3e55a6f0b633ebccc/propcache-0.5.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702", size = 63391, upload-time = "2026-05-08T21:01:36.231Z" }, + { url = "https://files.pythonhosted.org/packages/f0/9d/7258aaa5bdf60fc6f27591eef6fe52768cb0beda7140be477c8b12c9794a/propcache-0.5.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3", size = 61626, upload-time = "2026-05-08T21:01:37.545Z" }, + { url = "https://files.pythonhosted.org/packages/8e/0d/41c602003e8a9b16fe1e7eadf62c7bfba9d5474370b24200bf48b315f45f/propcache-0.5.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5", size = 64781, upload-time = "2026-05-08T21:01:38.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f3/38e66b1856e9bd079deea015bc4a55f7767c0e4db2f7dcf69e7e680ba4ce/propcache-0.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4", size = 62570, upload-time = "2026-05-08T21:01:40.415Z" }, + { url = "https://files.pythonhosted.org/packages/95/ca/bbfe9b910ce57dde8bb4876b4520fc02a4e89497c10de26be936758a3aaa/propcache-0.5.2-cp314-cp314-win32.whl", hash = "sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0", size = 39436, upload-time = "2026-05-08T21:01:41.654Z" }, + { url = "https://files.pythonhosted.org/packages/61/d2/45c9defbaa1ea297035d9d4cce9e8f80daafbf19319c6007f157c6256ea9/propcache-0.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c", size = 42373, upload-time = "2026-05-08T21:01:43.041Z" }, + { url = "https://files.pythonhosted.org/packages/44/68/9ea5103f41d5217d7d6ec24db90018e23aebec070c3f9a6e54d12b841fd8/propcache-0.5.2-cp314-cp314-win_arm64.whl", hash = "sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0", size = 38554, upload-time = "2026-05-08T21:01:44.336Z" }, + { url = "https://files.pythonhosted.org/packages/8a/81/fadf555f42d3b762eea8a53950b0489fdc0aa9da5f8ed9e10ce0a4e01b48/propcache-0.5.2-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb", size = 99395, upload-time = "2026-05-08T21:01:45.883Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c9/c61e134a686949cf7971af3a390148b1156f7be81c73bc0cd12c873e2d48/propcache-0.5.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078", size = 56653, upload-time = "2026-05-08T21:01:47.307Z" }, + { url = "https://files.pythonhosted.org/packages/cb/73/daf935ea7048ddd7ec8eec5345b4a40b619d2d178b3c0a0900796bc3c794/propcache-0.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa", size = 56914, upload-time = "2026-05-08T21:01:48.573Z" }, + { url = "https://files.pythonhosted.org/packages/79/9f/aba959b435ea18617edd7cf0a7ad0b9c574b8fc7e3d2cd55fb59cb255d33/propcache-0.5.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917", size = 62567, upload-time = "2026-05-08T21:01:49.903Z" }, + { url = "https://files.pythonhosted.org/packages/6c/a1/859942de9a791ff42f6141736f5b37749b8f53e65edfa49638c67dd67e6a/propcache-0.5.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe", size = 65542, upload-time = "2026-05-08T21:01:51.204Z" }, + { url = "https://files.pythonhosted.org/packages/b5/61/315bc0fd6c0fc7f80a528b8afd209e5fc4a875ea79571b91b8f50f442907/propcache-0.5.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03", size = 66845, upload-time = "2026-05-08T21:01:52.539Z" }, + { url = "https://files.pythonhosted.org/packages/47/f7/9f8122e3132e8e354ac41975ef8f1099be7d5a16bc7ae562734e993665c0/propcache-0.5.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335", size = 63985, upload-time = "2026-05-08T21:01:53.847Z" }, + { url = "https://files.pythonhosted.org/packages/c8/54/c317819ec157cbf6f35df9df9657a6f82daf34d5faf15948b2f639c2192e/propcache-0.5.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285", size = 63999, upload-time = "2026-05-08T21:01:55.179Z" }, + { url = "https://files.pythonhosted.org/packages/5a/56/387e3f7dfce0a9233df41fb888aa1c30222cb4bbbf09537c02dd9bd85fe2/propcache-0.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837", size = 62779, upload-time = "2026-05-08T21:01:57.489Z" }, + { url = "https://files.pythonhosted.org/packages/a1/9c/596784cb5824ed61ee960d3f8655a3f0993e107c6e98ab6c818b7fb92ccb/propcache-0.5.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8", size = 59796, upload-time = "2026-05-08T21:01:58.736Z" }, + { url = "https://files.pythonhosted.org/packages/c2/3d/1a6cfa1726a48542c1e8784a0761421476a5b68e09b7f36bf95eb954aaba/propcache-0.5.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366", size = 66023, upload-time = "2026-05-08T21:02:00.228Z" }, + { url = "https://files.pythonhosted.org/packages/e4/0e/05fd6990369477076e4e280bcb970de760fddf0161a46e988bc95f7940ec/propcache-0.5.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56", size = 64448, upload-time = "2026-05-08T21:02:01.888Z" }, + { url = "https://files.pythonhosted.org/packages/cd/86/5f8da315a4309c62c10c0b2516b17492d5d3bbe1bb862b96604db67e2a37/propcache-0.5.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d", size = 67329, upload-time = "2026-05-08T21:02:03.484Z" }, + { url = "https://files.pythonhosted.org/packages/da/d3/3368efe79ab21f0cdf86ef49895811c9cc933131d4cde1f28a624e22e712/propcache-0.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2", size = 65172, upload-time = "2026-05-08T21:02:04.745Z" }, + { url = "https://files.pythonhosted.org/packages/d5/07/127e8b0bacfb325396196f9d976a22453049b89b9b2b08477cc3145faa44/propcache-0.5.2-cp314-cp314t-win32.whl", hash = "sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821", size = 43813, upload-time = "2026-05-08T21:02:06.025Z" }, + { url = "https://files.pythonhosted.org/packages/88/fb/46dad6c0ae49ed230ab1b16c890c2b6314e2403e6c412976f4a72d64a527/propcache-0.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370", size = 47764, upload-time = "2026-05-08T21:02:07.353Z" }, + { url = "https://files.pythonhosted.org/packages/e7/c4/a47d0a63aa309d10d59ede6e9d4cff03a344a79d1f0f4cd0cd74997b53e0/propcache-0.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6", size = 41140, upload-time = "2026-05-08T21:02:09.065Z" }, + { url = "https://files.pythonhosted.org/packages/3a/ed/1cdcab6ba3d6ab7feca11fc14f0eeea80755bb53ef4e892079f31b10a25f/propcache-0.5.2-py3-none-any.whl", hash = "sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe", size = 14036, upload-time = "2026-05-08T21:02:10.673Z" }, +] + +[[package]] +name = "proto-plus" +version = "1.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/87/44/767757fd2cdd4a60d7e4440d9f7b491d6131103d313638d2c03e06c268fb/proto_plus-1.28.1.tar.gz", hash = "sha256:832e68e7fe064cf90ab153b6e5eb935b27891bb89aaeb68b115e9b702f6cb168", size = 57166, upload-time = "2026-07-08T17:04:02.367Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/34/2f2b57dbfd145b995a29847a16b0903fce5ef6ad3c7aad740a609c5d3678/proto_plus-1.28.1-py3-none-any.whl", hash = "sha256:6660f5f1970874bdcfc3088b435188a36a37bd3596668f7d726417c4ae8cfbed", size = 50408, upload-time = "2026-07-08T17:03:34.532Z" }, +] + +[[package]] +name = "protobuf" +version = "7.35.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/01/9ef0afd7999eb9badb3a768b4aedd78c86d4c65cfaf1958ab276199e76b4/protobuf-7.35.1.tar.gz", hash = "sha256:ce115a26fe0c39a2c29973d914d327e516a6455464489fe3cd1e51a1b354f81a", size = 458717, upload-time = "2026-06-11T21:55:40.257Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/03/8aeeb7458d22546bf64b5250ca1daeb5ff757d900e8e4a7476c6f0db843e/protobuf-7.35.1-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:24f857477359a85c0c235261b8ba905fd51b2562f4a64ca1df5473f29850cbf6", size = 433226, upload-time = "2026-06-11T21:55:31.719Z" }, + { url = "https://files.pythonhosted.org/packages/37/4b/dfb89eb0e652a1ff073c39a59fb5e3a83cfe9b57a2c83fa6d78270101767/protobuf-7.35.1-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:11d6b0ec246892d85215b0a13ca6e0233cf5284b68f0ac02646427f4ff88a799", size = 328847, upload-time = "2026-06-11T21:55:34.035Z" }, + { url = "https://files.pythonhosted.org/packages/0f/58/dc12f2cd484951524af6e3382c785869b9b3fb5e52ee95ae23add53ee8f9/protobuf-7.35.1-cp310-abi3-manylinux2014_s390x.whl", hash = "sha256:b73f9489a4b8b1c9cb1f8ed951c736392592edb24b9d6819f36d2e10b171d5b4", size = 344030, upload-time = "2026-06-11T21:55:34.941Z" }, + { url = "https://files.pythonhosted.org/packages/e4/be/5b3cfe508bfab6761414ff944e3366eb13be4fd71efcd69450f89ba39f43/protobuf-7.35.1-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:74758715c53d7158fb76caf4f0cfdacc5329a4b1bb994f865d6cf302d413a1c4", size = 327130, upload-time = "2026-06-11T21:55:35.921Z" }, + { url = "https://files.pythonhosted.org/packages/d8/bc/6d6c7ba8709c85f8f2c390b2b118d6fb08a783676a572271851bf45a7d22/protobuf-7.35.1-cp310-abi3-win32.whl", hash = "sha256:353652e4efd0bca5b5fc2656abf8307ef351f0cf938c9eba09f0e09c20a25c30", size = 428945, upload-time = "2026-06-11T21:55:37.034Z" }, + { url = "https://files.pythonhosted.org/packages/0a/19/8d0cb6f20a1ef7b18f1c8986ad5783f22f84cce39c6ce9a6e645ea55192e/protobuf-7.35.1-cp310-abi3-win_amd64.whl", hash = "sha256:230a75ddfc2de4806e56696ce9640c1cdfdb6543b7cfce98d42a4c0a0e7bdb87", size = 439996, upload-time = "2026-06-11T21:55:38.123Z" }, + { url = "https://files.pythonhosted.org/packages/19/c7/5f7c636ec43e0c545e28d1f1db71990108306f7bdcb89f069ba97e428e7f/protobuf-7.35.1-py3-none-any.whl", hash = "sha256:4bc97768d8fe4ad6743c8a19403e314511ed9f6d13205b687e52421c023ac1b9", size = 171659, upload-time = "2026-06-11T21:55:39.155Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, + { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, + { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, +] + +[[package]] +name = "py-serializable" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "defusedxml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/73/21/d250cfca8ff30c2e5a7447bc13861541126ce9bd4426cd5d0c9f08b5547d/py_serializable-2.1.0.tar.gz", hash = "sha256:9d5db56154a867a9b897c0163b33a793c804c80cee984116d02d49e4578fc103", size = 52368, upload-time = "2025-07-21T09:56:48.07Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/bf/7595e817906a29453ba4d99394e781b6fabe55d21f3c15d240f85dd06bb1/py_serializable-2.1.0-py3-none-any.whl", hash = "sha256:b56d5d686b5a03ba4f4db5e769dc32336e142fc3bd4d68a8c25579ebb0a67304", size = 23045, upload-time = "2025-07-21T09:56:46.848Z" }, +] + +[[package]] +name = "pyarrow" +version = "25.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/27/f3/95428098d1fa7d04432fb750eed06b41304c2f6a5d3319985e64db2d9d41/pyarrow-25.0.0.tar.gz", hash = "sha256:d2d697008b5ec06d75952ef260c2e9a8a0f6ccfce24266c04c9c8ade927cb3b4", size = 1199181, upload-time = "2026-07-10T08:29:50.116Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/2a/eaa70e6d6ed430c2e90c0599e2831a41a50251879e44788ccdbc73115af1/pyarrow-25.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ce0ca222802087b9a8cb031a6468442cb6b67c290a45a601cac64753d34954d3", size = 35945551, upload-time = "2026-07-10T08:25:23.153Z" }, + { url = "https://files.pythonhosted.org/packages/df/e0/917086af6b246143012cdc8a7c886b018b53204f3d69fc5f9be5857a8b80/pyarrow-25.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:7d6da02ffc7a3a9bda3b7ded4cc2a27ff73969ab37153f3afd46bbbc1ba4f0f7", size = 37636698, upload-time = "2026-07-10T08:25:28.031Z" }, + { url = "https://files.pythonhosted.org/packages/68/6a/c87829f92503f84993721791c942f3d9aa81044de51a8cfb1da5810e5345/pyarrow-25.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:dbf9fa5d4bde73b1cc16377dcaaa010f971e6fa7f5083f5d44f34b50bc1d74af", size = 46858364, upload-time = "2026-07-10T08:25:34.527Z" }, + { url = "https://files.pythonhosted.org/packages/cc/ba/2030d454c2747e26cce23e4a0338067ee0830a155b7894da04caa96783a5/pyarrow-25.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b72d943ff4e10fec8d48aedb23322d8f6ea8bc2d698b81db37e73730f69e4862", size = 50056398, upload-time = "2026-07-10T08:25:40.785Z" }, + { url = "https://files.pythonhosted.org/packages/78/ce/ba7a5ce7bf0cfc372ec48203a34ece42f73aa2f3231706f61c55e105ecd0/pyarrow-25.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5fb2d837960f1df7f679ff9f1a55065e306347d379e0768cebf14781254d6194", size = 49958146, upload-time = "2026-07-10T08:25:46.98Z" }, + { url = "https://files.pythonhosted.org/packages/75/eb/c34a29fb7a70dca2f903c7d85a928928ef55af20cd56e99de6b4c0d897bc/pyarrow-25.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:add690feafa0953c443cdba9e9e87f5eaa198f1ea2e43a3b146ea83f202262d0", size = 53096264, upload-time = "2026-07-10T08:25:53.925Z" }, + { url = "https://files.pythonhosted.org/packages/36/f9/35b1f83a0727d84951588e4034aca2feb76dfb45b0725918c0037b0a48f7/pyarrow-25.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:d293e9959b29a24c82d936d04ab2b7fd8b8d334030de2e56a99aba94f008ad7a", size = 27840572, upload-time = "2026-07-10T08:25:58.966Z" }, + { url = "https://files.pythonhosted.org/packages/a7/98/ae2b5acf9876dbeffa6f320776242c52caab062df55c8ac5501ed2679e74/pyarrow-25.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:2e3b6544e26e393fe2cd530f523e36c1c8d3c345bbbb60cca3fd866be8322517", size = 35939080, upload-time = "2026-07-10T08:26:04.53Z" }, + { url = "https://files.pythonhosted.org/packages/80/09/3de2a968edbd496c86cb8b932cdbee2d4b08c4a28e9884a15e5c705a646b/pyarrow-25.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:b724d127783b4c19f088fcdfc844cbc318809246a30307bcabd5ed02045e890e", size = 37633420, upload-time = "2026-07-10T08:26:10.354Z" }, + { url = "https://files.pythonhosted.org/packages/19/86/8399243a4ce080426ec37db18d5e29148b7ec960a8a8c7f9059a7bf6ef0a/pyarrow-25.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:244f98a595f70fa4fd35faa7508c4ae67e14a173397a4b3b49d2b3c360fb0062", size = 46861050, upload-time = "2026-07-10T08:26:16.397Z" }, + { url = "https://files.pythonhosted.org/packages/7b/79/72d704b02bc5fc6d06954d76a0208c1e79cad3ab370f6d6a91ffe5078870/pyarrow-25.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:0222f0071d13313962a88d21bf28b80d355ac39d81bfa6ff3fe00eeaf748e4be", size = 50056458, upload-time = "2026-07-10T08:26:23.271Z" }, + { url = "https://files.pythonhosted.org/packages/06/5d/3c31a60b6403d63cad2e0f829096f5fc5763a129ead4207a5d4690b96448/pyarrow-25.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b58726f118c079f9d4ed7e904975d4f15fd69d0741ba511a4e2dcaa4ef16354f", size = 49957793, upload-time = "2026-07-10T08:26:30.232Z" }, + { url = "https://files.pythonhosted.org/packages/34/f7/8f8a019061f9863a831915329264372a87ed25eaf9109ce56eb0e84012c5/pyarrow-25.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:38a2c887cb3883e241b70201688db34133b6dfadd04f03c8f9213df53770c18e", size = 53100544, upload-time = "2026-07-10T08:26:36.414Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e2/738071e95c5ddad7b3dfc12f569ffa992db89d7d7b4a95258fd184191249/pyarrow-25.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:161649d60a7a46c613a19fd795763ea8a88c36ba997dd99d9bc66e6794ee36e8", size = 27848311, upload-time = "2026-07-10T08:26:41.429Z" }, + { url = "https://files.pythonhosted.org/packages/73/44/fdd3a4377807b7dcabe2d4b5aa99dbbc98e2e5df3f1ca4e7f0aec492d987/pyarrow-25.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:149730a3d1f0fb59d663a0b8aa210adfd9c17c27cd94a0d143e60daea8320d4e", size = 35850884, upload-time = "2026-07-10T08:26:47.357Z" }, + { url = "https://files.pythonhosted.org/packages/bf/71/9f053177a7709b8c90abb00a2375b916286f9f0d6cfb21a5cadd4ef811e8/pyarrow-25.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:0721332c30fdd453fdd1fc203b2ac1f4c9db5aea28fa38d41f2574c4b068b9ec", size = 37616197, upload-time = "2026-07-10T08:26:53.564Z" }, + { url = "https://files.pythonhosted.org/packages/95/1a/22bfb6597dcdc861fa83c39c06e1457cb56f698940eff42fbb25de30e8e5/pyarrow-25.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fa1482b3da10cac2d4db6e26b81da543e237616af2ef6d466018b31ca586496f", size = 46841966, upload-time = "2026-07-10T08:27:07.685Z" }, + { url = "https://files.pythonhosted.org/packages/55/0e/cd705c042bc4fe7022478db577fcab4abdcfabb9bc37ab7a75556b3fcb2b/pyarrow-25.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:5d1dbf24e151042f2fa3c129563f65d66674128868496fb008c4272b16bdf778", size = 50088993, upload-time = "2026-07-10T08:27:14.268Z" }, + { url = "https://files.pythonhosted.org/packages/98/ee/d822e1ee31fe31ec5d057210e0605c950b975dcd8d9a332976cc859a9df8/pyarrow-25.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:20887a762dd61dcc530f93a140840ab1f6aa7836b33270e42d627ab3cf11e537", size = 49941005, upload-time = "2026-07-10T08:27:21.274Z" }, + { url = "https://files.pythonhosted.org/packages/33/1b/207a90cc64619a095eb75a263ae069735f2810056d43c667befd573ec083/pyarrow-25.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:58d1ab556b0cea1c93fdb799b24ad58adb2f2a2788dbce782a94f64ae1a5cc9b", size = 53112355, upload-time = "2026-07-10T08:27:27.911Z" }, + { url = "https://files.pythonhosted.org/packages/7e/fe/81d1e5f8beed15c01e98649d5c6e2167b67fd395884a2488f18bf1cf0dba/pyarrow-25.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:3f356afe61186395c861d5cd63dc21ff7d5fa335012a4668d979257df7fea0f5", size = 27945954, upload-time = "2026-07-10T08:27:32.903Z" }, + { url = "https://files.pythonhosted.org/packages/6c/c8/098ce17d778fd9d29e40bb8c5f19a40cc90c3f0b46c9057b0d7993f42f54/pyarrow-25.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:8831a3ba52fa7cdb78d368d968b1dcd06171e6dff5461e16d90de91d371e47bc", size = 35844549, upload-time = "2026-07-10T08:27:37.956Z" }, + { url = "https://files.pythonhosted.org/packages/bc/66/24c28877219abf6263d909b1592c97ff82c59f13a59acbed11fc87c0654f/pyarrow-25.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:5f4bacb60f91dd2fca6c52f1b9a0012cd090e0294f1f781dc1881a247a352f8e", size = 37610397, upload-time = "2026-07-10T08:27:43.803Z" }, + { url = "https://files.pythonhosted.org/packages/53/55/6d1d5f5aff317ec5de9421594679ed51ed828fe7e2ce209327f819d801e4/pyarrow-25.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:59516c822d5fd8e544aaa0dfe72f36fed5d4c24ea8390aab1bcd31d7e959c6be", size = 46841701, upload-time = "2026-07-10T08:27:49.741Z" }, + { url = "https://files.pythonhosted.org/packages/b5/5d/f790fb6965ab54c9da0dda7856abc75fd0d7648d865f8d603c111d203a64/pyarrow-25.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:6f9dbd83e91c239a1f5ee7ce13f108b5f6c0efbe40a4375260d8f08b43ad05e9", size = 50090118, upload-time = "2026-07-10T08:27:56.051Z" }, + { url = "https://files.pythonhosted.org/packages/0c/8c/faf025357ebf31bc96777f234277aa31e2aeca6dd4ecaa391f29085473c2/pyarrow-25.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18dcc8cc50b5e72eae6fcbfc6c8776c21a007176b27a3cdec5c2f5bcf126708d", size = 49945559, upload-time = "2026-07-10T08:28:01.927Z" }, + { url = "https://files.pythonhosted.org/packages/07/a1/bd051871708ea99a5e0fc711926c26c6f2c6d0130c7aaac8093e34998af6/pyarrow-25.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4ec1895a87aa834c3b99b7a1e758747eb8bb57f922b32c0e0fa04afb8d6998b1", size = 53114238, upload-time = "2026-07-10T08:28:08.594Z" }, + { url = "https://files.pythonhosted.org/packages/7c/31/737f0c3cffcd6af647849477d1dd68045deac2e3963c3f9f211bedc48540/pyarrow-25.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:77c8d1ae46a44b4006e8db1cc977bbcc6ce4873c92f74137d68e45503b97fb18", size = 27861162, upload-time = "2026-07-10T08:28:12.975Z" }, + { url = "https://files.pythonhosted.org/packages/55/c7/581ccbcdb3d897eb2893328d68db3d52eca373bf2a7e964d0a6276b8e85b/pyarrow-25.0.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:72132b9a8a0a1840197794d4dea26080069b6b0981c116bc078762dc9691b21b", size = 35878945, upload-time = "2026-07-10T08:28:18.222Z" }, + { url = "https://files.pythonhosted.org/packages/64/d1/ccb01db7329ea0411ef4fbd9b62a04d3268b36777d4e758d5e39b91ddeab/pyarrow-25.0.0-cp314-cp314-macosx_12_0_x86_64.whl", hash = "sha256:e009ef945e498dca2f050ea10d2e9764cb44017254826fc4574fdb8d2530173b", size = 37630854, upload-time = "2026-07-10T08:28:23.452Z" }, + { url = "https://files.pythonhosted.org/packages/af/9f/2d81ba89d1e4198d0cb25fe7529de936830fdaec0db926bb52a1ef7080d4/pyarrow-25.0.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:f57a39dbcb416345401c2e77a4373669b45fd111a1768e6cf267a7a0607ff0ec", size = 46905617, upload-time = "2026-07-10T08:28:29.376Z" }, + { url = "https://files.pythonhosted.org/packages/6a/29/0ed312ec800fb536f93783215126cee4b8977dcfeccba6f0f44df0cc87d7/pyarrow-25.0.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:447df764beb07c544f0178a5f6b70ef44b9ecf382b3cdfad4c2d7867353c3887", size = 50119765, upload-time = "2026-07-10T08:28:35.826Z" }, + { url = "https://files.pythonhosted.org/packages/ca/88/cab5063ba0c4d46a9f6b4b7eb1c9029dc0302d65cd5ab3510c949a386568/pyarrow-25.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ac5dfeee59f9ceb4d45ba76e83b026c38c24334135bb329d8274baa49cec3c62", size = 50027563, upload-time = "2026-07-10T08:28:43.848Z" }, + { url = "https://files.pythonhosted.org/packages/7b/fb/4d24f1b7fe2e042dc4ef315ef75e4e702d8e46fe10c37e63caff00502b03/pyarrow-25.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f0f100dacf2c0f400601664a79d1a907ced4740514bb2b00917341038e2ce76f", size = 53162437, upload-time = "2026-07-10T08:28:52.819Z" }, + { url = "https://files.pythonhosted.org/packages/fa/65/da20806de93ca6ee91e72cb6a9b08b3ac890b46efc8d94a7326c651c4c81/pyarrow-25.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:2e093efbecb5317372f819228fa4b4e6157eee48d3f0a7b0303705ebf81a7104", size = 28613262, upload-time = "2026-07-10T08:29:47.544Z" }, + { url = "https://files.pythonhosted.org/packages/86/9f/c632afb1d3ef4a7814cee236718235f3a47eac46e97eb87df40f550b6b48/pyarrow-25.0.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:26be35b80780d2d21f4bae3d568b1666337c3a89722cc1794c956a77017cb24e", size = 36120702, upload-time = "2026-07-10T08:28:59.577Z" }, + { url = "https://files.pythonhosted.org/packages/36/0a/093d53a0e72ad06e45d6443e00651bbc2d21af4211295086cbf4d873d3b9/pyarrow-25.0.0-cp314-cp314t-macosx_12_0_x86_64.whl", hash = "sha256:6f4812bfbf11ca7d8faf59eb8fff8bf4dd25ce3a38b62baa010cc17a0926d1b2", size = 37750674, upload-time = "2026-07-10T08:29:06.916Z" }, + { url = "https://files.pythonhosted.org/packages/8a/18/b37fc31a69cff4bdfb8842683def5612f551b93fff6f44375e4a4a6a5535/pyarrow-25.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:b8af8ceedf0c9c160fd2b63440f2d205b9404db85866c1217bfea601de7cfb50", size = 46912304, upload-time = "2026-07-10T08:29:14.656Z" }, + { url = "https://files.pythonhosted.org/packages/32/35/5cae19ba72493e5598022468b56f6a5571f399f485bf412f157356476caa/pyarrow-25.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:c70a5fd9a82bd1a702fd482bdc62d38dcb672fb2b449b1d7c0d7d1f4be7b7bfe", size = 50073652, upload-time = "2026-07-10T08:29:22.467Z" }, + { url = "https://files.pythonhosted.org/packages/2e/a5/ddd508424bdfd5e6945765e9e2ffc687e2f6115972badc8ecf423076c407/pyarrow-25.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0490a7f8b38ffe11cc26526b50c65d111cb54ddac3717cec781806793f1244dc", size = 50058654, upload-time = "2026-07-10T08:29:29.689Z" }, + { url = "https://files.pythonhosted.org/packages/5f/a4/324d0db203ff5eebe8694ec2d6ec5a23f9aaa5d02e5b8c692914c518c33c/pyarrow-25.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e83916bbcf380866b4e14255850b33323ff678dc9758411d0409cdd2523880b0", size = 53140153, upload-time = "2026-07-10T08:29:36.041Z" }, + { url = "https://files.pythonhosted.org/packages/bd/8d/d236e9c82fe315f9128885c8be3ec719f41965a1eb6b6f4b42470904cd41/pyarrow-25.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:13240f0d3dc5932ccd0bfa90cd76d835680b9d94a7661c635df4b703d40ce849", size = 28743657, upload-time = "2026-07-10T08:29:42.742Z" }, +] + +[[package]] +name = "pyasn1" +version = "0.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a4/9a/23310166d960def5897e91fe20e5b724601b02a22e84ba1f94232c0b7f67/pyasn1-0.6.4.tar.gz", hash = "sha256:9c447d8431c947fe4c8febc4ed9e760bc29011a5b01e5c74b67025bd9fb8ce81", size = 151262, upload-time = "2026-07-09T01:12:33.988Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3b/6163796d69c3977d1e4287bea4a6979161cbbdd170ebb430511e8e1999ce/pyasn1-0.6.4-py3-none-any.whl", hash = "sha256:deda9277cfd454080ec40b207fb6df82206a3a2688735233cdcd8d3d565f088b", size = 84410, upload-time = "2026-07-09T01:12:32.92Z" }, +] + +[[package]] +name = "pyasn1-modules" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/e6/78ebbb10a8c8e4b61a59249394a4a594c1a7af95593dc933a349c8d00964/pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6", size = 307892, upload-time = "2025-03-28T02:41:22.17Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259, upload-time = "2025-03-28T02:41:19.028Z" }, +] + +[[package]] +name = "pycocotools" +version = "2.0.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a2/df/32354b5dda963ffdfc8f75c9acf8828ef7890723a4ed57bb3ff2dc1d6f7e/pycocotools-2.0.11.tar.gz", hash = "sha256:34254d76da85576fcaf5c1f3aa9aae16b8cb15418334ba4283b800796bd1993d", size = 25381, upload-time = "2025-12-15T22:31:46.148Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dd/4b/0c040fcda2c4fa4827b1a64e3185d99d5f954e45cc9463ba7385a1173a77/pycocotools-2.0.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:484d33515353186aadba9e2a290d81b107275cdb9565084e31a5568a52a0b120", size = 160351, upload-time = "2025-12-15T22:30:53.998Z" }, + { url = "https://files.pythonhosted.org/packages/49/fe/861db6515824815eaabce27734653a6b100ddb22364b3345dd862b2c5b65/pycocotools-2.0.11-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ca9f120f719ec405ad0c74ccfdb8402b0c37bd5f88ab5b6482a0de2efd5a36f4", size = 463947, upload-time = "2025-12-15T22:30:55.419Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a1/b4b49b85763043372e66baa10dffa42337cf4687d6db22546c27f3a4d732/pycocotools-2.0.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e40a3a898c6e5340b8d70cf7984868b9bff8c3d80187de9a3b661d504d665978", size = 472455, upload-time = "2025-12-15T22:30:56.895Z" }, + { url = "https://files.pythonhosted.org/packages/48/70/fac670296e6a2b45eb7434d0480b9af6cb85a8de4f4848b49b01154bc859/pycocotools-2.0.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7cd4cdfd2c676f30838aa0b1047441892fb4f97d70bf3df480bcc7a18a64d7d4", size = 457911, upload-time = "2025-12-15T22:30:58.377Z" }, + { url = "https://files.pythonhosted.org/packages/33/f5/6158de63354dfcb677c8da34a4d205cc532e3277338ab7e6dea1310ba8de/pycocotools-2.0.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:08c79789fd79e801ae4ecfcfeec32b31e36254e7a2b4019af28c104975d5e730", size = 476472, upload-time = "2025-12-15T22:30:59.736Z" }, + { url = "https://files.pythonhosted.org/packages/fc/01/46d2a782cda19ba1beb7c431f417e1e478f0bf1273fa5fe5d10de7c18d76/pycocotools-2.0.11-cp310-cp310-win_amd64.whl", hash = "sha256:f78cbb1a32d061fcad4bdba083de70a39a21c1c3d9235a3f77d8f007541ec5ef", size = 80165, upload-time = "2025-12-15T22:31:00.886Z" }, + { url = "https://files.pythonhosted.org/packages/ee/5c/6bd945781bb04c2148929183d1d67b05ce07996313b0f87bb88c6a805493/pycocotools-2.0.11-cp310-cp310-win_arm64.whl", hash = "sha256:e21311ea71f85591680d8992858e2d44a2a156dc3b2bf1c5c901c4a19348177b", size = 69358, upload-time = "2025-12-15T22:31:01.815Z" }, + { url = "https://files.pythonhosted.org/packages/b3/3f/41ce3fce61b7721158f21b61727eb054805babc0088cfa48506935b80a36/pycocotools-2.0.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:81bdceebb4c64e9265213e2d733808a12f9c18dfb14457323cc6b9af07fa0e61", size = 158947, upload-time = "2025-12-15T22:31:03.291Z" }, + { url = "https://files.pythonhosted.org/packages/e2/9b/a739705b246445bd1376394bf9d1ec2dd292b16740e92f203461b2bb12ed/pycocotools-2.0.11-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1c05f91ccc658dfe01325267209c4b435da1722c93eeb5749fabc1d087b6882", size = 485174, upload-time = "2025-12-15T22:31:04.395Z" }, + { url = "https://files.pythonhosted.org/packages/34/70/7a12752784e57d8034a76c245c618a2f88a9d2463862b990f314aea7e5d6/pycocotools-2.0.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18ba75ff58cedb33a85ce2c18f1452f1fe20c9dd59925eec5300b2bf6205dbe1", size = 493172, upload-time = "2025-12-15T22:31:05.504Z" }, + { url = "https://files.pythonhosted.org/packages/5c/fc/d703599ac728209dba08aea8d4bee884d5adabfcd9041abed1658d863747/pycocotools-2.0.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:693417797f0377fd094eb815c0a1e7d1c3c0251b71e3b3779fce3b3cf24793c5", size = 480506, upload-time = "2025-12-15T22:31:06.77Z" }, + { url = "https://files.pythonhosted.org/packages/81/d9/e1cfc320bbb2cd58c3b4398c3821cbe75d93c16ed3135ac9e774a18a02d3/pycocotools-2.0.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b6a07071c441d0f5e480a8f287106191582e40289d4e242dfe684e0c8a751088", size = 497595, upload-time = "2025-12-15T22:31:08.277Z" }, + { url = "https://files.pythonhosted.org/packages/a2/23/d17f6111c2a6ae8631d4fa90202bea05844da715d61431fbc34d276462d5/pycocotools-2.0.11-cp311-cp311-win_amd64.whl", hash = "sha256:8e159232adae3aef6b4e2d37b008bff107b26e9ed3b48e70ea6482302834bd34", size = 80519, upload-time = "2025-12-15T22:31:09.613Z" }, + { url = "https://files.pythonhosted.org/packages/00/4c/76b00b31a724c3f5ccdab0f85e578afb2ca38d33be0a0e98f1770cafd958/pycocotools-2.0.11-cp311-cp311-win_arm64.whl", hash = "sha256:4fc9889e819452b9c142036e1eabac8a13a8bd552d8beba299a57e0da6bfa1ec", size = 69304, upload-time = "2025-12-15T22:31:10.592Z" }, + { url = "https://files.pythonhosted.org/packages/87/12/2f2292332456e4e4aba1dec0e3de8f1fc40fb2f4fdb0ca1cb17db9861682/pycocotools-2.0.11-cp312-abi3-macosx_10_13_universal2.whl", hash = "sha256:a2e9634bc7cadfb01c88e0b98589aaf0bd12983c7927bde93f19c0103e5441f4", size = 147795, upload-time = "2025-12-15T22:31:11.519Z" }, + { url = "https://files.pythonhosted.org/packages/63/3c/68d7ea376aada9046e7ea2d7d0dad0d27e1ae8b4b3c26a28346689390ab2/pycocotools-2.0.11-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7fd4121766cc057133534679c0ec3f9023dbd96e9b31cf95c86a069ebdac2b65", size = 398434, upload-time = "2025-12-15T22:31:12.558Z" }, + { url = "https://files.pythonhosted.org/packages/23/59/dc81895beff4e1207a829d40d442ea87cefaac9f6499151965f05c479619/pycocotools-2.0.11-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a82d1c9ed83f75da0b3f244f2a3cf559351a283307bd9b79a4ee2b93ab3231dd", size = 411685, upload-time = "2025-12-15T22:31:13.995Z" }, + { url = "https://files.pythonhosted.org/packages/0b/0b/5a8a7de300862a2eb5e2ecd3cb015126231379206cd3ebba8f025388d770/pycocotools-2.0.11-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:89e853425018e2c2920ee0f2112cf7c140a1dcf5f4f49abd9c2da112c3e0f4b3", size = 390500, upload-time = "2025-12-15T22:31:15.138Z" }, + { url = "https://files.pythonhosted.org/packages/63/b5/519bb68647f06feea03d5f355c33c05800aeae4e57b9482b2859eb00752e/pycocotools-2.0.11-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:87af87b8d06d5b852a885a319d9362dca3bed9f8bbcc3feb6513acb1f88ea242", size = 409790, upload-time = "2025-12-15T22:31:16.326Z" }, + { url = "https://files.pythonhosted.org/packages/83/b4/f6708404ff494706b80e714b919f76dc4ec9845a4007affd6d6b0843f928/pycocotools-2.0.11-cp312-abi3-win_amd64.whl", hash = "sha256:ffe806ce535f5996445188f9a35643791dc54beabc61bd81e2b03367356d604f", size = 77570, upload-time = "2025-12-15T22:31:17.703Z" }, + { url = "https://files.pythonhosted.org/packages/6e/63/778cd0ddc9d4a78915ac0a72b56d7fb204f7c3fabdad067d67ea0089762e/pycocotools-2.0.11-cp312-abi3-win_arm64.whl", hash = "sha256:c230f5e7b14bd19085217b4f40bba81bf14a182b150b8e9fab1c15d504ade343", size = 64564, upload-time = "2025-12-15T22:31:18.652Z" }, + { url = "https://files.pythonhosted.org/packages/5d/78/31c81e99d596a20c137d8a2e7a25f39a88f88fada5e0b253fce7323ecf0d/pycocotools-2.0.11-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:fd72b9734e6084b217c1fc3945bfd4ec05bdc75a44e4f0c461a91442bb804973", size = 168931, upload-time = "2025-12-15T22:31:19.845Z" }, + { url = "https://files.pythonhosted.org/packages/5f/63/fdd488e4cd0fdc6f93134f2cd68b1fce441d41566e86236bf6156961ef9b/pycocotools-2.0.11-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7eb43b79448476b094240450420b7425d06e297880144b8ea6f01e9b4340e43", size = 484856, upload-time = "2025-12-15T22:31:21.231Z" }, + { url = "https://files.pythonhosted.org/packages/a1/fc/c83648a8fb7ea3b8e2ce2e761b469807e6cadb81577bf1af31c4f2ef0d87/pycocotools-2.0.11-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c3546b93b39943347c4f5b0694b5824105cbe2174098a416bcad4acd9c21e957", size = 480994, upload-time = "2025-12-15T22:31:22.426Z" }, + { url = "https://files.pythonhosted.org/packages/b6/2d/35e1122c0d007288aa9545be9549cbc7a4987b2c22f21d75045260a8b5b8/pycocotools-2.0.11-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:efd1694b2075f2f10c5828f10f6e6c4e44368841fd07dae385c3aa015c8e25f9", size = 467956, upload-time = "2025-12-15T22:31:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ff/30cfe8142470da3e45abe43a9842449ca0180d993320559890e2be19e4a5/pycocotools-2.0.11-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:368244f30eb8d6cae7003aa2c0831fbdf0153664a32859ec7fbceea52bfb6878", size = 474658, upload-time = "2025-12-15T22:31:24.883Z" }, + { url = "https://files.pythonhosted.org/packages/bc/62/254ca92604106c7a5af3258e589e465e681fe0166f9b10f97d8ca70934d6/pycocotools-2.0.11-cp313-cp313t-win_amd64.whl", hash = "sha256:ac8aa17263e6489aa521f9fa91e959dfe0ea3a5519fde2cbf547312cdce7559e", size = 89681, upload-time = "2025-12-15T22:31:26.025Z" }, + { url = "https://files.pythonhosted.org/packages/6e/f0/c019314dc122ad5e6281de420adc105abe9b59d00008f72ef3ad32b1e328/pycocotools-2.0.11-cp313-cp313t-win_arm64.whl", hash = "sha256:04480330df5013f6edd94891a0ee8294274185f1b5093d1b0f23d51778f0c0e9", size = 70520, upload-time = "2025-12-15T22:31:26.999Z" }, + { url = "https://files.pythonhosted.org/packages/66/2b/58b35c88f2086c043ff1c87bd8e7bf36f94e84f7b01a5e00b6f5fabb92a7/pycocotools-2.0.11-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:a6b13baf6bfcf881b6d6ac6e23c776f87a68304cd86e53d1d6b9afa31e363c4e", size = 169883, upload-time = "2025-12-15T22:31:28.233Z" }, + { url = "https://files.pythonhosted.org/packages/24/c0/b970eefb78746c8b4f8b3fa1b49d9f3ec4c5429ef3c5d4bbcc55abebe478/pycocotools-2.0.11-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78bae4a9de9d34c4759754a848dfb3306f9ef1c2fcb12164ffbd3d013d008321", size = 486894, upload-time = "2025-12-15T22:31:29.283Z" }, + { url = "https://files.pythonhosted.org/packages/5b/f7/db7436820a1948d96fa9764b6026103e808840979be01246049f2c1e7f94/pycocotools-2.0.11-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:83d896f4310379849dfcfa7893afb0ff21f4f3cdb04ab3f61b05dd98953dd0ad", size = 483249, upload-time = "2025-12-15T22:31:31.687Z" }, + { url = "https://files.pythonhosted.org/packages/1e/a6/a14a12c9f50c41998fdc0d31fd3755bcbce124bac9abb1d6b99d1853cafd/pycocotools-2.0.11-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:eebd723503a2eb2c8b285f56ea3be1d9f3875cd7c40d945358a428db94f14015", size = 469070, upload-time = "2025-12-15T22:31:32.821Z" }, + { url = "https://files.pythonhosted.org/packages/46/de/aa4f65ece3da8e89310a1be00cad0700170fd13f41a3aaae2712291269d5/pycocotools-2.0.11-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bd7a1e19ef56a828a94bace673372071d334a9232cd32ae3cd48845a04d45c4f", size = 475589, upload-time = "2025-12-15T22:31:34.188Z" }, + { url = "https://files.pythonhosted.org/packages/44/6f/04a30df03ae6236b369b361df0c50531d173d03678978806aa2182e02d1e/pycocotools-2.0.11-cp314-cp314t-win_amd64.whl", hash = "sha256:63026e11a56211058d0e84e8263f74cbccd5e786fac18d83fd221ecb9819fcc7", size = 93863, upload-time = "2025-12-15T22:31:35.38Z" }, + { url = "https://files.pythonhosted.org/packages/da/05/8942b640d6307a21c3ede188e8c56f07bedf246fac0e501437dbda72a350/pycocotools-2.0.11-cp314-cp314t-win_arm64.whl", hash = "sha256:8cedb8ccb97ffe9ed2c8c259234fa69f4f1e8665afe3a02caf93f6ef2952c07f", size = 72038, upload-time = "2025-12-15T22:31:36.768Z" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pydantic" +version = "2.13.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload-time = "2026-05-06T13:43:05.343Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload-time = "2026-05-06T13:43:02.641Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.46.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload-time = "2026-05-06T13:37:06.98Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/08/f1ba952f1c8ae5581c70fa9c6da89f247b83e3dd8c09c035d5d7931fc23d/pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4", size = 2113146, upload-time = "2026-05-06T13:37:36.537Z" }, + { url = "https://files.pythonhosted.org/packages/56/c6/65f646c7ff09bd257f660434adb45c4dfcbbcebcc030562fecf6f5bf887d/pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5", size = 1949769, upload-time = "2026-05-06T13:37:46.365Z" }, + { url = "https://files.pythonhosted.org/packages/64/ba/bfb1d928fd5b49e1258935ff104ae356e9fd89384a55bf9f847e9193ad40/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba", size = 1974958, upload-time = "2026-05-06T13:37:28.611Z" }, + { url = "https://files.pythonhosted.org/packages/4e/74/76223bfb117b64af743c9b6670d1364516f5c0604f96b48f3272f6af6cc6/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b", size = 2042118, upload-time = "2026-05-06T13:36:55.216Z" }, + { url = "https://files.pythonhosted.org/packages/cb/7b/848732968bc8f48f3187542f08358b9d842db564147b256669426ebb1652/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c", size = 2222876, upload-time = "2026-05-06T13:38:25.455Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2f/e90b63ee2e14bd8d3db8f705a6d75d64e6ee1b7c2c8833747ce706e1e0ce/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50", size = 2286703, upload-time = "2026-05-06T13:37:53.304Z" }, + { url = "https://files.pythonhosted.org/packages/ba/1e/acc4d70f88a0a277e4a1fa77ebb985ceabaf900430f875bf9338e11c9420/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd", size = 2092042, upload-time = "2026-05-06T13:38:46.981Z" }, + { url = "https://files.pythonhosted.org/packages/a9/da/0a422b57bf8504102bf3c4ccea9c41bab5a5cee6a54650acf8faf67f5a24/pydantic_core-2.46.4-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01", size = 2117231, upload-time = "2026-05-06T13:39:23.146Z" }, + { url = "https://files.pythonhosted.org/packages/bd/2a/2ac13c3af305843e23c5078c53d135656b3f05a2fd78cb7bbbb12e97b473/pydantic_core-2.46.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d", size = 2168388, upload-time = "2026-05-06T13:40:08.06Z" }, + { url = "https://files.pythonhosted.org/packages/72/04/2beacf7e1607e93eefe4aed1b4709f079b905fb77530179d4f7c71745f22/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4", size = 2184769, upload-time = "2026-05-06T13:38:13.901Z" }, + { url = "https://files.pythonhosted.org/packages/9e/29/d2b9fd9f539133548eaf622c06a4ce176cb46ac59f32d0359c4abc0de047/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f", size = 2319312, upload-time = "2026-05-06T13:39:08.24Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/0f7a5b85fec6075bea96e3ef9187de38fccced0de92c1e7feda8d5cc7bb9/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39", size = 2361817, upload-time = "2026-05-06T13:38:43.2Z" }, + { url = "https://files.pythonhosted.org/packages/25/a4/73363fec545fd3ec025490bdda2743c56d0dd5b6266b1a53bbe9e4265375/pydantic_core-2.46.4-cp310-cp310-win32.whl", hash = "sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d", size = 1987085, upload-time = "2026-05-06T13:39:25.497Z" }, + { url = "https://files.pythonhosted.org/packages/01/aa/62f082da2c91fac1c234bc9ee0066257ce83f0604abd72e4c9d5991f2d84/pydantic_core-2.46.4-cp310-cp310-win_amd64.whl", hash = "sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf", size = 2074311, upload-time = "2026-05-06T13:39:59.922Z" }, + { url = "https://files.pythonhosted.org/packages/5c/fa/6d7708d2cfc1a832acb6aeb0cd16e801902df8a0f583bb3b4b527fde022e/pydantic_core-2.46.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594", size = 2111872, upload-time = "2026-05-06T13:40:27.596Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6f/aa064a3e74b5745afbdf250594f38e7ead05e2d651bcb35994b9417a0d4d/pydantic_core-2.46.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c", size = 1948255, upload-time = "2026-05-06T13:39:12.574Z" }, + { url = "https://files.pythonhosted.org/packages/43/3a/41114a9f7569b84b4d84e7a018c57c56347dac30c0d4a872946ec4e36c46/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826", size = 1972827, upload-time = "2026-05-06T13:38:19.841Z" }, + { url = "https://files.pythonhosted.org/packages/ef/25/1ab42e8048fe551934d9884e8d64daa7e990ad386f310a15981aeb6a5b08/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04", size = 2041051, upload-time = "2026-05-06T13:38:10.447Z" }, + { url = "https://files.pythonhosted.org/packages/94/c2/1a934597ddf08da410385b3b7aae91956a5a76c635effef456074fad7e88/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e", size = 2221314, upload-time = "2026-05-06T13:40:13.089Z" }, + { url = "https://files.pythonhosted.org/packages/02/6d/9e8ad178c9c4df27ad3c8f25d1fe2a7ab0d2ba0559fad4aee5d3d1f16771/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3", size = 2285146, upload-time = "2026-05-06T13:38:59.224Z" }, + { url = "https://files.pythonhosted.org/packages/80/50/540cd3aeefc041beb111125c4bff779831a2111fc6b15a9138cda277d32c/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4", size = 2089685, upload-time = "2026-05-06T13:38:17.762Z" }, + { url = "https://files.pythonhosted.org/packages/6b/a4/b440ad35f05f6a38f89fa0f149accb3f0e02be94ca5e15f3c449a61b4bc9/pydantic_core-2.46.4-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398", size = 2115420, upload-time = "2026-05-06T13:37:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/99/61/de4f55db8dfd57bfdfa9a12ec90fe1b57c4f41062f7ca86f08586b3e0ac0/pydantic_core-2.46.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3", size = 2165122, upload-time = "2026-05-06T13:37:01.167Z" }, + { url = "https://files.pythonhosted.org/packages/f7/52/7c529d7bdb2d1068bd52f51fe32572c8301f9a4febf1948f10639f1436f5/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848", size = 2182573, upload-time = "2026-05-06T13:38:45.04Z" }, + { url = "https://files.pythonhosted.org/packages/37/b3/7c40325848ba78247f2812dcf9c7274e38cd801820ca6dd9fe63bcfb0eb4/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3", size = 2317139, upload-time = "2026-05-06T13:37:15.539Z" }, + { url = "https://files.pythonhosted.org/packages/d9/37/f913f81a657c865b75da6c0dbed79876073c2a43b5bd9edbe8da785e4d49/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109", size = 2360433, upload-time = "2026-05-06T13:37:30.099Z" }, + { url = "https://files.pythonhosted.org/packages/c4/67/6acaa1be2567f9256b056d8477158cac7240813956ce86e49deae8e173b4/pydantic_core-2.46.4-cp311-cp311-win32.whl", hash = "sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda", size = 1985513, upload-time = "2026-05-06T13:38:15.669Z" }, + { url = "https://files.pythonhosted.org/packages/aa/e6/c505f83dfeda9a2e5c995cfd872949e4d05e12f7feb3dca72f633daefa94/pydantic_core-2.46.4-cp311-cp311-win_amd64.whl", hash = "sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33", size = 2071114, upload-time = "2026-05-06T13:40:35.416Z" }, + { url = "https://files.pythonhosted.org/packages/0f/da/7a263a96d965d9d0df5e8de8a475f33495451117035b09acb110288c381f/pydantic_core-2.46.4-cp311-cp311-win_arm64.whl", hash = "sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d", size = 2044298, upload-time = "2026-05-06T13:38:29.754Z" }, + { url = "https://files.pythonhosted.org/packages/ce/8c/af022f0af448d7747c5154288d46b5f2bc5f17366eaa0e23e9aa04d59f3b/pydantic_core-2.46.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2", size = 2106158, upload-time = "2026-05-06T13:38:57.215Z" }, + { url = "https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f", size = 1951724, upload-time = "2026-05-06T13:37:02.697Z" }, + { url = "https://files.pythonhosted.org/packages/8e/bc/f47d1ff9cbb1620e1b5b697eef06010035735f07820180e74178226b27b3/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7", size = 1975742, upload-time = "2026-05-06T13:37:09.448Z" }, + { url = "https://files.pythonhosted.org/packages/5b/11/9b9a5b0306345664a2da6410877af6e8082481b5884b3ddd78d47c6013ce/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7", size = 2052418, upload-time = "2026-05-06T13:37:38.234Z" }, + { url = "https://files.pythonhosted.org/packages/f1/b7/a65fec226f5d78fc39f4a13c4cc0c768c22b113438f60c14adc9d2865038/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712", size = 2232274, upload-time = "2026-05-06T13:38:27.753Z" }, + { url = "https://files.pythonhosted.org/packages/68/f0/92039db98b907ef49269a8271f67db9cb78ae2fc68062ef7e4e77adb5f61/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4", size = 2309940, upload-time = "2026-05-06T13:38:05.353Z" }, + { url = "https://files.pythonhosted.org/packages/5f/97/2aab507d3d00ca626e8e57c1eac6a79e4e5fbcc63eb99733ff55d1717f65/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce", size = 2094516, upload-time = "2026-05-06T13:39:10.577Z" }, + { url = "https://files.pythonhosted.org/packages/22/37/a8aca44d40d737dde2bc05b3c6c07dff0de07ce6f82e9f3167aeaf4d5dea/pydantic_core-2.46.4-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987", size = 2136854, upload-time = "2026-05-06T13:40:22.59Z" }, + { url = "https://files.pythonhosted.org/packages/24/99/fcef1b79238c06a8cbec70819ac722ba76e02bc8ada9b0fd66eba40da01b/pydantic_core-2.46.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b", size = 2180306, upload-time = "2026-05-06T13:40:10.666Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6c/fc44000918855b42779d007ae63b0532794739027b2f417321cddbc44f6a/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458", size = 2190044, upload-time = "2026-05-06T13:40:43.231Z" }, + { url = "https://files.pythonhosted.org/packages/6b/65/d9cadc9f1920d7a127ad2edba16c1db7916e59719285cd6c94600b0080ba/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b", size = 2329133, upload-time = "2026-05-06T13:39:57.365Z" }, + { url = "https://files.pythonhosted.org/packages/d0/cf/c873d91679f3a30bcf5e7ac280ce5573483e72295307685120d0d5ad3416/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c", size = 2374464, upload-time = "2026-05-06T13:38:06.976Z" }, + { url = "https://files.pythonhosted.org/packages/47/bd/6f2fc8188f31bf10590f1e98e7b306336161fac930a8c514cd7bd828c7dc/pydantic_core-2.46.4-cp312-cp312-win32.whl", hash = "sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894", size = 1974823, upload-time = "2026-05-06T13:40:47.985Z" }, + { url = "https://files.pythonhosted.org/packages/40/8c/985c1d41ea1107c2534abd9870e4ed5c8e7669b5c308297835c001e7a1c4/pydantic_core-2.46.4-cp312-cp312-win_amd64.whl", hash = "sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89", size = 2072919, upload-time = "2026-05-06T13:39:21.153Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ba/f463d006e0c47373ca7ec5e1a261c59dc01ef4d62b2657af925fb0deee3a/pydantic_core-2.46.4-cp312-cp312-win_arm64.whl", hash = "sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a", size = 2027604, upload-time = "2026-05-06T13:39:03.753Z" }, + { url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306, upload-time = "2026-05-06T13:37:48.029Z" }, + { url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906, upload-time = "2026-05-06T13:37:17.012Z" }, + { url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802, upload-time = "2026-05-06T13:37:35.113Z" }, + { url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446, upload-time = "2026-05-06T13:37:12.313Z" }, + { url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757, upload-time = "2026-05-06T13:39:01.149Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275, upload-time = "2026-05-06T13:37:41.406Z" }, + { url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467, upload-time = "2026-05-06T13:39:18.847Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417, upload-time = "2026-05-06T13:40:17.944Z" }, + { url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782, upload-time = "2026-05-06T13:40:32.618Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782, upload-time = "2026-05-06T13:36:51.018Z" }, + { url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334, upload-time = "2026-05-06T13:40:37.764Z" }, + { url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986, upload-time = "2026-05-06T13:39:34.152Z" }, + { url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693, upload-time = "2026-05-06T13:37:55.072Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819, upload-time = "2026-05-06T13:38:49.139Z" }, + { url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411, upload-time = "2026-05-06T13:40:45.796Z" }, + { url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload-time = "2026-05-06T13:38:41.019Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload-time = "2026-05-06T13:36:59.812Z" }, + { url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload-time = "2026-05-06T13:37:39.933Z" }, + { url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload-time = "2026-05-06T13:38:01.995Z" }, + { url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload-time = "2026-05-06T13:40:50.371Z" }, + { url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload-time = "2026-05-06T13:37:21.531Z" }, + { url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload-time = "2026-05-06T13:39:31.942Z" }, + { url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload-time = "2026-05-06T13:37:25.033Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload-time = "2026-05-06T13:37:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload-time = "2026-05-06T13:36:53.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload-time = "2026-05-06T13:40:29.971Z" }, + { url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload-time = "2026-05-06T13:37:23.027Z" }, + { url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload-time = "2026-05-06T13:38:03.499Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload-time = "2026-05-06T13:39:40.807Z" }, + { url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload-time = "2026-05-06T13:37:26.72Z" }, + { url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload-time = "2026-05-06T13:39:47.682Z" }, + { url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload-time = "2026-05-06T13:40:40.428Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload-time = "2026-05-06T13:37:32.029Z" }, + { url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload-time = "2026-05-06T13:38:55.239Z" }, + { url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload-time = "2026-05-06T13:37:08.096Z" }, + { url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload-time = "2026-05-06T13:40:20.221Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload-time = "2026-05-06T13:38:12.153Z" }, + { url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload-time = "2026-05-06T13:40:02.971Z" }, + { url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload-time = "2026-05-06T13:39:27.506Z" }, + { url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload-time = "2026-05-06T13:38:31.93Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload-time = "2026-05-06T13:37:44.717Z" }, + { url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload-time = "2026-05-06T13:37:05.645Z" }, + { url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload-time = "2026-05-06T13:38:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload-time = "2026-05-06T13:38:21.672Z" }, + { url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload-time = "2026-05-06T13:40:52.723Z" }, + { url = "https://files.pythonhosted.org/packages/ee/a4/73995fd4ebbb46ba0ee51e6fa049b8f02c40daebb762208feda8a6b7894d/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c", size = 2111589, upload-time = "2026-05-06T13:37:10.817Z" }, + { url = "https://files.pythonhosted.org/packages/fb/7f/f37d3a5e8bfcc2e403f5c57a730f2d815693fb42119e8ea48b3789335af1/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b", size = 1944552, upload-time = "2026-05-06T13:36:56.717Z" }, + { url = "https://files.pythonhosted.org/packages/15/3c/d7eb777b3ff43e8433a4efb39a17aa8fd98a4ee8561a24a67ef5db07b2d6/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b", size = 1982984, upload-time = "2026-05-06T13:39:06.207Z" }, + { url = "https://files.pythonhosted.org/packages/63/87/70b9f40170a81afd55ca26c9b2acb25c20d64bcfbf888fafecb3ba077d4c/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea", size = 2138417, upload-time = "2026-05-06T13:39:45.476Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1d/8987ad40f65ae1432753072f214fb5c74fe47ffbd0698bb9cbbb585664f8/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7", size = 2095527, upload-time = "2026-05-06T13:39:52.283Z" }, + { url = "https://files.pythonhosted.org/packages/64/d3/84c282a7eee1d3ac4c0377546ef5a1ea436ce26840d9ac3b7ed54a377507/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df", size = 1936024, upload-time = "2026-05-06T13:40:15.671Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ca/eac61596cdeb4d7e174d3dc0bd8a6238f14f75f97a24e7b7db4c7e7340a0/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526", size = 1990696, upload-time = "2026-05-06T13:38:34.717Z" }, + { url = "https://files.pythonhosted.org/packages/fa/c3/7c8b240552251faf6b3a957db200fcfbbcec36763c050428b601e0c9b83b/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0", size = 2147590, upload-time = "2026-05-06T13:39:29.883Z" }, + { url = "https://files.pythonhosted.org/packages/11/cb/428de0385b6c8d44b716feba566abfacfbd23ee3c4439faa789a1456242f/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0", size = 2112782, upload-time = "2026-05-06T13:37:04.016Z" }, + { url = "https://files.pythonhosted.org/packages/0b/b5/6a17bdadd0fc1f170adfd05a20d37c832f52b117b4d9131da1f41bb097ce/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7", size = 1952146, upload-time = "2026-05-06T13:39:43.092Z" }, + { url = "https://files.pythonhosted.org/packages/2a/dc/03734d80e362cd43ef65428e9de77c730ce7f2f11c60d2b1e1b39f0fbf99/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2", size = 2134492, upload-time = "2026-05-06T13:36:58.124Z" }, + { url = "https://files.pythonhosted.org/packages/de/df/5e5ffc085ed07cc22d298134d3d911c63e91f6a0eb91fe646750a3209910/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9", size = 2156604, upload-time = "2026-05-06T13:37:49.88Z" }, + { url = "https://files.pythonhosted.org/packages/81/44/6e112a4253e56f5705467cbab7ab5e91ee7398ba3d56d358635958893d3e/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf", size = 2183828, upload-time = "2026-05-06T13:37:43.053Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ad/5565071e937d8e752842ac241463944c9eb14c87e2d269f2658a5bd05e98/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30", size = 2310000, upload-time = "2026-05-06T13:37:56.694Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c3/66883a5cec183e7fba4d024b4cbbe61851a63750ef606b0afecc46d1f2bf/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc", size = 2361286, upload-time = "2026-05-06T13:40:05.667Z" }, + { url = "https://files.pythonhosted.org/packages/4b/2d/69abac8f838090bbecd5df894befb2c2619e7996a98ddb949db9f3b93225/pydantic_core-2.46.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983", size = 2193071, upload-time = "2026-05-06T13:38:08.682Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.14.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5c/b5/8f48e906c3e0205276e8bd8cb7512217a87b2685304d64be27cad5b3019f/pydantic_settings-2.14.2.tar.gz", hash = "sha256:c19dd64b19097f1de80184f0cc7b0272a13ae6e170cbf240a3e27e381ed14a5f", size = 237700, upload-time = "2026-06-19T13:44:56.324Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/c1/6e422f34e569cf8e18df68d1939c81c099d2b61e4f7d9621c8a77560799c/pydantic_settings-2.14.2-py3-none-any.whl", hash = "sha256:a20c97b37910b6550d5ea50fbcc2d4187defe58cd57070b73863d069419c9440", size = 61715, upload-time = "2026-06-19T13:44:55.02Z" }, +] + +[[package]] +name = "pygments" +version = "2.20.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/81/58d0ac84e1ef3a3843791d6954d94c0b33d526c75eeb1efbce9d0a4c4077/pyjwt-2.13.0.tar.gz", hash = "sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423", size = 107515, upload-time = "2026-05-21T19:54:36.618Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/5e/ecf12fdb62546d64385c158514e9b2b671f7832108ef2ecd2020ce0af2d1/pyjwt-2.13.0-py3-none-any.whl", hash = "sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728", size = 31274, upload-time = "2026-05-21T19:54:35.362Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pypandoc" +version = "1.17" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/d6/410615fc433e5d1eacc00db2044ae2a9c82302df0d35366fe2bd15de024d/pypandoc-1.17.tar.gz", hash = "sha256:51179abfd6e582a25ed03477541b48836b5bba5a4c3b282a547630793934d799", size = 69071, upload-time = "2026-03-14T22:39:07.21Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/86/e2ffa604eacfbec3f430b1d850e7e04c4101eca1a5828f9ae54bf51dfba4/pypandoc-1.17-py3-none-any.whl", hash = "sha256:01fdbffa61edb9f8e82e8faad6954efcb7b6f8f0634aead4d89e322a00225a67", size = 23554, upload-time = "2026-03-14T22:38:46.007Z" }, +] + +[[package]] +name = "pypandoc-binary" +version = "1.17" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/80/85/681a54111f0948821a5cf87ce30a88bb0a3f6848af5112c912abac4a2b77/pypandoc_binary-1.17-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:734726dc618ef276343e272e1a6b4567e59c2ef9ef41d5533042deac3b0531f1", size = 25553945, upload-time = "2026-03-14T22:38:47.91Z" }, + { url = "https://files.pythonhosted.org/packages/15/58/8fd107c68522957868c1e785fbea7595608df118e440e424d189668294df/pypandoc_binary-1.17-py3-none-macosx_11_0_arm64.whl", hash = "sha256:fcfd28f347ed998dda28823fc6bc24f9310e7fdf3ddceaf925bf0563a100ab5b", size = 25553944, upload-time = "2026-03-14T22:38:50.74Z" }, + { url = "https://files.pythonhosted.org/packages/f4/27/ac1078239aae14b94c51975b7f46ad8e099e47d7ae26c175a5486b1c0099/pypandoc_binary-1.17-py3-none-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d6b620b21c9374e3e48aabd518492bf0776b148442ee28816f6aaf52da3d4387", size = 34460960, upload-time = "2026-03-14T22:38:53.391Z" }, + { url = "https://files.pythonhosted.org/packages/8d/7f/1e5612b52900ebe590862dabeadf546f739b27527dcd8bfd632f8adac1be/pypandoc_binary-1.17-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9ada156cb980cd54fd6534231788e668c00dbb591cbd24f0be0bd86812eb8788", size = 36867598, upload-time = "2026-03-14T22:38:56.351Z" }, + { url = "https://files.pythonhosted.org/packages/3b/31/a5a867159c4080e5d368f4a53540a727501a2f31affc297dc8e0fced96a7/pypandoc_binary-1.17-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2f439dcd211183bb3460253ca4511101df6e1acf4a01f45f5617e1fa2ad24279", size = 36867584, upload-time = "2026-03-14T22:38:59.087Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2d/6a51cd4e54bdf132c19416801077c34bd40ba182e85d843360d36ae03a2d/pypandoc_binary-1.17-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:f6e6d3e4cfafbe23189a08db3d41f8def260bacd6e7e382bceadab7ba1f17da6", size = 34460949, upload-time = "2026-03-14T22:39:01.71Z" }, + { url = "https://files.pythonhosted.org/packages/c6/b9/f47b77ba75ed5d47ec85fcc2ecfbf7f78e3a73347f3a09836634d930de98/pypandoc_binary-1.17-py3-none-win_amd64.whl", hash = "sha256:76fae066cd2d7e78fb97f0ec8e9e36f437b07187b689b0b415ca18216f8f898a", size = 40891661, upload-time = "2026-03-14T22:39:04.782Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "pypdf" +version = "6.14.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/03/72/7dfd5ff1c9c37de97a731701f51af091325f123d9d4270361c9c69e4431f/pypdf-6.14.2.tar.gz", hash = "sha256:7873f502fe4385e79539b21d872392dc0c4e3714327c15881cbc7fbfd1f95b25", size = 6491182, upload-time = "2026-06-23T14:18:30.859Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/e6/136aa8993a2ae7214e0b0ef2edaa0d2e08d1d4e4982635b08a835ff31ec8/pypdf-6.14.2-py3-none-any.whl", hash = "sha256:3f07891af76dc002657e04993ab9b4de81de29f9013b9761d0b7968bff12e946", size = 349514, upload-time = "2026-06-23T14:18:28.867Z" }, +] + +[[package]] +name = "pypdfium2" +version = "5.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/68/a1/9653cdb69b8dfeff943d4ddb977ae402a44410d27009bfc11990bfc931e3/pypdfium2-5.12.0.tar.gz", hash = "sha256:f5b6cad86ade60230e5227a2910874ed080e71906e37dda6ee0201cc2aade02f", size = 274345, upload-time = "2026-07-15T18:57:32.179Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/21/4b/effaf6b343f33be7b51967af490d94ca51964a390ee57746df36abcda1fc/pypdfium2-5.12.0-py3-none-android_23_arm64_v8a.whl", hash = "sha256:63fe3d188f2eaf922ac2e884c0a6ce5f4ad1ab5f69c0e9d833c0ae7e21f7ead4", size = 3392271, upload-time = "2026-07-15T18:56:58.596Z" }, + { url = "https://files.pythonhosted.org/packages/db/57/df410bca545cc891980aca4411f49072652069281c07060427ef79074ccb/pypdfium2-5.12.0-py3-none-android_23_armeabi_v7a.whl", hash = "sha256:4491120c7692f36725e972d98034c5d9da1678a9d4b4f1be8f107590e204b124", size = 2848773, upload-time = "2026-07-15T18:57:00.721Z" }, + { url = "https://files.pythonhosted.org/packages/e9/2b/d78887e09f179b667fa837e2da021583db77f14d2afd116975c4a37498ae/pypdfium2-5.12.0-py3-none-macosx_13_0_arm64.whl", hash = "sha256:8839c297ef66ac605c56d4b7b0e228d76f3f2d549c3909053d90b56170d6fce7", size = 3480241, upload-time = "2026-07-15T18:57:02.534Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ea/13e8d1d47bc822ba5269ca5e5844e45fc256ed0f11f70c79c4a184d377bb/pypdfium2-5.12.0-py3-none-macosx_13_0_x86_64.whl", hash = "sha256:24aa4fe48671d9cac0bc2315e1f42078229fae3f0b8c955bcec9293bddef73b5", size = 3643487, upload-time = "2026-07-15T18:57:04.121Z" }, + { url = "https://files.pythonhosted.org/packages/60/05/e682c4fb369cda2dcc80e9aeba195e2cbdc3bc0518968acb516fc370b14f/pypdfium2-5.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b2466efdbe783a3b55c64161d507427545cdad798c61ec8b62b30220d865af8", size = 3649729, upload-time = "2026-07-15T18:57:05.635Z" }, + { url = "https://files.pythonhosted.org/packages/a7/19/2d6b80ea4ab4d9f1b0d32342eddcc1231f850956b3d89b036945b703df3d/pypdfium2-5.12.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f8c6c26ddf249fd709aa65614c0d787a50d52bb05462dcf93a1004ae8b048b3", size = 3380824, upload-time = "2026-07-15T18:57:07.156Z" }, + { url = "https://files.pythonhosted.org/packages/73/80/d0b3f3735cd88e65d59b3ba6ce1e0c4ca154b904b47415f8c2edce38a37d/pypdfium2-5.12.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cbb84ddd3eccb0a12926ccf7f93e6be7ca582a53ea22a94f51f5bb242009e77b", size = 3777199, upload-time = "2026-07-15T18:57:08.709Z" }, + { url = "https://files.pythonhosted.org/packages/1a/9d/0a16d1b46b46f75ae1d3744bf71f6b41cc764a25016fd1d56b7d98a5b0fc/pypdfium2-5.12.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a545b841101fa240ae4fc4fd6e78004208ba024d98586bb808e845a470a784a1", size = 4186081, upload-time = "2026-07-15T18:57:10.187Z" }, + { url = "https://files.pythonhosted.org/packages/09/fd/e5ee6e1751478fd61860f3e28b3424f75322a88db2a7ecb930985004743a/pypdfium2-5.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09c48c1b2a27d5a6fd40be2a97ea8850dd05b562d9524d699075f34f4ef80646", size = 3701728, upload-time = "2026-07-15T18:57:11.971Z" }, + { url = "https://files.pythonhosted.org/packages/60/c7/e4aef7e93b2cf1bce0db53a1d469fee9dd33cf2ae2f353c544b450c1c873/pypdfium2-5.12.0-py3-none-manylinux_2_27_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e0edc4887d8fa74d27d66f1736198a3467501a825941daf3284377fc86d6fa6b", size = 4030402, upload-time = "2026-07-15T18:57:13.702Z" }, + { url = "https://files.pythonhosted.org/packages/c7/92/aedd6c6dd05dd1b13c3269423d13cae51ab4e2f97741abdd6e4573065cf2/pypdfium2-5.12.0-py3-none-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:34ec1ce19359fde13e3a7e7ef99d30c297d1e8800d98f75a2e57029461f43824", size = 3994410, upload-time = "2026-07-15T18:57:15.167Z" }, + { url = "https://files.pythonhosted.org/packages/76/6a/00478443b4df55de679dbaf1a9498f156af7a9bd5cf3286df97efe4dd5f4/pypdfium2-5.12.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:9ef73afb4fa04eb97cda76626eb4102239b37b01ff2825623fd57c370aec58ae", size = 4993683, upload-time = "2026-07-15T18:57:16.628Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3d/2102ee6cad0fcf1a1702cd0ff29f02e2ad5f20fa3a4efafd512cf016700c/pypdfium2-5.12.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:77d470e8af5b119948aa7d98115caf27c8a0beedc1b20cd61f2b3a6096a79eac", size = 4534554, upload-time = "2026-07-15T18:57:18.184Z" }, + { url = "https://files.pythonhosted.org/packages/c3/b2/61cd47ceeceab185fcc4d69796545b19c44de160fce29595b9c51fd5869f/pypdfium2-5.12.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:660bc2e747cca345f0c511642d1651816707ba286e53213173089e83ad202959", size = 5237676, upload-time = "2026-07-15T18:57:19.694Z" }, + { url = "https://files.pythonhosted.org/packages/4f/ae/1b2bca0ef024e66550f55110f3d8998e2761a352c0666acc2b89c340e8b8/pypdfium2-5.12.0-py3-none-musllinux_1_2_ppc64le.whl", hash = "sha256:32814f0998ec3b00304c9e0f55cc153dc8e82df3f406697ea2415739c0f72023", size = 5143022, upload-time = "2026-07-15T18:57:21.405Z" }, + { url = "https://files.pythonhosted.org/packages/ae/27/2e83beacb830e9c2234994e552402113fd5b1efd549e6f8299ef44857f8a/pypdfium2-5.12.0-py3-none-musllinux_1_2_riscv64.whl", hash = "sha256:0c7734b36f7869121716870d4b4b1fa4f508bcb212b20906de77524c21eddc46", size = 4647043, upload-time = "2026-07-15T18:57:22.869Z" }, + { url = "https://files.pythonhosted.org/packages/30/f8/24882b1557effb74741633eff3b88458553bb886262a8df2f7ac3450e731/pypdfium2-5.12.0-py3-none-musllinux_1_2_s390x.whl", hash = "sha256:0eab7bf39df7dcc4e3ab4f92471ddf29f44819ab25f3ef1b53acca87adb60dc2", size = 5088744, upload-time = "2026-07-15T18:57:24.542Z" }, + { url = "https://files.pythonhosted.org/packages/50/72/ecff3c30a9e7d850c59999521c551d14c605b86dac950d8e69078a2161e8/pypdfium2-5.12.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:aba721a6574c1874763c886bd74c24fa890d8b2f55725c279b7cefd550bd1794", size = 5049688, upload-time = "2026-07-15T18:57:26.013Z" }, + { url = "https://files.pythonhosted.org/packages/a8/c0/8853f64109fe1fe4315ea6aef1153a3a3e9315181ee258c6dc35f957bc02/pypdfium2-5.12.0-py3-none-win32.whl", hash = "sha256:34d0e9d96a269e5b6053d8f6904f61be746e1c92bf6e9807880a906c6c255d2f", size = 3725463, upload-time = "2026-07-15T18:57:27.628Z" }, + { url = "https://files.pythonhosted.org/packages/40/7d/8e1a264591e950d04d5b511d5d248358118c4f4c0fe4b4c8640eda00bada/pypdfium2-5.12.0-py3-none-win_amd64.whl", hash = "sha256:03ea532d7d15b4893ad94c0ac6ee908a8e7308452f4a7ebe847f27fd19db59b9", size = 3859843, upload-time = "2026-07-15T18:57:29.114Z" }, + { url = "https://files.pythonhosted.org/packages/29/94/0869674bf591886e6a389c9c9502f54abef3bb34d4db919088ddbe4332bb/pypdfium2-5.12.0-py3-none-win_arm64.whl", hash = "sha256:8bd5047e967b945cd17feedb3611da6d277826cac13eece3080d08df161f53f3", size = 3674601, upload-time = "2026-07-15T18:57:30.667Z" }, +] + +[[package]] +name = "pyrdfa3" +version = "3.6.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "html5lib" }, + { name = "rdflib" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/8c/9a93f633252830c37e9e70f4fd2cc0a3b72b91f7efda74cbe047b4168474/pyrdfa3-3.6.5.tar.gz", hash = "sha256:0fc28ff1426af805b100aff7162db6a43fa215e37f92bce9b113b465feb563ea", size = 84561, upload-time = "2026-01-17T23:10:17.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/9c/ce827ad1262c02cfd377dd75b73010f83010f05fa6db662af950948c0e61/pyrdfa3-3.6.5-py3-none-any.whl", hash = "sha256:3c0d22e2949e7b3abd004fff7c7f110faa83a18bec06f590bdab2ef0f1ee3c02", size = 97535, upload-time = "2026-01-17T23:10:15.731Z" }, +] + +[[package]] +name = "pyreadline3" +version = "3.5.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b6/6d/f94028646d7bbe6d9d873c47ee7c246f2d29129d253f0d96cb6fcab70733/pyreadline3-3.5.6.tar.gz", hash = "sha256:61e53218b99656091ddb077df9e71f25850e72e030b6183b39c9b7e6e4f4a9bf", size = 100368, upload-time = "2026-05-14T17:55:04.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/5e/35c856e186b74678c24927847ad9895a51f1bc02a0c6126477a6c6040064/pyreadline3-3.5.6-py3-none-any.whl", hash = "sha256:8449b734232e42a5dcd74048e39b60db2839a4c38cf3ae2bf7707d58b5389c0d", size = 85243, upload-time = "2026-05-14T17:55:03.262Z" }, +] + +[[package]] +name = "pytest" +version = "9.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, +] + +[[package]] +name = "pytest-asyncio" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "backports-asyncio-runner", marker = "python_full_version < '3.11'" }, + { name = "pytest" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/7c/d36d04db312ecf4298932ef77e6e4a9e8ad017906e24e34f0b0c361a2473/pytest_asyncio-1.4.0.tar.gz", hash = "sha256:c6c0d2259945122819f171a32ecea2c349ead889ee28176caaf492143424be42", size = 58514, upload-time = "2026-05-26T09:56:04.083Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/e2/08a497ef684b88559c9cc5f4ad53a37e7b99e727094a86d6ea32536d5d3c/pytest_asyncio-1.4.0-py3-none-any.whl", hash = "sha256:933ca923a23075a87fb7070c0ec272a6848489824d887c85c812670932835aa1", size = 16930, upload-time = "2026-05-26T09:56:02.576Z" }, +] + +[[package]] +name = "pytest-cov" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage", extra = ["toml"] }, + { name = "pluggy" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/51/a849f96e117386044471c8ec2bd6cfebacda285da9525c9106aeb28da671/pytest_cov-7.1.0.tar.gz", hash = "sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2", size = 55592, upload-time = "2026-03-21T20:11:16.284Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload-time = "2026-03-21T20:11:14.438Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-discovery" +version = "1.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "platformdirs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/81/58c70036dffeccb7fe7d79d6260c69f7a28272bbd3909c29a01ea9422744/python_discovery-1.4.4.tar.gz", hash = "sha256:5cad33982d412c1f3ffb8f9ca4ea292c9680bca3942451d30b69c37fce53a4a3", size = 72212, upload-time = "2026-07-08T23:06:50.691Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/ae/84bc0d2440c95772272bb6f4b3d09ccf08b2898fce89b3d4f969a9fc74e9/python_discovery-1.4.4-py3-none-any.whl", hash = "sha256:abebe9120b43453b68c908acfb1e72a19d1a959ed2cb620ad38fc57d08056dbe", size = 34181, upload-time = "2026-07-08T23:06:49.402Z" }, +] + +[[package]] +name = "python-docx" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/f7/eddfe33871520adab45aaa1a71f0402a2252050c14c7e3009446c8f4701c/python_docx-1.2.0.tar.gz", hash = "sha256:7bc9d7b7d8a69c9c02ca09216118c86552704edc23bac179283f2e38f86220ce", size = 5723256, upload-time = "2025-06-16T20:46:27.921Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/00/1e03a4989fa5795da308cd774f05b704ace555a70f9bf9d3be057b680bcf/python_docx-1.2.0-py3-none-any.whl", hash = "sha256:3fd478f3250fbbbfd3b94fe1e985955737c145627498896a8a6bf81f4baf66c7", size = 252987, upload-time = "2025-06-16T20:46:22.506Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, +] + +[[package]] +name = "python-iso639" +version = "2026.4.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/c8/22c80367213029ea3abc4e7ab6e1ed8545542f98e5db6e1ab4f2973890ad/python_iso639-2026.4.20.tar.gz", hash = "sha256:00570376d24788f889578991bb2ad93c030a014c1d373f64f2ceffe84732a537", size = 173955, upload-time = "2026-04-20T14:15:47.748Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/71/520fbac49c0650aba66093396282e1e4a1315a7242461c21480132a1b0df/python_iso639-2026.4.20-py3-none-any.whl", hash = "sha256:60a380571fafdbcc6190c5c1ee78e217194332cbe3caec76345327712e5a65cb", size = 167842, upload-time = "2026-04-20T14:15:46.308Z" }, +] + +[[package]] +name = "python-magic" +version = "0.4.27" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/db/0b3e28ac047452d079d375ec6798bf76a036a08182dbb39ed38116a49130/python-magic-0.4.27.tar.gz", hash = "sha256:c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b", size = 14677, upload-time = "2022-06-07T20:16:59.508Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/73/9f872cb81fc5c3bb48f7227872c28975f998f3e7c2b1c16e95e6432bbb90/python_magic-0.4.27-py2.py3-none-any.whl", hash = "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3", size = 13840, upload-time = "2022-06-07T20:16:57.763Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.32" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/42/55c32bb9b12693c092ad250a0e82edb5b31ddeda6eb772de5f308b3804ad/python_multipart-0.0.32.tar.gz", hash = "sha256:be54b7f3fa167bb83e4fcd936b887b708f4e57fe75911c02aebf53efaf8d938e", size = 46881, upload-time = "2026-06-04T16:18:58.647Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/04/e8135ebd1ad02c56ec633277529b2602ff99ff634be76cdba5744cf554fd/python_multipart-0.0.32-py3-none-any.whl", hash = "sha256:ff6d3f776f16878c894e52e107296ffc890e913c611b1a4ec6c44e2821fe2e23", size = 30042, upload-time = "2026-06-04T16:18:57.319Z" }, +] + +[[package]] +name = "python-oxmsg" +version = "0.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "olefile" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a2/4e/869f34faedbc968796d2c7e9837dede079c9cb9750917356b1f1eda926e9/python_oxmsg-0.0.2.tar.gz", hash = "sha256:a6aff4deb1b5975d44d49dab1d9384089ffeec819e19c6940bc7ffbc84775fad", size = 34713, upload-time = "2025-02-03T17:13:47.415Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/53/67/f56c69a98c7eb244025845506387d0f961681657c9fcd8b2d2edd148f9d2/python_oxmsg-0.0.2-py3-none-any.whl", hash = "sha256:22be29b14c46016bcd05e34abddfd8e05ee82082f53b82753d115da3fc7d0355", size = 31455, upload-time = "2025-02-03T17:13:46.061Z" }, +] + +[[package]] +name = "python-pptx" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "pillow" }, + { name = "typing-extensions" }, + { name = "xlsxwriter" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/a9/0c0db8d37b2b8a645666f7fd8accea4c6224e013c42b1d5c17c93590cd06/python_pptx-1.0.2.tar.gz", hash = "sha256:479a8af0eaf0f0d76b6f00b0887732874ad2e3188230315290cd1f9dd9cc7095", size = 10109297, upload-time = "2024-08-07T17:33:37.772Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/4f/00be2196329ebbff56ce564aa94efb0fbc828d00de250b1980de1a34ab49/python_pptx-1.0.2-py3-none-any.whl", hash = "sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba", size = 472788, upload-time = "2024-08-07T17:33:28.192Z" }, +] + +[[package]] +name = "python-socks" +version = "2.8.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/ad/5bbfab3d3a266963cca0c09e23a725bbf5f0535d21c8bd1d5272e4430771/python_socks-2.8.2.tar.gz", hash = "sha256:ffc493951854fa3fc0551e0434a09a7b9f9047f9ad666dce42cb94a52e8a34b6", size = 39656, upload-time = "2026-06-23T05:22:01.994Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/18/23b981b1cf58c1e7b7e36fa1392daf12878b6a3c26c5e4248601647a6d09/python_socks-2.8.2-py3-none-any.whl", hash = "sha256:7cf785d0631e0659384a773b3c402bc22cccdc23894ba1d65f8524748ace1193", size = 55501, upload-time = "2026-06-23T05:22:00.658Z" }, +] + +[package.optional-dependencies] +asyncio = [ + { name = "async-timeout", marker = "python_full_version < '3.11'" }, +] + +[[package]] +name = "pytz" +version = "2026.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ff/46/dd499ec9038423421951e4fad73051febaa13d2df82b4064f87af8b8c0c3/pytz-2026.2.tar.gz", hash = "sha256:0e60b47b29f21574376f218fe21abc009894a2321ea16c6754f3cad6eb7cdd6a", size = 320861, upload-time = "2026-05-04T01:35:29.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl", hash = "sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126", size = 510141, upload-time = "2026-05-04T01:35:27.408Z" }, +] + +[[package]] +name = "pywin32" +version = "312" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/1b/9cfdeac80ee45bebbbcb31f1b7b99a0d81a1c72de48d837be984e0e88b1d/pywin32-312-cp310-cp310-win32.whl", hash = "sha256:772235332b5d1024c696f11cea1ae4be7930f0a8b894bb43db14e3f435f1ff7e", size = 6361387, upload-time = "2026-06-04T07:49:14.329Z" }, + { url = "https://files.pythonhosted.org/packages/33/b1/7afc96d041d982c27bc2df6f853d43f01fd273e3d39d04be3647ddeb533d/pywin32-312-cp310-cp310-win_amd64.whl", hash = "sha256:5dbc35d2b5320dc07f25fa31269cfb767471002b17de5eb067d03da68c7cb2db", size = 6926780, upload-time = "2026-06-04T07:49:16.881Z" }, + { url = "https://files.pythonhosted.org/packages/ce/3a/4140da9ad54108e517f4a16b2d83da3033e08662144623e1239587cb7db6/pywin32-312-cp310-cp310-win_arm64.whl", hash = "sha256:3020656e34f1cf7faeb7bccd2b84653a607c6ff0c55ada85e6487d61716deabd", size = 4307203, upload-time = "2026-06-04T07:49:18.993Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f5/10a6e845a00fc5e7afd0a988b744f403d4d57162a28d160a093c4d9322f0/pywin32-312-cp311-cp311-win32.whl", hash = "sha256:17948aeadbdb091f0ced6ef0841620794e68327b94ee415571c1203594b7215c", size = 6362659, upload-time = "2026-06-04T07:49:21.349Z" }, + { url = "https://files.pythonhosted.org/packages/35/c4/dcd2d62b5944b6d5db53413a5899016ccd57ffcb7278f3f81655d25d2027/pywin32-312-cp311-cp311-win_amd64.whl", hash = "sha256:d11417d84412f859b722fad0841b3614459ed0047f7542d8362e77884f6b6e8a", size = 6928825, upload-time = "2026-06-04T07:49:23.934Z" }, + { url = "https://files.pythonhosted.org/packages/b7/56/3cbb433fe4501cdba2eb9040f56a4e1a8243faa4186b25295564d1a7a79d/pywin32-312-cp311-cp311-win_arm64.whl", hash = "sha256:b2200a054ca6d6625c4842fc56a4976a4b47f96b73dbe5538c3f813a80359f47", size = 6721875, upload-time = "2026-06-04T07:49:26.416Z" }, + { url = "https://files.pythonhosted.org/packages/83/ff/32aa7d2ed0ab12b323aaa64f9b75e6ad4f8fd09f9ccfc28c79414d46838d/pywin32-312-cp312-cp312-win32.whl", hash = "sha256:dab4f65ac9c4e48400a2a0530c46c3c579cd5905ecd11b80692373915269208b", size = 6371877, upload-time = "2026-06-04T07:49:28.836Z" }, + { url = "https://files.pythonhosted.org/packages/03/d9/77040d3b43df3f3be32ea289433d660d2727f5ba327bc73be835127d9d60/pywin32-312-cp312-cp312-win_amd64.whl", hash = "sha256:b457f6d628a47e8a7346ce22acb7e1a46a4a78b52e1d17e1af56871bd19a93bc", size = 6914841, upload-time = "2026-06-04T07:49:31.85Z" }, + { url = "https://files.pythonhosted.org/packages/e3/cc/7b1ec671775756020a0ee7f4feeaf3c568f0ab86bd3900088cf986937a92/pywin32-312-cp312-cp312-win_arm64.whl", hash = "sha256:6017c58e12f6809fbb0555b75df144c2922a9ffd18e4b9b5afa863b6c1a9d950", size = 6727901, upload-time = "2026-06-04T07:49:34.244Z" }, + { url = "https://files.pythonhosted.org/packages/2d/41/12fbfd7f36ed2146d8bc9de96c2741296bf0d490b98508496cff322e274c/pywin32-312-cp313-cp313-win32.whl", hash = "sha256:7a27df850933d16a8eabfbaeb73d52b273e2da667f80d70b01a89d1f6828d02c", size = 6370184, upload-time = "2026-06-04T07:49:36.253Z" }, + { url = "https://files.pythonhosted.org/packages/ba/db/36a78e3403099d31d9746d13fdcde5accc43c1155f375a34d15983a479a7/pywin32-312-cp313-cp313-win_amd64.whl", hash = "sha256:c53e878d15a1c44788082bfe712a905433473aa38f86375b7cf8b45e3acbaaf9", size = 6914298, upload-time = "2026-06-04T07:49:38.876Z" }, + { url = "https://files.pythonhosted.org/packages/84/37/c1697194092b76de9ed47ca124323f02c57ffc8a45c06f88a3d5acaf01eb/pywin32-312-cp313-cp313-win_arm64.whl", hash = "sha256:59aba5d5940842075343a5ddc6b11f1cdf0d1567fe745290359dfbcc7c2eb831", size = 6727640, upload-time = "2026-06-04T07:49:41.083Z" }, + { url = "https://files.pythonhosted.org/packages/fc/2b/1f3cded5822fd49c02f40544cbb5f58c7cfd6b1694869fd476cb6170ee97/pywin32-312-cp314-cp314-win32.whl", hash = "sha256:a77a90fbb6881238d2ca9c6fd797b25817f3768fe78d214a90137ff055a75f5b", size = 6468928, upload-time = "2026-06-04T07:49:43.188Z" }, + { url = "https://files.pythonhosted.org/packages/21/82/3bf86d2e2808902013132e1ce905a7da0da53790f3836c64bf44d55e24f3/pywin32-312-cp314-cp314-win_amd64.whl", hash = "sha256:a4dd3a848290ef724347b19f301045831d8e802fa4464f491b98b1e0a081432e", size = 7024157, upload-time = "2026-06-04T07:49:45.34Z" }, + { url = "https://files.pythonhosted.org/packages/a4/0e/73f6d6800b4f27655abd9e9f6aaeaefcddb2b946e4674efa2bab184a7f7b/pywin32-312-cp314-cp314-win_arm64.whl", hash = "sha256:9fce94568364e0155e6dfb781ac5d95903be8baf28670632beab1b523f300daa", size = 6839598, upload-time = "2026-06-04T07:49:47.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/61/caa39686032d2ebdd04ff0ab5cbe163126c0066d98e00c9018646e42393b/pywin32-312-cp315-cp315-win32.whl", hash = "sha256:5c1fbe4a937a73ae9297384a3da38518cbc694c68ad8a809b2e19acd350f03ed", size = 6471159, upload-time = "2026-06-04T07:49:50.035Z" }, + { url = "https://files.pythonhosted.org/packages/0f/cd/7e1de64a4a6f69c04214169657ccab0d93a670ea50e35eb8f489d7378249/pywin32-312-cp315-cp315-win_amd64.whl", hash = "sha256:c2f03a0f73f804a13c2735b99392b0cd426bb4f2c4d0178e5ac966a0f21618d5", size = 7025293, upload-time = "2026-06-04T07:49:54.857Z" }, + { url = "https://files.pythonhosted.org/packages/23/ed/4532e9388e65fa16b46776ef47ad631a64eda1631884488af707666350ed/pywin32-312-cp315-cp315-win_arm64.whl", hash = "sha256:a8597d28f267b39074aef51fa593530082b39cbe5a074226096857b1fed2dfb9", size = 6840337, upload-time = "2026-06-04T07:49:57.531Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "rapidfuzz" +version = "3.14.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/21/ef6157213316e85790041254259907eb722e00b03480256c0545d98acd33/rapidfuzz-3.14.5.tar.gz", hash = "sha256:ba10ac57884ce82112f7ed910b67e7fb6072d8ef2c06e30dc63c0f604a112e0e", size = 57901753, upload-time = "2026-04-07T11:16:31.931Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/b1/d6d6e7737fe3d0eb2ac2ac337686420d538f83f28495acc3cc32201c0dbf/rapidfuzz-3.14.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:071d96b957a33b9296b9284b6350a0fb6d030b154a04efd7c15e56b98b79a517", size = 1953508, upload-time = "2026-04-07T11:13:37.733Z" }, + { url = "https://files.pythonhosted.org/packages/2b/7b/94c1c953ac818bdd88b43213a9d38e4a41e953b786af3c3b2444d4a8f96d/rapidfuzz-3.14.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:667f40fe9c81ad129b198d236881b00dd9e8314d9cc72d03c3e16bdfe5879051", size = 1160895, upload-time = "2026-04-07T11:13:39.278Z" }, + { url = "https://files.pythonhosted.org/packages/7f/60/a67a7ca7c2532c6c1a4b5cd797917780eed43798b82c98b6df734a086c95/rapidfuzz-3.14.5-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9fff308486bbd2c8c24f25e8e152c7594d3fe8db265a2d6a1ce24d58671127f", size = 1382245, upload-time = "2026-04-07T11:13:41.054Z" }, + { url = "https://files.pythonhosted.org/packages/95/ff/a42c9ce9f9e90ceb5b51136e0b8e8e6e5113ba0b45d986effbd671e7dddf/rapidfuzz-3.14.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dfa552338f51aec280f17b02d28bace1e162d1a84ccd80e3339a57f98aedb56b", size = 3163974, upload-time = "2026-04-07T11:13:42.662Z" }, + { url = "https://files.pythonhosted.org/packages/e3/3c/11e2d41075e6e48b7dad373631b379b7e40491f71d5412c5a98d3c58f60f/rapidfuzz-3.14.5-cp310-cp310-manylinux_2_39_riscv64.whl", hash = "sha256:068b3e965ca9d9ee4debe40001ae7c3938ba646308afd33cf0c66618147db65c", size = 1475540, upload-time = "2026-04-07T11:13:44.687Z" }, + { url = "https://files.pythonhosted.org/packages/29/fa/09be143dcc22c79f09cf90168a574725dbda49f02cbbd55d0447da8bec86/rapidfuzz-3.14.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:88b7d31ff1cc5e9bc0e4406e6b1fa00b6d37163d50bb58091e9b976ff1129faa", size = 2404128, upload-time = "2026-04-07T11:13:46.641Z" }, + { url = "https://files.pythonhosted.org/packages/32/f9/1aeb504cdcfde42881825e9c86f48238d4e01ba8a1530491e82eb17e5689/rapidfuzz-3.14.5-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:eacb434410b8d9ca99a8d42352ef085cf423e3c76c1f0b86be2fcba3bff2952c", size = 2508455, upload-time = "2026-04-07T11:13:48.726Z" }, + { url = "https://files.pythonhosted.org/packages/10/8e/b1b5eed8d887a29b0e18fd3222c46ca60fddfb528e7e1c41267ce42d5522/rapidfuzz-3.14.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:649712823f3abcdc48427147a5384fac15623ba435d0013959b52e6462521397", size = 4274060, upload-time = "2026-04-07T11:13:50.805Z" }, + { url = "https://files.pythonhosted.org/packages/e3/c4/7e5b0353693d4f47b8b0f96e941efc377cfb2034b67ef92d082ac4441a0f/rapidfuzz-3.14.5-cp310-cp310-win32.whl", hash = "sha256:13cb79c23ef5516e4c4e3830877be8b19aa75203636be1163d690d37803f6504", size = 1727457, upload-time = "2026-04-07T11:13:52.45Z" }, + { url = "https://files.pythonhosted.org/packages/d9/6e/f530a39b946fa71c009bc9c81fdb6b48a77bbc57ee8572ac0302b3bf6308/rapidfuzz-3.14.5-cp310-cp310-win_amd64.whl", hash = "sha256:f2073495a7f9b75e57e600747ac09510d67683fd64d3228e009740b7ef88f9fe", size = 1544657, upload-time = "2026-04-07T11:13:54.952Z" }, + { url = "https://files.pythonhosted.org/packages/bc/01/02fa075f9f59ff766d374fecbd042b3ac9782dcd5abc52d909a54f587eeb/rapidfuzz-3.14.5-cp310-cp310-win_arm64.whl", hash = "sha256:8166efddea49fdbc61185559f47593239e4794fd7c9044dd5a789d1a90af852d", size = 816587, upload-time = "2026-04-07T11:13:56.418Z" }, + { url = "https://files.pythonhosted.org/packages/e1/f9/3c41a7be8855803f4f6c713b472226a98d31d41869d98f64f4ca790510d6/rapidfuzz-3.14.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e251126d48615e1f02b4a178f2cd0cd4f0332b8a019c01a2e10480f7552554b4", size = 1952372, upload-time = "2026-04-07T11:13:58.32Z" }, + { url = "https://files.pythonhosted.org/packages/9e/89/c2557e37531d03465193bff0ab9de70b468420a807d71a26a65100635459/rapidfuzz-3.14.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ab449c9abd0d4e1f8145dce0798a4c822a1a1933d613c764a641bea88b8bdab", size = 1159782, upload-time = "2026-04-07T11:14:00.127Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b2/ffeeb7eca1a897d51b998f4c0ef0281696c3b06abcca4f88f9def708ffe1/rapidfuzz-3.14.5-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cb2829fedd672dd7107267189dabe2bbe07972801d636014417c6861eb89e358", size = 1383677, upload-time = "2026-04-07T11:14:01.696Z" }, + { url = "https://files.pythonhosted.org/packages/6b/d0/4539e42a2d596e068f7738f279638a4a74edd1fbb6f8594e2458058979c6/rapidfuzz-3.14.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3d50e5861872935fece391351cbb5ba21d1bced277cf5e1143d207a0a35f1925", size = 3168906, upload-time = "2026-04-07T11:14:03.29Z" }, + { url = "https://files.pythonhosted.org/packages/5e/1c/3ec897eb9d8b05308aa8ef6ae4ed64b088ad521a3f9d8ff469e7e97bc2b0/rapidfuzz-3.14.5-cp311-cp311-manylinux_2_39_riscv64.whl", hash = "sha256:7092a216728f80c960bd6b3807275d1ee318b168986bd5dc523349581d4890b8", size = 1478176, upload-time = "2026-04-07T11:14:04.94Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ba/970c03a12ce20a5399e22afe9f8932fd4cd1265b8a8461d0e63b00eb4eae/rapidfuzz-3.14.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9669753caef7fdc6529f6adcc5883ed98d65976445d9322e7dbdb6b697feee13", size = 2402441, upload-time = "2026-04-07T11:14:07.228Z" }, + { url = "https://files.pythonhosted.org/packages/81/93/61d351cae60c1d0e21ba5ff1a1015ad045539ed215da9d6e302204ed887a/rapidfuzz-3.14.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:823b1b9d9230809d8edcc18872770764bfe8ef4357995e16744047c8ccf0e489", size = 2511628, upload-time = "2026-04-07T11:14:09.234Z" }, + { url = "https://files.pythonhosted.org/packages/87/52/374d2d4f60fd98155142a869323aa221e30868cfa1f15171a0f64070c247/rapidfuzz-3.14.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f0b2af76b7e7060c09e1a0dfa9410eb19369cbe6164509bff2ef94094b54d2b6", size = 4275480, upload-time = "2026-04-07T11:14:11.332Z" }, + { url = "https://files.pythonhosted.org/packages/d8/04/82e7989bc9ec20a15b720a335c5cb6b0724bf6582013898f90a3280cfccd/rapidfuzz-3.14.5-cp311-cp311-win32.whl", hash = "sha256:c5801a89604c65ab4cc9e91b23bc4076d0ca80efd8c976fb63843d7879a85d7f", size = 1725627, upload-time = "2026-04-07T11:14:13.217Z" }, + { url = "https://files.pythonhosted.org/packages/b9/b5/eca8ac5609bc9bcb02bb6ff87fa5983cc92b8772d66a431556ab8a8c178f/rapidfuzz-3.14.5-cp311-cp311-win_amd64.whl", hash = "sha256:d7ca16637c0ede8243f84074044bd0b2335a0341421f8227c85756de2d18c819", size = 1545977, upload-time = "2026-04-07T11:14:14.766Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e1/dbf318de28f65fa2cdd0a9dfbdee380f8199eb83b19259bc4f8592551b4e/rapidfuzz-3.14.5-cp311-cp311-win_arm64.whl", hash = "sha256:8c90cdf8516d9057e502aa6003cea71cf5ec27cc44699ca52412b502a04761bb", size = 816827, upload-time = "2026-04-07T11:14:16.788Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e3/574435c6aafb80254c191ef40d7aca2cb2bb97a095ec9395e9fa59ac307a/rapidfuzz-3.14.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0d3378f471ef440473a396ce2f8e97ee12f89a78b495540e0a5617bbfe895638", size = 1944601, upload-time = "2026-04-07T11:14:18.771Z" }, + { url = "https://files.pythonhosted.org/packages/d0/1f/fbad3102a255ecc112ce9a7e779bacab7fd14398217be8868dc9082ba363/rapidfuzz-3.14.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e910eebca9fd0eba245c0555e764597e8a0cccb673a92da2dc2397050725f48", size = 1164293, upload-time = "2026-04-07T11:14:20.534Z" }, + { url = "https://files.pythonhosted.org/packages/88/37/a3eb7ff6121ed3a5f199a8c38cc86c8e481816f879cb0e0b738b078c9a7e/rapidfuzz-3.14.5-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:01550fe5f60fd176aa66b7611289d46dc4aa4b1b904874c7b6d1d54e581c5ec1", size = 1371999, upload-time = "2026-04-07T11:14:22.63Z" }, + { url = "https://files.pythonhosted.org/packages/79/72/97a9728c711c7c1b06e107d3f0623880fb4ef90e147ed13c551a1730e7cc/rapidfuzz-3.14.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48bee0b91bebfaec41e1081e351000659ab7570cc4598d617aa04d5bf827f9e6", size = 3145715, upload-time = "2026-04-07T11:14:24.508Z" }, + { url = "https://files.pythonhosted.org/packages/ed/54/d5caabbea233ac90c286c87c260e49d7641467e87438a18d858e41c82e91/rapidfuzz-3.14.5-cp312-cp312-manylinux_2_39_riscv64.whl", hash = "sha256:7e580cb04ad849ae9b786fa21383c6b994b6e6c1444ad1cb9f22392759d72741", size = 1456304, upload-time = "2026-04-07T11:14:26.515Z" }, + { url = "https://files.pythonhosted.org/packages/fc/a7/2d1a81250ac8c01a0100c026018e76f0e7a097ff63e4c553e02a6938c6fb/rapidfuzz-3.14.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:09d6c9ba091854f07817055d795d604179c12a8f308ba4c7d56f3719dfea1646", size = 2389089, upload-time = "2026-04-07T11:14:28.635Z" }, + { url = "https://files.pythonhosted.org/packages/65/0d/c47c3872203ae88e6506997c0b576ad731f5261daa25d559be09c9756658/rapidfuzz-3.14.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:1e989f86113be66574113b9c7bdf4793f3f863d248e47d911b355e05ca6b6b10", size = 2493404, upload-time = "2026-04-07T11:14:30.577Z" }, + { url = "https://files.pythonhosted.org/packages/8f/2f/71e0a5a3130792146c8a200a2dd1e52aa16f7c1074012e17f2601eea9a90/rapidfuzz-3.14.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ebd1a18e2e47bc0b292a07e6ed9c3642f8aaa672d12253885f599b50807a4f9", size = 4251709, upload-time = "2026-04-07T11:14:32.451Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/d39874901abacef325adb5b34ae416817c8486dfb4fb87c7a9b74ec5b072/rapidfuzz-3.14.5-cp312-cp312-win32.whl", hash = "sha256:9981d38a703b86f0e315a3cd229fd1906fe1d91c989ed121fb975b3c849f89f5", size = 1710069, upload-time = "2026-04-07T11:14:34.37Z" }, + { url = "https://files.pythonhosted.org/packages/85/0b/f65572c53de8a1c704bda707f63a447b67bdbe95d7cdc70d18885e191df5/rapidfuzz-3.14.5-cp312-cp312-win_amd64.whl", hash = "sha256:d8375e3da319593389727c3187ccaf3e0e84199accc530866b8e0f2b79af05e9", size = 1540630, upload-time = "2026-04-07T11:14:36.287Z" }, + { url = "https://files.pythonhosted.org/packages/5e/c3/143be3a578f989758cae516f3270d5cbb49783a7bfdf57cc27a670e00456/rapidfuzz-3.14.5-cp312-cp312-win_arm64.whl", hash = "sha256:478b59bb018a6780d73f33e38d0b3ec5e968a6c1ed42876b993dd456b7aa20e8", size = 813137, upload-time = "2026-04-07T11:14:38.289Z" }, + { url = "https://files.pythonhosted.org/packages/11/66/252803f2010ba699618cdc048b6e1f7cc1f433c08b4a9a17579b92ab0142/rapidfuzz-3.14.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ebd8fd343bf8492a1e60bcb6dc99f90f74f65d98d8241a6b3e1fed225b76ecd6", size = 1940205, upload-time = "2026-04-07T11:14:40.319Z" }, + { url = "https://files.pythonhosted.org/packages/ea/59/b2afd98e41af9cd54554a4c1c423d84cdd60e6b1c0a09496f033b55f60ec/rapidfuzz-3.14.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6737b35d5af7479c5bf9710f7b17edd9d2c43128d974d25fb4ea653e42c64609", size = 1159639, upload-time = "2026-04-07T11:14:42.52Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/7aa7e62c4c516a7af322ed0c4f0774208b72d457d0cfec808bad0df12f4a/rapidfuzz-3.14.5-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b002c7994cc9f2bc9d9856f0fbaee6e8072c983873846c92f25cefba5b2a925f", size = 1367194, upload-time = "2026-04-07T11:14:44.25Z" }, + { url = "https://files.pythonhosted.org/packages/90/79/2fc252a63bc91d3c3b234d0a3a6ad4ebc460037a23cdcdaf9285f986e6c9/rapidfuzz-3.14.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:17a34330cd2a538c1ce5d400b61ba358c5b72c654b928ff87b362e88f8b864c7", size = 3151805, upload-time = "2026-04-07T11:14:46.21Z" }, + { url = "https://files.pythonhosted.org/packages/17/54/0c83508f2683ea70e2d05f8527eb07328acf7bb1e9d97a3bece5702378e7/rapidfuzz-3.14.5-cp313-cp313-manylinux_2_39_riscv64.whl", hash = "sha256:95d937e74c1a7a1287dfb03b62a827be08ede10a155cf1af73bbf47f2b73ee6e", size = 1455667, upload-time = "2026-04-07T11:14:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/71/1b/070175e873177814d58850a01ebe80e20ae11e93eb4da894d563988660fa/rapidfuzz-3.14.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:46b92a9970dcc34f0096901c792644094cab49554ac3547f35e3aebbdf0a3610", size = 2388246, upload-time = "2026-04-07T11:14:50.098Z" }, + { url = "https://files.pythonhosted.org/packages/c9/dd/77caf7aaf9c2be050ad1f128d7c24ff0f59079aa62c5f62f9df41c0af45e/rapidfuzz-3.14.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e012177c8e8a8a0754ae0d6027d63042aa5ff036d9f40f07cb3466a6082e21b8", size = 2494333, upload-time = "2026-04-07T11:14:52.303Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e2/dd7e1f2aa31a8fbbfc16b0610af1d770ffaf1287490f3c8c5b1c52da264f/rapidfuzz-3.14.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a2ae6f53f99c9a0eca7a0afc5b4e45fc73bc1dd4ac74c00509031d76df80ed98", size = 4258579, upload-time = "2026-04-07T11:14:54.538Z" }, + { url = "https://files.pythonhosted.org/packages/9c/0a/ac99e1ba347ba0e85e0bb60b74231d55fb93c0eff43f2920ccb413d0be08/rapidfuzz-3.14.5-cp313-cp313-win32.whl", hash = "sha256:4a60f0057231188e3bd30216f7b4e0f279b11fa4ec818bb6c1d9f014d1562fbc", size = 1709231, upload-time = "2026-04-07T11:14:56.524Z" }, + { url = "https://files.pythonhosted.org/packages/cf/cb/0e251d731b3166378644238e8f0cf9e89858c024e19f75ca9f7e3ae83fd5/rapidfuzz-3.14.5-cp313-cp313-win_amd64.whl", hash = "sha256:11bfc2ed8fbe4ab86bd516fadefab126f90e6dcadffa761739fcb304707dfd35", size = 1538519, upload-time = "2026-04-07T11:14:58.635Z" }, + { url = "https://files.pythonhosted.org/packages/30/6f/4548132acc947db6d5346a248e44a8b3a22d608ef30e770fb578caaf2d00/rapidfuzz-3.14.5-cp313-cp313-win_arm64.whl", hash = "sha256:b486b5218808f6f4dc471b114b1054e63553db69705c97da0271f47bd706aedd", size = 812628, upload-time = "2026-04-07T11:15:00.552Z" }, + { url = "https://files.pythonhosted.org/packages/00/60/69b177577290c5eab892c6f75fe89c3aff3f9ae80298a78d9372b1cecb9a/rapidfuzz-3.14.5-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:39ef8658aaf67d51667e7bdaf7096f432333377d8302ac43c70b5df8a4cf89b8", size = 1970231, upload-time = "2026-04-07T11:15:02.603Z" }, + { url = "https://files.pythonhosted.org/packages/48/38/2fd790052659cc4e2907b63c25433f0987864b445c1aeec1a302ef5ad948/rapidfuzz-3.14.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9ad37a0be705b544af6296da8edddc260d10a8ae5462530fc9991f66498bb1f9", size = 1194394, upload-time = "2026-04-07T11:15:04.572Z" }, + { url = "https://files.pythonhosted.org/packages/80/f4/28430ad8472fc3536e8ebd51a864a226e979cfe924c6e3f83d111373aa74/rapidfuzz-3.14.5-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d45e06f60729e07d9b20c205f7e5cff90b6ef2584e852eecf46e045aea69627d", size = 1377051, upload-time = "2026-04-07T11:15:06.728Z" }, + { url = "https://files.pythonhosted.org/packages/77/7e/9aeacabcfd1e77397968362e5b98fe14248b8307011136b17daf99752a8e/rapidfuzz-3.14.5-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e52da10236aa6212de71b9e170bace65b64b129c0dea7fc243d6c9ce976f5074", size = 3160565, upload-time = "2026-04-07T11:15:08.667Z" }, + { url = "https://files.pythonhosted.org/packages/56/f4/db4dd7be0cd2f2022117ac5407d905f435d60e48baaea313a567ad27e865/rapidfuzz-3.14.5-cp313-cp313t-manylinux_2_39_riscv64.whl", hash = "sha256:440d30faaf682ca496170a7f0cc5453ec942e3e079f0fd802c9a7f938dfb50a3", size = 1442113, upload-time = "2026-04-07T11:15:11.138Z" }, + { url = "https://files.pythonhosted.org/packages/a4/99/0e9f6aa57f3e32a767216f797e56dc96b720fcecfb9d8ee907ecc82f8d66/rapidfuzz-3.14.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:56227a61fd3d17b0cd9793132431f3a3d07c8654be96794ba9f89fe0fc8b2d09", size = 2396618, upload-time = "2026-04-07T11:15:13.154Z" }, + { url = "https://files.pythonhosted.org/packages/60/94/44a78e39ffce17cbdd3e2b53b696acc751d5d153be0f499d052b07a4d904/rapidfuzz-3.14.5-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:2e83cd2e25bb4edd97b689d9979d9c3acccdaaf26ceac08212ceece202febcfa", size = 2478220, upload-time = "2026-04-07T11:15:15.193Z" }, + { url = "https://files.pythonhosted.org/packages/dd/df/454311469a09a507e9d784a35796742bec22e4cebe75551e2da4e0e290fd/rapidfuzz-3.14.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:af3b859726cd3374287e405e14b9634563c078c5531a4f62375508addebddad1", size = 4265027, upload-time = "2026-04-07T11:15:17.28Z" }, + { url = "https://files.pythonhosted.org/packages/fc/01/175465a9ab3e3b70ba669058372f009d1d49c1746e2dcd56b69df188d3a5/rapidfuzz-3.14.5-cp313-cp313t-win32.whl", hash = "sha256:8ce1d850b3c0178440efde9e884d98421b5e87ff925f364d6d79e23910d7593f", size = 1766814, upload-time = "2026-04-07T11:15:19.687Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a0/a9b84a47af06ebed94a1439eb2f02adebfb8628bcd30af1fe3e02f5ef56c/rapidfuzz-3.14.5-cp313-cp313t-win_amd64.whl", hash = "sha256:c84af70bcf34e99aee894e46a0f1ac77f17d0ef828179c387407642e2466d28a", size = 1582448, upload-time = "2026-04-07T11:15:21.98Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f1/5937800238b3f8248e70860d79f69ba8f73e764fff47e36bc9e2f26dbcc6/rapidfuzz-3.14.5-cp313-cp313t-win_arm64.whl", hash = "sha256:aac0ad28c686a5e72b81668b906c030ee28050b244544b8af68e12fb32543895", size = 832932, upload-time = "2026-04-07T11:15:24.358Z" }, + { url = "https://files.pythonhosted.org/packages/81/41/aa3ffb3355e62e1bf91f6599b3092e866bc88487a07c524004943c7676df/rapidfuzz-3.14.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1a31cc6d7d03e7318a0974c038959c59e19c752b81115f2e9138b3331cd64d45", size = 1943327, upload-time = "2026-04-07T11:15:26.266Z" }, + { url = "https://files.pythonhosted.org/packages/2d/e1/c2141f1840a41e07ad2db6f724945f8f8ff3065463899a22939152dd6e09/rapidfuzz-3.14.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0298d357e2bc59d572da4db0bc631009b6f8f6c9bc8c11e99a12b833f16b6575", size = 1161755, upload-time = "2026-04-07T11:15:28.659Z" }, + { url = "https://files.pythonhosted.org/packages/ca/07/66e753eeaa353161d1d331b7dd517bb349b0bacfebe8496d7b26be26f81f/rapidfuzz-3.14.5-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:59b3dba758661a318995655435c6ab20a04ade79fa51e75bc8dc107cac8df280", size = 1376571, upload-time = "2026-04-07T11:15:31.225Z" }, + { url = "https://files.pythonhosted.org/packages/c8/85/9535df0b78ba51f478c9ce7eb6d1f85535cc31fe356773b48fd9d3e563ca/rapidfuzz-3.14.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4900143d82071bdda533b00300c40b14b963ff826b3642cc463b6dd0f036585e", size = 3156468, upload-time = "2026-04-07T11:15:33.428Z" }, + { url = "https://files.pythonhosted.org/packages/81/ee/b667eb93bba6dc4e0de658edd778e1619dc4d6aab68fa5e5c7f075152735/rapidfuzz-3.14.5-cp314-cp314-manylinux_2_39_riscv64.whl", hash = "sha256:feedf219672eef83ea6be6f3bb093bba396a8560fc75be85ba225f082903df0a", size = 1458311, upload-time = "2026-04-07T11:15:35.557Z" }, + { url = "https://files.pythonhosted.org/packages/7d/ce/479074f5624364a48df3403c538797ef22d3ac49c19dc76c3f79fcdcc70c/rapidfuzz-3.14.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:419e4397a36e2665ec992d8d64c20ba4b2a42500c76ecadeca78a4f19cb9cc32", size = 2398228, upload-time = "2026-04-07T11:15:37.669Z" }, + { url = "https://files.pythonhosted.org/packages/0b/15/a8982f649150fffbdcd6f17565974501f6ab33b2795267bffbd4a7ba905b/rapidfuzz-3.14.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:97131ab2be39043054ee28d99e09efe316e6d53449b7e962dfcf3c2de8b2b246", size = 2497226, upload-time = "2026-04-07T11:15:39.857Z" }, + { url = "https://files.pythonhosted.org/packages/19/52/5267c03ef6759831b7d4625a0c9c06e87baa2fae084b61ac9c388858317b/rapidfuzz-3.14.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:593c00dac4e30231c35bf3b4f1da8ec0998762e9e94425586a5d636fcd57f9d0", size = 4262283, upload-time = "2026-04-07T11:15:42.279Z" }, + { url = "https://files.pythonhosted.org/packages/71/c0/2579f343a97f5254c43bb5853baccc01488357dcb64a27bcb869b7888a4a/rapidfuzz-3.14.5-cp314-cp314-win32.whl", hash = "sha256:0084b687b02b4e569b46d8d6d4ad25659528e6081cd6d067ca453a69035f07e4", size = 1744614, upload-time = "2026-04-07T11:15:44.498Z" }, + { url = "https://files.pythonhosted.org/packages/17/eb/8edfed1e80119dc9c35b11df4bc701eea85622ad681fff0263b6961d3224/rapidfuzz-3.14.5-cp314-cp314-win_amd64.whl", hash = "sha256:5dfa89d78f22cd773054caff44827b846161a29f2dcf7e78b8f90d086621e502", size = 1588971, upload-time = "2026-04-07T11:15:46.86Z" }, + { url = "https://files.pythonhosted.org/packages/f6/04/5676df93c85cfa57a3045d8047318df9f3cd58c7b8a99340dd95f874795e/rapidfuzz-3.14.5-cp314-cp314-win_arm64.whl", hash = "sha256:67f3f9d2b444268ab53e47d31bab89954888d23c04c6789f2c727e51fe4b1d13", size = 834985, upload-time = "2026-04-07T11:15:49.411Z" }, + { url = "https://files.pythonhosted.org/packages/f7/0d/4a8988cea658fe335048ddef8c876addff1b6daa3c9ca8ad65a5a2196e69/rapidfuzz-3.14.5-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:77eac0526899b3c3ad1454bb2b03cdb491d67358ec8ef0c9c48bd61b632b431d", size = 1972517, upload-time = "2026-04-07T11:15:51.819Z" }, + { url = "https://files.pythonhosted.org/packages/1c/a3/f5cfd9965a9d9a9e32249159797c47b5d6299ea6d1629f9126b25f1c10a3/rapidfuzz-3.14.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b9c6bd754d11f6e78ac54e3d86b4b11dc1ba2f13e5fc958899574532897f5a99", size = 1196056, upload-time = "2026-04-07T11:15:54.292Z" }, + { url = "https://files.pythonhosted.org/packages/64/07/561c2e40cfd10e6630a7b0ac5a2a813aef50d944bcd1f3d260319d659d5b/rapidfuzz-3.14.5-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:738c96944d076deeaff70e92b65696ab4f7ecb8081d7791c5403a3257dfaf8ff", size = 1374732, upload-time = "2026-04-07T11:15:56.584Z" }, + { url = "https://files.pythonhosted.org/packages/c2/39/123bb94fee40e2fb3b7c49b80827c7ef42d838e18def3fc2fef5a3cf817a/rapidfuzz-3.14.5-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4c1bca487a17fe4226b4ffb2d30e799d2b274d692cffa76bd0746f56235fca3", size = 3166902, upload-time = "2026-04-07T11:15:58.768Z" }, + { url = "https://files.pythonhosted.org/packages/75/0a/45716fafc9fd2e028cf20b5ac5bc704887081cd312f84edb0e325599414b/rapidfuzz-3.14.5-cp314-cp314t-manylinux_2_39_riscv64.whl", hash = "sha256:af6a90a4ed2a48fa1a2d17e9d824e6c7c950bea5bad0b707c77fd55751e6bfef", size = 1452130, upload-time = "2026-04-07T11:16:01.453Z" }, + { url = "https://files.pythonhosted.org/packages/ca/49/4e96c413114398481c0a5b0086af32c364a18613c9a2ea578d17c4bea4ee/rapidfuzz-3.14.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bf5018938208d4597b2e679a4f8cff9fd252f1df53583130ae56281a21801b64", size = 2396308, upload-time = "2026-04-07T11:16:03.588Z" }, + { url = "https://files.pythonhosted.org/packages/89/b7/49fea9fc6878d59bd259d01dd1972d9b86117992b1c66d9b16f0a65273c3/rapidfuzz-3.14.5-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:c0919d1f89ddf91129906705723118ea09754171e4116f5a5dbc667c7bc9b261", size = 2488210, upload-time = "2026-04-07T11:16:05.871Z" }, + { url = "https://files.pythonhosted.org/packages/0c/44/a1f732b93ffacbdad077b7c801149549b2938e1bece6addb5ad85ed74df8/rapidfuzz-3.14.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:93d8da883a35116d6813432177f35e570db5b0a5e30ecb0cbd7cb39c815735df", size = 4270621, upload-time = "2026-04-07T11:16:08.483Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ce/ff942d19fce5385054650bb71a58495ddda299d94661ccc4e6e7fa44868b/rapidfuzz-3.14.5-cp314-cp314t-win32.whl", hash = "sha256:0f23e37019ec07712d58976b1ab2b889f8649a7f7c2f626a2f34ea9139e79279", size = 1803950, upload-time = "2026-04-07T11:16:10.873Z" }, + { url = "https://files.pythonhosted.org/packages/5c/0f/9aafc63f9661222b819b391c187eed29fc90ad5935f9690e5ecc2d2047a4/rapidfuzz-3.14.5-cp314-cp314t-win_amd64.whl", hash = "sha256:7d5ca9c7832e6879a707296d1463685f7c243a27846227044504741640caec66", size = 1632357, upload-time = "2026-04-07T11:16:13.1Z" }, + { url = "https://files.pythonhosted.org/packages/70/a6/51fc1b0e61e3326e1c68a61cfd0c6b3c34c843681c4b1eefbf0596f59162/rapidfuzz-3.14.5-cp314-cp314t-win_arm64.whl", hash = "sha256:3e91dcd2549b8f8d843f98ba03a17e01f3d8b72ce942adbbb6761bc58ffce813", size = 855409, upload-time = "2026-04-07T11:16:15.787Z" }, + { url = "https://files.pythonhosted.org/packages/d9/ee/e71853bf82846c5c2174b924b71d8e8099fb05ff87c958a720380b434ba3/rapidfuzz-3.14.5-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:578e6051f6d5e6200c259b47a103cf06bb875ab5814d17333fc0b5c290b22f4c", size = 1888603, upload-time = "2026-04-07T11:16:18.223Z" }, + { url = "https://files.pythonhosted.org/packages/36/82/40f67b730f32be2ebad9f62add1571c754f52249254b2e88af094b907eee/rapidfuzz-3.14.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:fbf1b8bb2695415b347f3727da1addca2acb82c9b97ac86bebf8b1bead1eb12d", size = 1120599, upload-time = "2026-04-07T11:16:20.682Z" }, + { url = "https://files.pythonhosted.org/packages/ef/9f/a3635cc4ec8fc6e14b46e7db1f7f8763d8c4bef33dcc124eea2e6cb2c8f3/rapidfuzz-3.14.5-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8f4a8f5cc84c7ad6bffa0e9947b33eb343ad66e6b53e94fe54378a5508c5ed53", size = 1348524, upload-time = "2026-04-07T11:16:23.451Z" }, + { url = "https://files.pythonhosted.org/packages/cc/1b/2b229520f0b48464cfcd7aa758f74551d12c9bc4ab544022a60210aab064/rapidfuzz-3.14.5-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:97c6d85283629646fa87acc22c66b30ea9d4de7f6fdf887daa2e30fa041829b5", size = 3099302, upload-time = "2026-04-07T11:16:25.858Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b5/363906b1064fc6fe611783a61764927bbd91919aaaabe8cba82151ca93ef/rapidfuzz-3.14.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:dfef96543ced67d9513a422755db422ae1dc34dade0a1485e0b43e7342ed3ebf", size = 1509889, upload-time = "2026-04-07T11:16:28.487Z" }, +] + +[[package]] +name = "rdflib" +version = "7.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "isodate", marker = "python_full_version < '3.11'" }, + { name = "pyparsing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/f5/18bb77b7af9526add0c727a3b2048959847dc5fb030913e2918bf384fec3/rdflib-7.6.0.tar.gz", hash = "sha256:6c831288d5e4a5a7ece85d0ccde9877d512a3d0f02d7c06455d00d6d0ea379df", size = 4943826, upload-time = "2026-02-13T07:15:55.938Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/c2/6604a71269e0c1bd75656d5a001432d16f2cc5b8c057140ec797155c295e/rdflib-7.6.0-py3-none-any.whl", hash = "sha256:30c0a3ebf4c0e09215f066be7246794b6492e054e782d7ac2a34c9f70a15e0dd", size = 615416, upload-time = "2026-02-13T07:15:46.487Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py", version = "0.30.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "rpds-py", version = "2026.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "regex" +version = "2026.7.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/37/451aaddbf50922f34d744ad5ca919ae1fcfac112123885d9728f52a484b3/regex-2026.7.10.tar.gz", hash = "sha256:1050fedf0a8a92e843971120c2f57c3a99bea86c0dfa1d63a9fac053fe54b135", size = 416282, upload-time = "2026-07-10T19:49:46.267Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/69/62bb7d63f26698949c905cb7ebe29c7b0659e2a7f2a50c35cc29640b0852/regex-2026.7.10-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:799a369bdab91dcf0eb424ebd7aa9650897025ce22f729248d8f2c72002c4daa", size = 494652, upload-time = "2026-07-10T19:46:28.394Z" }, + { url = "https://files.pythonhosted.org/packages/3a/f2/eed2ce38cc38def9c366d060ec739ff5f235a33647ceb73ae6be37306d39/regex-2026.7.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f0192e5f1cfc70e3cb35347135dd02e7497b3e7d83e378aa226d8b3e53a93f19", size = 295920, upload-time = "2026-07-10T19:46:30.342Z" }, + { url = "https://files.pythonhosted.org/packages/36/57/4d724eeb1c440d71ccd6400d33b62b911bb62ca05385fe1961556e628319/regex-2026.7.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:221f2771cb780186b94bbf125a151bbeb242fa1a971da6ad59d7b0370f19de9a", size = 290696, upload-time = "2026-07-10T19:46:31.953Z" }, + { url = "https://files.pythonhosted.org/packages/c7/9d/76c6779e424c64740d2a564b7ecb389a62c77b6294127d34f52008c91ea7/regex-2026.7.10-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab2fb1f7a2deb4ca3ddebbae6b93905d21480a3b4e11de28d79d9fb0d316fcf8", size = 784833, upload-time = "2026-07-10T19:46:33.145Z" }, + { url = "https://files.pythonhosted.org/packages/54/ec/f777841d88f0c9d46699daf16f86a8086e077e506603be212de2c4584f85/regex-2026.7.10-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2f98ef73a13791a387d5c841416ad7f52040ae5caf10bcf46fa12bd2b3d63745", size = 852182, upload-time = "2026-07-10T19:46:34.368Z" }, + { url = "https://files.pythonhosted.org/packages/d1/de/5ba208a0826117851f6c12af9ae7fae5838ccfde69b999b26c5fdc1cedc3/regex-2026.7.10-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9a094ed44a22f9da497453137c3118b531fd783866ab524b0b0fc146e7395e1d", size = 899571, upload-time = "2026-07-10T19:46:35.564Z" }, + { url = "https://files.pythonhosted.org/packages/7f/46/602b7b81d26a53113d3cec6dd845fd664d7b854b0ea45245bfdd6b9dc9ef/regex-2026.7.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:53bbbd6c610489700f7110db1d85f3623924c3f7c760f987eca033867360788a", size = 794164, upload-time = "2026-07-10T19:46:36.972Z" }, + { url = "https://files.pythonhosted.org/packages/53/cc/c21ebc520c3e17d93e495eb2de2b1c5ae5f6780ccdb298b2d8ce1e940820/regex-2026.7.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:87b776cf2890e356e4ab104b9df846e169da3eb5b0f110975547091f4e51854e", size = 786304, upload-time = "2026-07-10T19:46:38.238Z" }, + { url = "https://files.pythonhosted.org/packages/65/d8/69ec8c062bbba8d4d153f9eb70ab43564f591035b81fc4ea7eb059fdf71c/regex-2026.7.10-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ab39d2c967aae3b48a412bff9cdbe7cd7559cd1e277599aceaeada7bc82b7200", size = 769958, upload-time = "2026-07-10T19:46:39.541Z" }, + { url = "https://files.pythonhosted.org/packages/af/82/c56db326ac5f852865bd78d49a275757cc367e8114b13bc1015ed2491db1/regex-2026.7.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b56416091bfd7a429f958f69aaf6823c517be9a49cb5bf1daa3767ce8bf8095e", size = 775056, upload-time = "2026-07-10T19:46:40.808Z" }, + { url = "https://files.pythonhosted.org/packages/af/2a/1ba62462f679eb598d7325ff20798a264ddb9aa34a3f5d2ac388d54c6e4b/regex-2026.7.10-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:617e8f10472e34a8477931f978ff3a88d46ae2ba0e41927e580b933361f60948", size = 848857, upload-time = "2026-07-10T19:46:42.02Z" }, + { url = "https://files.pythonhosted.org/packages/84/5b/37bf2e2fe810540ca90bbfe457a2f61088721c95d442eee8bb1257165ad7/regex-2026.7.10-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:31fa17378b29519bfd0a1b8ba4e9c10cf0baf1cf4099b39b0689429e7dc2c795", size = 757747, upload-time = "2026-07-10T19:46:43.282Z" }, + { url = "https://files.pythonhosted.org/packages/9a/c5/131dd41f73f766af6b08492073b5f28bc4f907b5571230c9f9e895e88302/regex-2026.7.10-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:5c363de7c0339d39341b6181839ed32509820b85ef506deafcf2e7e43baadab4", size = 837183, upload-time = "2026-07-10T19:46:44.91Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ee/00b9332c3c5d7460639f2c10fdc7197a64de6eaafff69478ec3332815335/regex-2026.7.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ed7c886a2fcbf14493ceaf9579394b33521730c161ebb8dad7db9c3e9fcab1a8", size = 782151, upload-time = "2026-07-10T19:46:46.385Z" }, + { url = "https://files.pythonhosted.org/packages/e5/a7/31ce26ec6465c12e7136ea9efcc716f5c55cac616f7958c33f0bf171781e/regex-2026.7.10-cp310-cp310-win32.whl", hash = "sha256:b04583e8867136ae66353fa274f45121ab3ec3166dc45aaff3655a5db90d9f0e", size = 266770, upload-time = "2026-07-10T19:46:47.608Z" }, + { url = "https://files.pythonhosted.org/packages/71/00/22a554bb83203eef88a40ec2fe7cf9a6e5df8765d57f7a96ebe1af5d60c3/regex-2026.7.10-cp310-cp310-win_amd64.whl", hash = "sha256:e21e888a6b471b2bb1cdd4247e8d86632672232f29be583e7eafaa5f4634d34c", size = 277941, upload-time = "2026-07-10T19:46:48.915Z" }, + { url = "https://files.pythonhosted.org/packages/76/46/596a7084918ddf18cea6fb0cc047af1f00cec8790962e8f2edee9b6ec749/regex-2026.7.10-cp310-cp310-win_arm64.whl", hash = "sha256:081acf191b4d614d573a56cab69f948b6864daa5e3cc69f209ee92e26e454c2f", size = 276923, upload-time = "2026-07-10T19:46:50.829Z" }, + { url = "https://files.pythonhosted.org/packages/3d/16/bfd13770be1acd1c05506b93fc6be15c759d6417595d1ba334d355efbf26/regex-2026.7.10-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:66d2c35587cd601c95965d5c0415058ba5cfd6ffbab7624ce198bd967102b341", size = 494639, upload-time = "2026-07-10T19:46:52.207Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b4/0086215709f0f705661f13ba81516287538886ef0d589c545c12b0484669/regex-2026.7.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:28a0973eeffff4292f5a7ee498ab65d5e94ee8cc9cea364239251eb4a260a0f1", size = 295920, upload-time = "2026-07-10T19:46:53.63Z" }, + { url = "https://files.pythonhosted.org/packages/8e/9e/8e07d0eea46d2cf36bf4d3794634bb0a820f016d31bc349dfef008d96b02/regex-2026.7.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8331484450b3894298bef8abecce532171ff6ac60b71f999eed10f2c01941a8a", size = 290673, upload-time = "2026-07-10T19:46:54.863Z" }, + { url = "https://files.pythonhosted.org/packages/b7/56/d83c446de21c70ff49d2f1b2ff2196ac79a4ac6373d2cfe496011a250600/regex-2026.7.10-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0639b2488b775a0109f55a5a2172deebdedb4b6c5ab0d48c90b43cbf5de58d17", size = 792378, upload-time = "2026-07-10T19:46:56.116Z" }, + { url = "https://files.pythonhosted.org/packages/dc/0e/d265e0cc6da47aea97e90eb896be2d2e8f92d16add13bac04fa46a0fd972/regex-2026.7.10-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:be4223af640d0aa04c05db81d5d96ada3ead9c09187d892fd37f4f97829480be", size = 861790, upload-time = "2026-07-10T19:46:57.611Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a5/62655f6208d1170a3e9188d6a45d4af0a5ae3b9da8b87d474818ac5ff016/regex-2026.7.10-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d3c75d57a00109255e60bc9c623b6ececaf7905eaab845c79f036670ed4750a2", size = 906530, upload-time = "2026-07-10T19:46:59.142Z" }, + { url = "https://files.pythonhosted.org/packages/86/b7/d65aa2e9ffb18677cd0afbcf5990da8519a4e50778deb1bca49f043c5174/regex-2026.7.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:724ee9379568658ec06362cf24325c5315cc5a67f61dfe585bfeff58300a355b", size = 799912, upload-time = "2026-07-10T19:47:00.534Z" }, + { url = "https://files.pythonhosted.org/packages/8f/19/3a5ce23ea2eb1fe36306aef49c79746ce297e4b434aeb981b525c661413a/regex-2026.7.10-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:732c19e5828eb287d01edb83b2eb87f283ba8e5fc3441c732709d3e8cbd14aaa", size = 773675, upload-time = "2026-07-10T19:47:01.999Z" }, + { url = "https://files.pythonhosted.org/packages/fe/76/3c0eaa426700dd2ba14f2335f2b700a4e1484202254192ae440b83b8352a/regex-2026.7.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:982d07727c809b42a3968785354f11c3728414e4e90af0754345b431b2c32561", size = 781711, upload-time = "2026-07-10T19:47:03.425Z" }, + { url = "https://files.pythonhosted.org/packages/a4/a8/a5a3fad84f9a7f897619f0f8e0a2c64946e9709044a186a8f869fb5c332f/regex-2026.7.10-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4574feca202f8c470bf678aed8b5d89df04aaf8dc677f3b83d92825051301c0f", size = 854539, upload-time = "2026-07-10T19:47:04.999Z" }, + { url = "https://files.pythonhosted.org/packages/f8/c7/47e9b8c8ee77723b9eda74f517b6b25d2f555cf276c063a9eeea35bd86d5/regex-2026.7.10-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:80151ca5bfc6c4524186b3e08b499e97319b2001fc265ed2d4fc12c0d5692cdf", size = 763378, upload-time = "2026-07-10T19:47:06.845Z" }, + { url = "https://files.pythonhosted.org/packages/36/09/e27e42d9d42edf71205c7e6f5b2902bc874ea03c557c80da03b8ed16c9bf/regex-2026.7.10-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bb52e10e453b5493afe1f7702a2973bc10f4dd8901c0f2ed869ffaa3f8319296", size = 844663, upload-time = "2026-07-10T19:47:08.923Z" }, + { url = "https://files.pythonhosted.org/packages/a1/b5/2423acb98362184ad9c8eebabafa15188d6a177daab919add8f2120fc6cd/regex-2026.7.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e37aba1994d73b4944053ab65a15f313bd5c28c885dd7f0d494a11749d89db6e", size = 789236, upload-time = "2026-07-10T19:47:10.303Z" }, + { url = "https://files.pythonhosted.org/packages/60/ed/b387e84c8a3d6aa115dfb56865437a3fbaf28f4a6fb3b76cc6cce38ced70/regex-2026.7.10-cp311-cp311-win32.whl", hash = "sha256:6cbedeb5112f59dbd169385459b9943310bdd241c6966c19c5f6e2295055c93a", size = 266774, upload-time = "2026-07-10T19:47:11.904Z" }, + { url = "https://files.pythonhosted.org/packages/c4/64/f30a163a65ed1f07ad12c53af00a6bd2a7251a5329fba5a08adc6f9e81a3/regex-2026.7.10-cp311-cp311-win_amd64.whl", hash = "sha256:b1963ec5ba4d52788fb0eac6aca6eb8040e8e318c7e47ebbdfc09440c802919c", size = 277959, upload-time = "2026-07-10T19:47:13.231Z" }, + { url = "https://files.pythonhosted.org/packages/2b/de/61c8174171134cebb834ca9f8fe2ff8f49d8a3dd43453b48b537d0fbb49b/regex-2026.7.10-cp311-cp311-win_arm64.whl", hash = "sha256:3750c42d47712e362158a04d0fd80131f73a55e8c715b2885442a0ff6f9fc3fc", size = 276918, upload-time = "2026-07-10T19:47:14.693Z" }, + { url = "https://files.pythonhosted.org/packages/b3/9c/2503d4ccf3452dc323f8baa3cf3ee10406037d52735c76cfced81423f183/regex-2026.7.10-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7252b48b0c60100095088fbeb281fca9a4fcf678a4e04b1c520c3f8613c952c4", size = 497114, upload-time = "2026-07-10T19:47:16.22Z" }, + { url = "https://files.pythonhosted.org/packages/91/eb/04534f4263a4f658cd20a511e9d6124350044f2214eb24fee2db96acf318/regex-2026.7.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:da6ef4cb8d457aab0482b50120136ae94238aaa421863eaa7d599759742c72d6", size = 297422, upload-time = "2026-07-10T19:47:17.794Z" }, + { url = "https://files.pythonhosted.org/packages/ca/2d/35809de392ab66ba439b58c3187ae3b8b53c883233f284b59961e5725c99/regex-2026.7.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fe7ff456c22725c9d9017f7a2a7df2b51af6df77314176760b22e2d05278e181", size = 292110, upload-time = "2026-07-10T19:47:19.188Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1e/5ce0fbe9aab071893ce2b7df020d0f561f7b411ec334124302468d587884/regex-2026.7.10-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3463a5f26be513a49e4d497debcf1b252a2db7b92c77d89621aa90b83d2dd38", size = 796800, upload-time = "2026-07-10T19:47:20.639Z" }, + { url = "https://files.pythonhosted.org/packages/d4/67/c1ccbada395c10e334763b583e1039b1660b142303ebb941d4269130b22f/regex-2026.7.10-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:948dfc62683a6947b9b486c4598d8f6e3ecc542478b6767b87d52be68aeb55c6", size = 865509, upload-time = "2026-07-10T19:47:22.135Z" }, + { url = "https://files.pythonhosted.org/packages/0e/06/f0b31afc16c1208f945b66290eb2a9936ab8becdfb23bbcedb91cc5f9d9b/regex-2026.7.10-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c2cbd385d82f63bb35edb60b09b08abad3619bd0a4a492ae59e55afaf98e1b9d", size = 912395, upload-time = "2026-07-10T19:47:24.128Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1c/8687de3a6c3220f4f872a9bf4bcd8dc249f2a96e7dddfa93de8bd4d16399/regex-2026.7.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f6222cafe00e072bb2b8f14142cd969637411fbc4dd3b1d73a90a3b817fa046f", size = 801308, upload-time = "2026-07-10T19:47:25.696Z" }, + { url = "https://files.pythonhosted.org/packages/5f/e3/60a40ec02a2315d826414a125640aceb6f30450574c530c8f352110ece0e/regex-2026.7.10-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:65ee5d1ac3cd541325f5ac92625b1c1505f4d171520dd931bda7952895c5321a", size = 777120, upload-time = "2026-07-10T19:47:27.158Z" }, + { url = "https://files.pythonhosted.org/packages/6a/9a/ec579b4f840ac59bc7c192b56e66abd4cbf385615300d59f7c94bf6863ae/regex-2026.7.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aa34473fbcc108fea403074f3f45091461b18b2047d136f16ffaa4c65ad46a68", size = 785164, upload-time = "2026-07-10T19:47:28.732Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1c/60d88afd5f98d4b0fb1f8b8969270628140dc01c7ff93a939f2aa83f31a6/regex-2026.7.10-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:9d028d189d8f38d7ff292f22187c0df37f2317f554d2ed9a2908ada330af57c0", size = 860161, upload-time = "2026-07-10T19:47:30.605Z" }, + { url = "https://files.pythonhosted.org/packages/2a/40/08ae3ba45fe79e48c9a888a3389a7ee7e2d8c580d2d996da5ece02dfdcb9/regex-2026.7.10-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:396ea70e4ea1f19571940add3bad9fd3eb6a19dc610d0d01f692bc1ba0c10cb4", size = 765829, upload-time = "2026-07-10T19:47:32.06Z" }, + { url = "https://files.pythonhosted.org/packages/12/e6/e613c6755d19aca9d977cdc3418a1991ffc8f386779752dd8fdfa888ea89/regex-2026.7.10-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ebbf0d83ed5271991d666e54bb6c90ac2c55fb2ef3a88740c6af85dc85de2402", size = 852170, upload-time = "2026-07-10T19:47:33.567Z" }, + { url = "https://files.pythonhosted.org/packages/03/33/89072f2060e6b844b4916d5bc40ef01e973640c703025707869264ec75ab/regex-2026.7.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:58a4571b2a093f6f6ee4fd281faa8ebf645abcf575f758173ea2605c7a1e1ecb", size = 789550, upload-time = "2026-07-10T19:47:35.395Z" }, + { url = "https://files.pythonhosted.org/packages/e3/3c/4bc8be9a155035e63780ccac1da101f36194946fdc3f6fce90c7179fc6df/regex-2026.7.10-cp312-cp312-win32.whl", hash = "sha256:eac1207936555aa691ce32df1432b478f2729d54e6d93a1f4db9215bcd8eb47d", size = 267151, upload-time = "2026-07-10T19:47:37.047Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/9f5aade65bb98cc6e99c336e45a49a658300720c16721f3e687f8d754fec/regex-2026.7.10-cp312-cp312-win_amd64.whl", hash = "sha256:ecae626449d00db8c08f8f1fc00047a32d6d7eb5402b3976f5c3fda2b80a7a4f", size = 277751, upload-time = "2026-07-10T19:47:38.488Z" }, + { url = "https://files.pythonhosted.org/packages/36/6f/d069dd12872ea1d50e17319d342f89e2072cae4b62f4245009a1108c74d8/regex-2026.7.10-cp312-cp312-win_arm64.whl", hash = "sha256:87794549a3f5c1c2bdfba2380c1bf87b931e375f4133d929da44f95e396bf5fe", size = 277063, upload-time = "2026-07-10T19:47:40.023Z" }, + { url = "https://files.pythonhosted.org/packages/e0/88/0c977b9f3ba9b08645516eca236388c340f56f7a87054d41a187a04e134c/regex-2026.7.10-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:4db009b4fc533d79af3e841d6c8538730423f82ea8508e353a3713725de7901c", size = 496868, upload-time = "2026-07-10T19:47:41.675Z" }, + { url = "https://files.pythonhosted.org/packages/f6/51/600882cd5d9a3cf083fd66a4064f5b7f243ba2a7de2437d42823e286edaf/regex-2026.7.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b96341cb29a3faa5db05aff29c77d141d827414f145330e5d8846892119351c1", size = 297306, upload-time = "2026-07-10T19:47:43.521Z" }, + { url = "https://files.pythonhosted.org/packages/52/6f/48a912054ffcb756e374207bb8f4430c5c3e0ffa9627b3c7b6661844b30a/regex-2026.7.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:14d27f6bd04beb01f6a25a1153d73e58c290fd45d92ba56af1bb44199fd1010d", size = 291950, upload-time = "2026-07-10T19:47:45.267Z" }, + { url = "https://files.pythonhosted.org/packages/1a/c8/8e1c3c86ebcee7effccbd1f7fc54fe3af22aa0e9204503e2baea4a6ff001/regex-2026.7.10-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e6b6a11bf898cca3ce7bfaa17b646901107f3975677fbd5097f36e5eb5641983", size = 796817, upload-time = "2026-07-10T19:47:48.054Z" }, + { url = "https://files.pythonhosted.org/packages/65/39/3e49d9ff0e0737eb8180a00569b47aabb59b84611f48392eba4d998d91a0/regex-2026.7.10-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:234f8e0d65cf1df9becadae98648f74030ee85a8f12edcb5eb0f60a22a602197", size = 865513, upload-time = "2026-07-10T19:47:49.855Z" }, + { url = "https://files.pythonhosted.org/packages/70/57/6511ad809bb3122c65bbeeffa5b750652bb03d273d29f3acb0754109b183/regex-2026.7.10-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:91b916d495db3e1b473c7c8e68733beec4dce8e487442db61764fff94f59740e", size = 912391, upload-time = "2026-07-10T19:47:51.776Z" }, + { url = "https://files.pythonhosted.org/packages/cc/29/a1b0c109c9e878cb04b931bfe4c54332d692b93c322e127b5ae9f25b0d9e/regex-2026.7.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f0d4ccf70b1d13711242de0ba78967db5c35d12ac408378c70e06295c3f6644", size = 801338, upload-time = "2026-07-10T19:47:53.38Z" }, + { url = "https://files.pythonhosted.org/packages/33/be/171c3dad4d77000e1befeff2883ca88734696dfd97b2951e5e074f32e4dd/regex-2026.7.10-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c622f4c638a725c39abcb2e680b1bd592663c83b672a4ed350a17f806d75618e", size = 777149, upload-time = "2026-07-10T19:47:54.944Z" }, + { url = "https://files.pythonhosted.org/packages/33/61/41ab0de0e4574da1071c151f67d1eb9db3d92c43e31d64d2e6863c3d89bf/regex-2026.7.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:41a47c2b28d9421e2509a4583a22510dc31d83212fcf38e1508a7013140f71a8", size = 785216, upload-time = "2026-07-10T19:47:56.56Z" }, + { url = "https://files.pythonhosted.org/packages/66/28/372859ea693736f07cf7023247c7eca8f221d9c6df8697ff9f93371cca08/regex-2026.7.10-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:13fba679fe035037e9d5286620f88bbfd105df4d5fcd975942edd282ab986775", size = 860229, upload-time = "2026-07-10T19:47:58.278Z" }, + { url = "https://files.pythonhosted.org/packages/50/b1/e1d32cd944b599534ae655d35e8640d0ec790c0fa12e1fb29bf434d50f55/regex-2026.7.10-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:8e26a075fa9945b9e44a3d02cc83d776c3b76bb1ff4b133bbfa620d5650131da", size = 765797, upload-time = "2026-07-10T19:48:00.291Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/79a2cd9556a3329351e370929743ef4f0ccc0aaff6b3dc414ae5fa4a1302/regex-2026.7.10-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d0834c84ae8750ae1c4cede59b0afd4d2f775be958e11b18a3eea24ed9d0d9f1", size = 852130, upload-time = "2026-07-10T19:48:01.972Z" }, + { url = "https://files.pythonhosted.org/packages/66/58/76fec29898cf5d359ab63face50f9d4f7135cc2eca3477139227b1d09952/regex-2026.7.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64722a5031aeace7f6c8d5ea9a9b22d9368af0d6e8fa532585da8158549ea963", size = 789644, upload-time = "2026-07-10T19:48:03.748Z" }, + { url = "https://files.pythonhosted.org/packages/f6/06/3c7cec7817bda293e13c8f88aed227bbcf8b37e5990936ff6442a8fdf11a/regex-2026.7.10-cp313-cp313-win32.whl", hash = "sha256:74ae61d8573ecd51b5eeee7be2218e4c56e99c14fa8fcf97cf7519611d4be92e", size = 267130, upload-time = "2026-07-10T19:48:05.677Z" }, + { url = "https://files.pythonhosted.org/packages/88/6c/e2a6f9a6a905f923cfc912298a5949737e9504b1ca24f29eda8d04d05ece/regex-2026.7.10-cp313-cp313-win_amd64.whl", hash = "sha256:5e792367e5f9b4ffb8cad93f1beaa91837056b94da98aa5c65a0db0c1b474927", size = 277722, upload-time = "2026-07-10T19:48:07.318Z" }, + { url = "https://files.pythonhosted.org/packages/00/a6/9d8935aaa940c388496aa1a0c82669cc4b5d06291c2712d595e3f0cf16d3/regex-2026.7.10-cp313-cp313-win_arm64.whl", hash = "sha256:82ab8330e7e2e416c2d42fcec67f02c242393b8681014750d4b70b3f158e1f08", size = 277059, upload-time = "2026-07-10T19:48:08.977Z" }, + { url = "https://files.pythonhosted.org/packages/7d/e9/26decfd3e85c09e42ff7b0d23a6f51085ca4c268db15f084928ca33459c6/regex-2026.7.10-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:2b93eafd92c4128bab2f93500e8912cc9ecb3d3765f6685b902c6820d0909b6b", size = 501508, upload-time = "2026-07-10T19:48:10.668Z" }, + { url = "https://files.pythonhosted.org/packages/38/a5/5b167cebde101945690219bf34361481c9f07e858a4f46d9996b80ec1490/regex-2026.7.10-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3f03b92fb6ec739df042e45b06423fc717ecf0063e07ffe2897f7b2d5735e1e8", size = 299705, upload-time = "2026-07-10T19:48:12.544Z" }, + { url = "https://files.pythonhosted.org/packages/f6/20/7909be4b9f449f8c282c14b6762d59aa722aeaeebe7ee4f9bb623eeaa5e0/regex-2026.7.10-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bb5aab464a0c5e03a97abad5bdf54517061ebbf72340d576e99ff661a42575cc", size = 294605, upload-time = "2026-07-10T19:48:14.495Z" }, + { url = "https://files.pythonhosted.org/packages/82/88/e52550185d6fda68f549b01239698697de47320fd599f5e880b1986b7673/regex-2026.7.10-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fadb07dbe36a541283ff454b1a268afd54b077d917043f2e1e5615372cb5f200", size = 811747, upload-time = "2026-07-10T19:48:16.197Z" }, + { url = "https://files.pythonhosted.org/packages/06/98/16c255c909714de1ee04da6ae30f3ee04170f300cdc0dcf57a314ee4816a/regex-2026.7.10-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:21150500b970b12202879dfd82e7fd809d8e853140fff84d08e57a90cf1e154e", size = 871203, upload-time = "2026-07-10T19:48:18.12Z" }, + { url = "https://files.pythonhosted.org/packages/3b/32/423ed27c9bae2092a453e853da2b6628a658d08bb5a6117db8d591183d85/regex-2026.7.10-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a68b637451d64ba30ed8ae125c973fa834cc2d37dfa7f154c2b479015d477ba8", size = 917334, upload-time = "2026-07-10T19:48:19.952Z" }, + { url = "https://files.pythonhosted.org/packages/73/87/74dac8efb500db31cb000fda6bae2be45fc2fbf1fa9412f445fbb8acbe37/regex-2026.7.10-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e23458d8903e33e7d27196d7a311523dc4e2f4137a5f34e4dbd30c8d37ff33e", size = 816379, upload-time = "2026-07-10T19:48:21.616Z" }, + { url = "https://files.pythonhosted.org/packages/a8/9f/1859403654e3e030b288f06d49233c6a4f889d62b84c4ef3f3a28653173d/regex-2026.7.10-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cae27622c094558e519abf3242cf4272db961d12c5c9a9ffb7a1b44b2627d5c6", size = 785563, upload-time = "2026-07-10T19:48:23.643Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d8/35d30d6bdf1ef6a5430e8982607b3a6db4df1ddedbe001e43435585d88ba/regex-2026.7.10-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ee877b6d78f9dff1da94fef51ae8cf9cce0967e043fdcc864c40b85cf293c192", size = 801415, upload-time = "2026-07-10T19:48:25.499Z" }, + { url = "https://files.pythonhosted.org/packages/f7/22/630f31f5ea4826167b2b064d9cac2093a5b3222af380aa432cfe1a5dabcd/regex-2026.7.10-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:2c66a8a1969cfd506d1e203c0005fd0fc3fe6efc83c945606566b6f9611d4851", size = 866560, upload-time = "2026-07-10T19:48:27.789Z" }, + { url = "https://files.pythonhosted.org/packages/8d/14/f5914a6d9c5bc63b9bed8c9a1169fb0be35dbe05cdc460e17d953031a366/regex-2026.7.10-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:2bc350e1c5fa250f30ab0c3e38e5cfdffcd82cb8af224df69955cab4e3003812", size = 772877, upload-time = "2026-07-10T19:48:29.563Z" }, + { url = "https://files.pythonhosted.org/packages/c1/0f/7c13999eef3e4186f7c79d4950fa56f041bf4de107682fb82c80db605ff9/regex-2026.7.10-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:53f54993b462f3f91fea0f2076b46deb6619a5f45d70dbd1f543f789d8b900ef", size = 856648, upload-time = "2026-07-10T19:48:31.282Z" }, + { url = "https://files.pythonhosted.org/packages/a4/71/a48e43909b6450fb48fa94e783bef2d9a37179258bc32ef2283955df7be7/regex-2026.7.10-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cfcec18f7da682c4e2d82112829ce906569cb8d69fa6c26f3a50dfbed5ceb682", size = 803520, upload-time = "2026-07-10T19:48:33.275Z" }, + { url = "https://files.pythonhosted.org/packages/e0/b8/f037d1bf2c133cb24ceb6e7d81d08417080390eddab6ddfd701aa7091874/regex-2026.7.10-cp313-cp313t-win32.whl", hash = "sha256:a2d6d30be35ddd70ce0f8ee259a4c25f24d6d689a45a5ac440f03e6bcc5a21d1", size = 269168, upload-time = "2026-07-10T19:48:35.353Z" }, + { url = "https://files.pythonhosted.org/packages/b6/9c/eaac34f8452a838956e7e89852ad049678cdc1af5d14f72d3b3b658b1ea5/regex-2026.7.10-cp313-cp313t-win_amd64.whl", hash = "sha256:c57b6ad3f7a1bdd101b2966f29dc161adf49727b1e8d3e1e89db2eda8a75c344", size = 280004, upload-time = "2026-07-10T19:48:37.106Z" }, + { url = "https://files.pythonhosted.org/packages/cd/a9/e22e997587bc1d588b0b2cd0572027d39dd3a006216e40bbf0361688c51c/regex-2026.7.10-cp313-cp313t-win_arm64.whl", hash = "sha256:3d8ef9df02c8083c7b4b855e3cb87c8e0ebbcfea088d98c7a886aaefdf88d837", size = 279308, upload-time = "2026-07-10T19:48:38.907Z" }, + { url = "https://files.pythonhosted.org/packages/6a/4a/a7fa3ada9bd2d2ce20d56dfceec6b2a51afeed9bf3d8286355ceec5f0628/regex-2026.7.10-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:39f81d1fdf594446495f2f4edd8e62d8eda0f7a802c77ac596dc8448ad4cc5ca", size = 497087, upload-time = "2026-07-10T19:48:40.543Z" }, + { url = "https://files.pythonhosted.org/packages/0f/7e/ca0b1a87192e5828dbc16f16ae6caca9b67f25bf729a3348468a5ff52755/regex-2026.7.10-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:441edc66a54063f8269d1494fc8474d06605e71e8a918f4bcfd079ebda4ce042", size = 297307, upload-time = "2026-07-10T19:48:42.213Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6c/fb40bb34275d3cd4d7a376d5fb2ea1f0f4a96fd884fa83c0c4ae869001bf/regex-2026.7.10-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cfeb11990f59e59a0df26c648f0adfcbf27be77241250636f5769eb08db662be", size = 292163, upload-time = "2026-07-10T19:48:43.929Z" }, + { url = "https://files.pythonhosted.org/packages/18/0b/34cbea16c8fea9a18475a7e8f5837c70af451e738bfeb4eb5b029b7dc07a/regex-2026.7.10-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:460176b2db044a292baaee6891106566739657877af89a251cded228689015a6", size = 797064, upload-time = "2026-07-10T19:48:45.623Z" }, + { url = "https://files.pythonhosted.org/packages/87/77/f6805d97f15f5a710bdfd56a768f3468c978239daf9e1b15efd8935e1967/regex-2026.7.10-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9dc55698737aca028848bde418d6c51d74f2a5fd44872d3c8b56b626729adb89", size = 866155, upload-time = "2026-07-10T19:48:47.589Z" }, + { url = "https://files.pythonhosted.org/packages/a2/e3/a2a905807bba3bcd90d6ebbb67d27af2adf7d41708175cbc6b956a0c75f1/regex-2026.7.10-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d3e10779f60c000213a5b53f518824bd07b3dc119333b26d70c6be1c27b5c794", size = 911596, upload-time = "2026-07-10T19:48:49.473Z" }, + { url = "https://files.pythonhosted.org/packages/a2/ca/a3126888b2c6f33c7e29144fedf85f6d5a52a400024fa045ad8fc0550ef1/regex-2026.7.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:38a5926601aaccf379512746b86eb0ac1d29121f6c776dac6ac5b31077432f2c", size = 800713, upload-time = "2026-07-10T19:48:51.452Z" }, + { url = "https://files.pythonhosted.org/packages/66/19/9d252fd969f726c8b56b4bacf910811cc70495a110907b3a7ccb96cd9cad/regex-2026.7.10-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a72ecf5bfd3fc8d57927f7e3ded2487e144472f39010c3acaec3f6f3ff53f361", size = 777286, upload-time = "2026-07-10T19:48:53.443Z" }, + { url = "https://files.pythonhosted.org/packages/40/7a/5f1bf433fa446ecb3aab87bb402603dc9e171ef8052c1bb8690bb4e255a3/regex-2026.7.10-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d50714405845c1010c871098558cfe5718fe39d2a2fab5f95c8863caeb7a82b3", size = 785826, upload-time = "2026-07-10T19:48:55.381Z" }, + { url = "https://files.pythonhosted.org/packages/99/ca/69f3a7281d86f1b592338007f3e535cc219d771448e2b61c0b56e4f9d05b/regex-2026.7.10-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ec1c44cf9bd22079aac37a07cb49a29ced9050ab5bddf24e50aba298f1e34d90", size = 860957, upload-time = "2026-07-10T19:48:57.962Z" }, + { url = "https://files.pythonhosted.org/packages/bc/11/487ff55c8d515ec9dd60d7ba3c129eeaa9e527358ed9e8a054a9e9430f81/regex-2026.7.10-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:9e9aaef25a40d1f1e1bbb1d0eb0190c4a64a7a1750f7eb67b8399bed6f4fd2a6", size = 765959, upload-time = "2026-07-10T19:49:00.27Z" }, + { url = "https://files.pythonhosted.org/packages/73/e1/fa034e6fa8896a09bd0d5e19c81fdc024411ab37980950a0401dccee8f6d/regex-2026.7.10-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:e54e088dc64dd2766014e7cfe5f8bc45399400fd486816e494f93e3f0f55da06", size = 851447, upload-time = "2026-07-10T19:49:02.128Z" }, + { url = "https://files.pythonhosted.org/packages/ee/a5/b9427ed53b0e14c540dc436d56aaf57a19fb9183c6e7abd66f4b4368fbad/regex-2026.7.10-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:834271b1ff2cfa1f67fcd65a48bf11d11e9ab837e21bf79ce554efb648599ae8", size = 789418, upload-time = "2026-07-10T19:49:03.949Z" }, + { url = "https://files.pythonhosted.org/packages/ba/52/aab92420c8aa845c7bcbe68dc65023d4a9e9ea785abf0beb2198f0de5ba1/regex-2026.7.10-cp314-cp314-win32.whl", hash = "sha256:f988a1cec68058f71a38471813fba9e87dffe855582682e8a10e40ece12567a2", size = 272538, upload-time = "2026-07-10T19:49:05.833Z" }, + { url = "https://files.pythonhosted.org/packages/99/16/5c7050e0ef7dd8889441924ff0a2c33b7f0587c0ccb0953fe7ca997d673b/regex-2026.7.10-cp314-cp314-win_amd64.whl", hash = "sha256:2129e4a5e86f26926982d883dff815056f2e98220fdf630e59f961b578a26c43", size = 280796, upload-time = "2026-07-10T19:49:07.593Z" }, + { url = "https://files.pythonhosted.org/packages/e8/1a/4f6099d2ba271502fdb97e697bae2ed0213c0d87f2273fe7d21e2e401d12/regex-2026.7.10-cp314-cp314-win_arm64.whl", hash = "sha256:9cd5b6805396157b4cf993a6940cbb8663161f29b4df2458c1c9991f099299c5", size = 281017, upload-time = "2026-07-10T19:49:09.767Z" }, + { url = "https://files.pythonhosted.org/packages/19/02/4061fc71f64703e0df61e782c2894c3fbc089d277767eff6e16099581c73/regex-2026.7.10-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:103e8f3acc3dcede88c0331c8612766bdcfc47c9250c5477f0e10e0550b9da49", size = 501467, upload-time = "2026-07-10T19:49:11.952Z" }, + { url = "https://files.pythonhosted.org/packages/73/a5/8d42b2f3fd672908a05582effd0f88438bf9bb4e8e02d69a62c723e23601/regex-2026.7.10-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:538ddb143f5ca085e372def17ef3ed9d74b50ad7fc431bd85dc50a9af1a7076f", size = 299700, upload-time = "2026-07-10T19:49:14.067Z" }, + { url = "https://files.pythonhosted.org/packages/65/70/36fa4b46f73d268c0dbe77c40e62da2cd4833ee206d3b2e438c2034e1f36/regex-2026.7.10-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6e3448e86b05ce87d4eb50f9c680860830f3b32493660b39f43957d6263e2eba", size = 294590, upload-time = "2026-07-10T19:49:15.883Z" }, + { url = "https://files.pythonhosted.org/packages/e0/a7/b6db1823f3a233c2a46f854fdc986f4fd424a84ed557b7751f2998efb266/regex-2026.7.10-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5eab9d3f981c423afd1a61db055cfe83553c3f6455949e334db04722469dd0a2", size = 811925, upload-time = "2026-07-10T19:49:17.97Z" }, + { url = "https://files.pythonhosted.org/packages/b6/7d/f8bee4c210c42c7e8b952bb9fb7099dd7fb2f4bd0f33d0d65a8ab08aafc0/regex-2026.7.10-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:177f930af3ad72e1045f8877540e0c43a38f7d328cf05f31963d0bd5f7ecf067", size = 871257, upload-time = "2026-07-10T19:49:19.943Z" }, + { url = "https://files.pythonhosted.org/packages/5d/78/22adf72e614ba0216b996e9aaef5712c23699e360ea127bb3d5ee1a7666f/regex-2026.7.10-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:dd3b6d97beb39afb412f2c79522b9e099463c31f4c49ab8347c5a2ca3531c478", size = 917551, upload-time = "2026-07-10T19:49:22.069Z" }, + { url = "https://files.pythonhosted.org/packages/03/f7/ebc15a39e81e6b58da5f913b91fc293a25c6700d353c14d5cd25fc85712a/regex-2026.7.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8679f0652a183d93da646fcec8da8228db0be40d1595da37e6d74c2dc8c4713c", size = 816436, upload-time = "2026-07-10T19:49:24.131Z" }, + { url = "https://files.pythonhosted.org/packages/5c/33/20bc2bdd57f7e0fcc51be37e4c4d1bca7f0b4af8dc0a148c23220e689da8/regex-2026.7.10-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:494b19a5805438aeb582de99f9d97603d8fd48e6f4cc74d0088bb292b4da3b70", size = 785935, upload-time = "2026-07-10T19:49:26.265Z" }, + { url = "https://files.pythonhosted.org/packages/b4/51/87ff99c849b56309c40214a72b54b0eef320d0516a8a516970cc8be1b725/regex-2026.7.10-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0911e34151a5429d0325dae538ba9851ec0b62426bdfd613060cda8f1c36ec7f", size = 801494, upload-time = "2026-07-10T19:49:28.493Z" }, + { url = "https://files.pythonhosted.org/packages/16/11/fde67d49083fef489b7e0f841e2e5736516795b166c9867f05956c1e494b/regex-2026.7.10-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b862572b7a5f5ed47d2ba5921e63bf8d9e3b682f859d8f11e0e5ca46f7e82173", size = 866549, upload-time = "2026-07-10T19:49:30.592Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b5/31a156c36acf10181d88f55a66c688d5454a344e53ccc03d49f4a48a2297/regex-2026.7.10-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:3f361215e000d68a4aff375106637b83c80be36091d83ee5107ad3b32bd73f48", size = 773089, upload-time = "2026-07-10T19:49:32.661Z" }, + { url = "https://files.pythonhosted.org/packages/27/bb/734e978c904726664df47ae36ce5eca5065de5141185ae46efec063476a2/regex-2026.7.10-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:4533af6099543db32ef26abc2b2f824781d4eebb309ab9296150fd1a0c7eb07d", size = 856710, upload-time = "2026-07-10T19:49:35.289Z" }, + { url = "https://files.pythonhosted.org/packages/6d/e5/dc35cea074dbdcb9776c4b0542a3bc326ff08454af0768ef35f3fc66e7fa/regex-2026.7.10-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:668ab85105361d0200e3545bec198a1acfc6b0aeb5fff8897647a826e5a171be", size = 803621, upload-time = "2026-07-10T19:49:37.704Z" }, + { url = "https://files.pythonhosted.org/packages/a6/b2/124564af46bc0b592785610b3985315610af0a07f4cf21fa36e06c2398dd/regex-2026.7.10-cp314-cp314t-win32.whl", hash = "sha256:dd7715817a187edd7e2a2390908757f7ba42148e59cad755fb8ee1160c628eca", size = 274558, upload-time = "2026-07-10T19:49:39.926Z" }, + { url = "https://files.pythonhosted.org/packages/4e/9c/cd813ce9f3404c0443915175c1e339c5afd8fcda04310102eaf233015eef/regex-2026.7.10-cp314-cp314t-win_amd64.whl", hash = "sha256:78712d4954234df5ca24fdadb65a2ab034213f0cdfde376c272f9fc5e09866bb", size = 283687, upload-time = "2026-07-10T19:49:41.872Z" }, + { url = "https://files.pythonhosted.org/packages/1b/d3/3dae6a6ce46144940e64425e32b8573a393a009aeaf75fa6752a35399056/regex-2026.7.10-cp314-cp314t-win_arm64.whl", hash = "sha256:749b92640e1970e881fdf22a411d74bf9d049b154f4ef7232eeb9a90dd8be7f3", size = 283377, upload-time = "2026-07-10T19:49:43.985Z" }, +] + +[[package]] +name = "requests" +version = "2.34.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" }, +] + +[[package]] +name = "requests-file" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/f8/5dc70102e4d337063452c82e1f0d95e39abfe67aa222ed8a5ddeb9df8de8/requests_file-3.0.1.tar.gz", hash = "sha256:f14243d7796c588f3521bd423c5dea2ee4cc730e54a3cac9574d78aca1272576", size = 6967, upload-time = "2025-10-20T18:56:42.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/d5/de8f089119205a09da657ed4784c584ede8381a0ce6821212a6d4ca47054/requests_file-3.0.1-py2.py3-none-any.whl", hash = "sha256:d0f5eb94353986d998f80ac63c7f146a307728be051d4d1cd390dbdb59c10fa2", size = 4514, upload-time = "2025-10-20T18:56:41.184Z" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, +] + +[[package]] +name = "rich" +version = "15.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload-time = "2026-04-12T08:24:00.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload-time = "2025-11-30T20:21:33.256Z" }, + { url = "https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00", size = 359751, upload-time = "2025-11-30T20:21:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/cd/7c/e4933565ef7f7a0818985d87c15d9d273f1a649afa6a52ea35ad011195ea/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6", size = 389696, upload-time = "2025-11-30T20:21:36.122Z" }, + { url = "https://files.pythonhosted.org/packages/5e/01/6271a2511ad0815f00f7ed4390cf2567bec1d4b1da39e2c27a41e6e3b4de/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7", size = 403136, upload-time = "2025-11-30T20:21:37.728Z" }, + { url = "https://files.pythonhosted.org/packages/55/64/c857eb7cd7541e9b4eee9d49c196e833128a55b89a9850a9c9ac33ccf897/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324", size = 524699, upload-time = "2025-11-30T20:21:38.92Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ed/94816543404078af9ab26159c44f9e98e20fe47e2126d5d32c9d9948d10a/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df", size = 412022, upload-time = "2025-11-30T20:21:40.407Z" }, + { url = "https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3", size = 390522, upload-time = "2025-11-30T20:21:42.17Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/57a85fda37a229ff4226f8cbcf09f2a455d1ed20e802ce5b2b4a7f5ed053/rpds_py-0.30.0-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221", size = 404579, upload-time = "2025-11-30T20:21:43.769Z" }, + { url = "https://files.pythonhosted.org/packages/f9/da/c9339293513ec680a721e0e16bf2bac3db6e5d7e922488de471308349bba/rpds_py-0.30.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7", size = 421305, upload-time = "2025-11-30T20:21:44.994Z" }, + { url = "https://files.pythonhosted.org/packages/f9/be/522cb84751114f4ad9d822ff5a1aa3c98006341895d5f084779b99596e5c/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff", size = 572503, upload-time = "2025-11-30T20:21:46.91Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9b/de879f7e7ceddc973ea6e4629e9b380213a6938a249e94b0cdbcc325bb66/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7", size = 598322, upload-time = "2025-11-30T20:21:48.709Z" }, + { url = "https://files.pythonhosted.org/packages/48/ac/f01fc22efec3f37d8a914fc1b2fb9bcafd56a299edbe96406f3053edea5a/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139", size = 560792, upload-time = "2025-11-30T20:21:50.024Z" }, + { url = "https://files.pythonhosted.org/packages/e2/da/4e2b19d0f131f35b6146425f846563d0ce036763e38913d917187307a671/rpds_py-0.30.0-cp310-cp310-win32.whl", hash = "sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464", size = 221901, upload-time = "2025-11-30T20:21:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/96/cb/156d7a5cf4f78a7cc571465d8aec7a3c447c94f6749c5123f08438bcf7bc/rpds_py-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169", size = 235823, upload-time = "2025-11-30T20:21:52.505Z" }, + { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload-time = "2025-11-30T20:21:53.789Z" }, + { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload-time = "2025-11-30T20:21:55.475Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload-time = "2025-11-30T20:21:57.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload-time = "2025-11-30T20:21:58.47Z" }, + { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload-time = "2025-11-30T20:21:59.699Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload-time = "2025-11-30T20:22:00.991Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload-time = "2025-11-30T20:22:02.723Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload-time = "2025-11-30T20:22:04.367Z" }, + { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload-time = "2025-11-30T20:22:05.814Z" }, + { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload-time = "2025-11-30T20:22:07.713Z" }, + { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload-time = "2025-11-30T20:22:09.312Z" }, + { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload-time = "2025-11-30T20:22:11.309Z" }, + { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload-time = "2025-11-30T20:22:13.101Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload-time = "2025-11-30T20:22:14.853Z" }, + { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload-time = "2025-11-30T20:22:16.577Z" }, + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, + { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, + { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, + { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload-time = "2025-11-30T20:24:22.231Z" }, + { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload-time = "2025-11-30T20:24:24.302Z" }, + { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload-time = "2025-11-30T20:24:25.916Z" }, + { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload-time = "2025-11-30T20:24:27.834Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload-time = "2025-11-30T20:24:29.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload-time = "2025-11-30T20:24:31.22Z" }, + { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload-time = "2025-11-30T20:24:32.934Z" }, + { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload-time = "2025-11-30T20:24:35.169Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload-time = "2025-11-30T20:24:36.853Z" }, +] + +[[package]] +name = "rpds-py" +version = "2026.6.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform == 'win32'", + "python_full_version == '3.14.*' and sys_platform == 'win32'", + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/aa/2a/9618a122aeb2a169a28b03889a2995fe297588964333d4a7d67bdf46e147/rpds_py-2026.6.3.tar.gz", hash = "sha256:1cebd1337c242e4ec2293e541f712b2da849b29f48f0c293684b71c0632625d4", size = 64051, upload-time = "2026-06-30T07:17:53.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/1f/a2dca5ffdbf1d475ffc4e80e4d5d720ff3a00f691795910116960ee12511/rpds_py-2026.6.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:7b689145a1485c335569bd056464f3243a29af7ed3871c7be31ad624ba239bc7", size = 342174, upload-time = "2026-06-30T07:14:54.821Z" }, + { url = "https://files.pythonhosted.org/packages/4d/dc/323d08583c0832911768663d1944f0107fcd4088704858d84b5e06d105a0/rpds_py-2026.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:db08f45aecde626498fb3df07bcf6d2ec040af42e859a4f5040d79c200342911", size = 345513, upload-time = "2026-06-30T07:14:56.515Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2a/e31989834d18d2f26ec1d2774c5b1eb3331df4ea8ada525175294c94b48a/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acc992ab27b15f852c76755eb2ab7dce86585ddadba6fa5946e58556088845b4", size = 373783, upload-time = "2026-06-30T07:14:57.736Z" }, + { url = "https://files.pythonhosted.org/packages/87/fe/e80107ee3639585c9941c17d6a42cd65325022f656c023191fce78c324c8/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f88d653e7b3b779d71ae7454e20dcc9b6bae903f33c269db9f2be41bda3f261", size = 378316, upload-time = "2026-06-30T07:14:59.077Z" }, + { url = "https://files.pythonhosted.org/packages/22/6f/81e3adf81acfb6fa694de2a6e4e7d8863121e3e0799e0a7725e6cf5679c4/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e52655eaf81e32593abedaa4bfe33170c8cfedf3365ed9be6e11e07f148f0278", size = 499423, upload-time = "2026-06-30T07:15:00.488Z" }, + { url = "https://files.pythonhosted.org/packages/2d/9a/41263969df0ce3d9af2a96d5005a288200af1989aed3354bfceb5fc0b21f/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dfcc8b909769d19db55c7cc9541eb64b9b774b1057ffffb4f1048070475bb9f9", size = 386077, upload-time = "2026-06-30T07:15:01.911Z" }, + { url = "https://files.pythonhosted.org/packages/5e/19/7e98f468bd50346faff5b10e5297374b443bfdddacc8e9fbc65984539597/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c1255b302953c86a486b81d330d5ee1d5bd937691ce271b6be0ef0e299eaab7", size = 371315, upload-time = "2026-06-30T07:15:03.317Z" }, + { url = "https://files.pythonhosted.org/packages/99/3c/2b973b4d371906a134b03decfea7f5d9835a2c6d263454392e15b64b5b18/rpds_py-2026.6.3-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:8d2294a31386bfa251d8c8a39472beee17db67d4f1a6eabea665d35c9a4461c3", size = 383502, upload-time = "2026-06-30T07:15:04.627Z" }, + { url = "https://files.pythonhosted.org/packages/98/2a/12e2799500af0a307bca76b63361c51f9fe479223561489c29eea1f2ee41/rpds_py-2026.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8f23ead891a3b762f35ab3b04623da7056545b48aa60d59957e6789914545da", size = 402673, upload-time = "2026-06-30T07:15:05.856Z" }, + { url = "https://files.pythonhosted.org/packages/2d/e3/21e5872d165fe08be4f229e3d5ee9d90019c0bf0e5538de60dbd54009450/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:421aba32367055614287a4292b6a17f1939c9452299f7a0209c117e990b646d4", size = 549964, upload-time = "2026-06-30T07:15:07.159Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d0/5ee0fe36844297de8123bee27bc12078c1a7416ad9f1b8a8ca18d6b0c0ac/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1e5822dfc2f0d4ab7e745eaa6d85945069329beeccef965af3f3bb26058fcab6", size = 615446, upload-time = "2026-06-30T07:15:08.531Z" }, + { url = "https://files.pythonhosted.org/packages/b1/80/1ea5873cb683f2fbe5f21b23ea1f6d179ead19f3c5b249b7eb5dca568ef2/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:83e35b57523816c8613fd0776b40cd8bb9f596b37ddd2692eb4a6bb5ab2f8c93", size = 576975, upload-time = "2026-06-30T07:15:09.97Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e1/90ef639217a5ddb15b7f4f61b1c33911fd044ad03c311bafdd2bcab85582/rpds_py-2026.6.3-cp311-cp311-win32.whl", hash = "sha256:de3eceba0b683bcbb1ab93da016d0270df1f9ae7be716b40214c5dafac6ea45a", size = 204453, upload-time = "2026-06-30T07:15:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b7/b7a1695d7af36f521fb11e80d6d3adbd744f73b921859bd3c2a2c0dc706f/rpds_py-2026.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:2c54a076ca4d370980ab57bc0e31df57bbe8d41340436a90ef8b1219a3cbb127", size = 223219, upload-time = "2026-06-30T07:15:12.476Z" }, + { url = "https://files.pythonhosted.org/packages/d7/a2/145afacf796e4506062825941176ad9445c2dcf2b3b6a1f13d3030a15e19/rpds_py-2026.6.3-cp311-cp311-win_arm64.whl", hash = "sha256:168c733a7112e071bb7a66460e667edfcff06c017a3c523f7a8a8e08d0140804", size = 219137, upload-time = "2026-06-30T07:15:13.631Z" }, + { url = "https://files.pythonhosted.org/packages/5c/be/2e8974163072e7bab7df1a5acd54c4498e75e35d6d18b864d3a9d5dadc92/rpds_py-2026.6.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a0811d33247c3d6128a3001d763f2aa056bb3425204335400ac54f89eec3a0d0", size = 343691, upload-time = "2026-06-30T07:15:14.96Z" }, + { url = "https://files.pythonhosted.org/packages/a4/73/319dfa745dd668efe89309141ded489126461fcecd2b8f3a3cda185129b6/rpds_py-2026.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:538949e262e46caa31ac01bdb3c1e8f642622922cacbabbae6a8445d9dc33eaf", size = 338542, upload-time = "2026-06-30T07:15:16.267Z" }, + { url = "https://files.pythonhosted.org/packages/21/63/4239893be1c4d09b709b1a8f6be4188f0870084ff547f46606b8a75f1b03/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55927d532399c2c646100ff7feb48eaa940ad70f42cd68e1328f3ded9f81ca24", size = 368180, upload-time = "2026-06-30T07:15:17.62Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ca/9c5de382225234ceb37b1844ebdb140db12b2a278bb9efe2fcd19f6c82ce/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f56f1695bc5c0871cbc33dc0130fcf503aab0c57dcc5a6700a4f49eba4f2652e", size = 375067, upload-time = "2026-06-30T07:15:18.952Z" }, + { url = "https://files.pythonhosted.org/packages/87/dc/863f69d1bf04ade34b7fe0d59b9fdf6f0135fe2d7cbca74f1d665589559d/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:270b293dae9058fc9fcedab50f13cebf46fb8ed1d1d54e0521a9da5d6b211975", size = 490509, upload-time = "2026-06-30T07:15:20.434Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ef/eac16a12048b45ec7c7fa94f2be3438a5f26bf9cc8580b18a1cfd609b7f6/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:127565fead0a10943b282957bd5447804ff3160ad79f2ad2635e6d249e380680", size = 382754, upload-time = "2026-06-30T07:15:21.831Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/d2f3f532616be4d06c316ef119683e832bd3d41e112bf3a88f4151c95b17/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecabd69db66de867690f9797f2f8fa27ba501bbc24540cbdbdc649cd15888ba6", size = 366189, upload-time = "2026-06-30T07:15:23.371Z" }, + { url = "https://files.pythonhosted.org/packages/e3/29/41a7b0e98a4b44cd676ab7598419623373eb43b20be68c084935c1a8cf88/rpds_py-2026.6.3-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:58eadac9cd119677b60e1cf8ac4052f35949d71b8a9e5556efccbe82533cf22a", size = 377750, upload-time = "2026-06-30T07:15:24.659Z" }, + { url = "https://files.pythonhosted.org/packages/2e/05/ecda0bec46f9a1565090bcdc941d023f6a25aff85fda28f89f8d19878152/rpds_py-2026.6.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7491ee23305ac3eb59e492b6945881f5cd77a6f731061a3f25b77fd40f9e99a4", size = 395576, upload-time = "2026-06-30T07:15:25.987Z" }, + { url = "https://files.pythonhosted.org/packages/68/a8/6ed52f03ee6cb854ce78785cc9a9a672eb880e83fd7224d471f667d151f1/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2c99f7e8ccb3dd6e3e4bfeac657a7b208c9bac8075f4b078c02d7404c34107fa", size = 543807, upload-time = "2026-06-30T07:15:27.356Z" }, + { url = "https://files.pythonhosted.org/packages/8f/d6/156c0d3eea27ba09b92562ba2364ba124c0a061b199e17eac637cd25a5e2/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:62698275682bf121181861295c9181e789030a2d516071f5b8f3c23c170cd0fc", size = 611187, upload-time = "2026-06-30T07:15:28.931Z" }, + { url = "https://files.pythonhosted.org/packages/f1/31/774212ed989c62f7f310220089f9b0a3fb8f40f5443d1727abd5d9f52bc9/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a214c993455f99a89aaeadc9b21241900037adc9d97203e374d75513c5911822", size = 573030, upload-time = "2026-06-30T07:15:30.553Z" }, + { url = "https://files.pythonhosted.org/packages/c9/50/22f73127a41f1ce4f87fe39aadfb9a126345801c274aa93ae88456249327/rpds_py-2026.6.3-cp312-cp312-win32.whl", hash = "sha256:501f9f04a588d6a09179368c57071301445191767c64e4b52a6aa9871f1ef5ed", size = 202185, upload-time = "2026-06-30T07:15:32.027Z" }, + { url = "https://files.pythonhosted.org/packages/04/3a/f0ee4d4dde9d3b69dedf1b5f74e7a40017046d55052d173e418c6a94f960/rpds_py-2026.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:2c958bf94822e9290a40aaf2a822d4bc5c88099093e3948ad6c571eca9272e5f", size = 220394, upload-time = "2026-06-30T07:15:33.359Z" }, + { url = "https://files.pythonhosted.org/packages/f3/83/3382fe37f809b59f02aac04dbc4e765b480b46ee0227ed516e3bdc4d3dfc/rpds_py-2026.6.3-cp312-cp312-win_arm64.whl", hash = "sha256:22bffe6042b9bcb0822bcd1955ec00e245daf17b4344e4ed8e9551b976b63e96", size = 215753, upload-time = "2026-06-30T07:15:34.778Z" }, + { url = "https://files.pythonhosted.org/packages/a4/9e/b818ee580026ec578138e961027a68820c40afeb1ec8f6819b54fb99e196/rpds_py-2026.6.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:3cfe765c1da0072636ca06628261e0ea05688e160d5c8a03e0217c3854037223", size = 343012, upload-time = "2026-06-30T07:15:36.005Z" }, + { url = "https://files.pythonhosted.org/packages/f3/6b/686d9dc4359a8f163cfbbf89ee0b4e586431de22fe8248edb63a8cf50d49/rpds_py-2026.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f4d78253f6996be4901669ad25319f842f740eccf4d58e3c7f3dd39e6dde1d8f", size = 338203, upload-time = "2026-06-30T07:15:37.462Z" }, + { url = "https://files.pythonhosted.org/packages/9e/9b/069aa329940f8207615e091f5eedbbd40e1e15eac68a0790fd05ccdf796c/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54f45a148e28767bf343d33a684693c70e451c6f4c0e9904709a723fafbdfc1f", size = 367984, upload-time = "2026-06-30T07:15:39.008Z" }, + { url = "https://files.pythonhosted.org/packages/14/db/34c203e4becff3703e4d3bc121842c00b8689197f398161203a880052f4e/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:842e7b070435622248c7a2c44ae53fa1440e073cc3023bc919fed570884097a7", size = 374815, upload-time = "2026-06-30T07:15:40.253Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7d/8071067d2cc453d916ad836e828c943f575e8a44612537759002a1e07381/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8020133a74bd81b4572dd8e4be028a6b1ebcd70e6726edc3918008c08bee6ee6", size = 490545, upload-time = "2026-06-30T07:15:41.729Z" }, + { url = "https://files.pythonhosted.org/packages/a3/42/da06c5aa8f0484ff07f270787434204d9f4535e2f8c3b51ed402267e63c3/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cdc7e35386f3847df728fbcb5e887e2d79c19e2fa1eba9e51b6621d23e3243af", size = 382828, upload-time = "2026-06-30T07:15:43.327Z" }, + { url = "https://files.pythonhosted.org/packages/57/d7/fe978efc2ae50abe48eb7464668ea99f53c010c60aeebb7b35ad27f23661/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acac386b453c2516111b50985d60ce46e7fadb5ea71ae7b25f4c946935bf27cf", size = 365678, upload-time = "2026-06-30T07:15:44.992Z" }, + { url = "https://files.pythonhosted.org/packages/69/9d/1d8922e1990b2a6eb532b6ff53d3e73d2b3bbffc84116c75826bee73dfc6/rpds_py-2026.6.3-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:425560c6fa0415f27261727bb20bd097568485e5eb0c121f1949417d1c516885", size = 377811, upload-time = "2026-06-30T07:15:46.523Z" }, + { url = "https://files.pythonhosted.org/packages/b1/3d/198dceafb4fb034a6a47347e1b0735d34e0bd4a50be4e898d408ee66cb14/rpds_py-2026.6.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a550fb4950a06dde3beb4721f5ad4b25bf4513784665b0a8522c792e2bd822a4", size = 395382, upload-time = "2026-06-30T07:15:47.955Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f1/13968e49655d40b6b19d8b9140296bbc6f1d86b3f0f6c346cf9f1adddf4b/rpds_py-2026.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f4bca01b63096f606e095734dd56e74e175f94cfbf24ff3d63281cec61f7bb7", size = 543832, upload-time = "2026-06-30T07:15:49.33Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ab/289bcb1b90bd3e40a2900c561fa0e2087345ecbb094f0b870f2345142b7c/rpds_py-2026.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ccffae9a092a00deb7efd545fe5e2c33c33b88e7c054337e9a74c179347d0b7d", size = 611011, upload-time = "2026-06-30T07:15:50.847Z" }, + { url = "https://files.pythonhosted.org/packages/1e/16/5043105e679436ccfbc8e5e0dd2d663ed18a8b8113515fd06a5e5d77c83e/rpds_py-2026.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1cf01971c4f2c5553b772a542e4aaf191789cd331bc2cd4ff0e6e65ba49e1e97", size = 572431, upload-time = "2026-06-30T07:15:52.394Z" }, + { url = "https://files.pythonhosted.org/packages/85/ed/adab103321c0a6565d5ae1c2998349bc3ee175b82ccc5ae8fc04cc413075/rpds_py-2026.6.3-cp313-cp313-win32.whl", hash = "sha256:8c3d1e9c15b9d51ca0391e13da1a25a0a4df3c58a37c9dc368e0736cf7f69df0", size = 201710, upload-time = "2026-06-30T07:15:53.894Z" }, + { url = "https://files.pythonhosted.org/packages/7b/ed/a03b09668e74e5dabbf2e211f6468e1820c0552f7b0500082da31841bf7b/rpds_py-2026.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:9250a9a0a6fd4648b3f868da8d91a4c52b5811a62df58e753d50ae4454a36f80", size = 219454, upload-time = "2026-06-30T07:15:55.25Z" }, + { url = "https://files.pythonhosted.org/packages/27/17/b8642c12930b71bc2b25831f6708ccf0f75abcd11883932ec9ce54ba3a78/rpds_py-2026.6.3-cp313-cp313-win_arm64.whl", hash = "sha256:900a67df3fd1660b035a4761c4ce73c382ea6b35f90f9863c36c6fd8bf8b09bb", size = 215063, upload-time = "2026-06-30T07:15:56.573Z" }, + { url = "https://files.pythonhosted.org/packages/b6/36/7fbe9dcdaf857fb3f63c2a2284b62492d95f5e8334e947e5fb6e7f68c9be/rpds_py-2026.6.3-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:931908d9fc855d8f74783377822be318edb6dcb19e47169dc038f9a1bf60b06e", size = 344510, upload-time = "2026-06-30T07:15:57.921Z" }, + { url = "https://files.pythonhosted.org/packages/ba/54/f785cc3d3f60839ca57a5af4927a9f347b07b2799c373fc20f7949f87c7e/rpds_py-2026.6.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d7469697dce35be237db177d42e2a2ee26e6dcc5fc052078a6fefabd288c6edd", size = 339495, upload-time = "2026-06-30T07:15:59.238Z" }, + { url = "https://files.pythonhosted.org/packages/63/ef/d4cdaf309e6b095b43597103cf8c0b951d6cca2acce68c474f75ec12e0c7/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcfbcf66006befb9fd2aeaa9e01feaf881b4dc330a02ba07d2322b1c11be7b5d", size = 369454, upload-time = "2026-06-30T07:16:01.021Z" }, + { url = "https://files.pythonhosted.org/packages/96/4a/9559a68b7ee15db09d7981212e8c2e219d2a1d6d4faa0391d813c3496a36/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:847927daf4cffbd4e90e42bc890069897101edd015f956cb8721b3473372edda", size = 374583, upload-time = "2026-06-30T07:16:02.287Z" }, + { url = "https://files.pythonhosted.org/packages/ef/75/8964aa7d2c6e8ac43eba8eb6e6b0fdda1f46d39f2fc3e6aa9f2cb17f485d/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aca6c1ef08a82bfe327cc156da694660f599923e2e6665b6d81c9c2d0ac9ffc8", size = 492919, upload-time = "2026-06-30T07:16:03.723Z" }, + { url = "https://files.pythonhosted.org/packages/8f/97/6908094ac804115e65aedfd90f1b5fee4eebebd3f6c4cfc5419939267565/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ae50181a047c871561212bb97f7932a2d45fb53e947bd9b57ebad85b529cbc53", size = 383725, upload-time = "2026-06-30T07:16:05.305Z" }, + { url = "https://files.pythonhosted.org/packages/d1/9c/0d1fdc2e7aba23e290d603bc494e97bd205bae262ce33c6b32a69768ed5e/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc319e5a1de4b6913aac94bf6a2f9e847371e0a140a43dd4991db1a09bc2d504", size = 367255, upload-time = "2026-06-30T07:16:07.086Z" }, + { url = "https://files.pythonhosted.org/packages/c4/fe/f0209ca4a9ed074bc8acb44dfd0e81c3122e94c9689f5645b7973a866719/rpds_py-2026.6.3-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:e4316bf32babbed84e691e352faf967ce2f0f024174a8643c37c94a1080374fc", size = 379060, upload-time = "2026-06-30T07:16:08.525Z" }, + { url = "https://files.pythonhosted.org/packages/c6/8d/f1cc54c616b9d8897de8738aac148d20afca93f68187475fe194d09a71b9/rpds_py-2026.6.3-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8c6e5a2f750cc71c3e3b11d71661f21d6f9bc6cebc6564b1466417a1ec03ec77", size = 395960, upload-time = "2026-06-30T07:16:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/fb/04/aafff00f73aeca2945f734f1d483c64ab8f472d0864ab02377fd8e89c3b2/rpds_py-2026.6.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4470ce197d4090875cf6affbf1f853338387428df97c4fb7b7106317b8214698", size = 545356, upload-time = "2026-06-30T07:16:11.816Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cc/e229663b9e4ddac5a4acbe9085dd80a71af2a5d356b8b39d6bff233f24b0/rpds_py-2026.6.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ea964164cc9afa72d4d9b23cc28dafae93693c0a53e0b42acbff15b22c3f9ddd", size = 612319, upload-time = "2026-06-30T07:16:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/e3/7a/8a0e6d3e6cd066af108b71b43122c3fe158dd9eb86acac626593a2582eb1/rpds_py-2026.6.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:639c8929aa0afe81be836b04de888460d6bed38b9c54cfc18da8f6bfabf5af5d", size = 573508, upload-time = "2026-06-30T07:16:15.23Z" }, + { url = "https://files.pythonhosted.org/packages/87/03/2a69ab618a789cf6cf85c86bb844c62d090e700ab1a2aa676b3741b6c516/rpds_py-2026.6.3-cp314-cp314-win32.whl", hash = "sha256:882076c00c0a608b131187055ddc5ae29f2e7eaf870d6168980420d58528a5c8", size = 202504, upload-time = "2026-06-30T07:16:16.893Z" }, + { url = "https://files.pythonhosted.org/packages/85/62/a3892ba945f4e24c78f352e5de3c7620d8479f73f211406a97263d13c7d2/rpds_py-2026.6.3-cp314-cp314-win_amd64.whl", hash = "sha256:0be972be84cfcaf46c8c6edf690ca0f154ac17babf1f6a955a51579b34ad2dc5", size = 220380, upload-time = "2026-06-30T07:16:18.108Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e7/c2bd44dc831931815ad11ebb5f430b5a0a4d3caa9de837107876c30c3432/rpds_py-2026.6.3-cp314-cp314-win_arm64.whl", hash = "sha256:2a9c6f195058cb45335e8cc3802745c603d716eb96bc9625950c1aac71c0c703", size = 215976, upload-time = "2026-06-30T07:16:19.654Z" }, + { url = "https://files.pythonhosted.org/packages/79/9c/fff7b74bce9a091ec9a012a03f9ff5f69364eaf9451060dfc4486da2ffdd/rpds_py-2026.6.3-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:f90938e92afda60266da758ee7d363447f7f0138c9559f9e1811629580582d90", size = 346840, upload-time = "2026-06-30T07:16:21.268Z" }, + { url = "https://files.pythonhosted.org/packages/e9/44/77bcb1168b33704908295533d27f10eb811e9e3e193e8993dc99572211d3/rpds_py-2026.6.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ec829541c45bca16e61c7ae50c20501f213605beb75d1aba91a6ee37fbbb56a4", size = 340282, upload-time = "2026-06-30T07:16:22.875Z" }, + { url = "https://files.pythonhosted.org/packages/87/3c/7a9081c7c9e645b39efe19e4ffbeccd80add246327cd9b888aecffd72317/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afd70d95892096cdb26f15a00c45907b17817577aa8d1c76b2dcc2788391f9e9", size = 370403, upload-time = "2026-06-30T07:16:24.415Z" }, + { url = "https://files.pythonhosted.org/packages/f7/69/af47021eb7dad6ff3396cb001c08f0f3c4d06c20253f75be6421a59fe6b7/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:29dfa0533a5d4c94d4dfa1b694fcb56c9c63aad8330ffdd816fd225d0a7a162f", size = 376055, upload-time = "2026-06-30T07:16:26.111Z" }, + { url = "https://files.pythonhosted.org/packages/81/fc/a3bcf517084396a6dd258c592567a3c011ba4557f2fde23dceaf26e74f2e/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:af05d726809bff6b141be124d4c7ce998f9c9c7f30edb1f46c07aa103d540b41", size = 494419, upload-time = "2026-06-30T07:16:27.596Z" }, + { url = "https://files.pythonhosted.org/packages/c9/eb/13d529d1788135425c7bf207f8463458ca5d92e43f3f701365b83e9dffc1/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9826217f048f620d9a712672818bf231442c1b35d96b227a07eabd11b4bb6945", size = 384848, upload-time = "2026-06-30T07:16:29.183Z" }, + { url = "https://files.pythonhosted.org/packages/8e/f4/b7ac49f30013aba8f7b9566b1dd07e81de95e708c1374b7bacc5b9bc5c9c/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:536bceea4fa4acf7e1c61da2b5786304367c816c8895be71b8f537c480b0ea1f", size = 371369, upload-time = "2026-06-30T07:16:30.912Z" }, + { url = "https://files.pythonhosted.org/packages/31/86/6260bafa622f788b07ddec0e52d810305c8b9b0b8c27f58a2ab04bf62b4f/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:bc0011654b91cc4fb2ae701bec0a0ba1e552c0714247fa7af6c59e0ccfa3a4e1", size = 379673, upload-time = "2026-06-30T07:16:32.486Z" }, + { url = "https://files.pythonhosted.org/packages/19/c3/03f1ee79a047b48daeca157c89a18509cde22b6b951d642b9b0af1be660a/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:539d75de9e0d536c84ff18dfeb805398e58227001ce09231a26a08b9aed1ee0e", size = 397500, upload-time = "2026-06-30T07:16:34.471Z" }, + { url = "https://files.pythonhosted.org/packages/f0/95/8ed0cd8c377dca12aea498f119fe639fc474d1461545c39d2b5872eb1c0f/rpds_py-2026.6.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:166cf54d9f44fc6ceb53c7860258dde44a81406646de79f8ed3234fca3b6e538", size = 545978, upload-time = "2026-06-30T07:16:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f2/0eb57f0eaa83f8fc152a7e03de968ab77e1f00732bebc892b190c6eebde7/rpds_py-2026.6.3-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:d34c20167764fbcf927194d532dd7e0c56772f0a5f943fa5ef9e9afbba8fb9db", size = 613350, upload-time = "2026-06-30T07:16:38.213Z" }, + { url = "https://files.pythonhosted.org/packages/5b/de/e0674bdbc3ef7634989b3f854c3f34bc1f587d36e5bfdc5c378d57034619/rpds_py-2026.6.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ea7bb13b7c9a29791f87a0387ba7d3ad3a6d783d827e4d3f27b40a0ff44495e2", size = 576486, upload-time = "2026-06-30T07:16:39.797Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f6/21101359743cd136ada781e8210a85769578422ba460672eea0e29739200/rpds_py-2026.6.3-cp314-cp314t-win32.whl", hash = "sha256:6de4744d05bd1aa1be4ed7ea1189e3979196808008113bbbf899a460966b925e", size = 201068, upload-time = "2026-06-30T07:16:41.316Z" }, + { url = "https://files.pythonhosted.org/packages/a6/b2/9574d4d44f7760c2aa32d92a0a4f41698e33f5b204a0bf5c9758f52c79d5/rpds_py-2026.6.3-cp314-cp314t-win_amd64.whl", hash = "sha256:c7b9a2f8f4d8e90af72571d3d495deebdd7e3c75451f5b41719aee166e940fc2", size = 220600, upload-time = "2026-06-30T07:16:43.091Z" }, + { url = "https://files.pythonhosted.org/packages/08/ae/f23a2697e6ee6340a578b0f136be6483657bef0c6f9497b752bb5c0964bb/rpds_py-2026.6.3-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:e059c5dde6452b44424bd1834557556c226b57781dee1227af23518459722b13", size = 344726, upload-time = "2026-06-30T07:16:44.5Z" }, + { url = "https://files.pythonhosted.org/packages/c3/63/e7b3a1a5358dd32c930a1062d8e15b67fd6e8922e81df9e91706d66ee5c8/rpds_py-2026.6.3-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:2f7c26fbc5acd2522b95d4177fe4710ffd8e9b20529e703ffbf8db4d93903f05", size = 339587, upload-time = "2026-06-30T07:16:46.255Z" }, + { url = "https://files.pythonhosted.org/packages/ec/64/10a85681916ca55fffb91b0a211f84e34297c109243484dd6394660a8a7c/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3086b538543802f84c843911242db20447de00d8752dd0efc936dbcf02218ba", size = 369585, upload-time = "2026-06-30T07:16:48.101Z" }, + { url = "https://files.pythonhosted.org/packages/76/c2/baf95c7c38823e12ba34407c5f5767a89e5cf2233895e56f608167ae9493/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f2e5c5ee828d42cb11760761c0af6507927bec42d0ad5458f97c9203b054617", size = 375479, upload-time = "2026-06-30T07:16:49.93Z" }, + { url = "https://files.pythonhosted.org/packages/6a/94/0aad06c72d65101e11d33528d438cda99a39ce0da99466e156158f2541d3/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed0c1e5d10cdc7135537988c74a0188da68e2f3c30813ba3744ab1e42e0480f9", size = 492418, upload-time = "2026-06-30T07:16:51.641Z" }, + { url = "https://files.pythonhosted.org/packages/b5/17/de3f5a479a1f056535d7489819639d8cd591ea6281d700390b43b1abd745/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c2642a7603ec0b16ed77da4555db3b4b472341904873788327c0b0d7b95f1bb", size = 384123, upload-time = "2026-06-30T07:16:53.622Z" }, + { url = "https://files.pythonhosted.org/packages/46/7d/bf09bd1b145bb2671c03e1e6d1ab8651858d90d8c7dfeadd85a37a934fd8/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e4320744c1ffdd95a603def63344bfab2d33edeab301c5007e7de9f9f5b3885", size = 367351, upload-time = "2026-06-30T07:16:55.241Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ea/1bb734f314b8be319149ddee80b18bd41372bdcfbdf88d28131c0cd37719/rpds_py-2026.6.3-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:a9f4645593036b81bbdb36b9c8e0ea0d1c3fee968c4d59db0344c14087ef143a", size = 378827, upload-time = "2026-06-30T07:16:56.841Z" }, + { url = "https://files.pythonhosted.org/packages/4b/93/d9611e5b25e26df9a3649813ed66193ace9347a7c7fc4ab7cf70e94851c0/rpds_py-2026.6.3-cp315-cp315-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e55d236be29255554da47abe5c577637db7c24a02b8b46f0ca9524c855801868", size = 395966, upload-time = "2026-06-30T07:16:58.557Z" }, + { url = "https://files.pythonhosted.org/packages/c3/cb/99d77e16e5534ae1d90629bbe419ba6ee170833a6a85e3aa1cc41726fbbc/rpds_py-2026.6.3-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:24e9c5386e16669b674a69c156c8eeefcb578f3b3397b713b08e6d60f3c7b187", size = 545680, upload-time = "2026-06-30T07:17:00.164Z" }, + { url = "https://files.pythonhosted.org/packages/59/15/11a29755f790cef7a2f755e8e14f4f0c33f39489e1893a632a2eee59672b/rpds_py-2026.6.3-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:c60924535c75f1566b6eb75b5c31a48a43fef04fa2d0d201acbad8a9969c6107", size = 611853, upload-time = "2026-06-30T07:17:01.962Z" }, + { url = "https://files.pythonhosted.org/packages/68/86/0c27547e21644da938fb530f7e1a8148dd24d02db07e7a5f2567a17ce710/rpds_py-2026.6.3-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:38a2fea2787428f811719ceb9114cb78964a3138838320c29ac39526c79c16ba", size = 573715, upload-time = "2026-06-30T07:17:03.693Z" }, + { url = "https://files.pythonhosted.org/packages/29/71/4d8fcf700931815594bce892255bbd973b94efaf0fc1932b0590df18d886/rpds_py-2026.6.3-cp315-cp315-win32.whl", hash = "sha256:d483fe17f01ad64b7bf7cc38fcefff1ca9fb83f8c2b2542b68f97ffe0611b369", size = 202864, upload-time = "2026-06-30T07:17:05.746Z" }, + { url = "https://files.pythonhosted.org/packages/eb/62/b577562de0edbb55b2be85ce5fd09c33e386b9b13eee09833af4240fd5c4/rpds_py-2026.6.3-cp315-cp315-win_amd64.whl", hash = "sha256:67e3a721ffc5d8d2210d3671872298c4a84e4b8035cfe42ffd7cde35d772b146", size = 220430, upload-time = "2026-06-30T07:17:07.471Z" }, + { url = "https://files.pythonhosted.org/packages/c8/95/d6d0b2509825141eef60669a5739eec88dbc6a48053d6c92993a5704defe/rpds_py-2026.6.3-cp315-cp315-win_arm64.whl", hash = "sha256:6e84adbcf4bf841aed8116a8264b9f50b4cb3e7bd89b516122e616ac56ca269e", size = 215877, upload-time = "2026-06-30T07:17:09.008Z" }, + { url = "https://files.pythonhosted.org/packages/b7/bf/f3ea278f0afd615c1d0f19cb69043a41526e2bb600c2b536eb192218eb27/rpds_py-2026.6.3-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:ae6dd8f10bd17aad820876d24caec9efdafd80a318d16c0a48edb5e136902c6b", size = 346933, upload-time = "2026-06-30T07:17:10.762Z" }, + { url = "https://files.pythonhosted.org/packages/9d/29/9907bdf1c5346763cf10b7f6852aad86652168c259def904cbe0082c5864/rpds_py-2026.6.3-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:bdbd97738551fca3917c1bd7188bec1920bb520104f28e7e1007f9ceb17b7690", size = 340274, upload-time = "2026-06-30T07:17:12.266Z" }, + { url = "https://files.pythonhosted.org/packages/6f/2c/8e03767b5778ef25cebf74a7a91a2c3806f8eced4c92cb7406bbe060756d/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b95977e7211527ab0ba576e286d023389fbeeb32a6b7b771665d333c60e5342", size = 370763, upload-time = "2026-06-30T07:17:14.107Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e1/df2a7e1ba2efd796af26194250b8d42c821b46592311595162af9ef0528d/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d15fde0e6fb0d88a60d221204873743e5d9f0b7d29165e62cd86d0413ad74ba6", size = 376467, upload-time = "2026-06-30T07:17:15.76Z" }, + { url = "https://files.pythonhosted.org/packages/6b/de/8a0814d1946af29cb068fb259aa8622f856df1d0bab58429448726b537f5/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a136d453475ac0fcbda502ef1e6504bd28d6d904700915d278deeab0d00fe140", size = 496689, upload-time = "2026-06-30T07:17:17.308Z" }, + { url = "https://files.pythonhosted.org/packages/df/f3/f19e0c852ba13694f5a79f3b719331051573cb5693feacf8a88ffffc3a71/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f826877d462181e5eb1c26a0026b8d0cab05d99844ecb6d8bf3627a2ca0c0442", size = 385340, upload-time = "2026-06-30T07:17:18.928Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ae/7ec3a9d2d4351f99e37bcb06b6b6f954512646bfdbf9742e1de727865daf/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79486287de1730dbaff3dbd124d0ca4d2ef7f9d29bf2544f1f93c09b5bcbbd12", size = 372179, upload-time = "2026-06-30T07:17:20.539Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ac/9cee911dff2aaa9a5a8354f6610bf2e6a616de9197c5fff4f54f82585f1e/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:808345f53cb952433ca2816f1604ff3515608a81784954f38d4452acfe8e61d5", size = 379993, upload-time = "2026-06-30T07:17:22.212Z" }, + { url = "https://files.pythonhosted.org/packages/83/6b/7c2a07ba88d1e9a936612f7a5d067467ed03d971d5a06f7d309dff044a7e/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1967debc37f64f2c4dc90a7f563aec558b471966e12adcac4e1c4240496b6ebf", size = 398909, upload-time = "2026-06-30T07:17:23.66Z" }, + { url = "https://files.pythonhosted.org/packages/97/0b/776ffcb66783637b0031f6d58d6fb55913c8b5abf00aeecd46bf933fb477/rpds_py-2026.6.3-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:f0840b5b17057f7fd918b76183a4b5a0635f43e14eb2ce60dce1d4ee4707ea00", size = 546584, upload-time = "2026-06-30T07:17:25.264Z" }, + { url = "https://files.pythonhosted.org/packages/55/33/ba3bc04d7092bd553c9b2b195624992d2cc4f3de1f380b7b93cbee67bd79/rpds_py-2026.6.3-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:faa679d19a6696fd54259ad321251ad77a13e70e03dd834daa762a44fb6196ef", size = 614357, upload-time = "2026-06-30T07:17:26.888Z" }, + { url = "https://files.pythonhosted.org/packages/8b/71/14edf065f04630b1a8472f7653cad03f6c478bcf95ea0e6aed55451e33ea/rpds_py-2026.6.3-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:23a439f31ccbeff1574e24889128821d1f7917470e830cf6544dced1c662262a", size = 576533, upload-time = "2026-06-30T07:17:28.546Z" }, + { url = "https://files.pythonhosted.org/packages/ba/76/65002b08596c389105720a8c0d22298b8dc25a4baf89b2ce431343c8b1de/rpds_py-2026.6.3-cp315-cp315t-win32.whl", hash = "sha256:913ca42ccad3f8cc6e292b587ae8ae49c8c823e5dce51a736252fc7c7cdfa577", size = 201204, upload-time = "2026-06-30T07:17:30.193Z" }, + { url = "https://files.pythonhosted.org/packages/8c/97/d855d6b3c322d1f27e26f5241c42016b56cf01377ea8ed348285f54652f0/rpds_py-2026.6.3-cp315-cp315t-win_amd64.whl", hash = "sha256:ae3d4fe8c0b9213624fdce7279d70e3b148b682ca20719ebd193a23ebfa47324", size = 220719, upload-time = "2026-06-30T07:17:31.788Z" }, + { url = "https://files.pythonhosted.org/packages/b4/9c/f0d19ac587fd0e4ab6b72cda355e9c5a6166b01ef7e064e437aef8eb9fef/rpds_py-2026.6.3-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:4cf2d36a2357e4d07bb5a4f98801265327b48256867816cfd2ceb001e9754a8f", size = 349791, upload-time = "2026-06-30T07:17:33.315Z" }, + { url = "https://files.pythonhosted.org/packages/38/c7/1d49d204c9fd2ee6c537601dc4c1ba921e03363ca576bfab94a00254ac9a/rpds_py-2026.6.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:30c6dc199b24a5e3e81d50da0f00858c5bbdb2617a750395687f4339c5818171", size = 352842, upload-time = "2026-06-30T07:17:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/ac/e5/c0b5dc93cd0d4c06ce1f438907649514e2ea077bcd911e3154a51e96c38e/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9891e594296ab9dada6551c8e7b387b2721f27a67eecd528412e8906247a7b90", size = 382094, upload-time = "2026-06-30T07:17:36.514Z" }, + { url = "https://files.pythonhosted.org/packages/0d/54/ec0e907b4ca8d541112db352409bd15f871c9b243e0c92c9b5a46ae96f01/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5c2dc92304aa48a4a60443b548bb12f12e119d4b72f314015e67b9e1be97fca", size = 388662, upload-time = "2026-06-30T07:17:38.235Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f4/921c22a4fd0f1c1ac13a3996ffbf0aa67951e2c8ad0d1d9574938a2932e8/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:127e08c0642d880cf32ca47ec2a4a77b901f7e2dd1ad9762adb13955d72ffcc9", size = 504896, upload-time = "2026-06-30T07:17:39.689Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1b/a114b972cefa1ab1cdb3c7bb177cd3844a12826c507c722d3a73516dbbaf/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8bb68f03f395eb793220b45c097bd4d8c32944393da0fad8b999efac0868fc8c", size = 391545, upload-time = "2026-06-30T07:17:41.336Z" }, + { url = "https://files.pythonhosted.org/packages/4e/98/af9b3db77d47fcbe6c8c1f36e2c2147ec70292819e99c325f871584a1c11/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3450b693fde92133e9f51060568a4c31fcca76d5e53bbd611e689ca446517e9", size = 380059, upload-time = "2026-06-30T07:17:42.857Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ba/0efd8668b97c1d26a61566386c636a7a7a09829e474fdf807caa15a2c844/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:5e8d07bddee435a2ff6f1920e18feff28d0bc4533e42f4bf6927fbd073312c41", size = 393235, upload-time = "2026-06-30T07:17:44.637Z" }, + { url = "https://files.pythonhosted.org/packages/62/90/8c139ee9690f73b0829f32647de6f40d826f8f443af6fa72644f96351aac/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3a83ae6c67b7676b9878378547ca8e93ed77a580037bcbcd1d32f739e1e6089c", size = 413008, upload-time = "2026-06-30T07:17:46.225Z" }, + { url = "https://files.pythonhosted.org/packages/9c/97/0043896fdd7828ce09a1d9a8b06433714d0960fc4ff3fc4aa72b666b764e/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2bfd04c19ddbd6640de0b51894d764bd2758854d5b75bd102d2ef10cb9c293a9", size = 558118, upload-time = "2026-06-30T07:17:47.759Z" }, + { url = "https://files.pythonhosted.org/packages/f6/40/02355f0e134f783a8f9814c4680a1bd311d37671577a5964ea838573ff37/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:ca6546b66be9dc4738b1b043d5ebd5488c66c578c5ff0fd0e8065313fe3afb76", size = 623138, upload-time = "2026-06-30T07:17:49.355Z" }, + { url = "https://files.pythonhosted.org/packages/10/85/48f0abdcef5cce4e034c7a5b0ceeceba0b01bf0d942824f4bb720afe2dec/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:8e65860d238379ed982fd9ba690579b5e95af2f4840f99c772816dbe573cb826", size = 586486, upload-time = "2026-06-30T07:17:51.141Z" }, +] + +[[package]] +name = "ruff" +version = "0.15.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/06/ae069393fc66e8ff33036d4b368003833bf6e88ccf182e17e7a2f1c754fd/ruff-0.15.22.tar.gz", hash = "sha256:3f15175b1fb580126f58285a5dae6b2ea89000136d980c64499211f116b54809", size = 4785063, upload-time = "2026-07-16T15:14:13.244Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/18/ee54b7ae1e121be7a28ea6da4b67564ebb0530e183a54415ab7e3bcd2c4e/ruff-0.15.22-py3-none-linux_armv6l.whl", hash = "sha256:44423e73493737f5e7c5b41d475483898ff37afcdae38bc3da5085e29af1c2d8", size = 10781258, upload-time = "2026-07-16T15:13:19.452Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d2/2520cb14761ddbeaf57642a76942fc36adcbdbe53b4532241995f6fc485c/ruff-0.15.22-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b82c6482946e9eda7ff2e091d25b8bad3f718684e1916d41bd56873cee05b697", size = 10999477, upload-time = "2026-07-16T15:13:23.318Z" }, + { url = "https://files.pythonhosted.org/packages/c9/10/74e53572aa758dfaa678c2a2646b5c5515d884b7ca56be4d2ce03ca4b560/ruff-0.15.22-py3-none-macosx_11_0_arm64.whl", hash = "sha256:11c1c715af53a09f714e011106bffc419751ec8232fcb5da42173284ea3fec6f", size = 10466716, upload-time = "2026-07-16T15:13:26.162Z" }, + { url = "https://files.pythonhosted.org/packages/1e/cc/44eaaf0844e028182f2d0a8f2190d0f359159aed0a9e5ab861d892f1ae2a/ruff-0.15.22-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:742a29cf29bddb7c8327895d6a10e0e6c5b38a96dd407af9b5d0857f809c0576", size = 10892644, upload-time = "2026-07-16T15:13:29.229Z" }, + { url = "https://files.pythonhosted.org/packages/9f/21/8edf559014d2b0f82beea19cfb713993ad802ccda16868769979c6090a84/ruff-0.15.22-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72af58b951b0ae395935ae79763dc349bc0eb706319d28f7a33ad2cfb3cfc178", size = 10576719, upload-time = "2026-07-16T15:13:32.35Z" }, + { url = "https://files.pythonhosted.org/packages/bf/1e/3a13abd392a3b50b62e5938a831f9ab6e588358cacad5c18545b716d2182/ruff-0.15.22-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d425005c1835eb24e2ee4161cb90e8db263415f4a71c8c72c33abaa6c0c224", size = 11376494, upload-time = "2026-07-16T15:13:35.958Z" }, + { url = "https://files.pythonhosted.org/packages/bf/3e/422d3d95bcf04dd78e1aeac22184d4f9a8fb2c01865d39d44618484a0317/ruff-0.15.22-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8b9b3f8779a4f08c969defc3c8c35abffaa757e601ed5ae66d6d1db6519969a", size = 12208370, upload-time = "2026-07-16T15:13:39.185Z" }, + { url = "https://files.pythonhosted.org/packages/1e/91/5d065a0e0a02bf4813f5119ad278462eed081d2b832eb7c021ade0ec9e65/ruff-0.15.22-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e0dd1b2e4d3d585f897a0d137cbf4eaf6223bef4e8ce34d6bb12556c5f9249e", size = 11581098, upload-time = "2026-07-16T15:13:42.132Z" }, + { url = "https://files.pythonhosted.org/packages/f6/f9/a0d4871d12fae702eb1f41b686caf05f1f8b124dc6db6f784f53d74918fa/ruff-0.15.22-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:365523eb91d9224e1bcb03b022fbf0facb8f9e23792a2c53d9d4b3924bdbdebb", size = 11399422, upload-time = "2026-07-16T15:13:45.2Z" }, + { url = "https://files.pythonhosted.org/packages/18/80/c843a5176cddbceb0b7e8dd41cf9993490796c1c469348d384f5a5c13c56/ruff-0.15.22-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:fabfd168afdf29fee5be98b831efa9683c94d7c5a3b58b9ce5a2e38444589a74", size = 11381683, upload-time = "2026-07-16T15:13:48.46Z" }, + { url = "https://files.pythonhosted.org/packages/d4/00/8485de0ae92239438a36cfc51350db9b9e85c9ebdfaea91b18e422706662/ruff-0.15.22-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:225dbf095a87f1d9f90f5fd7924d2613ee452a75a4308c63a8f50f761787aa7c", size = 10850295, upload-time = "2026-07-16T15:13:51.655Z" }, + { url = "https://files.pythonhosted.org/packages/fa/91/24977ec2ec72eaf15e4394ace2959fdff2dd1e14f03e005e838023407169/ruff-0.15.22-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1877d63b9d24ed278744f1523fd11b85540566d54641f97c566d7d9dc5ca5296", size = 10579640, upload-time = "2026-07-16T15:13:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/9c/47/9b51216951974df1f263ac19da550d34252e0ed7218c25f10c5ef9ed7517/ruff-0.15.22-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a1606c510bd7215680d32efab38965f7cdec3ef69f5170a3f4791404ffdd5262", size = 11105077, upload-time = "2026-07-16T15:13:57.915Z" }, + { url = "https://files.pythonhosted.org/packages/c2/47/20e9d4a3b8016778acea5fc32bb50d35d207500a17ddb529ffa6996feef8/ruff-0.15.22-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:630479b18625f5ffc373f77603a22a9f8ac0acd7ff0501178b5db28ec71e9c64", size = 11490980, upload-time = "2026-07-16T15:14:01.032Z" }, + { url = "https://files.pythonhosted.org/packages/4d/76/3f72d8fc38c1cb77b38c56a70da9d0c17700cc1cc50f9649c9d3c8f5ba71/ruff-0.15.22-py3-none-win32.whl", hash = "sha256:e5ba0e4a13fd14abbed2a77b517a3911290c6c6c59ef67784328d1668fab76cf", size = 10789165, upload-time = "2026-07-16T15:14:04.16Z" }, + { url = "https://files.pythonhosted.org/packages/cb/46/4965251734c2b6fcdca1b1b187d20bcac3af0ee5b083b89c910bb961ce3a/ruff-0.15.22-py3-none-win_amd64.whl", hash = "sha256:9be63ba1eb936acd2d1342fb8337c356353706fce233b2a15a09a97037e6acde", size = 11938297, upload-time = "2026-07-16T15:14:07.316Z" }, + { url = "https://files.pythonhosted.org/packages/57/c9/e69b1ff4c8b69093ef08b8919ab767af0569666865b39c30a8795d88d3c6/ruff-0.15.22-py3-none-win_arm64.whl", hash = "sha256:e1168075b72158510839f250027659cdd78476f40507dd517892304c41318661", size = 11298172, upload-time = "2026-07-16T15:14:10.51Z" }, +] + +[[package]] +name = "safetensors" +version = "0.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/45/06/f955dbbb1859e3bd23c8ac6141af5106e7ad5fedec4a3a6e3d60f94b7001/safetensors-0.8.0.tar.gz", hash = "sha256:fabaf3e0f18a6618d9b36560682562157f77c2b71fcffc7b432be2baed9d753d", size = 325846, upload-time = "2026-06-09T07:52:25.563Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/a0/f718cda65b05407d228f97602cf60dca269c979867aa5beb25410de26cd3/safetensors-0.8.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c554f85858e05226d3c2828e32395e677434685d6d94594a41643361c5e837f0", size = 473568, upload-time = "2026-06-09T07:52:18.829Z" }, + { url = "https://files.pythonhosted.org/packages/f5/b1/fa7c600e7dceae12e9606c7578cbc9ff1e1ed55844883ee5c92205e86226/safetensors-0.8.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:c80201d22cbf405b80647a60ada77bba06c8fba2da2743ba1e89cdcc39a81f25", size = 484562, upload-time = "2026-06-09T07:52:17.518Z" }, + { url = "https://files.pythonhosted.org/packages/09/7d/65a7de0af421317bb36a067241e4235fff194eed60b961ed6d3f59a3fc60/safetensors-0.8.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a46e5ff292c356d6991e60942ba7f79817682d3a2cef0702136448cb9c4d235", size = 502844, upload-time = "2026-06-09T07:52:07.624Z" }, + { url = "https://files.pythonhosted.org/packages/91/4f/3175c9d75634e0e0dda0082794193521035edd7c70a6f212bf33ca06ddf4/safetensors-0.8.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4124502b78f03534117c848f87a39b8f31e577b15eff423bf8bfb95f2a8c30d0", size = 511823, upload-time = "2026-06-09T07:52:09.565Z" }, + { url = "https://files.pythonhosted.org/packages/20/87/846c289e7aa2299eff406335717cf43ce8777194ece8aad75772e0411615/safetensors-0.8.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7bc0a787ba8a35be368ee3574edfa2b1ad389eebd0a72e482ae275490e3f6c98", size = 633461, upload-time = "2026-06-09T07:52:11.128Z" }, + { url = "https://files.pythonhosted.org/packages/76/22/8d64d9df2c45d5ded401df889d0ad90882804ca172d79ec4f0df8f727fe0/safetensors-0.8.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040070828e36dc8e122178bbbd5830ff9e97920affb84cbe0f46442497bed358", size = 545148, upload-time = "2026-06-09T07:52:13.603Z" }, + { url = "https://files.pythonhosted.org/packages/28/50/f203ff3a3ddfe19308efc83c5a3a29ed02bf786732ec35e68bf9162f3365/safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd6f3f93c9a0a7cc2788ee63fb763353d4bd2e89b0751bc78fcf7dda00bea774", size = 516040, upload-time = "2026-06-09T07:52:16.29Z" }, + { url = "https://files.pythonhosted.org/packages/46/fb/cdaed17ceb2948784fd9c36b6fd3e951b608547cea81a48e8ee6f8cfdfcb/safetensors-0.8.0-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:fcdd41ec4628fee5799f807c73c353629130fbd942aa23d83c623dd6c9d52d78", size = 513832, upload-time = "2026-06-09T07:52:12.37Z" }, + { url = "https://files.pythonhosted.org/packages/0d/49/1e15de264dcc3b77943d2d0c56a95809956883b1c2d6d585c792523f180b/safetensors-0.8.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e9f537aa183a38ace122d27303dcd986b26bd2a7591f9181d7f0c396f4677ca", size = 559930, upload-time = "2026-06-09T07:52:14.743Z" }, + { url = "https://files.pythonhosted.org/packages/2a/43/bf38443278eab4b1be1fce2931e2b012ad9cb7df52ada751d0aab8f7659a/safetensors-0.8.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:87eec7ffed2b809f05a398a8becb7d013f19f7837cd15d9748580d6cf30dbaf4", size = 678670, upload-time = "2026-06-09T07:52:20.032Z" }, + { url = "https://files.pythonhosted.org/packages/72/e3/68cd3fa5b48488e84add63e04cb12f3bc28ae4638c06d4508c6e88823d0e/safetensors-0.8.0-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:4a95ae2b05d7726d751da4ebf626a2ca782b706e101bd894c95bc2450b1cffcc", size = 786679, upload-time = "2026-06-09T07:52:21.322Z" }, + { url = "https://files.pythonhosted.org/packages/29/4b/1c19c509d56e01f4fbb3d0a2e597450f6cc04d1d56cf52defb0a62dfd715/safetensors-0.8.0-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:3ae091f16662658bdc019a4ff6cb4c085bb7d725eb5978b183ffd265863b6d2d", size = 765683, upload-time = "2026-06-09T07:52:22.594Z" }, + { url = "https://files.pythonhosted.org/packages/27/43/41c1621732edd934d868a00d1b891584c892a7b62a9aab82ea5a0a5623ee/safetensors-0.8.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:8e080062fcde23be189565e1c3305d16751a218ecf9412c8601e64204eb6f846", size = 722361, upload-time = "2026-06-09T07:52:23.924Z" }, + { url = "https://files.pythonhosted.org/packages/8e/3f/73ccf82579412b4a71c4ca673f10b5f1f888d7cf5af7fe24f27d30307be4/safetensors-0.8.0-cp310-abi3-win32.whl", hash = "sha256:2ddf52eac562eda224f99acfa7889d02968c1fd59a5b011ae7d8137c37e9c02d", size = 342401, upload-time = "2026-06-09T07:52:28.895Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6d/3fba214c1e5e0f69991677ec3bc17023f0421776975e1de0c682dca475e2/safetensors-0.8.0-cp310-abi3-win_amd64.whl", hash = "sha256:096ec1a98435df7beb08853bb5aa9081a84f23d0adc67ed1a0a10550f608373f", size = 355540, upload-time = "2026-06-09T07:52:27.832Z" }, + { url = "https://files.pythonhosted.org/packages/8d/fc/7eedc3510d97878876e32774eebbeb61c43f148a96e915c84229a3e967aa/safetensors-0.8.0-cp310-abi3-win_arm64.whl", hash = "sha256:f7838e5135a406ad3e02efdcb8cf2e5397d368b0154537c4fec682dbc544d452", size = 340500, upload-time = "2026-06-09T07:52:26.745Z" }, +] + +[[package]] +name = "scipy" +version = "1.15.3" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/2f/4966032c5f8cc7e6a60f1b2e0ad686293b9474b65246b0c642e3ef3badd0/scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c", size = 38702770, upload-time = "2025-05-08T16:04:20.849Z" }, + { url = "https://files.pythonhosted.org/packages/a0/6e/0c3bf90fae0e910c274db43304ebe25a6b391327f3f10b5dcc638c090795/scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253", size = 30094511, upload-time = "2025-05-08T16:04:27.103Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b1/4deb37252311c1acff7f101f6453f0440794f51b6eacb1aad4459a134081/scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f", size = 22368151, upload-time = "2025-05-08T16:04:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/f457626e3cd3c29b3a49ca115a304cebb8cc6f31b04678f03b216899d3c6/scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92", size = 25121732, upload-time = "2025-05-08T16:04:36.596Z" }, + { url = "https://files.pythonhosted.org/packages/db/0a/92b1de4a7adc7a15dcf5bddc6e191f6f29ee663b30511ce20467ef9b82e4/scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82", size = 35547617, upload-time = "2025-05-08T16:04:43.546Z" }, + { url = "https://files.pythonhosted.org/packages/8e/6d/41991e503e51fc1134502694c5fa7a1671501a17ffa12716a4a9151af3df/scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40", size = 37662964, upload-time = "2025-05-08T16:04:49.431Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/3df8f83cb15f3500478c889be8fb18700813b95e9e087328230b98d547ff/scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e", size = 37238749, upload-time = "2025-05-08T16:04:55.215Z" }, + { url = "https://files.pythonhosted.org/packages/93/3e/b3257cf446f2a3533ed7809757039016b74cd6f38271de91682aa844cfc5/scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c", size = 40022383, upload-time = "2025-05-08T16:05:01.914Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/55bc4881973d3f79b479a5a2e2df61c8c9a04fcb986a213ac9c02cfb659b/scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13", size = 41259201, upload-time = "2025-05-08T16:05:08.166Z" }, + { url = "https://files.pythonhosted.org/packages/96/ab/5cc9f80f28f6a7dff646c5756e559823614a42b1939d86dd0ed550470210/scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b", size = 38714255, upload-time = "2025-05-08T16:05:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4a/66ba30abe5ad1a3ad15bfb0b59d22174012e8056ff448cb1644deccbfed2/scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba", size = 30111035, upload-time = "2025-05-08T16:05:20.152Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/a7e5b95afd80d24313307f03624acc65801846fa75599034f8ceb9e2cbf6/scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65", size = 22384499, upload-time = "2025-05-08T16:05:24.494Z" }, + { url = "https://files.pythonhosted.org/packages/17/99/f3aaddccf3588bb4aea70ba35328c204cadd89517a1612ecfda5b2dd9d7a/scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1", size = 25152602, upload-time = "2025-05-08T16:05:29.313Z" }, + { url = "https://files.pythonhosted.org/packages/56/c5/1032cdb565f146109212153339f9cb8b993701e9fe56b1c97699eee12586/scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889", size = 35503415, upload-time = "2025-05-08T16:05:34.699Z" }, + { url = "https://files.pythonhosted.org/packages/bd/37/89f19c8c05505d0601ed5650156e50eb881ae3918786c8fd7262b4ee66d3/scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982", size = 37652622, upload-time = "2025-05-08T16:05:40.762Z" }, + { url = "https://files.pythonhosted.org/packages/7e/31/be59513aa9695519b18e1851bb9e487de66f2d31f835201f1b42f5d4d475/scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9", size = 37244796, upload-time = "2025-05-08T16:05:48.119Z" }, + { url = "https://files.pythonhosted.org/packages/10/c0/4f5f3eeccc235632aab79b27a74a9130c6c35df358129f7ac8b29f562ac7/scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594", size = 40047684, upload-time = "2025-05-08T16:05:54.22Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a7/0ddaf514ce8a8714f6ed243a2b391b41dbb65251affe21ee3077ec45ea9a/scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb", size = 41246504, upload-time = "2025-05-08T16:06:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/37/4b/683aa044c4162e10ed7a7ea30527f2cbd92e6999c10a8ed8edb253836e9c/scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019", size = 38766735, upload-time = "2025-05-08T16:06:06.471Z" }, + { url = "https://files.pythonhosted.org/packages/7b/7e/f30be3d03de07f25dc0ec926d1681fed5c732d759ac8f51079708c79e680/scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6", size = 30173284, upload-time = "2025-05-08T16:06:11.686Z" }, + { url = "https://files.pythonhosted.org/packages/07/9c/0ddb0d0abdabe0d181c1793db51f02cd59e4901da6f9f7848e1f96759f0d/scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477", size = 22446958, upload-time = "2025-05-08T16:06:15.97Z" }, + { url = "https://files.pythonhosted.org/packages/af/43/0bce905a965f36c58ff80d8bea33f1f9351b05fad4beaad4eae34699b7a1/scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c", size = 25242454, upload-time = "2025-05-08T16:06:20.394Z" }, + { url = "https://files.pythonhosted.org/packages/56/30/a6f08f84ee5b7b28b4c597aca4cbe545535c39fe911845a96414700b64ba/scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45", size = 35210199, upload-time = "2025-05-08T16:06:26.159Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49", size = 37309455, upload-time = "2025-05-08T16:06:32.778Z" }, + { url = "https://files.pythonhosted.org/packages/89/b1/fbb53137f42c4bf630b1ffdfc2151a62d1d1b903b249f030d2b1c0280af8/scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e", size = 36885140, upload-time = "2025-05-08T16:06:39.249Z" }, + { url = "https://files.pythonhosted.org/packages/2e/2e/025e39e339f5090df1ff266d021892694dbb7e63568edcfe43f892fa381d/scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539", size = 39710549, upload-time = "2025-05-08T16:06:45.729Z" }, + { url = "https://files.pythonhosted.org/packages/e6/eb/3bf6ea8ab7f1503dca3a10df2e4b9c3f6b3316df07f6c0ded94b281c7101/scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed", size = 40966184, upload-time = "2025-05-08T16:06:52.623Z" }, + { url = "https://files.pythonhosted.org/packages/73/18/ec27848c9baae6e0d6573eda6e01a602e5649ee72c27c3a8aad673ebecfd/scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759", size = 38728256, upload-time = "2025-05-08T16:06:58.696Z" }, + { url = "https://files.pythonhosted.org/packages/74/cd/1aef2184948728b4b6e21267d53b3339762c285a46a274ebb7863c9e4742/scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62", size = 30109540, upload-time = "2025-05-08T16:07:04.209Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d8/59e452c0a255ec352bd0a833537a3bc1bfb679944c4938ab375b0a6b3a3e/scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb", size = 22383115, upload-time = "2025-05-08T16:07:08.998Z" }, + { url = "https://files.pythonhosted.org/packages/08/f5/456f56bbbfccf696263b47095291040655e3cbaf05d063bdc7c7517f32ac/scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730", size = 25163884, upload-time = "2025-05-08T16:07:14.091Z" }, + { url = "https://files.pythonhosted.org/packages/a2/66/a9618b6a435a0f0c0b8a6d0a2efb32d4ec5a85f023c2b79d39512040355b/scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825", size = 35174018, upload-time = "2025-05-08T16:07:19.427Z" }, + { url = "https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7", size = 37269716, upload-time = "2025-05-08T16:07:25.712Z" }, + { url = "https://files.pythonhosted.org/packages/77/0a/eac00ff741f23bcabd352731ed9b8995a0a60ef57f5fd788d611d43d69a1/scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11", size = 36872342, upload-time = "2025-05-08T16:07:31.468Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/4379be86dd74b6ad81551689107360d9a3e18f24d20767a2d5b9253a3f0a/scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126", size = 39670869, upload-time = "2025-05-08T16:07:38.002Z" }, + { url = "https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163", size = 40988851, upload-time = "2025-05-08T16:08:33.671Z" }, + { url = "https://files.pythonhosted.org/packages/1b/e9/7a879c137f7e55b30d75d90ce3eb468197646bc7b443ac036ae3fe109055/scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8", size = 38863011, upload-time = "2025-05-08T16:07:44.039Z" }, + { url = "https://files.pythonhosted.org/packages/51/d1/226a806bbd69f62ce5ef5f3ffadc35286e9fbc802f606a07eb83bf2359de/scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5", size = 30266407, upload-time = "2025-05-08T16:07:49.891Z" }, + { url = "https://files.pythonhosted.org/packages/e5/9b/f32d1d6093ab9eeabbd839b0f7619c62e46cc4b7b6dbf05b6e615bbd4400/scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e", size = 22540030, upload-time = "2025-05-08T16:07:54.121Z" }, + { url = "https://files.pythonhosted.org/packages/e7/29/c278f699b095c1a884f29fda126340fcc201461ee8bfea5c8bdb1c7c958b/scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb", size = 25218709, upload-time = "2025-05-08T16:07:58.506Z" }, + { url = "https://files.pythonhosted.org/packages/24/18/9e5374b617aba742a990581373cd6b68a2945d65cc588482749ef2e64467/scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723", size = 34809045, upload-time = "2025-05-08T16:08:03.929Z" }, + { url = "https://files.pythonhosted.org/packages/e1/fe/9c4361e7ba2927074360856db6135ef4904d505e9b3afbbcb073c4008328/scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb", size = 36703062, upload-time = "2025-05-08T16:08:09.558Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8e/038ccfe29d272b30086b25a4960f757f97122cb2ec42e62b460d02fe98e9/scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4", size = 36393132, upload-time = "2025-05-08T16:08:15.34Z" }, + { url = "https://files.pythonhosted.org/packages/10/7e/5c12285452970be5bdbe8352c619250b97ebf7917d7a9a9e96b8a8140f17/scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5", size = 38979503, upload-time = "2025-05-08T16:08:21.513Z" }, + { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097, upload-time = "2025-05-08T16:08:27.627Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +dependencies = [ + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' and sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/97/5a3609c4f8d58b039179648e62dd220f89864f56f7357f5d4f45c29eb2cc/scipy-1.17.1.tar.gz", hash = "sha256:95d8e012d8cb8816c226aef832200b1d45109ed4464303e997c5b13122b297c0", size = 30573822, upload-time = "2026-02-23T00:26:24.851Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/75/b4ce781849931fef6fd529afa6b63711d5a733065722d0c3e2724af9e40a/scipy-1.17.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:1f95b894f13729334fb990162e911c9e5dc1ab390c58aa6cbecb389c5b5e28ec", size = 31613675, upload-time = "2026-02-23T00:16:00.13Z" }, + { url = "https://files.pythonhosted.org/packages/f7/58/bccc2861b305abdd1b8663d6130c0b3d7cc22e8d86663edbc8401bfd40d4/scipy-1.17.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:e18f12c6b0bc5a592ed23d3f7b891f68fd7f8241d69b7883769eb5d5dfb52696", size = 28162057, upload-time = "2026-02-23T00:16:09.456Z" }, + { url = "https://files.pythonhosted.org/packages/6d/ee/18146b7757ed4976276b9c9819108adbc73c5aad636e5353e20746b73069/scipy-1.17.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a3472cfbca0a54177d0faa68f697d8ba4c80bbdc19908c3465556d9f7efce9ee", size = 20334032, upload-time = "2026-02-23T00:16:17.358Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e6/cef1cf3557f0c54954198554a10016b6a03b2ec9e22a4e1df734936bd99c/scipy-1.17.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:766e0dc5a616d026a3a1cffa379af959671729083882f50307e18175797b3dfd", size = 22709533, upload-time = "2026-02-23T00:16:25.791Z" }, + { url = "https://files.pythonhosted.org/packages/4d/60/8804678875fc59362b0fb759ab3ecce1f09c10a735680318ac30da8cd76b/scipy-1.17.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:744b2bf3640d907b79f3fd7874efe432d1cf171ee721243e350f55234b4cec4c", size = 33062057, upload-time = "2026-02-23T00:16:36.931Z" }, + { url = "https://files.pythonhosted.org/packages/09/7d/af933f0f6e0767995b4e2d705a0665e454d1c19402aa7e895de3951ebb04/scipy-1.17.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43af8d1f3bea642559019edfe64e9b11192a8978efbd1539d7bc2aaa23d92de4", size = 35349300, upload-time = "2026-02-23T00:16:49.108Z" }, + { url = "https://files.pythonhosted.org/packages/b4/3d/7ccbbdcbb54c8fdc20d3b6930137c782a163fa626f0aef920349873421ba/scipy-1.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd96a1898c0a47be4520327e01f874acfd61fb48a9420f8aa9f6483412ffa444", size = 35127333, upload-time = "2026-02-23T00:17:01.293Z" }, + { url = "https://files.pythonhosted.org/packages/e8/19/f926cb11c42b15ba08e3a71e376d816ac08614f769b4f47e06c3580c836a/scipy-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4eb6c25dd62ee8d5edf68a8e1c171dd71c292fdae95d8aeb3dd7d7de4c364082", size = 37741314, upload-time = "2026-02-23T00:17:12.576Z" }, + { url = "https://files.pythonhosted.org/packages/35/48/b992b488d6f299dbe3f11a20b24d3dda3d46f1a635ede1c46b5b17a7b163/scipy-1.17.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:35c3a56d2ef83efc372eaec584314bd0ef2e2f0d2adb21c55e6ad5b344c0dcb8", size = 31610954, upload-time = "2026-02-23T00:17:49.855Z" }, + { url = "https://files.pythonhosted.org/packages/b2/02/cf107b01494c19dc100f1d0b7ac3cc08666e96ba2d64db7626066cee895e/scipy-1.17.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:fcb310ddb270a06114bb64bbe53c94926b943f5b7f0842194d585c65eb4edd76", size = 28172662, upload-time = "2026-02-23T00:18:01.64Z" }, + { url = "https://files.pythonhosted.org/packages/cf/a9/599c28631bad314d219cf9ffd40e985b24d603fc8a2f4ccc5ae8419a535b/scipy-1.17.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cc90d2e9c7e5c7f1a482c9875007c095c3194b1cfedca3c2f3291cdc2bc7c086", size = 20344366, upload-time = "2026-02-23T00:18:12.015Z" }, + { url = "https://files.pythonhosted.org/packages/35/f5/906eda513271c8deb5af284e5ef0206d17a96239af79f9fa0aebfe0e36b4/scipy-1.17.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:c80be5ede8f3f8eded4eff73cc99a25c388ce98e555b17d31da05287015ffa5b", size = 22704017, upload-time = "2026-02-23T00:18:21.502Z" }, + { url = "https://files.pythonhosted.org/packages/da/34/16f10e3042d2f1d6b66e0428308ab52224b6a23049cb2f5c1756f713815f/scipy-1.17.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e19ebea31758fac5893a2ac360fedd00116cbb7628e650842a6691ba7ca28a21", size = 32927842, upload-time = "2026-02-23T00:18:35.367Z" }, + { url = "https://files.pythonhosted.org/packages/01/8e/1e35281b8ab6d5d72ebe9911edcdffa3f36b04ed9d51dec6dd140396e220/scipy-1.17.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02ae3b274fde71c5e92ac4d54bc06c42d80e399fec704383dcd99b301df37458", size = 35235890, upload-time = "2026-02-23T00:18:49.188Z" }, + { url = "https://files.pythonhosted.org/packages/c5/5c/9d7f4c88bea6e0d5a4f1bc0506a53a00e9fcb198de372bfe4d3652cef482/scipy-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a604bae87c6195d8b1045eddece0514d041604b14f2727bbc2b3020172045eb", size = 35003557, upload-time = "2026-02-23T00:18:54.74Z" }, + { url = "https://files.pythonhosted.org/packages/65/94/7698add8f276dbab7a9de9fb6b0e02fc13ee61d51c7c3f85ac28b65e1239/scipy-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f590cd684941912d10becc07325a3eeb77886fe981415660d9265c4c418d0bea", size = 37625856, upload-time = "2026-02-23T00:19:00.307Z" }, + { url = "https://files.pythonhosted.org/packages/76/27/07ee1b57b65e92645f219b37148a7e7928b82e2b5dbeccecb4dff7c64f0b/scipy-1.17.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5e3c5c011904115f88a39308379c17f91546f77c1667cea98739fe0fccea804c", size = 31590199, upload-time = "2026-02-23T00:19:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ae/db19f8ab842e9b724bf5dbb7db29302a91f1e55bc4d04b1025d6d605a2c5/scipy-1.17.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:6fac755ca3d2c3edcb22f479fceaa241704111414831ddd3bc6056e18516892f", size = 28154001, upload-time = "2026-02-23T00:19:22.241Z" }, + { url = "https://files.pythonhosted.org/packages/5b/58/3ce96251560107b381cbd6e8413c483bbb1228a6b919fa8652b0d4090e7f/scipy-1.17.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:7ff200bf9d24f2e4d5dc6ee8c3ac64d739d3a89e2326ba68aaf6c4a2b838fd7d", size = 20325719, upload-time = "2026-02-23T00:19:26.329Z" }, + { url = "https://files.pythonhosted.org/packages/b2/83/15087d945e0e4d48ce2377498abf5ad171ae013232ae31d06f336e64c999/scipy-1.17.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4b400bdc6f79fa02a4d86640310dde87a21fba0c979efff5248908c6f15fad1b", size = 22683595, upload-time = "2026-02-23T00:19:30.304Z" }, + { url = "https://files.pythonhosted.org/packages/b4/e0/e58fbde4a1a594c8be8114eb4aac1a55bcd6587047efc18a61eb1f5c0d30/scipy-1.17.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b64ca7d4aee0102a97f3ba22124052b4bd2152522355073580bf4845e2550b6", size = 32896429, upload-time = "2026-02-23T00:19:35.536Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5f/f17563f28ff03c7b6799c50d01d5d856a1d55f2676f537ca8d28c7f627cd/scipy-1.17.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:581b2264fc0aa555f3f435a5944da7504ea3a065d7029ad60e7c3d1ae09c5464", size = 35203952, upload-time = "2026-02-23T00:19:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a5/9afd17de24f657fdfe4df9a3f1ea049b39aef7c06000c13db1530d81ccca/scipy-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:beeda3d4ae615106d7094f7e7cef6218392e4465cc95d25f900bebabfded0950", size = 34979063, upload-time = "2026-02-23T00:19:47.547Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/88b1d2384b424bf7c924f2038c1c409f8d88bb2a8d49d097861dd64a57b2/scipy-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6609bc224e9568f65064cfa72edc0f24ee6655b47575954ec6339534b2798369", size = 37598449, upload-time = "2026-02-23T00:19:53.238Z" }, + { url = "https://files.pythonhosted.org/packages/6f/6b/17787db8b8114933a66f9dcc479a8272e4b4da75fe03b0c282f7b0ade8cd/scipy-1.17.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:d59c30000a16d8edc7e64152e30220bfbd724c9bbb08368c054e24c651314f0a", size = 31936708, upload-time = "2026-02-23T00:19:58.694Z" }, + { url = "https://files.pythonhosted.org/packages/38/2e/524405c2b6392765ab1e2b722a41d5da33dc5c7b7278184a8ad29b6cb206/scipy-1.17.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:010f4333c96c9bb1a4516269e33cb5917b08ef2166d5556ca2fd9f082a9e6ea0", size = 28570135, upload-time = "2026-02-23T00:20:03.934Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c3/5bd7199f4ea8556c0c8e39f04ccb014ac37d1468e6cfa6a95c6b3562b76e/scipy-1.17.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2ceb2d3e01c5f1d83c4189737a42d9cb2fc38a6eeed225e7515eef71ad301dce", size = 20741977, upload-time = "2026-02-23T00:20:07.935Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b8/8ccd9b766ad14c78386599708eb745f6b44f08400a5fd0ade7cf89b6fc93/scipy-1.17.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:844e165636711ef41f80b4103ed234181646b98a53c8f05da12ca5ca289134f6", size = 23029601, upload-time = "2026-02-23T00:20:12.161Z" }, + { url = "https://files.pythonhosted.org/packages/6d/a0/3cb6f4d2fb3e17428ad2880333cac878909ad1a89f678527b5328b93c1d4/scipy-1.17.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:158dd96d2207e21c966063e1635b1063cd7787b627b6f07305315dd73d9c679e", size = 33019667, upload-time = "2026-02-23T00:20:17.208Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c3/2d834a5ac7bf3a0c806ad1508efc02dda3c8c61472a56132d7894c312dea/scipy-1.17.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74cbb80d93260fe2ffa334efa24cb8f2f0f622a9b9febf8b483c0b865bfb3475", size = 35264159, upload-time = "2026-02-23T00:20:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/4d/77/d3ed4becfdbd217c52062fafe35a72388d1bd82c2d0ba5ca19d6fcc93e11/scipy-1.17.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dbc12c9f3d185f5c737d801da555fb74b3dcfa1a50b66a1a93e09190f41fab50", size = 35102771, upload-time = "2026-02-23T00:20:28.636Z" }, + { url = "https://files.pythonhosted.org/packages/bd/12/d19da97efde68ca1ee5538bb261d5d2c062f0c055575128f11a2730e3ac1/scipy-1.17.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:94055a11dfebe37c656e70317e1996dc197e1a15bbcc351bcdd4610e128fe1ca", size = 37665910, upload-time = "2026-02-23T00:20:34.743Z" }, + { url = "https://files.pythonhosted.org/packages/cf/83/333afb452af6f0fd70414dc04f898647ee1423979ce02efa75c3b0f2c28e/scipy-1.17.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:a48a72c77a310327f6a3a920092fa2b8fd03d7deaa60f093038f22d98e096717", size = 31584510, upload-time = "2026-02-23T00:21:01.015Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a6/d05a85fd51daeb2e4ea71d102f15b34fedca8e931af02594193ae4fd25f7/scipy-1.17.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:45abad819184f07240d8a696117a7aacd39787af9e0b719d00285549ed19a1e9", size = 28170131, upload-time = "2026-02-23T00:21:05.888Z" }, + { url = "https://files.pythonhosted.org/packages/db/7b/8624a203326675d7746a254083a187398090a179335b2e4a20e2ddc46e83/scipy-1.17.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3fd1fcdab3ea951b610dc4cef356d416d5802991e7e32b5254828d342f7b7e0b", size = 20342032, upload-time = "2026-02-23T00:21:09.904Z" }, + { url = "https://files.pythonhosted.org/packages/c9/35/2c342897c00775d688d8ff3987aced3426858fd89d5a0e26e020b660b301/scipy-1.17.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7bdf2da170b67fdf10bca777614b1c7d96ae3ca5794fd9587dce41eb2966e866", size = 22678766, upload-time = "2026-02-23T00:21:14.313Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f2/7cdb8eb308a1a6ae1e19f945913c82c23c0c442a462a46480ce487fdc0ac/scipy-1.17.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:adb2642e060a6549c343603a3851ba76ef0b74cc8c079a9a58121c7ec9fe2350", size = 32957007, upload-time = "2026-02-23T00:21:19.663Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2e/7eea398450457ecb54e18e9d10110993fa65561c4f3add5e8eccd2b9cd41/scipy-1.17.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee2cfda04c00a857206a4330f0c5e3e56535494e30ca445eb19ec624ae75118", size = 35221333, upload-time = "2026-02-23T00:21:25.278Z" }, + { url = "https://files.pythonhosted.org/packages/d9/77/5b8509d03b77f093a0d52e606d3c4f79e8b06d1d38c441dacb1e26cacf46/scipy-1.17.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d2650c1fb97e184d12d8ba010493ee7b322864f7d3d00d3f9bb97d9c21de4068", size = 35042066, upload-time = "2026-02-23T00:21:31.358Z" }, + { url = "https://files.pythonhosted.org/packages/f9/df/18f80fb99df40b4070328d5ae5c596f2f00fffb50167e31439e932f29e7d/scipy-1.17.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:08b900519463543aa604a06bec02461558a6e1cef8fdbb8098f77a48a83c8118", size = 37612763, upload-time = "2026-02-23T00:21:37.247Z" }, + { url = "https://files.pythonhosted.org/packages/96/ad/f8c414e121f82e02d76f310f16db9899c4fcde36710329502a6b2a3c0392/scipy-1.17.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:1cc682cea2ae55524432f3cdff9e9a3be743d52a7443d0cba9017c23c87ae2f6", size = 31949750, upload-time = "2026-02-23T00:21:42.289Z" }, + { url = "https://files.pythonhosted.org/packages/7c/b0/c741e8865d61b67c81e255f4f0a832846c064e426636cd7de84e74d209be/scipy-1.17.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:2040ad4d1795a0ae89bfc7e8429677f365d45aa9fd5e4587cf1ea737f927b4a1", size = 28585858, upload-time = "2026-02-23T00:21:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1b/3985219c6177866628fa7c2595bfd23f193ceebbe472c98a08824b9466ff/scipy-1.17.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:131f5aaea57602008f9822e2115029b55d4b5f7c070287699fe45c661d051e39", size = 20757723, upload-time = "2026-02-23T00:21:52.039Z" }, + { url = "https://files.pythonhosted.org/packages/c0/19/2a04aa25050d656d6f7b9e7b685cc83d6957fb101665bfd9369ca6534563/scipy-1.17.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:9cdc1a2fcfd5c52cfb3045feb399f7b3ce822abdde3a193a6b9a60b3cb5854ca", size = 23043098, upload-time = "2026-02-23T00:21:56.185Z" }, + { url = "https://files.pythonhosted.org/packages/86/f1/3383beb9b5d0dbddd030335bf8a8b32d4317185efe495374f134d8be6cce/scipy-1.17.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e3dcd57ab780c741fde8dc68619de988b966db759a3c3152e8e9142c26295ad", size = 33030397, upload-time = "2026-02-23T00:22:01.404Z" }, + { url = "https://files.pythonhosted.org/packages/41/68/8f21e8a65a5a03f25a79165ec9d2b28c00e66dc80546cf5eb803aeeff35b/scipy-1.17.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9956e4d4f4a301ebf6cde39850333a6b6110799d470dbbb1e25326ac447f52a", size = 35281163, upload-time = "2026-02-23T00:22:07.024Z" }, + { url = "https://files.pythonhosted.org/packages/84/8d/c8a5e19479554007a5632ed7529e665c315ae7492b4f946b0deb39870e39/scipy-1.17.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a4328d245944d09fd639771de275701ccadf5f781ba0ff092ad141e017eccda4", size = 35116291, upload-time = "2026-02-23T00:22:12.585Z" }, + { url = "https://files.pythonhosted.org/packages/52/52/e57eceff0e342a1f50e274264ed47497b59e6a4e3118808ee58ddda7b74a/scipy-1.17.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a77cbd07b940d326d39a1d1b37817e2ee4d79cb30e7338f3d0cddffae70fcaa2", size = 37682317, upload-time = "2026-02-23T00:22:18.513Z" }, +] + +[[package]] +name = "scipy" +version = "1.18.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", +] +dependencies = [ + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/25/c2700dfaf6442b4effaa91af24ebce5dc9d31bb4a69706313aae70d72cd0/scipy-1.18.0.tar.gz", hash = "sha256:67b2ad2ad54c72ca6d04975a9b2df8c3638c34ddd5b28738e94fc2b57929d378", size = 30774447, upload-time = "2026-06-19T15:01:43.456Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/19/ca10ead60b0acc80b2b833c2c4a4f2ff753d0f58b811f70d911c7e94a25c/scipy-1.18.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:7bd21faaf5a1a3b2eff922d02db5f191b99a6518db9078a8fb23169f6d22259a", size = 31056519, upload-time = "2026-06-19T14:59:45.203Z" }, + { url = "https://files.pythonhosted.org/packages/96/72/1e6442a00cd2924d361aa1b642ab6373ec35c6fabf311a760be9f76e0f13/scipy-1.18.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:265915e79107de9f946b855e50d7470d5893ec3f54b342e1aa6201cbdcd8bb6b", size = 28681889, upload-time = "2026-06-19T14:59:48.103Z" }, + { url = "https://files.pythonhosted.org/packages/9b/2d/11dd93d21e147a73ba22bd75c0b9208d3a2e0ec76d53170ce7d9029b1015/scipy-1.18.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9ab7b758be6940954a713ee466e2043e9f6e2ed965c1fce5c91039f4be3d90a9", size = 20423580, upload-time = "2026-06-19T14:59:50.665Z" }, + { url = "https://files.pythonhosted.org/packages/9c/01/93552f75e0d2a7dd115a45e59209c51e8d514daff02fc887d2623be06fe1/scipy-1.18.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:97b6cddaaee0a779ef6b5ca83c9604b27cc16b2b8fc22c142652df8793319fb8", size = 23054441, upload-time = "2026-06-19T14:59:53.564Z" }, + { url = "https://files.pythonhosted.org/packages/3c/23/21f5e703643d66f21faa6b4c73195bfcad70c55efcb4f1ab327cd7c4101a/scipy-1.18.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:52a96e21517c7292375c0e27dd796a811f03fcea5fd4d108fdfea8145dcf17ab", size = 33968720, upload-time = "2026-06-19T14:59:56.415Z" }, + { url = "https://files.pythonhosted.org/packages/dd/aa/1b939f6c67ed68635bb538e6752d3dacc02f66535182e939a89581a44e9c/scipy-1.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f55797419e16e7f30cf88ffb3113ce0467f00cfe3f70d5c281730b21769bfc2", size = 35287115, upload-time = "2026-06-19T14:59:59.411Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ff/eec46be7e9234208f801062b53e1983085eddebd693f6c9bfb03b459830d/scipy-1.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ad033410e2e0672ffdc1042110cef20e1c46f8fd0616cee1d44d8d58fad8fc11", size = 35577989, upload-time = "2026-06-19T15:00:02.235Z" }, + { url = "https://files.pythonhosted.org/packages/84/ca/210d4759c7210bb7d269437421959b39a33434e2776b60c5cb8a763bb30a/scipy-1.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4a55985d54c769c872e64b7f4c8a81cc30ef700cc04296abbbf3705439c126de", size = 37421717, upload-time = "2026-06-19T15:00:05.102Z" }, + { url = "https://files.pythonhosted.org/packages/2b/54/9a9edb45345bd6744da5ddfb6628e5d5185920494c6a67ec45b6381004cb/scipy-1.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:71ccc8faa2dd16ac310233203474a8b5cb67f10dedd54a3116d34943f4b19132", size = 36597428, upload-time = "2026-06-19T15:00:08.112Z" }, + { url = "https://files.pythonhosted.org/packages/99/0e/33f32a2a58987e26aec0f7df252cbbad1e90ae77bdbc76f40dd4ed0cf0ea/scipy-1.18.0-cp312-cp312-win_arm64.whl", hash = "sha256:d88363fd9d8fbd3511bd273f1a49efb2a540773ddf92a91d57498ce7dd7f3e76", size = 24351481, upload-time = "2026-06-19T15:00:11.103Z" }, + { url = "https://files.pythonhosted.org/packages/05/52/9c0136c2de7ae0779b7b366447766cec6d9f0702c56bb8ffeb04c8fd3af4/scipy-1.18.0-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:09143f676d157d9f546d663504ef9c1becb819824f1afc018814176411942446", size = 31036107, upload-time = "2026-06-19T15:00:14.03Z" }, + { url = "https://files.pythonhosted.org/packages/02/73/0291a64843270f4efb86cdcf2ee0f2048631b65ec6b405398b2b4dbf11bf/scipy-1.18.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5efe260f69417b97ddae455bfb5a95e8359f7f66ad7fa9522a60feb66f169520", size = 28663303, upload-time = "2026-06-19T15:00:16.819Z" }, + { url = "https://files.pythonhosted.org/packages/d3/0f/10ffa0b697a572f4e0d48b92a88895d366422f019f723e7e14a84c050dac/scipy-1.18.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:68363b7eaacd8b5dd426df56d782cc156468ac79a127a1b87ca597d6e2e82197", size = 20404960, upload-time = "2026-06-19T15:00:19.635Z" }, + { url = "https://files.pythonhosted.org/packages/7e/d2/e896cea21ba8edd6c81d4c55b1ffcc717e79698dcbebf9641b4cfb4c6622/scipy-1.18.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:c5557d8be5da8e41353fcd4d21491fdbab83b062fc579e94dc09a7c8ab4f669b", size = 23034074, upload-time = "2026-06-19T15:00:22.107Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b2/e83ea34279a52c03374477c74006256ec78df65fc877baa4617d6de1d202/scipy-1.18.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0d13bca67c096d89fb95ced0d8921807300fce0275643aef9533cc63a0773468", size = 33942038, upload-time = "2026-06-19T15:00:24.964Z" }, + { url = "https://files.pythonhosted.org/packages/f6/af/e8fe5fb136f51e2b01678b92cb4106d10d8cd68ec147ead2e7cb0ac75398/scipy-1.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a46f9273dbd0eb1cefba61c9b8648b4dfe3cbc14a080176f9a73e44b8336dc7f", size = 35266390, upload-time = "2026-06-19T15:00:28.059Z" }, + { url = "https://files.pythonhosted.org/packages/3a/49/2c5cbb907b56695fc67517811d1db234dfd83381a84814ec220aded2794d/scipy-1.18.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5aba46108853ddfc77906b6557aac839d2b52e900c1d72a1180adaaab58d265f", size = 35551324, upload-time = "2026-06-19T15:00:31.014Z" }, + { url = "https://files.pythonhosted.org/packages/bb/73/eda39f7a2d306ff0ffc574afd13c0bbb6d10a603d9a413998ee269487a80/scipy-1.18.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b6f758e35f12757b5d95c00bc6de2438e229c2664b7a92e96f205959d9f2dfa4", size = 37404785, upload-time = "2026-06-19T15:00:34.072Z" }, + { url = "https://files.pythonhosted.org/packages/b7/d2/ae881ee28d014f38e0ccbfd974a06a919ba9af34f1f74bf42b5301891d63/scipy-1.18.0-cp313-cp313-win_amd64.whl", hash = "sha256:1afac4a847207c7ff8efd321734a50b06d0280b3b2a2c0fc2f413101747ad7c7", size = 36554943, upload-time = "2026-06-19T15:00:36.903Z" }, + { url = "https://files.pythonhosted.org/packages/70/3a/21154e2d54eb3639c6bf4dbae2e531c68356bfe95990daa30df33b30d556/scipy-1.18.0-cp313-cp313-win_arm64.whl", hash = "sha256:c5dbddf60e58c2312316d097271a8e73d40eaf2eabfa4d95ed7d3695bbf2ce7b", size = 24350911, upload-time = "2026-06-19T15:00:40.062Z" }, + { url = "https://files.pythonhosted.org/packages/78/b5/915a19b3de2f7430062b509653563db1633ddbb6f021b06731521115d4e2/scipy-1.18.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:4c256ee70c0d1a8a2ace807e199ccd4e3f57037433842abb3fb36bc17eaa9578", size = 31036253, upload-time = "2026-06-19T15:00:43.216Z" }, + { url = "https://files.pythonhosted.org/packages/d7/88/b72def7262e150d16be13fca37a96481138d624e700340bc3362a7588929/scipy-1.18.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:2ef3abc54a4ffc53765374b0d5728532dfdd2585ed23f6b11c206a1f0b1b9af8", size = 28673758, upload-time = "2026-06-19T15:00:46.663Z" }, + { url = "https://files.pythonhosted.org/packages/91/02/2e636a61a525632c373cf6a9c24442a3ffb79e364d38e98b32042964ac32/scipy-1.18.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f2a6af57bd9e4a75d70e4117e78a1bbee84f79ae3fbb6d0111005d6ebcc4cb8d", size = 20415514, upload-time = "2026-06-19T15:00:49.399Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b6/2135974442f6aba159d9d39d774a1c8cb19947016725d69fecc685df45bf/scipy-1.18.0-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:3f1ac564d3bf6c03d861d2cd87a1bea0da2887136f7fb1bf519c05a8971452d6", size = 23034398, upload-time = "2026-06-19T15:00:51.941Z" }, + { url = "https://files.pythonhosted.org/packages/f6/e6/ba89ec5abf6ee9257c0d1ec985573f3ae32742c24bc03e016388a40b1b15/scipy-1.18.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40395a5fcd1abee49a5c7aaa98c29db393eedc835138560a588c47ec16156690", size = 33998032, upload-time = "2026-06-19T15:00:54.838Z" }, + { url = "https://files.pythonhosted.org/packages/7f/c4/bc41eb19b0fd0db868f4132920879019318d80cc522ad8f2bca4611af808/scipy-1.18.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ca01e8ae69f1b18e9a58d91afead31be3cef0dd905a10249dac559ee15460a0", size = 35283333, upload-time = "2026-06-19T15:00:58.152Z" }, + { url = "https://files.pythonhosted.org/packages/53/a4/cbdeef6eb3830a8462a9d4ada814de5fc984345cc9ecf17cbec51a036f1e/scipy-1.18.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7a7f3b01647384dbc3a711e8c6778e0aabbe93959249fef5c7393396bcac0867", size = 35610216, upload-time = "2026-06-19T15:01:01.155Z" }, + { url = "https://files.pythonhosted.org/packages/80/4d/b2b82502b65f661d1b789c1665dcdf315d5f12194e06fc0b37946294ebae/scipy-1.18.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6aa94e78ec192a30063a5e72e561c28af769dc311190b24fe91774eff1969709", size = 37418960, upload-time = "2026-06-19T15:01:04.155Z" }, + { url = "https://files.pythonhosted.org/packages/93/3e/902d836831474b0ab5a37d16404f7bc5fafd9efba632890e271ba952635f/scipy-1.18.0-cp314-cp314-win_amd64.whl", hash = "sha256:2d8bbdc6c817f5b4006a54d799d4f5bab6f910193cbb9a1ff310833d4d270f61", size = 37288845, upload-time = "2026-06-19T15:01:07.822Z" }, + { url = "https://files.pythonhosted.org/packages/b6/43/8d73b337a3bdb14daa0314f0434210747c02d79d729ce1777574a817dcf6/scipy-1.18.0-cp314-cp314-win_arm64.whl", hash = "sha256:18e9575f1569b2c54174e6159d32942e03731177f63dce7975f0a0c88d102f5b", size = 24988971, upload-time = "2026-06-19T15:01:11.076Z" }, + { url = "https://files.pythonhosted.org/packages/b4/b4/f11918b0508a2787031a0499a03fbe3546f3bb5ca05d01038c45b278c09a/scipy-1.18.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f351e0dd702687d12a402b867a1b4146a256923e1c38317cbc472f6372b94707", size = 31399325, upload-time = "2026-06-19T15:01:13.723Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d1/1f287b57c0ff0ee5185dff3946d92c8017d39b0e431f0ae79a3ff1859512/scipy-1.18.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7c7a51b33ce387193c97f228320cf8e87361daa1bba750638677729598b3e677", size = 29092110, upload-time = "2026-06-19T15:01:16.908Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1a/7b74eb6c392fdcb27d414c0e7558a6d0231eb3b6d73571f479bb81ea8794/scipy-1.18.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:84031d7b052a54fae2f8632e0ec802073d385476eb9a63079bce6e23ef9283d4", size = 20833811, upload-time = "2026-06-19T15:01:20.488Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ad/f3941716320a7b9cb4d68734a903b45fe16eff5fb7da7e16f2e619304979/scipy-1.18.0-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:56abf29a7c067dde59be8b9a22d606a4ea1b2f2a4b756d9d903c62818f5dacce", size = 23396644, upload-time = "2026-06-19T15:01:23.364Z" }, + { url = "https://files.pythonhosted.org/packages/22/22/1446b62ffe07f9719b7d9b1b6a4e05a772833ae8f441fe4c22c34c9b250f/scipy-1.18.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ad44305cfa24b1ba5803cbbebf033590ccbac1aa5d612d727b785325ab408b0", size = 34079318, upload-time = "2026-06-19T15:01:26.002Z" }, + { url = "https://files.pythonhosted.org/packages/56/3b/b87da667098bb470fa30c7011b0ba351ee976dd395c78798c66e941665a3/scipy-1.18.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:945c1761b93f38d7f99ae81ae80c63e621471608c7eeead563f6df025585cd58", size = 35324320, upload-time = "2026-06-19T15:01:28.881Z" }, + { url = "https://files.pythonhosted.org/packages/f8/a1/c7932f91909759b0267f75fdea34e91309f96b895757534b76a90b6b4344/scipy-1.18.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1a4441f15d620578772a49e5ab48c0ee1f7a0220e387110283062729136b2553", size = 35699541, upload-time = "2026-06-19T15:01:31.968Z" }, + { url = "https://files.pythonhosted.org/packages/f7/86/5185061a1fcc41d18c5dc2463969b3a3964b31d9ac67b2fb05d4c7ff7670/scipy-1.18.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9aac6192fac56bf2ca534389d24623f07b39ff83317d58287285e7fbd622ff76", size = 37472480, upload-time = "2026-06-19T15:01:35.136Z" }, + { url = "https://files.pythonhosted.org/packages/31/8e/f04c68e39919a010d34f2ee1367fd705b0a25a02f609d755f0bfbc0a15fc/scipy-1.18.0-cp314-cp314t-win_amd64.whl", hash = "sha256:e40baea28ae7f5475c779741e2d90b1247c78531207b49c7030e698ff81cee3f", size = 37365390, upload-time = "2026-06-19T15:01:38.091Z" }, + { url = "https://files.pythonhosted.org/packages/d5/19/969dc072906c84dd0a3b05dcf57ea750936087d7873549e408b35cfc3f97/scipy-1.18.0-cp314-cp314t-win_arm64.whl", hash = "sha256:368e0a705903c466aa5f08eefb39e6b1b6b2d659e7352a31fd9e2438365be0f8", size = 25279661, upload-time = "2026-06-19T15:01:40.817Z" }, +] + +[[package]] +name = "setuptools" +version = "83.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/34/26/f5d29e25ffdb535afef2d35cdb55b325298f96debd670da4c325e08d70f4/setuptools-83.0.0.tar.gz", hash = "sha256:025bccbbf0fa05b6192bc64ae1e7b16e001fd6d6d4d5de03c97b1c1ade523bef", size = 1154254, upload-time = "2026-07-04T15:31:22.699Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/40/e1e72872c6354b306daef1703549e8e83b4d43cfea356311bf722a043752/setuptools-83.0.0-py3-none-any.whl", hash = "sha256:29b23c360f22f414dc7336bb39178cc7bcbf6021ed2733cde173f09dba19abb3", size = 1008090, upload-time = "2026-07-04T15:31:20.885Z" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "smart-open" +version = "8.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/53/9c513747547fd595d5c143259129ea8b9c3ea2f6b7bb9dcea2b1966ded3c/smart_open-8.0.1.tar.gz", hash = "sha256:18b1c4496003c6902be17c15f032b5c319f307c89c6ae9e6b028b508bed8b2cf", size = 61882, upload-time = "2026-07-15T13:56:10.492Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/96/325b8c507ccecc50421fecc0345a502ee6e4a44785af3c4e6ecbadad624a/smart_open-8.0.1-py3-none-any.whl", hash = "sha256:3e97f90e92a952cb57863dfe132082c400a52eeeb27c067692fb51dbcc5b0089", size = 73504, upload-time = "2026-07-15T13:56:09.033Z" }, +] + +[[package]] +name = "sortedcontainers" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.8.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/2c/0a5f6f8ee0d5589e48c7640213ed5175d52cf540a06725b628cc1a45d6ce/soupsieve-2.8.4.tar.gz", hash = "sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e", size = 121110, upload-time = "2026-05-24T13:55:57.154Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/f5/0c41cb68dcae6b7de4fac4188a3a9589e21fb31df21ea3a2e888db95e6c9/soupsieve-2.8.4-py3-none-any.whl", hash = "sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65", size = 37304, upload-time = "2026-05-24T13:55:55.406Z" }, +] + +[[package]] +name = "spacy" +version = "3.8.13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "catalogue" }, + { name = "confection" }, + { name = "cymem" }, + { name = "jinja2" }, + { name = "murmurhash" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "packaging" }, + { name = "preshed" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "setuptools" }, + { name = "spacy-legacy" }, + { name = "spacy-loggers" }, + { name = "srsly" }, + { name = "thinc" }, + { name = "tqdm" }, + { name = "typer" }, + { name = "wasabi" }, + { name = "weasel" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/d7/1924f32272f50d2f13275f16d6f869fcec47b2b676b64f91fa206bd30ef4/spacy-3.8.13.tar.gz", hash = "sha256:eb7c03c2bb16593c34d4c91974118f0931c6e6969dbfe895b1a026c6714176cf", size = 1328016, upload-time = "2026-03-23T17:44:32.042Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/9d/98690ead5f03a1ad6eedbe87316aac6dbd5677d8703c1972c57dd268c582/spacy-3.8.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cb065e9fb78e60d205bc130cb6400a727de70bed2e0de6fdd7c9f4e662653710", size = 6625685, upload-time = "2026-03-23T17:41:50.106Z" }, + { url = "https://files.pythonhosted.org/packages/c4/16/eea0765ffee29fbe6a31bfd5ab746abdc4fcd71414c04110ea80acb733f0/spacy-3.8.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7e6e842df203cc0115063143f94395220acf5fdf2de194c3e376fde11592f867", size = 6449911, upload-time = "2026-03-23T17:41:52.648Z" }, + { url = "https://files.pythonhosted.org/packages/8a/13/2320f8443145b9ec0b089dd14cdc7e74eded52b91c1be7a2a66604075c88/spacy-3.8.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:80cdf686e58e6ad1c450f978a63e2d805b1316d74b10152761de183cc609c13f", size = 30761599, upload-time = "2026-03-23T17:41:55.992Z" }, + { url = "https://files.pythonhosted.org/packages/9e/50/a775d0afaa65a27da04784d08a436537517652b982059ff4921672a1da67/spacy-3.8.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbc6f8ceda37dfb1faeb57685ab665b43db008c520ec3d7aa9b4f21538b9f9f", size = 30999822, upload-time = "2026-03-23T17:42:00.649Z" }, + { url = "https://files.pythonhosted.org/packages/f4/b5/95304bf02a4037e1e3a958f144d9f9ec3d411c063b454a07df06e84bf918/spacy-3.8.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:815ad97986b494f3e6957017d26e83a6f0d9e8c5b6656981d3cb7678b700d194", size = 31039431, upload-time = "2026-03-23T17:42:05.57Z" }, + { url = "https://files.pythonhosted.org/packages/9e/2c/36e9c43fac2126700462e49e2e75fb740583de47962c8959cf6c5d24d400/spacy-3.8.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:17b63375efc76c44d26ced29a14a9cf0ee0db31aca088d6d8f699bb70b5feb7a", size = 31882760, upload-time = "2026-03-23T17:42:10.397Z" }, + { url = "https://files.pythonhosted.org/packages/40/11/9ef0cebe578f8120d20d06dd598e537177bb847e731e90e51fea2f143f54/spacy-3.8.13-cp310-cp310-win_amd64.whl", hash = "sha256:f6f222f5a35f40ec9af2a6013bbc3b27d31b9d5e3833f7353ad38e48aebd06f6", size = 15360023, upload-time = "2026-03-23T17:42:14.591Z" }, + { url = "https://files.pythonhosted.org/packages/4c/a8/21f5b9c3998c7a9cdd28715248e489ebd9300b1d349d5220166b951c3df4/spacy-3.8.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3fb3ec2a78a72bb87ca1cc22ad9fea2d37a3d88ec68ee6b4a02c967f35c8b0cb", size = 6617511, upload-time = "2026-03-23T17:42:17.689Z" }, + { url = "https://files.pythonhosted.org/packages/0c/24/0da6c637b3d25a37db605f836e53226cae65f035e865d2909ddf66b89185/spacy-3.8.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c7d719ff171aad00a9aac31e7c7f6e1871be08b0be50c362885c632826d41ce", size = 6441498, upload-time = "2026-03-23T17:42:20.516Z" }, + { url = "https://files.pythonhosted.org/packages/17/64/1eeb854dc194dde91582eedf523d38c8caa209fce45c79b175e3e7a00b9f/spacy-3.8.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:95c2bf7d0afbf699df89cca5431527dff4950a823fd093680618057aa2affff8", size = 32050555, upload-time = "2026-03-23T17:42:25.13Z" }, + { url = "https://files.pythonhosted.org/packages/05/5b/7de5aae98f0a4547b9e44fd41e3f5820c199d67c78148782a08df83d19a8/spacy-3.8.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b118c9ca4250cba8a39c7fc73641820086d476dafb54b5d1f306a3f60098d3cd", size = 32296475, upload-time = "2026-03-23T17:42:30.151Z" }, + { url = "https://files.pythonhosted.org/packages/96/33/624d0025097b6b26a2c6d1b3dd7e24dec5da495e8c2a0f379bcc3ec26d15/spacy-3.8.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:53a6ff574a4505339375e31ba3280ff7235e82e120377614210750fa66cb63df", size = 32288426, upload-time = "2026-03-23T17:42:35.418Z" }, + { url = "https://files.pythonhosted.org/packages/c2/be/93eec7f8266a6d96fb5229d4588d64bb6dfa037604b5121a703cad35debb/spacy-3.8.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cf07faad25a301efbd90da1343c1f62e35185d064c5e087bd0d11a5a6b3358fe", size = 33113494, upload-time = "2026-03-23T17:42:41.053Z" }, + { url = "https://files.pythonhosted.org/packages/26/3d/0bd7d780642635e662b32fcd530ed5bed1844dbf977bc5eed43efefa034c/spacy-3.8.13-cp311-cp311-win_amd64.whl", hash = "sha256:740cafd3cb2331c48057f6689ed6be5652d35db92aa2980f32f3d78a9aba6300", size = 15359637, upload-time = "2026-03-23T17:42:45.168Z" }, + { url = "https://files.pythonhosted.org/packages/be/78/11896d5b5987cd37ae498ef1ce795e0dd551f984fffa9cf6a7887655617e/spacy-3.8.13-cp311-cp311-win_arm64.whl", hash = "sha256:189bdd05cfd66fd3d1f79449d38ba4e2d0270743f762db1304617ccad9dd321c", size = 14717010, upload-time = "2026-03-23T17:42:48.915Z" }, + { url = "https://files.pythonhosted.org/packages/d8/e1/e8f6dc7fc00582b8dcbf40fac5bce6c0ff366cf6db212decdacfaf13e584/spacy-3.8.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dd8ab0deefe9d2c7dccce1be1e65660a32cfc3cc114d0aa222ff52ae11be58ba", size = 6218311, upload-time = "2026-03-23T17:42:51.938Z" }, + { url = "https://files.pythonhosted.org/packages/31/fe/517de9e25a6ec469738c9e886c15cd96649b338c6ae475b9b3e4c4f5e03d/spacy-3.8.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:eab059bc668336d0034f3f69aed6b661b626c174e97cc1b52296d0d923c24405", size = 6033843, upload-time = "2026-03-23T17:42:54.133Z" }, + { url = "https://files.pythonhosted.org/packages/2c/a8/9a33c69f772f5c32a57c9ef7e692293b558e7bad202264d5586ab087fd29/spacy-3.8.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:96a8e141fd7ff749fa6693c9c72187f802d334bcadf48b6b9d6ca9bff315ca73", size = 32725183, upload-time = "2026-03-23T17:42:58.847Z" }, + { url = "https://files.pythonhosted.org/packages/ba/cf/dcc0ea61270cb23a46d3efc437fe760e7a9c3cabcfaa770591329d1430f2/spacy-3.8.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:32c16f5be8c8006197554da3647d83311fb89bb31bb417d38f0d1da585877b0d", size = 33205816, upload-time = "2026-03-23T17:43:03.717Z" }, + { url = "https://files.pythonhosted.org/packages/90/6b/ce94ba2a166add3376aa2c976cb1a34d6387e9dc61103cfbe9192675d0b6/spacy-3.8.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7402154eae9d2c34d097f3f7f2bf3ed4ce6ef9d44e3035af15ccc7f357d122cb", size = 32090348, upload-time = "2026-03-23T17:43:08.809Z" }, + { url = "https://files.pythonhosted.org/packages/4d/20/df5076a162bda36b04cdfa9cd544ac2be4b47aed957b3922e4c8f75dc25a/spacy-3.8.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:879f467578569db73b5811aa0f0b9a3b3fb81a125c2f7a433dd5626bcaca53f6", size = 32991911, upload-time = "2026-03-23T17:43:14.543Z" }, + { url = "https://files.pythonhosted.org/packages/41/17/316dfdf5f8d1dd33a205e4f5e7190b67db73802180f7d08c8b306eb44375/spacy-3.8.13-cp312-cp312-win_amd64.whl", hash = "sha256:a0c849b5c9cee5a930a5e8a63d0b07e095d4e3d371af6a70c496efa1d0851257", size = 14226861, upload-time = "2026-03-23T17:43:18.122Z" }, + { url = "https://files.pythonhosted.org/packages/be/a8/a794d5bbf7bc2df6770df2b14cd6811420d0e10fe81830920bf0e891c19a/spacy-3.8.13-cp312-cp312-win_arm64.whl", hash = "sha256:5d7f660f64c7d09778600b27b881a367075fe792cb5cc6932737aeda71a9aa09", size = 13628855, upload-time = "2026-03-23T17:43:22.162Z" }, + { url = "https://files.pythonhosted.org/packages/a7/2d/dc15440fa58c12bab25cbd368bbf3b754eb11d1d3cc37f3aee47caa63695/spacy-3.8.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6db8903cf3fd8b40db9dab669c1e823a8884100f223dc8ec63c3744ff505d5fd", size = 6202080, upload-time = "2026-03-23T17:43:25.044Z" }, + { url = "https://files.pythonhosted.org/packages/1b/27/6d723fa0c3c9872d7b8c3fb1c76edef65c1db2de441ee87d119128cb82f7/spacy-3.8.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c26258bfed2f3bf5563c5994ee752ea8662bbac70924d28fbea4d1c10df48fd0", size = 6015435, upload-time = "2026-03-23T17:43:28.281Z" }, + { url = "https://files.pythonhosted.org/packages/c0/36/d13f36204290e7753ce849106fb732a1a1ff6c1af0a200f2c2f493a56e60/spacy-3.8.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a5f02eab8e6e8e9e790b1e8da05b70b3b1d4b1fb10dc4f44203da96939fdb977", size = 32510675, upload-time = "2026-03-23T17:43:32.657Z" }, + { url = "https://files.pythonhosted.org/packages/19/37/f2a0c986bc2d59b18547d5ffaabf57fd9d88e129ad7df5ebc9ccdc91e643/spacy-3.8.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:17b14f28d83fe85390f420f89760ae36d515f3e0a236f8266c46335549806e3a", size = 32841103, upload-time = "2026-03-23T17:43:38.139Z" }, + { url = "https://files.pythonhosted.org/packages/37/31/b4a86cc013e4ac3c3c290ecade748c4623709a78db8a368ee0e152931c0b/spacy-3.8.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:10fffb387e6afeba582e01efd9b5e0c5431ac323af134f4a71a749255182f4c8", size = 31763223, upload-time = "2026-03-23T17:43:42.823Z" }, + { url = "https://files.pythonhosted.org/packages/4f/fa/b3a406bdc2636aaa315b8539b88f262e78ca391afc4083e3e9806953b24a/spacy-3.8.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:500f6eb9e4711e75fc07d517962dbfb553ba144ccf1b1e8ffc71b014c9ad91b2", size = 32717863, upload-time = "2026-03-23T17:43:47.939Z" }, + { url = "https://files.pythonhosted.org/packages/d9/97/11ed2a980e7225b0a1a4041cb1cba44f40bd83682a08e450dd6171f054e4/spacy-3.8.13-cp313-cp313-win_amd64.whl", hash = "sha256:1e679a8c5dd86c564a1185d894b1b8e50b52fa81bee518120fc2f86349d1879c", size = 14220413, upload-time = "2026-03-23T17:43:51.922Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e2/06633e779486f62b3ec7ddeeb4accc10fb9a356b59f5bed3771dfb89931b/spacy-3.8.13-cp313-cp313-win_arm64.whl", hash = "sha256:c086bff909d73be892b4eb6883070dd3e328592b8933f0059a6569c8c7904928", size = 13619060, upload-time = "2026-03-23T17:43:55.449Z" }, + { url = "https://files.pythonhosted.org/packages/f2/02/bf2943f61a8bd21cca90e4fe19c4da8752c386f02a76e326b33199e09953/spacy-3.8.13-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:edcdd4f99e2711fc90c6ba3e8e07f7dc9753d111377ba7b7b5eb0d7259b0d211", size = 6209920, upload-time = "2026-03-23T17:43:58.441Z" }, + { url = "https://files.pythonhosted.org/packages/e7/87/fa5e4eb2ccb660d5042eb9144134dc6238c132ec812131bb0aca296bcdd9/spacy-3.8.13-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b8fd0188f78e032ac58f70a00748d591e244f3d4718e0ead2d9418b4148c744d", size = 6040696, upload-time = "2026-03-23T17:44:00.704Z" }, + { url = "https://files.pythonhosted.org/packages/ed/f3/9132878e0c18d627adffc1d23129a3706385d4f0fbe2ea5839523519452c/spacy-3.8.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0dc2d058cb919102bf0634b1b41aff64b867d9bab36bd35979ab658b5b2e4c27", size = 32431416, upload-time = "2026-03-23T17:44:05.435Z" }, + { url = "https://files.pythonhosted.org/packages/80/73/396c5c3aaef5004d04abbda4ec736ce4d33944aff6722e974cebdd4023fd/spacy-3.8.13-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ef884df658d3b60d91cbc1e9b62a6d932589d2fa3f322c3f739b6ffdf3303e0c", size = 32483676, upload-time = "2026-03-23T17:44:10.913Z" }, + { url = "https://files.pythonhosted.org/packages/71/01/15ceb2097a817c2912297eac29f801bd71d895e93d7557110937c88f7c77/spacy-3.8.13-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:86f58d686d1ba6f0dc818005ee6ad87ade8dde7224012f1870a0d31abccd349e", size = 31732468, upload-time = "2026-03-23T17:44:15.967Z" }, + { url = "https://files.pythonhosted.org/packages/03/c4/b4c39083df6209414faec7d7471994316dc6fca68c4d2f1f8f099f25c2e3/spacy-3.8.13-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:dbcb411b9749a1cd5e4325953212b3984d8c0f60b4976943e77fb0c7d5027383", size = 32473870, upload-time = "2026-03-23T17:44:21.36Z" }, + { url = "https://files.pythonhosted.org/packages/f2/5c/9b0fa420b01809c0170b3cf0bf509ec06b4da96214995360815615b8e8fa/spacy-3.8.13-cp314-cp314-win_amd64.whl", hash = "sha256:bf9b6879d70201acb73fc5f07d550ff488d3b5f15a959e9896717b2635c8e137", size = 14405303, upload-time = "2026-03-23T17:44:25.83Z" }, + { url = "https://files.pythonhosted.org/packages/fa/58/0001fd8124b62a2a9984278d793e3abfa1b70e969fc26a8668755178db84/spacy-3.8.13-cp314-cp314-win_arm64.whl", hash = "sha256:b2a402f229fcb5dba5454c346468757bd3a5215809e784b85d739ca84916f05b", size = 13834663, upload-time = "2026-03-23T17:44:29.43Z" }, +] + +[[package]] +name = "spacy-legacy" +version = "3.0.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d9/79/91f9d7cc8db5642acad830dcc4b49ba65a7790152832c4eceb305e46d681/spacy-legacy-3.0.12.tar.gz", hash = "sha256:b37d6e0c9b6e1d7ca1cf5bc7152ab64a4c4671f59c85adaf7a3fcb870357a774", size = 23806, upload-time = "2023-01-23T09:04:15.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/55/12e842c70ff8828e34e543a2c7176dac4da006ca6901c9e8b43efab8bc6b/spacy_legacy-3.0.12-py2.py3-none-any.whl", hash = "sha256:476e3bd0d05f8c339ed60f40986c07387c0a71479245d6d0f4298dbd52cda55f", size = 29971, upload-time = "2023-01-23T09:04:13.45Z" }, +] + +[[package]] +name = "spacy-loggers" +version = "1.0.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/67/3d/926db774c9c98acf66cb4ed7faf6c377746f3e00b84b700d0868b95d0712/spacy-loggers-1.0.5.tar.gz", hash = "sha256:d60b0bdbf915a60e516cc2e653baeff946f0cfc461b452d11a4d5458c6fe5f24", size = 20811, upload-time = "2023-09-11T12:26:52.323Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/78/d1a1a026ef3af911159398c939b1509d5c36fe524c7b644f34a5146c4e16/spacy_loggers-1.0.5-py3-none-any.whl", hash = "sha256:196284c9c446cc0cdb944005384270d775fdeaf4f494d8e269466cfa497ef645", size = 22343, upload-time = "2023-09-11T12:26:50.586Z" }, +] + +[[package]] +name = "srsly" +version = "2.5.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "catalogue" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2b/db/f794f219a6c788b881252d2536a8c4a97d2bdaadc690391e1cb53d123d71/srsly-2.5.3.tar.gz", hash = "sha256:08f98dbecbff3a31466c4ae7c833131f59d3655a0ad8ac749e6e2c149e2b0680", size = 490881, upload-time = "2026-03-23T11:56:59.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/67/e6d4decfb0cdc95b54c60854a1a6d1702983c39206c2b9f70f4ab18b17c8/srsly-2.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c812302a9acfe171e82f680b7ad642014cd017380b2c678441b3da4fb513c498", size = 657202, upload-time = "2026-03-23T11:55:34.938Z" }, + { url = "https://files.pythonhosted.org/packages/cc/5d/cb8b093d0836e59c152de6dfdb5db80c6408b00def0123f26d24bffde480/srsly-2.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91688edb1f49110870d2c215db2cf445f1763c14173698ead0818908c51fb2a1", size = 657951, upload-time = "2026-03-23T11:55:36.571Z" }, + { url = "https://files.pythonhosted.org/packages/71/a1/5d2fb4c6a8e0e39dd1fb23bdd8feb1f2525ce90b28946f9f58ac5d3a039c/srsly-2.5.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1fd6c35c65c4d2435ae5bfb57b59682cf9b61606318a2a761856be9d7cc2d9e3", size = 1119766, upload-time = "2026-03-23T11:55:38.351Z" }, + { url = "https://files.pythonhosted.org/packages/ff/83/0862ffac8c06ed595dd1e28f261c37956585b9cf6b9bd049f8430a4c2daf/srsly-2.5.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b9df76d5a6bbf50967589bd42df3c522dd88babea2be745a507f56b41ab40626", size = 1120674, upload-time = "2026-03-23T11:55:39.644Z" }, + { url = "https://files.pythonhosted.org/packages/f1/06/42f72bab50876a708a10e6fc026ae8c7f185507d9f27544fa4ee8567c5fd/srsly-2.5.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a595958d0b1ff6d59c2570a3f0d1c8e36ab9f89d6e1b9c96fa7eb5e1a8698510", size = 1078505, upload-time = "2026-03-23T11:55:41.299Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f4/dfb86bc5c3abee267fb2f34895ea80d0159a084987a93d56ed1bf5ebefe4/srsly-2.5.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bc0ad5be2aeb9ff29c8512848d39d7c63fdd4bfbb5516bc523f5de5a77e55e6d", size = 1090635, upload-time = "2026-03-23T11:55:42.7Z" }, + { url = "https://files.pythonhosted.org/packages/2a/a6/561b46eff4477191dd649e09dd9b88afc44aad7ce204c45f4e45ad04861d/srsly-2.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:d2b8cfd8aee4d06ab335d359e4095d206102300a5e105a4b4bc69acca42427a6", size = 651653, upload-time = "2026-03-23T11:55:44.429Z" }, + { url = "https://files.pythonhosted.org/packages/dc/05/b122a1afaf8e8644d10f0203ad5174993910e6f727843089f0d48b444340/srsly-2.5.3-cp310-cp310-win_arm64.whl", hash = "sha256:c378afcb7dd7c42f426a66112496c949fc39e5883de6817d86e60afa51720ccc", size = 639118, upload-time = "2026-03-23T11:55:45.796Z" }, + { url = "https://files.pythonhosted.org/packages/9a/36/5d7bb412d52e9cca787f9bfe838b596367189b254e50bf90f234a97184bf/srsly-2.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:785a09216ac31570fb301ddb9f61ee73d1f18f8b9561f712dce0b8ac8628bc88", size = 656760, upload-time = "2026-03-23T11:55:47.155Z" }, + { url = "https://files.pythonhosted.org/packages/d6/dc/124f008cd2be3e887e972cbdeb17c5aee0f42093eca02c7cfd63bb5daf19/srsly-2.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0017c7d2a0cd9a4f1bdc00d946b45edcf90bb0e271e8f084c1ce542bf6708c32", size = 657503, upload-time = "2026-03-23T11:55:48.681Z" }, + { url = "https://files.pythonhosted.org/packages/35/8a/2c97244ebab125d55f1bfb7bb94e9572b3e819410dffd6a040eca1112350/srsly-2.5.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:66ebae2c70305987341519ec1a720072a3cb3e4b1d52ac0e9e841f4d02658d3d", size = 1139161, upload-time = "2026-03-23T11:55:50.179Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ea/ecd396188f7591d80b89665f7af9e3ae02e42683daef57033ad7993ad3f9/srsly-2.5.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4ca4a068f6e14d84113a02fcb875c6b50a6285a12938c0e7a157eb3a63c50a86", size = 1142438, upload-time = "2026-03-23T11:55:52.607Z" }, + { url = "https://files.pythonhosted.org/packages/9c/65/143e2e143c53d498ad0956f69d0e09189aa7a6e0ee6017758c285ba1ab2d/srsly-2.5.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e283fa2a8f7350fb9fb70ecdee28d59d39c92f4c7f1cc90a44d6b86db3b3a8b3", size = 1101783, upload-time = "2026-03-23T11:55:53.906Z" }, + { url = "https://files.pythonhosted.org/packages/6b/86/1392a5593de0cd3d08c2d6c071b877c84358a37f63172c4e9cb71706842d/srsly-2.5.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9ffc97e22730ea97b00f7c303ccc60b1305e786afadb2a4a46578dafa4d29da0", size = 1115876, upload-time = "2026-03-23T11:55:55.624Z" }, + { url = "https://files.pythonhosted.org/packages/d4/a5/6193aa4c08e488821538fcbce2282449e228fd2183ed67d118bb5ccd8b54/srsly-2.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:f09b551f6c3e334652831ac68c770ee4284741ce0a3895bf1ccf2a1178d66cdd", size = 651733, upload-time = "2026-03-23T11:55:56.964Z" }, + { url = "https://files.pythonhosted.org/packages/66/a8/a73181743b6d237026615ca75c3fb3e4780736f1390550a7350d0c7f1149/srsly-2.5.3-cp311-cp311-win_arm64.whl", hash = "sha256:21cf09e417d3e4f3fbf7dd337fd6d948c97abd01896b9b4cb80e81cd9778a73a", size = 639124, upload-time = "2026-03-23T11:55:58.532Z" }, + { url = "https://files.pythonhosted.org/packages/02/cc/e9f7fcec4cc92ad8bad6316c4241638b8cf7380382d4489d94ec6c436452/srsly-2.5.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:71e51c046ccbeefb86524c6b1e17574f579c6ac4dc8ea4a09437d3e8f88342d3", size = 658379, upload-time = "2026-03-23T11:55:59.85Z" }, + { url = "https://files.pythonhosted.org/packages/21/e4/fea4512e9785f58509b2cf67d993323848e583161b5fcfdc7dd9d7c1f3df/srsly-2.5.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f73c0db911552e94fe2016e1759d261d2f47926f68826664cada3723c87006a", size = 658513, upload-time = "2026-03-23T11:56:01.239Z" }, + { url = "https://files.pythonhosted.org/packages/20/b1/53591681b6ff2699a4f97b2d5552ba196eaa6a979b0873605f4c04b5f7ee/srsly-2.5.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5c1ac27ae5f4bb9163c7d2c45fc8ec173aac3d92e32086d9472b326c5c6e570e", size = 1172265, upload-time = "2026-03-23T11:56:02.589Z" }, + { url = "https://files.pythonhosted.org/packages/4e/c9/741e29f534919a944a16da4184924b1d3404c4bf60716ab2b91be771d1e3/srsly-2.5.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:99026bcd9cbd3211cc36517400b04ca0fc5d3e412b14daf84ee6e65f67d9a2d8", size = 1180873, upload-time = "2026-03-23T11:56:03.944Z" }, + { url = "https://files.pythonhosted.org/packages/89/57/5554f786eccf78b2750d6ac63be126e1b67badec2cb409dd611cf6f8c52b/srsly-2.5.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:07d682679e639eb46ff7e6da4a92714f4d5ffe351d088ee66f221e9b1f8865bb", size = 1120437, upload-time = "2026-03-23T11:56:05.283Z" }, + { url = "https://files.pythonhosted.org/packages/eb/95/9b4f73b1be3692f86d72ccc131c8e50f26f824d5c8830a59390bcc5b60ef/srsly-2.5.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8e0542d85d6b55cf2934050d6ffcb1cd76c768dcf9572e7467002cf087bb366d", size = 1137376, upload-time = "2026-03-23T11:56:06.613Z" }, + { url = "https://files.pythonhosted.org/packages/5a/de/89ca640ca1953c4612279ce515d0af35658df3c06cdb324329bc91b4a7e1/srsly-2.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:598f1e494c18cacb978299d77125415a586417081959f8ec3f068b32d97f8933", size = 652459, upload-time = "2026-03-23T11:56:07.994Z" }, + { url = "https://files.pythonhosted.org/packages/6d/4f/7ab6d49e36d9cc72ee15746cabd116eb6f338be8a06c1882968ee9d6c7d7/srsly-2.5.3-cp312-cp312-win_arm64.whl", hash = "sha256:4b1b721cd3ad1a9b2343519aadc786a4d09d5c0666962d49852eb12d6ec3fe26", size = 638411, upload-time = "2026-03-23T11:56:09.31Z" }, + { url = "https://files.pythonhosted.org/packages/9d/5c/12901e3794f4158abc6da750725aad6c2afddb1e4227b300fe7c71f66957/srsly-2.5.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e67b6bbacbfadea5e100266d2797f2d4cec9883ea4dc84a5537673850036a8d8", size = 656750, upload-time = "2026-03-23T11:56:10.708Z" }, + { url = "https://files.pythonhosted.org/packages/04/61/181c26370995f96f56f1b64b801e3ca1e0d703fc36506ae28606d62369fb/srsly-2.5.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:348c231b4477d8fe86603131d0f166d2feac9c372704dfc4398be71cc5b6fb07", size = 656746, upload-time = "2026-03-23T11:56:12.28Z" }, + { url = "https://files.pythonhosted.org/packages/77/c6/35876c78889f8ffe11ed3521644e666c3aef20ea31527b70f47456cf35c2/srsly-2.5.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b0938c2978c91ae1ef9c1f2ba35abb86330e198fb23469e356eba311e02233ee", size = 1155762, upload-time = "2026-03-23T11:56:14.075Z" }, + { url = "https://files.pythonhosted.org/packages/3e/da/40b71ca9906c8eb8f8feb6ac11d33dad458c85a56e1de764b96d402168a0/srsly-2.5.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5f6a837954429ecbe6dcdd27390d2fb4c7d01a3f99c9ffcf9ce66b2a6dd1b738", size = 1161092, upload-time = "2026-03-23T11:56:15.778Z" }, + { url = "https://files.pythonhosted.org/packages/dc/14/c0dd30cc8b93ce8137ff4766f743c882440ce49195fffc5d50eaeef311a6/srsly-2.5.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3576c125c486ce2958c2047e8858fe3cfc9ea877adfa05203b0986f9badee355", size = 1109984, upload-time = "2026-03-23T11:56:17.056Z" }, + { url = "https://files.pythonhosted.org/packages/08/f3/34354f183d8faafc631585571224b54d1b4b67e796972c36519c074ca355/srsly-2.5.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5fb59c42922e095d1ea36085c55bc16e2adb06a7bfe57b24d381e0194ae699f2", size = 1128409, upload-time = "2026-03-23T11:56:18.761Z" }, + { url = "https://files.pythonhosted.org/packages/a4/d9/5531f8a19492060b4e76e4ab06aca6f096fb5128fe18cc813d1772daf653/srsly-2.5.3-cp313-cp313-win_amd64.whl", hash = "sha256:111805927f05f5db440aeeacb85ce43da0b19ce7b2a09567a9ef8d30f3cc4d83", size = 650820, upload-time = "2026-03-23T11:56:20.096Z" }, + { url = "https://files.pythonhosted.org/packages/8e/8a/62fb7a971eca29e12f03fb9ddacb058548c14d33e5b5675ff0f85839cc7b/srsly-2.5.3-cp313-cp313-win_arm64.whl", hash = "sha256:0f106b0a700ab56e4a7c431b0f1444009ab6cb332edc7bbf6811c2a43f4722cb", size = 637278, upload-time = "2026-03-23T11:56:21.439Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5b/e4ef43c2a381711230af98d4c94a5323df48d6a7899ee652e05bf889290e/srsly-2.5.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:39c13d552a9f9674a12cdcdc66b0c2f02f3430d0cd04c5f9cf598824c2bd3d65", size = 661294, upload-time = "2026-03-23T11:56:23.29Z" }, + { url = "https://files.pythonhosted.org/packages/92/2d/ebce7f3717e52cd0a01f4ec570f388f3b7098526794fcf1ad734e0b8f852/srsly-2.5.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:14c930767cc169611a2dc14e23bc7638cfb616d6f79029700ade033607343540", size = 660952, upload-time = "2026-03-23T11:56:24.908Z" }, + { url = "https://files.pythonhosted.org/packages/22/47/a8f3e9b214be2624c8e8a78d38ca7b1d4e26b92d57018412e4bfc4abe89a/srsly-2.5.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2f2d464f0d0237e32fb53f0ec6f05418652c550e772b50e9918e83a1577cba4d", size = 1154554, upload-time = "2026-03-23T11:56:26.608Z" }, + { url = "https://files.pythonhosted.org/packages/d6/71/2a89dc3180a51e633a87a079ca064225f4aaf46c7b2a5fc720e28f261d98/srsly-2.5.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d18933248a5bb0ad56a1bae6003a9a7f37daac2ecb0c5bcbfaaf081b317e1c84", size = 1155746, upload-time = "2026-03-23T11:56:28.102Z" }, + { url = "https://files.pythonhosted.org/packages/b8/36/72e5ce3153927ca404b6f5bf5280e6ff3399c11557df472b153945468e0a/srsly-2.5.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7ea5412ea229e571ac9738cbe14f845cc06c8e4e956afb5f42061ccd087ef31f", size = 1112374, upload-time = "2026-03-23T11:56:29.591Z" }, + { url = "https://files.pythonhosted.org/packages/04/b2/0895de109c28eca0d41a811ab7c076d4e4a505e8466f06bae22f5180a1dd/srsly-2.5.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8d3988970b4cf7d03bdd5b5169302ff84562dd2e1e0f84aeb34df3e5b5dc19bf", size = 1127732, upload-time = "2026-03-23T11:56:31.458Z" }, + { url = "https://files.pythonhosted.org/packages/c7/79/a37fa7759797fbdfe0a2e029ab13e78b1e81e191220d2bb8ff57d869aefb/srsly-2.5.3-cp314-cp314-win_amd64.whl", hash = "sha256:6a02d7dcc16126c8fae1c1c09b2072798a1dc482ab5f9c52b12c7114dac47325", size = 656467, upload-time = "2026-03-23T11:56:33.14Z" }, + { url = "https://files.pythonhosted.org/packages/d7/25/0dae019b3b90ad9037f91de4c390555cdaac9460a93ad62b02b03babdff5/srsly-2.5.3-cp314-cp314-win_arm64.whl", hash = "sha256:1c9129c4abe31903ff7996904a51afdd5428060de6c3d12af49a4da5e8df2821", size = 643040, upload-time = "2026-03-23T11:56:34.448Z" }, + { url = "https://files.pythonhosted.org/packages/3a/44/72dd5285b2e05435d98b0797f101d91d9b345d491ddc1fdb9bd09e27ccb8/srsly-2.5.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:29d5d01ba4c2e9c01f936e5e6d5babc4a47b38c9cbd6e1ec23f6d5a49df32605", size = 666200, upload-time = "2026-03-23T11:56:35.753Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ad/002c71b87fc3f648c9bf0ec47de0c3822bf2c95c8896a589dd03e7fd3977/srsly-2.5.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5c8df4039426d99f0148b5743542842ab96b82daded0b342555e15a639927757", size = 667409, upload-time = "2026-03-23T11:56:37.172Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/2cea3d5e80aeecfc4ece9e7e1783e7792cc3bad7ab85ab585882e1db4e38/srsly-2.5.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:06a43d63bde2e8cccadb953d7fff70b18196ca286b65dd2ad16006d65f3f8166", size = 1265941, upload-time = "2026-03-23T11:56:38.825Z" }, + { url = "https://files.pythonhosted.org/packages/aa/38/8a4d7e86dd0370a2e5af251b646000197bb5b7e0f9aa360c71bbfb253d0d/srsly-2.5.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:808cfafc047f0dec507a34c8fa8e4cda5722737fd33577df73452f52f7aca644", size = 1250693, upload-time = "2026-03-23T11:56:40.449Z" }, + { url = "https://files.pythonhosted.org/packages/99/05/340129de5ea7b237271b12f8a6962cfa7eb0c5a3056794626d348c5ae7c7/srsly-2.5.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:71d4cbe2b2a1335c76ed0acae2dc862163787d8b01a705e1949796907ed94ccd", size = 1242408, upload-time = "2026-03-23T11:56:41.8Z" }, + { url = "https://files.pythonhosted.org/packages/01/cb/d7fee7ab27c6aa2e3f865fb7b50ba18c81a4c763bba12bdf53df246441bc/srsly-2.5.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:565f69083d33cb329cfc74317da937fb3270c0f40fabc1b4488702d8074b4a3e", size = 1242749, upload-time = "2026-03-23T11:56:43.246Z" }, + { url = "https://files.pythonhosted.org/packages/d8/d1/9bad3a0f2fa7b72f4e0cf1d267b00513092d20ef538c47f72823ae4f7656/srsly-2.5.3-cp314-cp314t-win_amd64.whl", hash = "sha256:8ac016ffaeac35bc010992b71bf8afdd39d458f201c8138d84cf78778a936e6c", size = 673783, upload-time = "2026-03-23T11:56:44.875Z" }, + { url = "https://files.pythonhosted.org/packages/2a/ae/57d1d7af907e20c077e113e0e4976f87b82c0a415403d99284a262229dd0/srsly-2.5.3-cp314-cp314t-win_arm64.whl", hash = "sha256:d822083fe26ec6728bd8c273ac121fc4ab3864a0fdf0cf0ff3efb188fcd209ed", size = 650229, upload-time = "2026-03-23T11:56:46.148Z" }, +] + +[[package]] +name = "sse-starlette" +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "starlette" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d2/1b/bc9e3e7a72dcdad7dc7888758f5d00f56f8909ed5cfdff822bd72bb4c520/sse_starlette-3.4.5.tar.gz", hash = "sha256:83072538bc211a2f68b7b0422226c4af3e9b62e106e07034664b832ca019842a", size = 35249, upload-time = "2026-06-20T17:36:58.322Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/75/c88d3f5dafd59c791da1ce27650d30bf5b70cbf1cbf01cd00e5f9e360915/sse_starlette-3.4.5-py3-none-any.whl", hash = "sha256:e71bad53323f65573c3864a6c3bd0c1eb6e5f092b2e48082b0c35927d19ca296", size = 16518, upload-time = "2026-06-20T17:36:56.729Z" }, +] + +[[package]] +name = "starlette" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/e3/7c1dc7381d9f8ab7d854328ebfa884e62cb3f3d8549ddfd37c7814f42afa/starlette-1.3.1.tar.gz", hash = "sha256:05d0213193f2fbaae60e2ecb593b4add4262ad4e46536b54abe36f11a71724e0", size = 2703240, upload-time = "2026-06-12T09:23:11.602Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/bb/2799cc2ede3ed41131f8975621e7213dfc7ef4acbbaadfa440f32500c370/starlette-1.3.1-py3-none-any.whl", hash = "sha256:c7372aae11c3c3f26a42df7bd626cec2f47d03483d261d369516a615a53714c6", size = 73632, upload-time = "2026-06-12T09:23:10.017Z" }, +] + +[[package]] +name = "stevedore" +version = "5.8.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/88/35e4d27d9177d7df76d060e0a18f69c6c5794c96960c94042e20a12c8ba2/stevedore-5.8.0.tar.gz", hash = "sha256:b49867b32ca3016e94100e68dbf26e72aa7b8708d0a3f73c08aeb220370ac715", size = 514710, upload-time = "2026-05-18T09:15:27.731Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f5/ac/19f9941c74add59d17694930ec8105d5eddeee4ce56dd8632b765ca16d6c/stevedore-5.8.0-py3-none-any.whl", hash = "sha256:88eede9e66ca80e34085b9174e2327da2c61ac91f24f70e41c3ad76e4bb4872b", size = 54553, upload-time = "2026-05-18T09:15:25.82Z" }, +] + +[[package]] +name = "stevedore" +version = "5.9.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform == 'win32'", + "python_full_version == '3.14.*' and sys_platform == 'win32'", + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +sdist = { url = "https://files.pythonhosted.org/packages/d7/dd/04d56c2a5232358df41f3d0f0e31833d378b6c8ed7803a6b1b7867b0eba6/stevedore-5.9.0.tar.gz", hash = "sha256:abbd0af7a38a8bbb1d6adea2e35b17609cf004eaac323e88a8d8963640dd2b3c", size = 514850, upload-time = "2026-07-02T11:38:08.509Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/8d/008761f6e1000600e5303db30d05724bdcf3d2d186cbb59fac79b52e39ed/stevedore-5.9.0-py3-none-any.whl", hash = "sha256:e520945d4c257700eddc1eb1d79df04b2ea578eef185e0e3fa5b442fc848d3f7", size = 54463, upload-time = "2026-07-02T11:38:07.43Z" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "thinc" +version = "8.3.13" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blis" }, + { name = "catalogue" }, + { name = "confection" }, + { name = "cymem" }, + { name = "murmurhash" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "packaging" }, + { name = "preshed" }, + { name = "pydantic" }, + { name = "setuptools" }, + { name = "srsly" }, + { name = "wasabi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/13/46/76df95f2c327f9a9cef30c1523bf285627897097163584dcf5f77b2ebce2/thinc-8.3.13.tar.gz", hash = "sha256:68e658549fc1eb3ff92aed5147fcbb9c15d6e9cc0e623b4d0998d16522ffb4f9", size = 194640, upload-time = "2026-03-23T07:22:36.41Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/e3/df570d55f38250d153e209d998f60e334026ea60cf9a887cffb85d7ee9bf/thinc-8.3.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:84fb50fe572a1860165f2e7a640c7cb70d43d6962366e69f643fa9a27e4a2127", size = 846996, upload-time = "2026-03-23T07:21:32.701Z" }, + { url = "https://files.pythonhosted.org/packages/ec/72/e97c9cb863ef0a645ba069c24e0981bfaedf8241ba199512ebcd64ba090a/thinc-8.3.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3dac18a0fb0a42f711c2ce9c02cbb090385aecae92089aa17b9dfd808a542013", size = 815368, upload-time = "2026-03-23T07:21:34.392Z" }, + { url = "https://files.pythonhosted.org/packages/b6/7a/9283f52b1210dc052b795e22ec739d13929b914d1289e49336bede34c4eb/thinc-8.3.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e08b1577a56e7315770af280aabd8fa5f2a1fb6afd1c50a4183c06e907faf558", size = 3885033, upload-time = "2026-03-23T07:21:35.772Z" }, + { url = "https://files.pythonhosted.org/packages/93/9a/aa8f2e19819c02781b282c3a9cfb57c76ff1fbe0b6deaa1ffd04dc920894/thinc-8.3.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:303477eb51b9b39c94a7fc7967ee8a039eca1ca37d95dcce1234c83b95b4ee9f", size = 3912947, upload-time = "2026-03-23T07:21:37.219Z" }, + { url = "https://files.pythonhosted.org/packages/51/fa/ea7c67667b8a875178bea5a42dc9c8b0622c34e7eba3d8e42874f2c4b4c1/thinc-8.3.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d7a9654f9ca362a4be7f5e590fdfee26e2e2084da9fd3306032ec037e99f2f8e", size = 4887518, upload-time = "2026-03-23T07:21:38.76Z" }, + { url = "https://files.pythonhosted.org/packages/36/44/99c391e951e3b706b9a7552ced720e9ec3bddd6707a99d53e4354ebefa45/thinc-8.3.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e1f8d13bf92ee10595c40692fd4cf8e7bbe73bd9f260107e975fd5dbee1af42b", size = 5044691, upload-time = "2026-03-23T07:21:40.257Z" }, + { url = "https://files.pythonhosted.org/packages/ce/cf/9d95fb5f12d76ad1c7570a9a38da2f2f60dba721c87630bfabaabef91bc3/thinc-8.3.13-cp310-cp310-win_amd64.whl", hash = "sha256:e7f046d8914055cad51e83ff0da1a892acb73cd58556d7c1a5d4015a3766a899", size = 1795372, upload-time = "2026-03-23T07:21:41.709Z" }, + { url = "https://files.pythonhosted.org/packages/b4/72/ca06842a007e8c794e8c59462f242cdfd6167d7cc9d0155ad004b194b015/thinc-8.3.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4565102638038a01a2193c7f5d41ccbd6233fbdcb1f1b184322a06add4f51f18", size = 844359, upload-time = "2026-03-23T07:21:43.017Z" }, + { url = "https://files.pythonhosted.org/packages/48/44/e6aef092f478d263f72eb3933b55a6f37ba97c6a0ea0a61d13fbf9bf0c19/thinc-8.3.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:859fbd9d9b16af5278da23589b4afbe2ab6b0dd615df4d3229b7c4e67cd3107e", size = 812089, upload-time = "2026-03-23T07:21:44.618Z" }, + { url = "https://files.pythonhosted.org/packages/ff/8a/9ce0424d456cd3580cc3a855b23a7ff86b81d5299fceb496a2f56f06c1c0/thinc-8.3.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a518d5c761a0f2341e530e867de133dc3ed814558365b2a68ec53b89c482a43f", size = 4101388, upload-time = "2026-03-23T07:21:46.135Z" }, + { url = "https://files.pythonhosted.org/packages/ad/51/ec91c0434bd9a1096ab874bbd6dc110c5089d7fc513137e6af59bd051eec/thinc-8.3.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:81337dfbee37f58f36c0c70f9a819dce1b32cdc13d959181e10de079621f6ac6", size = 4131972, upload-time = "2026-03-23T07:21:48.403Z" }, + { url = "https://files.pythonhosted.org/packages/ff/67/e30dea753c90cff5cb9e5feb34948fdb89a6774b84d849585b49e16a730e/thinc-8.3.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fbc0ee16edd260c6a4a9e365ff36d0a682c9e7ca6d7b985682659ef2e3e73826", size = 5101283, upload-time = "2026-03-23T07:21:49.991Z" }, + { url = "https://files.pythonhosted.org/packages/00/e9/b7544eddababa16e548b26a96fff29eeb307ce938df5fa4af9371fe8ed5d/thinc-8.3.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0355c37e40d1a9fc2a1b8e9c2e294d8586f6baa97bcac6b9002f2dddb4b82ae9", size = 5264488, upload-time = "2026-03-23T07:21:51.747Z" }, + { url = "https://files.pythonhosted.org/packages/4c/a9/49391a40d703efc0f7a451310373261835f71fd3e6e2e8cfc08ee02f78ad/thinc-8.3.13-cp311-cp311-win_amd64.whl", hash = "sha256:0a0fa13dcfe4b319c3a396432c1dbff30d3de37dbbdee559e76600ee2b9486df", size = 1795058, upload-time = "2026-03-23T07:21:53.424Z" }, + { url = "https://files.pythonhosted.org/packages/c1/31/fd5348d44beda12a3ee415cbba9ed4fd0b17ce65db1d473c38a29a8d6153/thinc-8.3.13-cp311-cp311-win_arm64.whl", hash = "sha256:cd8a2b714c061969eee65802965167a6ada1fe708d82fe176d98dcb95ebe182a", size = 1721215, upload-time = "2026-03-23T07:21:55.027Z" }, + { url = "https://files.pythonhosted.org/packages/3e/af/f7c1ebfe92eb5d27d7f2f3da67a11e2eb57bc30ab1553279af6dc65b65a8/thinc-8.3.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:77a41f66285321d20aaedaea1e87d7cd48dca6d2427bed1867ec7cba7109fc8d", size = 821097, upload-time = "2026-03-23T07:21:56.698Z" }, + { url = "https://files.pythonhosted.org/packages/45/8f/69d7338575d98df85d0b54c0f5fc277dba72587fe9ab846ecdd12a998bcb/thinc-8.3.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3710d318b4e5460cf366a6f7b5ddbefb5d39dbd4cfa408222750fdc6c27c4411", size = 791932, upload-time = "2026-03-23T07:21:58.38Z" }, + { url = "https://files.pythonhosted.org/packages/4b/a5/21d010c81e81e1589e5ccb4950e521804d13726e541e87f644c51815673b/thinc-8.3.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5a08c87143a6d20177652dca1ec0dc815d88216d8fc62594a57e8bc45bf5ed49", size = 3854219, upload-time = "2026-03-23T07:21:59.819Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ff/6914bf370bd1d604d89e6dfb46b97d10cd9b00d42ff8c036283e92314a8c/thinc-8.3.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4b5ec9ff313819e7d8667794a3559463fa89ff45aaa73e3fd8d6273b1e0d7a7f", size = 3903307, upload-time = "2026-03-23T07:22:01.652Z" }, + { url = "https://files.pythonhosted.org/packages/f3/3d/5572b47fa155fb3388c071515b74024fa17a6efd1df9406da378f0aa84ef/thinc-8.3.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5c9a48f2bc1e04f138240ed5f9b815a9141a5de26accd0f08fa0137fcefed258", size = 4836882, upload-time = "2026-03-23T07:22:03.565Z" }, + { url = "https://files.pythonhosted.org/packages/f0/f0/a8d77c7bac089697c6df302cc3c936a1ab36a4720deae889e6f1dbcbd0eb/thinc-8.3.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:79a29a44d76bd02f5ac0624268c6e42b3576ae472c791a8ae9c2d813ae789b59", size = 5033398, upload-time = "2026-03-23T07:22:05.045Z" }, + { url = "https://files.pythonhosted.org/packages/21/82/5651bb1f904d04220fc7670035ada921bf0638e2cff6444d67c12887a968/thinc-8.3.13-cp312-cp312-win_amd64.whl", hash = "sha256:ed1dc709ac4f2f03b710457889e4e02f05de51bc8456980c241d0b28798bc7cb", size = 1721248, upload-time = "2026-03-23T07:22:06.749Z" }, + { url = "https://files.pythonhosted.org/packages/94/8d/683703de021ffbe46833d722b70f49ffbbca8e5bd6876256977555d92d7d/thinc-8.3.13-cp312-cp312-win_arm64.whl", hash = "sha256:c6a049703a6011c8fe26ee41af7e70272145594140d82f79bb23de619c6a6525", size = 1645777, upload-time = "2026-03-23T07:22:08.104Z" }, + { url = "https://files.pythonhosted.org/packages/af/b9/7b46942176df459d1804a9e77b0976f7c56f3abf3ec7485d0e5f836a0382/thinc-8.3.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c2811dfd8d46d8b5d3b39051b23e64006b2994a5143b1978b436938018792af8", size = 817337, upload-time = "2026-03-23T07:22:09.538Z" }, + { url = "https://files.pythonhosted.org/packages/a7/79/53085a72cd8f4fc4e6e313d05ea5aa98e870684f4a0fb318a9875fc0a964/thinc-8.3.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5593e6300cb1ebe0c0e546e9c9fb49e7c2627a0aa688795cd4f995a8b820d2ec", size = 788120, upload-time = "2026-03-23T07:22:11.215Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3e/d61b462b16da95ac6885f95bb395e672040ee594833e571a6edcffd234f5/thinc-8.3.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f697174d3fb474966ce50b430bbafa101a6d2f7ffb559dac4b5c59389ef72d22", size = 3844666, upload-time = "2026-03-23T07:22:12.67Z" }, + { url = "https://files.pythonhosted.org/packages/78/4c/898cc654bb123734c71ec5a425c02ca34439517d01ce1c95a6563295580e/thinc-8.3.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9c7c5c104737b414c8c4ec578e67d78b6c859afe25cbc0684402e721415bd7f", size = 3890658, upload-time = "2026-03-23T07:22:14.668Z" }, + { url = "https://files.pythonhosted.org/packages/cd/56/1abdbf0a4ad628e8a05d6516fe0745969649d805367a3dccad8ee872981b/thinc-8.3.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a99d0e242d1ccd23f9ae6bea7cd502f8626efa65c156b91d84581d0356696c3", size = 4819933, upload-time = "2026-03-23T07:22:16.85Z" }, + { url = "https://files.pythonhosted.org/packages/f1/22/b84dbdc6be5055bbdb2a7352e2c393f67e8593c137f1b83c82bf1e062b6e/thinc-8.3.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e676edd21a747afbe3e6b9f3fca8b962e36d146ded03b070cb0c28e2dfbe9499", size = 5018099, upload-time = "2026-03-23T07:22:18.356Z" }, + { url = "https://files.pythonhosted.org/packages/0f/a8/763cd7ba949334c9d2cddc92dadb68b344cb9546dc01b8d4a733dcaa16c1/thinc-8.3.13-cp313-cp313-win_amd64.whl", hash = "sha256:8ad40307f20e83f77af28ff5c6be0b86af7a8b251d1231c545508d2763157d8f", size = 1720309, upload-time = "2026-03-23T07:22:19.81Z" }, + { url = "https://files.pythonhosted.org/packages/f5/15/a11f7bb3cbc97dfecf32a90552f5a8f8a5c99316a99c6c17bdabf5baf256/thinc-8.3.13-cp313-cp313-win_arm64.whl", hash = "sha256:723949cab11d1925c15447928513a718276316cec6e0de28337cca0a62be0521", size = 1644606, upload-time = "2026-03-23T07:22:21.339Z" }, + { url = "https://files.pythonhosted.org/packages/80/40/f4937d113912c6d669ffe982356ab29dcb6c7fe3be926a15981dbbb6a91c/thinc-8.3.13-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:7badb0be4825535e6362c19e8a41872b65409e9da46d3453a391b843a0720865", size = 817024, upload-time = "2026-03-23T07:22:23.005Z" }, + { url = "https://files.pythonhosted.org/packages/d2/00/4d4ed1a11ba2920b85a03a0683b16d97dc5beb2e78078dbf0e13e43bcea7/thinc-8.3.13-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:565300b7e13de799e5abff00d445f537e9256cf7da4dcb0d0f005fc16748a29e", size = 792096, upload-time = "2026-03-23T07:22:24.349Z" }, + { url = "https://files.pythonhosted.org/packages/44/5d/dc33d6932be8721af2ef76b4a3a6e8020648630eabae61fb916d2a861d1d/thinc-8.3.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c17cef1900a1aba7e1487493d16b8aa0a8633116f1b2a51c6649a4000697f17b", size = 3842215, upload-time = "2026-03-23T07:22:25.836Z" }, + { url = "https://files.pythonhosted.org/packages/af/bc/a6d37d8dadc2c5b524f51192413481160c42c9dd6105e8d5551531623225/thinc-8.3.13-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f4f26d1eec9b2a6a8f2e0298a5515d13eb06d70730d0d9e1040bb329e12bf3fb", size = 3849253, upload-time = "2026-03-23T07:22:27.845Z" }, + { url = "https://files.pythonhosted.org/packages/7a/59/ce9c7067f1dfe5985875927de9cf7a79f9dae3e69487fd650dfba558029d/thinc-8.3.13-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a61a31fd0ce3c2771cf4901ba6df70e774ffe32febf1024c5b43d63575cd58fe", size = 4831163, upload-time = "2026-03-23T07:22:29.395Z" }, + { url = "https://files.pythonhosted.org/packages/4f/a8/f57819347fc4d8bef2204d15fcbb9d7dff2d6cdd5f83d5ed91456ddacc55/thinc-8.3.13-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ba8119daf84a12259ae4d251d36426417bafa0b34108890b4b7e2b50966bd990", size = 4986051, upload-time = "2026-03-23T07:22:30.933Z" }, + { url = "https://files.pythonhosted.org/packages/05/ef/a82214bb7c7c1e2d92b69e1a7654be90cfab180082c6108e45a98af2422c/thinc-8.3.13-cp314-cp314-win_amd64.whl", hash = "sha256:433e3826e018da489f1a8068e6de677f6eff3cc93991a599d90f12cd1bc26cdc", size = 1740382, upload-time = "2026-03-23T07:22:32.869Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ef/1648fda54e9689058335ff54f650a7a314db2a42e21af1b83949b2dc748e/thinc-8.3.13-cp314-cp314-win_arm64.whl", hash = "sha256:11754fada9ad5ba2e02d5f3f234f940e24015b82333db58372f4a6aedad9b43f", size = 1667687, upload-time = "2026-03-23T07:22:34.967Z" }, +] + +[[package]] +name = "tiktoken" +version = "0.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/e5/5f3cb2159769d0f4324c0e9e87f9de3c4b1cd45848a96b2eb3566ad5ca77/tiktoken-0.13.0.tar.gz", hash = "sha256:c9435714c3a84c2319499de9a300c0e604449dd0799ff246458b3bb6a7f433c1", size = 38986, upload-time = "2026-05-15T04:51:27.153Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/e3/03c90dadcf5b3f82b83cee9adee60ef666b329c654f58c066af44eae0287/tiktoken-0.13.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:47b1df8d73390a24f94980c75158cdd5c56d256f16d55f30cb49c230caba9ba4", size = 1036627, upload-time = "2026-05-15T04:50:11.229Z" }, + { url = "https://files.pythonhosted.org/packages/5e/30/760463e5b2e8ad2bc229ae0a17ecb06727b6cbc094f08d8f65844315632e/tiktoken-0.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7d40c6c5aab171dcd6eb8455bc567bde404bb9def60cdb8c1299cc782b242bb9", size = 984699, upload-time = "2026-05-15T04:50:12.874Z" }, + { url = "https://files.pythonhosted.org/packages/de/8a/8895f342a6b6aabd1a358e672f6f077b3ae51d0c63ca605d142db3bcd8ab/tiktoken-0.13.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:9b842981fa91accdffd48ff6408a977b7a91c3fbda55d353c3c68114d5c9d69e", size = 1118690, upload-time = "2026-05-15T04:50:14.234Z" }, + { url = "https://files.pythonhosted.org/packages/51/e0/92557768fb0801f0d9dd9243cb9b6d342900b05e4b1006d4771f49ce233e/tiktoken-0.13.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ed5a30027cb4d8c7ca8b273d4766f3db3cf58fad9e9f3b1a68a351ffb54873d5", size = 1138423, upload-time = "2026-05-15T04:50:15.668Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b9/a3d99feeedb032ffd09cd6652077f86bdee9a70dd0b990b2b272b445d4c3/tiktoken-0.13.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7ab10f4a21c2999846940113f6dbd72e0fa06a24119feddd74cc47e85818e06d", size = 1185077, upload-time = "2026-05-15T04:50:17.19Z" }, + { url = "https://files.pythonhosted.org/packages/cc/93/bab868277d475dc6d2aaacd34cdd239c282f4908dcc8702e0a3311a8e032/tiktoken-0.13.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a2937ad042d49d50eac6e1ba07c5661d4bd3942a5b1e0c0d08475c4df83676e1", size = 1241702, upload-time = "2026-05-15T04:50:18.772Z" }, + { url = "https://files.pythonhosted.org/packages/c3/16/27e9f7e0ed76e501cfefc9fb2112df4c7bf70ca96945b15ecb7615aac860/tiktoken-0.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:44733b99bfd72b590cd0936b1c01b3b4dd73122db2d544bc1ceeb18a7678c910", size = 876565, upload-time = "2026-05-15T04:50:20.268Z" }, + { url = "https://files.pythonhosted.org/packages/1a/4c/1bc81f4cd53e827c4ee67ca951b5935724716049452d8dfa09b8b82372bb/tiktoken-0.13.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:7bfe1849caa65d1e1d9871817170ec497bbb7984e182012e1bdce72f66608cdb", size = 1036353, upload-time = "2026-05-15T04:50:21.757Z" }, + { url = "https://files.pythonhosted.org/packages/75/91/10b9c7076bc02c246c853201fdbbe300a4b8c5ed7b84c25f7403f4e32655/tiktoken-0.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:91c180fe255bd5a86d8316210d2833a1d4d33d026cd86a67812f4773743c8d26", size = 984644, upload-time = "2026-05-15T04:50:23.256Z" }, + { url = "https://files.pythonhosted.org/packages/4e/e4/fceae98015fab47fcd49b8bd7f46145bcd187a47e0add1e5378ed67ef980/tiktoken-0.13.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:059c8ecf554eb5b41e6e054ba467b871b03277d267dee7244380aca4359747d4", size = 1119261, upload-time = "2026-05-15T04:50:24.348Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/fe42ad00de01a8c4a49ad8649a2c8a316835a9cad5961b11d21eac0020a5/tiktoken-0.13.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:36217497eaffc158607a3b26f065300db2aefd43b115263f3b9688ce38146173", size = 1138253, upload-time = "2026-05-15T04:50:25.505Z" }, + { url = "https://files.pythonhosted.org/packages/03/c4/ccee1ecccca107e9a16efcecdeeb964c325305038554d466ece65b42338f/tiktoken-0.13.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:303f7d91b4fce3baddbcde05c139091d4caa5026ac7214c1dc7ff7a71ee429ff", size = 1185747, upload-time = "2026-05-15T04:50:27.02Z" }, + { url = "https://files.pythonhosted.org/packages/9d/03/cd0cba295522b91eb55c6b2704f1df895f8226cfe60ab10d4d51d0cc9e69/tiktoken-0.13.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5d48843bee149630eb735a99e1f4a85b47308d21868ea63163f6e87768d3cfed", size = 1241265, upload-time = "2026-05-15T04:50:28.815Z" }, + { url = "https://files.pythonhosted.org/packages/7e/25/a10efd564402d82c2ff50d12057353ace447aa8007deceaa48641f63d35c/tiktoken-0.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:fc1c44cd37b43fc46bae593129164f4f281e82ea116b57a85aa81bda57eafc94", size = 876509, upload-time = "2026-05-15T04:50:30.026Z" }, + { url = "https://files.pythonhosted.org/packages/85/8e/144bde4e01df66b34bb865557c7cd754ed08b036217ebd79c9db5e9048a9/tiktoken-0.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:32ac870a806cfb260a02d0cb70426aef02e038297f8ad50df5040bb5af360791", size = 1034888, upload-time = "2026-05-15T04:50:31.579Z" }, + { url = "https://files.pythonhosted.org/packages/36/18/d4ac9d20956cdebca04841316660ed584c2fecdc2b81722a28bc7ad3b1e4/tiktoken-0.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d9980f11429ed2d737c463bb1fb78cf330caa026adf002f714aced7849a687b", size = 982970, upload-time = "2026-05-15T04:50:32.961Z" }, + { url = "https://files.pythonhosted.org/packages/74/ed/6bb8d05b9f731f749fee5c6f5ca63e981143c826a5985877330507bd13b7/tiktoken-0.13.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3f277ebea5edd7b8bf03c6f9431e1d67d517530115572b2dc1d465326e8f88c7", size = 1115741, upload-time = "2026-05-15T04:50:34.475Z" }, + { url = "https://files.pythonhosted.org/packages/34/de/2ca96b07a82d972b74fe4b46de055b79c904e45c7eab699354a0bfa697dc/tiktoken-0.13.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:a116178fa7e1b4065bff05214360373a65cac22f965be7b3f73d00a0dbfe7649", size = 1136523, upload-time = "2026-05-15T04:50:35.782Z" }, + { url = "https://files.pythonhosted.org/packages/ee/dc/9dafec002c2d4424378563cf4cf5c7fb93631d2a55013c8b87554ee4012c/tiktoken-0.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2c397ddda233208345b01bd30f2fca79ff730e55731d0108a603f9bc57f6af3b", size = 1181954, upload-time = "2026-05-15T04:50:36.99Z" }, + { url = "https://files.pythonhosted.org/packages/a1/d0/1f8578c45b2f24759b46f0b50d31878c63c73e6bf0f2227e10ec5c5408dc/tiktoken-0.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:95097e4f89b06403976e498abf61a0ee73a7497e73fb599cb211d8197a054d91", size = 1240069, upload-time = "2026-05-15T04:50:38.221Z" }, + { url = "https://files.pythonhosted.org/packages/aa/90/28d7f154888610aa9237e541986beb62b479df29d193a5a0617dbb1514d0/tiktoken-0.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:8f2d16e7a7c783ad81f36e457d046d1f1c8af70b22aec8a13238efe531977c41", size = 874748, upload-time = "2026-05-15T04:50:39.587Z" }, + { url = "https://files.pythonhosted.org/packages/9c/83/b096c859c2a47c11731bf2f5885f4028b809dfe2396582883eed9cae372f/tiktoken-0.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5df5d1507bd245f1ccad4a074698240021239e455eb0bb4ced4e3d7181872154", size = 1034228, upload-time = "2026-05-15T04:50:40.988Z" }, + { url = "https://files.pythonhosted.org/packages/53/61/c68e123b6d753e3fc2751e9b18e732c9d8bf1e1926762e736eee935d931c/tiktoken-0.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8fe806a50664e83a6ffd56cbd1e4f5dcc6cd32a3e7538f70dc38b1a271384545", size = 982978, upload-time = "2026-05-15T04:50:42.195Z" }, + { url = "https://files.pythonhosted.org/packages/ef/8b/96cc178cc584e65d363134500f297790b06cd48cdeb1e8fcf7bbe60f4715/tiktoken-0.13.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:125bc05005e747f993a83dc67934249932d6e4209854452cd4c0b1d53fba3ba2", size = 1116355, upload-time = "2026-05-15T04:50:43.564Z" }, + { url = "https://files.pythonhosted.org/packages/86/f5/bab735d2c72ea55404b295d02d092644eb5f7cc6205e34d35eb9abfb9ab2/tiktoken-0.13.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:5e6358911cab4adee6712da27d65573496a4f68cf8a2b5fca6a4ad10fc5748cf", size = 1135772, upload-time = "2026-05-15T04:50:44.782Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b9/6de04ebdf904edfaad87788011b3735087a0c9ea671b9027e1e4e965e8c8/tiktoken-0.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:975cbd78d085d75d26b59660e262736dcaed1e35f8f142cd6291025c01d25486", size = 1182415, upload-time = "2026-05-15T04:50:46.422Z" }, + { url = "https://files.pythonhosted.org/packages/0d/9c/470a05f3b1caf038f44880e334d47ab674e0c80d514c66b375d14d5afa10/tiktoken-0.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:75ab9bc99fa020a4c283424590ecd7f3afd70c1c281cb3fa3192a6c3af9f9615", size = 1239879, upload-time = "2026-05-15T04:50:48.052Z" }, + { url = "https://files.pythonhosted.org/packages/42/a6/c1936d16055436cb32e6c6128d68629622e00f4768562f55653752d34768/tiktoken-0.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:6b1615f0ff71953d19729ceb18865429c185b0a23c5353f1bbca34a394bf60f7", size = 874829, upload-time = "2026-05-15T04:50:49.202Z" }, + { url = "https://files.pythonhosted.org/packages/d6/07/acb5992c3772b5a36284f742cfb7a5895aa4471d1848ac31464ad50d7fdf/tiktoken-0.13.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6eb4a5bfbc6426938026b1a334e898ac53541360d62d8c689870160cc80abd67", size = 1033600, upload-time = "2026-05-15T04:50:50.4Z" }, + { url = "https://files.pythonhosted.org/packages/14/e9/742e9aec30f59b9f161f7ff7cd072e02ea836c9e1c0854a8076dfcd40d5c/tiktoken-0.13.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:43cee3e5400573b2046fbf092cc7a5bc30164f9e4c95ce20714da929df48737a", size = 982516, upload-time = "2026-05-15T04:50:52.03Z" }, + { url = "https://files.pythonhosted.org/packages/72/74/ca1541b053e7648254d2e4b42a253e1bb4359f2c91a0a8d49228c794e1a0/tiktoken-0.13.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:7de52e3f566d19b3b11bd37eea552c6c305ad74081f736882bd44d148ed4c48d", size = 1115518, upload-time = "2026-05-15T04:50:53.543Z" }, + { url = "https://files.pythonhosted.org/packages/46/e3/93825eaf5a4a504795b787e5d5dea07fbeb3dabf97aa7b450be8bde59c89/tiktoken-0.13.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:51384448aa508e4df84c0f7c1dc3211c7f7b8096325660ee5fc82f3e11b381ce", size = 1136867, upload-time = "2026-05-15T04:50:55.191Z" }, + { url = "https://files.pythonhosted.org/packages/8c/46/002b68de6827091d5ae90b048f326e8aad8d953520950e5ce1508879414f/tiktoken-0.13.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e28157350f7ebf35008dd8e9e0fdb621f976e4230c881099c85e8cf07eaa50e2", size = 1181826, upload-time = "2026-05-15T04:50:56.296Z" }, + { url = "https://files.pythonhosted.org/packages/db/c6/d393e3185a276505182f7abd93fe714f3c444a2be9180798fa052347504e/tiktoken-0.13.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:165cf1820ea4a354985c2490a5205d4cc74661c934aca79dd0368232fff94e0f", size = 1239489, upload-time = "2026-05-15T04:50:57.918Z" }, + { url = "https://files.pythonhosted.org/packages/b7/4d/bc07d1f1635d4897a202acc0ae11c2886eaa7325c359ba4741b47bf8e225/tiktoken-0.13.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6c43a675ca14f6f2749ba7f12075d37456015a24b859f2517b9beb4ef30807ec", size = 873820, upload-time = "2026-05-15T04:50:59.528Z" }, + { url = "https://files.pythonhosted.org/packages/8c/93/0dd6adca026a616c3a92974566b43381eea4b475ce1f36c062b8271a9ac5/tiktoken-0.13.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaaaef47c2406277181d2086484c317bf7fc433e2d5d03ff94f56b0dcec87471", size = 1034977, upload-time = "2026-05-15T04:51:00.957Z" }, + { url = "https://files.pythonhosted.org/packages/d9/77/5ec6e6bc5b30bed6d93f7f2162d8f6b32437b3ba27cb527cfe004f6109c9/tiktoken-0.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ca8b310bd93b3772cb1b7922d915446864860f562bdfe4825c63a0aed3fb28cd", size = 983635, upload-time = "2026-05-15T04:51:02.629Z" }, + { url = "https://files.pythonhosted.org/packages/94/b0/c8ae9aff00d625c50659b4513e707a0462c4bf5d4d6cc1b802103225c02e/tiktoken-0.13.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:32e0c12305105002c047b3bb1070b0dd9a73b0cb3b2856a8972b810e7a4f5881", size = 1116036, upload-time = "2026-05-15T04:51:04.082Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ac/6a5dddd1d0a6018ecb389bd0353e6b4a515eb4d2286611bd0ace1937b9e1/tiktoken-0.13.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:5ba5fd62507a932d1241346179e3b39bc7bf7408f03c272652d93b3bedf5db24", size = 1135544, upload-time = "2026-05-15T04:51:05.229Z" }, + { url = "https://files.pythonhosted.org/packages/f4/b8/585032b4384b2f7dcdaddcb52865c83a701a420d09e3c2b4a2be1c450c57/tiktoken-0.13.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d108bc2d470fc53c8ecd24f2c0fd2b5f98c33e87cdb6aa2e9b8c5dced703d273", size = 1182217, upload-time = "2026-05-15T04:51:06.517Z" }, + { url = "https://files.pythonhosted.org/packages/cd/b6/993ff1ded3958215fd341a847b8e5ffeb5de473f435296870d314fc91ac4/tiktoken-0.13.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:cb99cb5127449f58d0a2d5f5ccfb390d8dbdfd919c221246caaee29d8725ed51", size = 1239404, upload-time = "2026-05-15T04:51:07.843Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3d/fef7e06e3b33e7538db0ced734cf9fe23b6832d2ac4990c119c377aec55e/tiktoken-0.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:115c4f26ffa11caac8b54eea35c2ad38c612c20a48d35dd15d70a02ac6f51f58", size = 918686, upload-time = "2026-05-15T04:51:08.925Z" }, + { url = "https://files.pythonhosted.org/packages/c1/82/a7fc44582bc32ab00de988a2299bf77c077f59068b233109e34b7d6ca7e6/tiktoken-0.13.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:472527e9132952f2fbf77cd290658bacf003d4d5a3fabc18e5fbd407cbae4d9b", size = 1034454, upload-time = "2026-05-15T04:51:10.035Z" }, + { url = "https://files.pythonhosted.org/packages/37/d0/24d8a890c14f432a05cea669c17bebeaa99f96a7c79523b590f564246411/tiktoken-0.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4e2f67d27c9626cdd25fe33d9313c5cdb3d8d82da646b68d6eb8e7e9c20e6448", size = 982976, upload-time = "2026-05-15T04:51:11.23Z" }, + { url = "https://files.pythonhosted.org/packages/49/b7/2ab43f62788a9266187a9bfc1d3af99ad83e5eaa25fbef168a69cd5ad14f/tiktoken-0.13.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:2b920b35805cd64585a37c3dc7ce65fba4d2d36016be01e1d7942482ca29093a", size = 1115526, upload-time = "2026-05-15T04:51:12.608Z" }, + { url = "https://files.pythonhosted.org/packages/64/39/1494321ed323ce7a14d88e3cd6cb9058625977df1c6961ddc492bd10a9f3/tiktoken-0.13.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:493af3aa28a4aaf2e3d2600a2ee717252c9bf5ab38fff94eb5a02db5ab77e5ad", size = 1136466, upload-time = "2026-05-15T04:51:13.926Z" }, + { url = "https://files.pythonhosted.org/packages/96/d9/dfd086aa2d918c563a140720e0ce296cada1634efd2783d5cf51e05f984e/tiktoken-0.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6644c9c2b5cf3916f5a3641d7d12fdb3f006a7b3d9ff6acdaec44e29ab1ff91e", size = 1181863, upload-time = "2026-05-15T04:51:15.025Z" }, + { url = "https://files.pythonhosted.org/packages/2f/68/a18b4f307086954fdae32714cb4f85562e34f9d34ab206e61f1816aa6018/tiktoken-0.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5cb65b60b9408563676d874a3a4ee573370066f0dc4e29d84e82e989c6517424", size = 1239218, upload-time = "2026-05-15T04:51:16.103Z" }, + { url = "https://files.pythonhosted.org/packages/16/5b/f2aa703a4fc5d2dff73460a7d46cc2f3f44aa0f3dd8eeb20d2a0ecf68862/tiktoken-0.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:85b78cc3a2c3d48723ca751fa981f1fedccd54194ca0471b957364353a898b07", size = 918110, upload-time = "2026-05-15T04:51:17.237Z" }, +] + +[[package]] +name = "timm" +version = "1.0.28" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pyyaml", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "safetensors", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "torch", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "torchvision", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/35/03/e41389ac641747bfec48d016fde8be1eade1901e6f2c1aedcb0c8cb4b5d9/timm-1.0.28.tar.gz", hash = "sha256:3789d313fdd5541a327b60180d70dbb4bdec73db8ff0655e413db3c3d134a9a4", size = 2451413, upload-time = "2026-07-11T17:24:32.615Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/76/de1bfac17d183c49c6d0887903d3064ced51cf1d9ba7a8d611c1a8808c4f/timm-1.0.28-py3-none-any.whl", hash = "sha256:e577b88da96b3a722ea5e2f042455ce6f715d398304d8e63b17d126ed7d89968", size = 2597944, upload-time = "2026-07-11T17:24:30.869Z" }, +] + +[[package]] +name = "tld" +version = "0.13.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/5d/76b4383ac4e5b5e254e50c09807b3e13820bed6d6c11cd540264988d6802/tld-0.13.2.tar.gz", hash = "sha256:d983fa92b9d717400742fca844e29d5e18271079c7bcfabf66d01b39b4a14345", size = 467175, upload-time = "2026-03-06T23:50:34.498Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/90/39a85a4b63c84213e78b3c17d22e1bf45328acf8ebb33ef93be30d0a3911/tld-0.13.2-py2.py3-none-any.whl", hash = "sha256:9b8fdbdb880e7ba65b216a4937f2c94c49a7226723783d5838fc958ac76f4e0c", size = 296743, upload-time = "2026-03-06T23:50:32.465Z" }, +] + +[[package]] +name = "tldextract" +version = "5.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "idna" }, + { name = "requests" }, + { name = "requests-file" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/65/7b/644fbbb49564a6cb124a8582013315a41148dba2f72209bba14a84242bf0/tldextract-5.3.1.tar.gz", hash = "sha256:a72756ca170b2510315076383ea2993478f7da6f897eef1f4a5400735d5057fb", size = 126105, upload-time = "2025-12-28T23:58:05.532Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/42/0e49d6d0aac449ca71952ec5bae764af009754fcb2e76a5cc097543747b3/tldextract-5.3.1-py3-none-any.whl", hash = "sha256:6bfe36d518de569c572062b788e16a659ccaceffc486d243af0484e8ecf432d9", size = 105886, upload-time = "2025-12-28T23:58:04.071Z" }, +] + +[[package]] +name = "tokenizers" +version = "0.22.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/73/6f/f80cfef4a312e1fb34baf7d85c72d4411afde10978d4657f8cdd811d3ccc/tokenizers-0.22.2.tar.gz", hash = "sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917", size = 372115, upload-time = "2026-01-05T10:45:15.988Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/97/5dbfabf04c7e348e655e907ed27913e03db0923abb5dfdd120d7b25630e1/tokenizers-0.22.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:544dd704ae7238755d790de45ba8da072e9af3eea688f698b137915ae959281c", size = 3100275, upload-time = "2026-01-05T10:41:02.158Z" }, + { url = "https://files.pythonhosted.org/packages/2e/47/174dca0502ef88b28f1c9e06b73ce33500eedfac7a7692108aec220464e7/tokenizers-0.22.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001", size = 2981472, upload-time = "2026-01-05T10:41:00.276Z" }, + { url = "https://files.pythonhosted.org/packages/d6/84/7990e799f1309a8b87af6b948f31edaa12a3ed22d11b352eaf4f4b2e5753/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7", size = 3290736, upload-time = "2026-01-05T10:40:32.165Z" }, + { url = "https://files.pythonhosted.org/packages/78/59/09d0d9ba94dcd5f4f1368d4858d24546b4bdc0231c2354aa31d6199f0399/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25b85325d0815e86e0bac263506dd114578953b7b53d7de09a6485e4a160a7dd", size = 3168835, upload-time = "2026-01-05T10:40:38.847Z" }, + { url = "https://files.pythonhosted.org/packages/47/50/b3ebb4243e7160bda8d34b731e54dd8ab8b133e50775872e7a434e524c28/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfb88f22a209ff7b40a576d5324bf8286b519d7358663db21d6246fb17eea2d5", size = 3521673, upload-time = "2026-01-05T10:40:56.614Z" }, + { url = "https://files.pythonhosted.org/packages/e0/fa/89f4cb9e08df770b57adb96f8cbb7e22695a4cb6c2bd5f0c4f0ebcf33b66/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c774b1276f71e1ef716e5486f21e76333464f47bece56bbd554485982a9e03e", size = 3724818, upload-time = "2026-01-05T10:40:44.507Z" }, + { url = "https://files.pythonhosted.org/packages/64/04/ca2363f0bfbe3b3d36e95bf67e56a4c88c8e3362b658e616d1ac185d47f2/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df6c4265b289083bf710dff49bc51ef252f9d5be33a45ee2bed151114a56207b", size = 3379195, upload-time = "2026-01-05T10:40:51.139Z" }, + { url = "https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67", size = 3274982, upload-time = "2026-01-05T10:40:58.331Z" }, + { url = "https://files.pythonhosted.org/packages/1d/28/5f9f5a4cc211b69e89420980e483831bcc29dade307955cc9dc858a40f01/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4", size = 9478245, upload-time = "2026-01-05T10:41:04.053Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fb/66e2da4704d6aadebf8cb39f1d6d1957df667ab24cff2326b77cda0dcb85/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:37ae80a28c1d3265bb1f22464c856bd23c02a05bb211e56d0c5301a435be6c1a", size = 9560069, upload-time = "2026-01-05T10:45:10.673Z" }, + { url = "https://files.pythonhosted.org/packages/16/04/fed398b05caa87ce9b1a1bb5166645e38196081b225059a6edaff6440fac/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:791135ee325f2336f498590eb2f11dc5c295232f288e75c99a36c5dbce63088a", size = 9899263, upload-time = "2026-01-05T10:45:12.559Z" }, + { url = "https://files.pythonhosted.org/packages/05/a1/d62dfe7376beaaf1394917e0f8e93ee5f67fea8fcf4107501db35996586b/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5", size = 10033429, upload-time = "2026-01-05T10:45:14.333Z" }, + { url = "https://files.pythonhosted.org/packages/fd/18/a545c4ea42af3df6effd7d13d250ba77a0a86fb20393143bbb9a92e434d4/tokenizers-0.22.2-cp39-abi3-win32.whl", hash = "sha256:a6bf3f88c554a2b653af81f3204491c818ae2ac6fbc09e76ef4773351292bc92", size = 2502363, upload-time = "2026-01-05T10:45:20.593Z" }, + { url = "https://files.pythonhosted.org/packages/65/71/0670843133a43d43070abeb1949abfdef12a86d490bea9cd9e18e37c5ff7/tokenizers-0.22.2-cp39-abi3-win_amd64.whl", hash = "sha256:c9ea31edff2968b44a88f97d784c2f16dc0729b8b143ed004699ebca91f05c48", size = 2747786, upload-time = "2026-01-05T10:45:18.411Z" }, + { url = "https://files.pythonhosted.org/packages/72/f4/0de46cfa12cdcbcd464cc59fde36912af405696f687e53a091fb432f694c/tokenizers-0.22.2-cp39-abi3-win_arm64.whl", hash = "sha256:9ce725d22864a1e965217204946f830c37876eee3b2ba6fc6255e8e903d5fcbc", size = 2612133, upload-time = "2026-01-05T10:45:17.232Z" }, + { url = "https://files.pythonhosted.org/packages/84/04/655b79dbcc9b3ac5f1479f18e931a344af67e5b7d3b251d2dcdcd7558592/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:753d47ebd4542742ef9261d9da92cd545b2cacbb48349a1225466745bb866ec4", size = 3282301, upload-time = "2026-01-05T10:40:34.858Z" }, + { url = "https://files.pythonhosted.org/packages/46/cd/e4851401f3d8f6f45d8480262ab6a5c8cb9c4302a790a35aa14eeed6d2fd/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e10bf9113d209be7cd046d40fbabbaf3278ff6d18eb4da4c500443185dc1896c", size = 3161308, upload-time = "2026-01-05T10:40:40.737Z" }, + { url = "https://files.pythonhosted.org/packages/6f/6e/55553992a89982cd12d4a66dddb5e02126c58677ea3931efcbe601d419db/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64d94e84f6660764e64e7e0b22baa72f6cd942279fdbb21d46abd70d179f0195", size = 3718964, upload-time = "2026-01-05T10:40:46.56Z" }, + { url = "https://files.pythonhosted.org/packages/59/8c/b1c87148aa15e099243ec9f0cf9d0e970cc2234c3257d558c25a2c5304e6/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f01a9c019878532f98927d2bacb79bbb404b43d3437455522a00a30718cdedb5", size = 3373542, upload-time = "2026-01-05T10:40:52.803Z" }, +] + +[[package]] +name = "tomli" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/22/de/48c59722572767841493b26183a0d1cc411d54fd759c5607c4590b6563a6/tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f", size = 17543, upload-time = "2026-03-25T20:22:03.828Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/11/db3d5885d8528263d8adc260bb2d28ebf1270b96e98f0e0268d32b8d9900/tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30", size = 154704, upload-time = "2026-03-25T20:21:10.473Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f7/675db52c7e46064a9aa928885a9b20f4124ecb9bc2e1ce74c9106648d202/tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a", size = 149454, upload-time = "2026-03-25T20:21:12.036Z" }, + { url = "https://files.pythonhosted.org/packages/61/71/81c50943cf953efa35bce7646caab3cf457a7d8c030b27cfb40d7235f9ee/tomli-2.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96481a5786729fd470164b47cdb3e0e58062a496f455ee41b4403be77cb5a076", size = 237561, upload-time = "2026-03-25T20:21:13.098Z" }, + { url = "https://files.pythonhosted.org/packages/48/c1/f41d9cb618acccca7df82aaf682f9b49013c9397212cb9f53219e3abac37/tomli-2.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a881ab208c0baf688221f8cecc5401bd291d67e38a1ac884d6736cbcd8247e9", size = 243824, upload-time = "2026-03-25T20:21:14.569Z" }, + { url = "https://files.pythonhosted.org/packages/22/e4/5a816ecdd1f8ca51fb756ef684b90f2780afc52fc67f987e3c61d800a46d/tomli-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56216b23c", size = 242227, upload-time = "2026-03-25T20:21:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/6b/49/2b2a0ef529aa6eec245d25f0c703e020a73955ad7edf73e7f54ddc608aa5/tomli-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e51937008fcbc", size = 247859, upload-time = "2026-03-25T20:21:17.001Z" }, + { url = "https://files.pythonhosted.org/packages/83/bd/6c1a630eaca337e1e78c5903104f831bda934c426f9231429396ce3c3467/tomli-2.4.1-cp311-cp311-win32.whl", hash = "sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049", size = 97204, upload-time = "2026-03-25T20:21:18.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/59/71461df1a885647e10b6bb7802d0b8e66480c61f3f43079e0dcd315b3954/tomli-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e", size = 108084, upload-time = "2026-03-25T20:21:18.978Z" }, + { url = "https://files.pythonhosted.org/packages/b8/83/dceca96142499c069475b790e7913b1044c1a4337e700751f48ed723f883/tomli-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece", size = 95285, upload-time = "2026-03-25T20:21:20.309Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ba/42f134a3fe2b370f555f44b1d72feebb94debcab01676bf918d0cb70e9aa/tomli-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba1cd6a", size = 155924, upload-time = "2026-03-25T20:21:21.626Z" }, + { url = "https://files.pythonhosted.org/packages/dc/c7/62d7a17c26487ade21c5422b646110f2162f1fcc95980ef7f63e73c68f14/tomli-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487085", size = 150018, upload-time = "2026-03-25T20:21:23.002Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/79d13d7c15f13bdef410bdd49a6485b1c37d28968314eabee452c22a7fda/tomli-2.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9", size = 244948, upload-time = "2026-03-25T20:21:24.04Z" }, + { url = "https://files.pythonhosted.org/packages/10/90/d62ce007a1c80d0b2c93e02cab211224756240884751b94ca72df8a875ca/tomli-2.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5", size = 253341, upload-time = "2026-03-25T20:21:25.177Z" }, + { url = "https://files.pythonhosted.org/packages/1a/7e/caf6496d60152ad4ed09282c1885cca4eea150bfd007da84aea07bcc0a3e/tomli-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14c31f585", size = 248159, upload-time = "2026-03-25T20:21:26.364Z" }, + { url = "https://files.pythonhosted.org/packages/99/e7/c6f69c3120de34bbd882c6fba7975f3d7a746e9218e56ab46a1bc4b42552/tomli-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94aadddd1", size = 253290, upload-time = "2026-03-25T20:21:27.46Z" }, + { url = "https://files.pythonhosted.org/packages/d6/2f/4a3c322f22c5c66c4b836ec58211641a4067364f5dcdd7b974b4c5da300c/tomli-2.4.1-cp312-cp312-win32.whl", hash = "sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917", size = 98141, upload-time = "2026-03-25T20:21:28.492Z" }, + { url = "https://files.pythonhosted.org/packages/24/22/4daacd05391b92c55759d55eaee21e1dfaea86ce5c571f10083360adf534/tomli-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9", size = 108847, upload-time = "2026-03-25T20:21:29.386Z" }, + { url = "https://files.pythonhosted.org/packages/68/fd/70e768887666ddd9e9f5d85129e84910f2db2796f9096aa02b721a53098d/tomli-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257", size = 95088, upload-time = "2026-03-25T20:21:30.677Z" }, + { url = "https://files.pythonhosted.org/packages/07/06/b823a7e818c756d9a7123ba2cda7d07bc2dd32835648d1a7b7b7a05d848d/tomli-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36d2bd2ad5fb9eaddba5226aa02c8ec3fa4f192631e347b3ed28186d43be6b54", size = 155866, upload-time = "2026-03-25T20:21:31.65Z" }, + { url = "https://files.pythonhosted.org/packages/14/6f/12645cf7f08e1a20c7eb8c297c6f11d31c1b50f316a7e7e1e1de6e2e7b7e/tomli-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eb0dc4e38e6a1fd579e5d50369aa2e10acfc9cace504579b2faabb478e76941a", size = 149887, upload-time = "2026-03-25T20:21:33.028Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e0/90637574e5e7212c09099c67ad349b04ec4d6020324539297b634a0192b0/tomli-2.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f2c7f2b9ca6bdeef8f0fa897f8e05085923eb091721675170254cbc5b02897", size = 243704, upload-time = "2026-03-25T20:21:34.51Z" }, + { url = "https://files.pythonhosted.org/packages/10/8f/d3ddb16c5a4befdf31a23307f72828686ab2096f068eaf56631e136c1fdd/tomli-2.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f3c6818a1a86dd6dca7ddcaaf76947d5ba31aecc28cb1b67009a5877c9a64f3f", size = 251628, upload-time = "2026-03-25T20:21:36.012Z" }, + { url = "https://files.pythonhosted.org/packages/e3/f1/dbeeb9116715abee2485bf0a12d07a8f31af94d71608c171c45f64c0469d/tomli-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d312ef37c91508b0ab2cee7da26ec0b3ed2f03ce12bd87a588d771ae15dcf82d", size = 247180, upload-time = "2026-03-25T20:21:37.136Z" }, + { url = "https://files.pythonhosted.org/packages/d3/74/16336ffd19ed4da28a70959f92f506233bd7cfc2332b20bdb01591e8b1d1/tomli-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51529d40e3ca50046d7606fa99ce3956a617f9b36380da3b7f0dd3dd28e68cb5", size = 251674, upload-time = "2026-03-25T20:21:38.298Z" }, + { url = "https://files.pythonhosted.org/packages/16/f9/229fa3434c590ddf6c0aa9af64d3af4b752540686cace29e6281e3458469/tomli-2.4.1-cp313-cp313-win32.whl", hash = "sha256:2190f2e9dd7508d2a90ded5ed369255980a1bcdd58e52f7fe24b8162bf9fedbd", size = 97976, upload-time = "2026-03-25T20:21:39.316Z" }, + { url = "https://files.pythonhosted.org/packages/6a/1e/71dfd96bcc1c775420cb8befe7a9d35f2e5b1309798f009dca17b7708c1e/tomli-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d65a2fbf9d2f8352685bc1364177ee3923d6baf5e7f43ea4959d7d8bc326a36", size = 108755, upload-time = "2026-03-25T20:21:40.248Z" }, + { url = "https://files.pythonhosted.org/packages/83/7a/d34f422a021d62420b78f5c538e5b102f62bea616d1d75a13f0a88acb04a/tomli-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:4b605484e43cdc43f0954ddae319fb75f04cc10dd80d830540060ee7cd0243cd", size = 95265, upload-time = "2026-03-25T20:21:41.219Z" }, + { url = "https://files.pythonhosted.org/packages/3c/fb/9a5c8d27dbab540869f7c1f8eb0abb3244189ce780ba9cd73f3770662072/tomli-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fd0409a3653af6c147209d267a0e4243f0ae46b011aa978b1080359fddc9b6cf", size = 155726, upload-time = "2026-03-25T20:21:42.23Z" }, + { url = "https://files.pythonhosted.org/packages/62/05/d2f816630cc771ad836af54f5001f47a6f611d2d39535364f148b6a92d6b/tomli-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a120733b01c45e9a0c34aeef92bf0cf1d56cfe81ed9d47d562f9ed591a9828ac", size = 149859, upload-time = "2026-03-25T20:21:43.386Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/66341bdb858ad9bd0ceab5a86f90eddab127cf8b046418009f2125630ecb/tomli-2.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:559db847dc486944896521f68d8190be1c9e719fced785720d2216fe7022b662", size = 244713, upload-time = "2026-03-25T20:21:44.474Z" }, + { url = "https://files.pythonhosted.org/packages/df/6d/c5fad00d82b3c7a3ab6189bd4b10e60466f22cfe8a08a9394185c8a8111c/tomli-2.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01f520d4f53ef97964a240a035ec2a869fe1a37dde002b57ebc4417a27ccd853", size = 252084, upload-time = "2026-03-25T20:21:45.62Z" }, + { url = "https://files.pythonhosted.org/packages/00/71/3a69e86f3eafe8c7a59d008d245888051005bd657760e96d5fbfb0b740c2/tomli-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f94b27a62cfad8496c8d2513e1a222dd446f095fca8987fceef261225538a15", size = 247973, upload-time = "2026-03-25T20:21:46.937Z" }, + { url = "https://files.pythonhosted.org/packages/67/50/361e986652847fec4bd5e4a0208752fbe64689c603c7ae5ea7cb16b1c0ca/tomli-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede3e6487c5ef5d28634ba3f31f989030ad6af71edfb0055cbbd14189ff240ba", size = 256223, upload-time = "2026-03-25T20:21:48.467Z" }, + { url = "https://files.pythonhosted.org/packages/8c/9a/b4173689a9203472e5467217e0154b00e260621caa227b6fa01feab16998/tomli-2.4.1-cp314-cp314-win32.whl", hash = "sha256:3d48a93ee1c9b79c04bb38772ee1b64dcf18ff43085896ea460ca8dec96f35f6", size = 98973, upload-time = "2026-03-25T20:21:49.526Z" }, + { url = "https://files.pythonhosted.org/packages/14/58/640ac93bf230cd27d002462c9af0d837779f8773bc03dee06b5835208214/tomli-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:88dceee75c2c63af144e456745e10101eb67361050196b0b6af5d717254dddf7", size = 109082, upload-time = "2026-03-25T20:21:50.506Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2f/702d5e05b227401c1068f0d386d79a589bb12bf64c3d2c72ce0631e3bc49/tomli-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:b8c198f8c1805dc42708689ed6864951fd2494f924149d3e4bce7710f8eb5232", size = 96490, upload-time = "2026-03-25T20:21:51.474Z" }, + { url = "https://files.pythonhosted.org/packages/45/4b/b877b05c8ba62927d9865dd980e34a755de541eb65fffba52b4cc495d4d2/tomli-2.4.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:d4d8fe59808a54658fcc0160ecfb1b30f9089906c50b23bcb4c69eddc19ec2b4", size = 164263, upload-time = "2026-03-25T20:21:52.543Z" }, + { url = "https://files.pythonhosted.org/packages/24/79/6ab420d37a270b89f7195dec5448f79400d9e9c1826df982f3f8e97b24fd/tomli-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7008df2e7655c495dd12d2a4ad038ff878d4ca4b81fccaf82b714e07eae4402c", size = 160736, upload-time = "2026-03-25T20:21:53.674Z" }, + { url = "https://files.pythonhosted.org/packages/02/e0/3630057d8eb170310785723ed5adcdfb7d50cb7e6455f85ba8a3deed642b/tomli-2.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1d8591993e228b0c930c4bb0db464bdad97b3289fb981255d6c9a41aedc84b2d", size = 270717, upload-time = "2026-03-25T20:21:55.129Z" }, + { url = "https://files.pythonhosted.org/packages/7a/b4/1613716072e544d1a7891f548d8f9ec6ce2faf42ca65acae01d76ea06bb0/tomli-2.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:734e20b57ba95624ecf1841e72b53f6e186355e216e5412de414e3c51e5e3c41", size = 278461, upload-time = "2026-03-25T20:21:56.228Z" }, + { url = "https://files.pythonhosted.org/packages/05/38/30f541baf6a3f6df77b3df16b01ba319221389e2da59427e221ef417ac0c/tomli-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8a650c2dbafa08d42e51ba0b62740dae4ecb9338eefa093aa5c78ceb546fcd5c", size = 274855, upload-time = "2026-03-25T20:21:57.653Z" }, + { url = "https://files.pythonhosted.org/packages/77/a3/ec9dd4fd2c38e98de34223b995a3b34813e6bdadf86c75314c928350ed14/tomli-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:504aa796fe0569bb43171066009ead363de03675276d2d121ac1a4572397870f", size = 283144, upload-time = "2026-03-25T20:21:59.089Z" }, + { url = "https://files.pythonhosted.org/packages/ef/be/605a6261cac79fba2ec0c9827e986e00323a1945700969b8ee0b30d85453/tomli-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:b1d22e6e9387bf4739fbe23bfa80e93f6b0373a7f1b96c6227c32bef95a4d7a8", size = 108683, upload-time = "2026-03-25T20:22:00.214Z" }, + { url = "https://files.pythonhosted.org/packages/12/64/da524626d3b9cc40c168a13da8335fe1c51be12c0a63685cc6db7308daae/tomli-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2c1c351919aca02858f740c6d33adea0c5deea37f9ecca1cc1ef9e884a619d26", size = 121196, upload-time = "2026-03-25T20:22:01.169Z" }, + { url = "https://files.pythonhosted.org/packages/5a/cd/e80b62269fc78fc36c9af5a6b89c835baa8af28ff5ad28c7028d60860320/tomli-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:eab21f45c7f66c13f2a9e0e1535309cee140182a9cdae1e041d02e47291e8396", size = 100393, upload-time = "2026-03-25T20:22:02.137Z" }, + { url = "https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe", size = 14583, upload-time = "2026-03-25T20:22:03.012Z" }, +] + +[[package]] +name = "tomli-w" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/75/241269d1da26b624c0d5e110e8149093c759b7a286138f4efd61a60e75fe/tomli_w-1.2.0.tar.gz", hash = "sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021", size = 7184, upload-time = "2025-01-15T12:07:24.262Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl", hash = "sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90", size = 6675, upload-time = "2025-01-15T12:07:22.074Z" }, +] + +[[package]] +name = "torch" +version = "2.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cuda-bindings", marker = "python_full_version < '3.15' and sys_platform == 'linux'" }, + { name = "cuda-toolkit", extra = ["cublas", "cudart", "cufft", "cufile", "cupti", "curand", "cusolver", "cusparse", "nvjitlink", "nvrtc", "nvtx"], marker = "sys_platform == 'linux'" }, + { name = "filelock" }, + { name = "fsspec" }, + { name = "jinja2" }, + { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "networkx", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "nvidia-cudnn-cu13", marker = "sys_platform == 'linux'" }, + { name = "nvidia-cusparselt-cu13", marker = "sys_platform == 'linux'" }, + { name = "nvidia-nccl-cu13", marker = "sys_platform == 'linux'" }, + { name = "nvidia-nvshmem-cu13", marker = "sys_platform == 'linux'" }, + { name = "setuptools" }, + { name = "sympy" }, + { name = "triton", marker = "python_full_version < '3.15' and sys_platform == 'linux'" }, + { name = "typing-extensions" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/e7/19894fdb51c7dbaf94f5a79bb0871da0992e8e4241e579cb006da46d2e58/torch-2.13.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:94f0de129916f77b8dc2c7a8eff644cfeddfe59e39c9f55e9f6e17543410281d", size = 111178962, upload-time = "2026-07-08T16:05:49.855Z" }, + { url = "https://files.pythonhosted.org/packages/d1/5c/b1d5de470c54e339b30a92d96683a71bcebd78f5f2a7fc714cd6dc6bbd68/torch-2.13.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:0ab4b69f3ee03a62a002cfbf77b1ca5e88aceb4ea64cb4388bb28f638ddbb045", size = 427198333, upload-time = "2026-07-08T16:05:36.847Z" }, + { url = "https://files.pythonhosted.org/packages/50/c0/68a84105e1fcb8970144b388ff3d3e5dc15a3be28c1e247841f7d7247e41/torch-2.13.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c78b7b4d04461855a764cf01bae9a462bb88bc93defcfa11235cbc8fdf3e12c4", size = 526555154, upload-time = "2026-07-08T16:05:06.507Z" }, + { url = "https://files.pythonhosted.org/packages/2e/c9/0bb9d097b03cbaf96bb75b15e867347b8e41bfcdfe0539452d17d9e63993/torch-2.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:2bd30b6b730d987fa386ce3898933762c5cb8cc82eb0535211d787cc3ce2dfeb", size = 122015602, upload-time = "2026-07-08T16:05:45.25Z" }, + { url = "https://files.pythonhosted.org/packages/5b/fe/cba54dc58523434919b66f13a667e36e436deddd77ca519e96553617d4ec/torch-2.13.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:e76f9bcecc52b8ff711239a2f7547d5353df95878ab232f0773c1d95928b92f8", size = 111187938, upload-time = "2026-07-08T16:05:17.065Z" }, + { url = "https://files.pythonhosted.org/packages/c2/59/1e3160e18e12aa3038390efab3ce02b36a9d4d6a527ecdd8520dca2e68d8/torch-2.13.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:092790c696a760c729fd5722835f50b9d81fd7c8f141571f3f3cf4081a8f664c", size = 427199369, upload-time = "2026-07-08T16:04:51.054Z" }, + { url = "https://files.pythonhosted.org/packages/01/79/1f2d34ad7034ee1c7ffc1cf8bf0f8213af2a81df6ecdb3997ecec107c09d/torch-2.13.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:60fcdcb2f3876e21146cb4524ef06397d727ca9ad5f020818547e25075fe3cb7", size = 526574961, upload-time = "2026-07-08T16:04:07.075Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fd/0f2ce40f58aefbdb3392f9acce3c8171940943ae2d661f70558bfa73befb/torch-2.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:a0d8b11f16a48d60e2015d8213aa0390744cbebb98e58b62b3514dddc656e330", size = 122015870, upload-time = "2026-07-08T16:05:27.59Z" }, + { url = "https://files.pythonhosted.org/packages/c4/3a/ed0f4d4d1dcde03bced7aac9a28e800abcdc0cbd06b6775044c9fbd877b7/torch-2.13.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2fe228aba290d14b9f31b049be550dbd469c3fd3013d7a19705b30454da97027", size = 111213045, upload-time = "2026-07-08T16:05:22.997Z" }, + { url = "https://files.pythonhosted.org/packages/df/a9/f6a2a4d763ff1df02e9a64c477029db614295bc9367f4131223791ccc243/torch-2.13.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:572df8be8ffb4599c88cbd6a0726f1f854f4da65d2e3c09f0e2c2283333cd6d4", size = 427210998, upload-time = "2026-07-08T16:04:37.708Z" }, + { url = "https://files.pythonhosted.org/packages/f3/82/fea946351658e6534db52d2cc12bc53087cbf87f9440c5f180f367c1950b/torch-2.13.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:796633c4cdf0fe2cdced72d8f88f22e73dbcfce83132763162f6d4bff13b820b", size = 526605292, upload-time = "2026-07-08T16:04:22.81Z" }, + { url = "https://files.pythonhosted.org/packages/21/d6/e8f3c6f7e01f626f77259de9860d2a78bc84c40539e28e79b7e98b0bb659/torch-2.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:024c6cc0c1b085f2f91f20a3dc27b0471d021c31ce84b81be3afdc39f791fd9d", size = 122057313, upload-time = "2026-07-08T16:03:53.43Z" }, + { url = "https://files.pythonhosted.org/packages/0d/fa/c1c10b7aff4a9a3e8956d4f0a5f468fa6db7abc3208805719076772b4833/torch-2.13.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:33449899ce5496c1b84b4853179d94fd102028ae1407314d9fb956bb79e70d09", size = 111213743, upload-time = "2026-07-08T16:03:28.579Z" }, + { url = "https://files.pythonhosted.org/packages/11/18/9ecb37b56293a0be8d80f810bf672a72fe7e02f8b475d5ef1b9bf8a0d748/torch-2.13.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:1e09d6a722504957c694faceca843acde562786df1144ebcc5a74075ec7f6005", size = 427213008, upload-time = "2026-07-08T16:03:44.106Z" }, + { url = "https://files.pythonhosted.org/packages/d4/5a/7c50ba1b7b713d71d34669c6d13dab0a11531a3eceb0307a5162dbfec0f7/torch-2.13.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:a3a9a21312872af8a26950b2c15680335a386a1f56ed03e780653d78b9607e9e", size = 526602329, upload-time = "2026-07-08T16:03:12.649Z" }, + { url = "https://files.pythonhosted.org/packages/91/3d/e7adcc6aaf36961cd18f56cf8ad0f3058c3a5c84ccf391762176c94581b8/torch-2.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:49b58f1e2c52440abb6f17c28f0335fe6c6d01ad1a7f55b0183b81e4b34d64e6", size = 122057920, upload-time = "2026-07-08T16:03:01.808Z" }, + { url = "https://files.pythonhosted.org/packages/36/76/6dcc7f0c07052102dd36f83cbc5800842a909c8c3fbf1a7f8a5844954de9/torch-2.13.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:d849b390e07d8d333ce8ecaf91b273c656c598379a19c9acf1318a883f6b391c", size = 111227066, upload-time = "2026-07-08T16:03:33.6Z" }, + { url = "https://files.pythonhosted.org/packages/e9/09/2c10e8cd0e00fa5d23c052df6ce467eaa7182399f5e0f824f1e4ff42ccae/torch-2.13.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:a3893dc2da0a972a8ca5d698c85a9f967559ac5f8ee1797b77408aa8734d073c", size = 427226309, upload-time = "2026-07-08T16:02:53.127Z" }, + { url = "https://files.pythonhosted.org/packages/76/c6/22c2102bbef14ca6a6cb4c20e42f088e49c5f812be4e160ae57502e325f9/torch-2.13.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:49f1ea385c754e54919408a9bb3b5a72b0b755bbe2c916c1d6f70afbec4908a2", size = 526614507, upload-time = "2026-07-08T16:02:16.441Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0c/7d1deb6bce5bc3e6042caf39100ac768eba3b9a098e1dddd16f75bd6489b/torch-2.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:4f8573e3ce9ebcd53fe922f01077a6085ccdfbe5f12fd215883a9d87d7a744fd", size = 122051871, upload-time = "2026-07-08T16:03:23.521Z" }, + { url = "https://files.pythonhosted.org/packages/f4/ce/aa8b7f9949d32e0f2f624f342bc3b48112c1b8a130288465938bc83bcbf9/torch-2.13.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:c28def70706c2f9ecc752574766e8ae4da9b810ab6676b611166761a78a9f1e1", size = 111537025, upload-time = "2026-07-08T16:02:44.28Z" }, + { url = "https://files.pythonhosted.org/packages/69/d1/491e3a0389430946145888b0203f2b6a759ce2a61481b96a85c2da4f2ced/torch-2.13.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:31061ff56ed8fbf26c749806905aeb749ebeb819810fd5d52508aa5afd90dddc", size = 427219769, upload-time = "2026-07-08T16:02:31.18Z" }, + { url = "https://files.pythonhosted.org/packages/9a/1d/38006e045bf0a1fc28ef01e757c554e59e59a8770c284bc4f47b14e60441/torch-2.13.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:cc26eead4cf51d0b544e31e364dcf000846549c273bd148936fe9d24d29acb92", size = 526571320, upload-time = "2026-07-08T16:01:59.348Z" }, + { url = "https://files.pythonhosted.org/packages/56/94/655c91992a882bd5071aa0b5d22a07dbb130d801e872be97c0b627a7c693/torch-2.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:a7de8a313090dc5c7d7ba4bfe5c3be222528f9a4dba1acc83bddb1157360c4b8", size = 122306773, upload-time = "2026-07-08T16:02:39.832Z" }, +] + +[[package]] +name = "torchvision" +version = "0.28.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pillow", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "torch", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/df/1ba039ad6cfe6e69209c36766b9b6e8c6fe92481c6d4e4ca52296f5f699d/torchvision-0.28.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:2a1ef4b6f4bf5828b48cfad97372c8982db906830884b2868ba5c3df937a7d81", size = 1856019, upload-time = "2026-07-08T16:07:59.283Z" }, + { url = "https://files.pythonhosted.org/packages/88/ea/5c70ecf86f8e95174a85061cea78683a7bb7f422f09c3f3d4f30b7600fa9/torchvision-0.28.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:546fd85345cf8652f6cd099d4f9884b0ca5c2f3fae78689a21dd2f35ea6b622f", size = 7838211, upload-time = "2026-07-08T16:07:27.023Z" }, + { url = "https://files.pythonhosted.org/packages/46/22/2f7ff1997d793e45d85fafa8374ee25348b7dae9ac521ba8751d7e1c75d5/torchvision-0.28.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6dfb0f45e2b4ceb4e76f158c3fbb5f44387099f3c466e3423a09ab665a194aba", size = 7669419, upload-time = "2026-07-08T16:07:41.648Z" }, + { url = "https://files.pythonhosted.org/packages/42/d0/2b3c30834ff23acd3854d0ff59bc580711f4b36d725de40105a852ed3719/torchvision-0.28.0-cp310-cp310-win_amd64.whl", hash = "sha256:7fad44dc9582570c7d92c4487d36ac46998f40cc39b438e8b8f5111a935ce4e8", size = 3500355, upload-time = "2026-07-08T16:07:56.865Z" }, + { url = "https://files.pythonhosted.org/packages/7a/b2/1e010052079e4c577007b789db336ea7075f1a426e84d17121fbc3745516/torchvision-0.28.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:83fe6c020866a85acd7d97deccc45ff11d66daf42916d04396a4309c66c0ccb8", size = 1856017, upload-time = "2026-07-08T16:07:55.533Z" }, + { url = "https://files.pythonhosted.org/packages/27/be/1b9c5de9c655ca2df4a74100fa671a7b848532ff787e077ccde14a7dea2a/torchvision-0.28.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5a38bc6da3d72621be003400b66f66a2b4c6d644fde05f680c2cb7ca8cf8dd6c", size = 7841822, upload-time = "2026-07-08T16:07:49.207Z" }, + { url = "https://files.pythonhosted.org/packages/0b/9b/f1e68e861d4462e3e195a642c2b448e7b7d3fad5f209487162b9a2133d9b/torchvision-0.28.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:7e80f543b22503d9415e126db5f0ff3917036925e38560ee6b9ae38c571a4002", size = 7670718, upload-time = "2026-07-08T16:07:46.525Z" }, + { url = "https://files.pythonhosted.org/packages/f5/de/1494610ff54cbb154beb55033cc2cd50f3de04dac132fa2dd00e4f2b2556/torchvision-0.28.0-cp311-cp311-win_amd64.whl", hash = "sha256:9a45ea67235d965ef52187130d20002a4de20c54ea3d927a24286961d268dc37", size = 3814319, upload-time = "2026-07-08T16:07:37.153Z" }, + { url = "https://files.pythonhosted.org/packages/15/49/c1cab1ecbb3ff1a380a3f99283db1dee61b8afe354f6352c643b65937130/torchvision-0.28.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:e9f54c30cd52e3ef7fd034cc69b7bb7e0964e1c8f8743e018ab92e95b40f9eee", size = 1856020, upload-time = "2026-07-08T16:07:52.182Z" }, + { url = "https://files.pythonhosted.org/packages/f0/4c/95233776e2def960e5abb7a07931230a545f43717a56a1e1140162033598/torchvision-0.28.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:5cf78ebc401ce64ae19b8c55de866bb836797d559a4de9c25ccbe74cfa642d3a", size = 7842127, upload-time = "2026-07-08T16:07:53.446Z" }, + { url = "https://files.pythonhosted.org/packages/93/e4/e9b2495d0d57b9f60d63c57d0a910410a81b4b073bf70917bef815291119/torchvision-0.28.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:028a3d481b37d785605620d7cdad897064c5a55bae2aa1f2658766333e291940", size = 7675040, upload-time = "2026-07-08T16:07:58.017Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9c/55ed9cb6dfe3ee9c837df5cd0e758372e5829aa38b8dd71343aa632cc4e2/torchvision-0.28.0-cp312-cp312-win_amd64.whl", hash = "sha256:87dc16b2df427c1318ad335f1e2be2b3b15b2cf20f7934c83b0505a48425ee5d", size = 4085785, upload-time = "2026-07-08T16:07:50.928Z" }, + { url = "https://files.pythonhosted.org/packages/20/55/08a726c14c67b37c8aca04b077766909f1c7ed23f76116884fe63b9bd033/torchvision-0.28.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:d483b4aa3f5237569053f749cd1a2b5bb548ca456e40461a5dd087f21149d123", size = 1856021, upload-time = "2026-07-08T16:07:45.386Z" }, + { url = "https://files.pythonhosted.org/packages/db/8f/40beacd53809194f5259e590d1afaeaa8ad57da15f77c646e6560bcc4616/torchvision-0.28.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:bb6dd6918460ed89cc7644adcc2402991474d6933cf1ce92b390641cb233fddf", size = 7797014, upload-time = "2026-07-08T16:07:43.04Z" }, + { url = "https://files.pythonhosted.org/packages/32/db/062cdb5a84380a60439775311fff34d89229760d2a50680393dc18699956/torchvision-0.28.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:ad7b3a439265cc3739a4ab5b4c998c0e38ea99c0ee7ca4dea35c5d0b099ec237", size = 7674669, upload-time = "2026-07-08T16:07:38.91Z" }, + { url = "https://files.pythonhosted.org/packages/f3/a6/b4081e2d04e1541abf82785ac9e5178a494c19330391f551356c8c18b7b3/torchvision-0.28.0-cp313-cp313-win_amd64.whl", hash = "sha256:7e9dd6f60d6e15f8dc27d4f877fdb6002fc70d70272412135f1c2ff9cfa08d3b", size = 4157380, upload-time = "2026-07-08T16:07:40.22Z" }, + { url = "https://files.pythonhosted.org/packages/c5/b9/da40eca5bbe9596c12ae9899ab7abaf887f5e20f29d08b924b4633714821/torchvision-0.28.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:3bd9dba55224a9db4a2d77f6feaa5651770d8c8e86d3d0ddb0fa6bec54c8712b", size = 1856014, upload-time = "2026-07-08T16:07:44.282Z" }, + { url = "https://files.pythonhosted.org/packages/06/d6/313aafd3df4eaf5f330211bd4e75b7598bddbfee4f55580d3b58536e1b20/torchvision-0.28.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:89f90e29b0966352811b12589f3a3c61943bf2bb9487b9d7bbec10efb1096bb5", size = 7796873, upload-time = "2026-07-08T16:07:30.907Z" }, + { url = "https://files.pythonhosted.org/packages/b3/41/31f8e959ab8f942600b6357f8999c21d779d5fd3304b0fd204ff4b518239/torchvision-0.28.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:36beb0782976906069ca03d4c9aacaf4b6b838b06ed6c20960ea9c51cce7acdd", size = 7674634, upload-time = "2026-07-08T16:07:29.657Z" }, + { url = "https://files.pythonhosted.org/packages/15/15/4c5115253fd470672cdac0a1cf139e06b4f3e29d041238a2b255937f63be/torchvision-0.28.0-cp314-cp314-win_amd64.whl", hash = "sha256:3557cc7b539f46dabcda2b6f2b14017ccbeef024de466d4fc5835fc3f287f769", size = 4184005, upload-time = "2026-07-08T16:07:35.805Z" }, + { url = "https://files.pythonhosted.org/packages/6a/80/822a6163da716f8a78141cf6678d74e26a572285d4ea866ef8aa657bb307/torchvision-0.28.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:09ce8f56e81f19b9c378ae7bb109f83f6659fd8bc3cd14241a48e4af46e9ed49", size = 1856011, upload-time = "2026-07-08T16:07:33.404Z" }, + { url = "https://files.pythonhosted.org/packages/7f/d1/cd3f9463b39a790ec8c0c2f6e6c8061edb1562114d04fcdfa786ed889345/torchvision-0.28.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:62c7d110f86a039245b587e4fae60278c649f3bd42ff79cfbc1178eca4e72542", size = 7796742, upload-time = "2026-07-08T16:07:28.339Z" }, + { url = "https://files.pythonhosted.org/packages/d9/82/3e0a7ad18e99831e2d7f4713d3be717b7159ff5a920862dd5c23c454aa71/torchvision-0.28.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:904cf89af220f8c6b2ed0296bb5065b474ce43b77558e48b2bf9de8b0ba17204", size = 7675526, upload-time = "2026-07-08T16:07:34.572Z" }, + { url = "https://files.pythonhosted.org/packages/18/d4/23aea03b28297bc66a4461f55ae4296368a9d85fa9a454bafcb2a5348bd7/torchvision-0.28.0-cp314-cp314t-win_amd64.whl", hash = "sha256:46f581979c010ad6da6bd85ee602aa707e1ff44312670223b7a0ee517ad06d47", size = 4291452, upload-time = "2026-07-08T16:07:32.236Z" }, +] + +[[package]] +name = "tqdm" +version = "4.68.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/5f/57ff8b434839e70dab45601284ea413e947a63799891b7553e5960a793a8/tqdm-4.68.4.tar.gz", hash = "sha256:19829c9673638f2a0b8617da4cdcb927e831cd88bcfcb6e78d42a4d1af131520", size = 792418, upload-time = "2026-07-07T09:58:18.369Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/2a/5e5e750890ada51017d18d0d4c30da696e5b5bd3180947729927628fc3cb/tqdm-4.68.4-py3-none-any.whl", hash = "sha256:5168118b2368f48c561afda8020fd79195b1bdb0bdf8086b88442c267a315dc2", size = 676612, upload-time = "2026-07-07T09:58:16.256Z" }, +] + +[[package]] +name = "trafilatura" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "courlan" }, + { name = "htmldate" }, + { name = "justext" }, + { name = "lxml" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e8/19/24833e905df2d80e3bb67424f95febcc17709a1f61a522120bc438afca70/trafilatura-2.1.0.tar.gz", hash = "sha256:f689e2116fc89c7bc0b9a296d01dcfe2eb0b5455f8c371a77dc0db1f06a05643", size = 263876, upload-time = "2026-06-07T17:43:31.829Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/78/4ad99d79aee2784f49f20fd0a29058ce4c032fe4439047924c43521cd211/trafilatura-2.1.0-py3-none-any.whl", hash = "sha256:0eded5207a806445ddebbe36eae30b9035fe6a2f233c36f6fe82663fca8b9d30", size = 134600, upload-time = "2026-06-07T17:43:28.404Z" }, +] + +[[package]] +name = "transformers" +version = "5.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "packaging", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "pyyaml", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "regex", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "safetensors", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "tokenizers", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "tqdm", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, + { name = "typer", marker = "python_full_version < '3.11' or python_full_version == '3.12.*' or sys_platform != 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/fb/2a2ba88f325e68a921d8b69ff63b477830b2e73ade9a3c8c8cab2f06d741/transformers-5.14.1.tar.gz", hash = "sha256:60d196c27781eacf8637e2b533f517582907ad6f9ae142046d6b69431a5b2173", size = 9295927, upload-time = "2026-07-16T09:41:57.773Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/67/8d85ca2323233ae3c0365a659c4e52ee1f587b440e4bc577e7d8e4416d0f/transformers-5.14.1-py3-none-any.whl", hash = "sha256:9db974c4079ede2d1a3ea7ca5a240df33f2cc26fc2b36ba64c5f2a4f43b6e725", size = 11625234, upload-time = "2026-07-16T09:41:54.143Z" }, +] + +[[package]] +name = "triton" +version = "3.7.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/ea/629cc37436ca5df93ce98956d09cd2ca1498bfee8ef4972d2fe48b9f958c/triton-3.7.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3daf64305d6cea88d3334c65ebc9bcd0c64c9564a977084366aa768d57cbcf64", size = 184551013, upload-time = "2026-06-17T20:03:37.551Z" }, + { url = "https://files.pythonhosted.org/packages/15/76/c79c34311625227a288df3e483fc5cdf3d596624cbd4b4758c4cbdc14af3/triton-3.7.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee89fbf782ec2ad50391dd1cf26cbea4f4467154c37f4773026da8fc31c0f58e", size = 197596267, upload-time = "2026-06-17T19:53:06.898Z" }, + { url = "https://files.pythonhosted.org/packages/7b/f9/19d842d06a08559534fa1eaab6ca551b1bcf40f06620bddec1babaa2772d/triton-3.7.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4a0e1cd4c4a76370ed74a8432a53cea28716827d19e40ffc732233e35ceb3f6", size = 184664887, upload-time = "2026-06-17T20:03:42.913Z" }, + { url = "https://files.pythonhosted.org/packages/cd/5e/fce69606f7f240297f163e25539906732b199530d486ce67ae319877e821/triton-3.7.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6744957e9fd610a29680ec2346057d0c86948ed3812468670719f391e94b44a5", size = 197701306, upload-time = "2026-06-17T19:53:13.673Z" }, + { url = "https://files.pythonhosted.org/packages/94/fa/f856e24deb462d5f18bd4b5a746957862ab9b6ee5834bda60605ec348366/triton-3.7.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9497f2e696ee368862a181a90b2dcc03ca978cc4f602abd67c7d81022a6988e1", size = 184692359, upload-time = "2026-06-17T20:03:48.288Z" }, + { url = "https://files.pythonhosted.org/packages/c4/6f/fb96d15db6f36d6eae4cafb998c2e0353bf59d7c4ea1662d7497f269134a/triton-3.7.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7e40869937a68206ec70d7f25bb7ec6433cb083f9135e1f36dbd318dc449a728", size = 197719725, upload-time = "2026-06-17T19:53:20.419Z" }, + { url = "https://files.pythonhosted.org/packages/00/42/c5089d4d9327fcd1e862c599cc2927f39418f84dd11a84cb2ccff9d4787a/triton-3.7.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cdbfc09d9ec58bc5e68321525653220de7515c199e7a8097a97c85e62b52cd0a", size = 184694629, upload-time = "2026-06-17T20:03:53.444Z" }, + { url = "https://files.pythonhosted.org/packages/07/42/2c3ac59253ae8892b6f307875263dd23dc875cdf732d3aea40d6d41fb7cb/triton-3.7.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:58c0e131da05134a2a4788ccbcc0c1105cf0f54c8e98f19e34cd465396dc15eb", size = 197729241, upload-time = "2026-06-17T19:53:27.801Z" }, + { url = "https://files.pythonhosted.org/packages/40/71/e01aa7ad573883ed9456f130226babdec70b005e098c4d6226a6238e761b/triton-3.7.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe4ea396a06171f1f1f58cbd39c70b09294398f7dd7c620939bab54ad6f934fa", size = 184705764, upload-time = "2026-06-17T20:03:59.064Z" }, + { url = "https://files.pythonhosted.org/packages/a4/09/5683146fda6a2b569deb78ccfd8fbfea8bfe55f726b081c0a6bb18dd6f28/triton-3.7.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2020153b08280415ec0da6607834e79166442147e78e144df06b508c75b186d2", size = 197729537, upload-time = "2026-06-17T19:53:35.516Z" }, + { url = "https://files.pythonhosted.org/packages/e9/f8/448220c3092019f9fdfab39ec47985968181d67da34b44f6a7f6280a5cbb/triton-3.7.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c58e4c61f0c73b5dba3b5d19b4a7093c32f90dc18b2a7f121a7c16ccd31107b7", size = 184814760, upload-time = "2026-06-17T20:04:04.984Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ac/229b7d4589d2e5937310e72c6d46e89599d16a4a12b479ffa1499fee8eb8/triton-3.7.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10ba85fa2cca4a2fbdeb36bf1cb082f2c252bda55bf9fccd74f65ec5bc647e68", size = 197824404, upload-time = "2026-06-17T19:53:42.772Z" }, +] + +[[package]] +name = "typer" +version = "0.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "rich" }, + { name = "shellingham" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/37/78/fda3361b56efc27944f24225f6ecd13d96d6fcfe37bd0eb34e2f4c63f9fc/typer-0.27.0.tar.gz", hash = "sha256:629bd12ea5d13a17148125d9a264f949eb171fb3f120f9b04d85873cab054fa5", size = 203430, upload-time = "2026-07-15T19:21:07.007Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/03/26a383c9e58c213199d1aad1c3d353cfc22d4444ec6d2c0bf8ad02523843/typer-0.27.0-py3-none-any.whl", hash = "sha256:6f4b27631e47f077871b7dc30e933ec0131c1390fbe0e387ea5574b5bac9ccf1", size = 122716, upload-time = "2026-07-15T19:21:05.553Z" }, +] + +[[package]] +name = "types-beautifulsoup4" +version = "4.12.0.20250516" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "types-html5lib" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/d1/32b410f6d65eda94d3dfb0b3d0ca151f12cb1dc4cef731dcf7cbfd8716ff/types_beautifulsoup4-4.12.0.20250516.tar.gz", hash = "sha256:aa19dd73b33b70d6296adf92da8ab8a0c945c507e6fb7d5db553415cc77b417e", size = 16628, upload-time = "2025-05-16T03:09:09.93Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/79/d84de200a80085b32f12c5820d4fd0addcbe7ba6dce8c1c9d8605e833c8e/types_beautifulsoup4-4.12.0.20250516-py3-none-any.whl", hash = "sha256:5923399d4a1ba9cc8f0096fe334cc732e130269541d66261bb42ab039c0376ee", size = 16879, upload-time = "2025-05-16T03:09:09.051Z" }, +] + +[[package]] +name = "types-defusedxml" +version = "0.7.0.20260504" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/d2/4553c8fa9cdebfe1e84b950cf790a4d2376a97fa016e43f7c65323fa6c7d/types_defusedxml-0.7.0.20260504.tar.gz", hash = "sha256:2ab2828a3f97111ba1c16cee273ad4124a831fc9198c41bf8368ff6ea48ad300", size = 10729, upload-time = "2026-05-04T05:22:50.192Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/2d/8a4b5ba1d732b8bc691f0efbb1c6f77cb5f6f473b2afe181d83d910773c5/types_defusedxml-0.7.0.20260504-py3-none-any.whl", hash = "sha256:a959e3a0a43b93e464bd625d91ec9193a2703ddc10443bdd627792485fae0b10", size = 13467, upload-time = "2026-05-04T05:22:49.319Z" }, +] + +[[package]] +name = "types-html5lib" +version = "1.1.11.20260518" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "types-webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b8/5a/0c708d1b0d35ad48b6a223c77c4a882fd016b40c25becb082a92e02a9c00/types_html5lib-1.1.11.20260518.tar.gz", hash = "sha256:4f33c087cb1119d65c4c80eca4323c2b501f9eaf8af9616b8b732ed4d8eae8fa", size = 18420, upload-time = "2026-05-18T06:07:23.662Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/d0/b088b9f11eb69637d6826843f06caaff60247156735a25512922d3dc2c13/types_html5lib-1.1.11.20260518-py3-none-any.whl", hash = "sha256:9baa7912224ebb37027c5ccb7e3768e43ea47b1dfdd977e7ddc4b0a4a550584d", size = 24339, upload-time = "2026-05-18T06:07:22.876Z" }, +] + +[[package]] +name = "types-pyyaml" +version = "6.0.12.20260518" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b8/83/4a1afc3fbfcf5b8d46fc390cd95ed6b0dc9010a265f4e9f46314efffa37a/types_pyyaml-6.0.12.20260518.tar.gz", hash = "sha256:d917f83fb38462550338c1297faedd860b3ec83912b96b1e3d73255f7473e466", size = 17850, upload-time = "2026-05-18T06:01:58.675Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/a2/c01db32be2ae7d6a1689972f3c492b149ee4e164b12fdfd9f64b50888215/types_pyyaml-6.0.12.20260518-py3-none-any.whl", hash = "sha256:d2150f75a231c9fe9c7463bd29487d93e60bac90400287351384bc2284eba7cd", size = 20312, upload-time = "2026-05-18T06:01:57.368Z" }, +] + +[[package]] +name = "types-requests" +version = "2.33.0.20260712" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/db/51/703318f7b7be8bee126ec13bf615050f932d0179b8784420f3a0199cc769/types_requests-2.33.0.20260712.tar.gz", hash = "sha256:2141b67ab534a5c5cd2dac5034f2a35f42e699c5bf185eee608c5246a069d7fb", size = 25084, upload-time = "2026-07-12T05:14:20.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/e7/010c87f559e216d83f9dc51e939633fd0d0ead3377340181ab0e223cd3b5/types_requests-2.33.0.20260712-py3-none-any.whl", hash = "sha256:de027e28c171d3da529689cbfa023b0b4eab188c8dfa22fd834eebd2cee6e7bb", size = 21392, upload-time = "2026-07-12T05:14:19.616Z" }, +] + +[[package]] +name = "types-webencodings" +version = "0.5.0.20260408" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/d2/21567fac142315580ce3ee37d08a4e8819921dae833bbcd27b9f8b373799/types_webencodings-0.5.0.20260408.tar.gz", hash = "sha256:28c596619f367e43eee393d85f63e8d2fdb6874c654a8d441c37f8afe29c6d0d", size = 7504, upload-time = "2026-04-08T04:28:51.735Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/e4/f13be8f6d9a561166f7d963012d0ccc833e13aee3044c4f1a8fb1fee462a/types_webencodings-0.5.0.20260408-py3-none-any.whl", hash = "sha256:19a2afe5c22d9b1e880b49ff823c7b531f473a390fe47ac903c0bdb5cd677dd9", size = 8717, upload-time = "2026-04-08T04:28:50.943Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" }, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/74/1789779d91f1961fa9438e9a8710cdae6bd138c80d7303996933d117264a/typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78", size = 13825, upload-time = "2023-05-24T20:25:47.612Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f", size = 8827, upload-time = "2023-05-24T20:25:45.287Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "tzdata" +version = "2026.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/92/ff/5a28bdfd8c3ebec42564ac7d0e54ca3db65044a9314a97f9564fa7a1e926/tzdata-2026.3.tar.gz", hash = "sha256:4a1518b8993086a7982523e071643f3c0e5f213e75b21318e78bcabfff9d1415", size = 198674, upload-time = "2026-07-10T08:50:37.887Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/6d/b53b99a9f2766d095985947a5782f1702cabb129a34f7a802d7197af832f/tzdata-2026.3-py2.py3-none-any.whl", hash = "sha256:dc096730c87af6cab1b171c9d532be840741ff5d459015e7f6947bd7d7e54931", size = 348168, upload-time = "2026-07-10T08:50:36.46Z" }, +] + +[[package]] +name = "tzlocal" +version = "5.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "tzdata", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/5b/879b2f932adfa7a053c360d50bc896c977fa6426109185f7c12ebdd0cb9d/tzlocal-5.4.4.tar.gz", hash = "sha256:8dbb8660838688a7b6ba4fed31d18dedf842afb4d47ca050d6d891c2c15f3be4", size = 31170, upload-time = "2026-06-29T08:03:40.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/a4/017a7a6cbe387d961a688ec31364ae60a5c4e22c96ae9921b79a947c855d/tzlocal-5.4.4-py3-none-any.whl", hash = "sha256:aae09f0126a8a86fa736be266eb4a471380d26a0de3bc14844e7821fee3e2a15", size = 18115, upload-time = "2026-06-29T08:03:38.666Z" }, +] + +[[package]] +name = "unstructured" +version = "0.18.32" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +dependencies = [ + { name = "backoff", marker = "python_full_version < '3.11'" }, + { name = "beautifulsoup4", marker = "python_full_version < '3.11'" }, + { name = "charset-normalizer", marker = "python_full_version < '3.11'" }, + { name = "dataclasses-json", marker = "python_full_version < '3.11'" }, + { name = "emoji", marker = "python_full_version < '3.11'" }, + { name = "filetype", marker = "python_full_version < '3.11'" }, + { name = "html5lib", marker = "python_full_version < '3.11'" }, + { name = "langdetect", marker = "python_full_version < '3.11'" }, + { name = "lxml", marker = "python_full_version < '3.11'" }, + { name = "nltk", marker = "python_full_version < '3.11'" }, + { name = "numba", marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "psutil", marker = "python_full_version < '3.11'" }, + { name = "python-iso639", marker = "python_full_version < '3.11'" }, + { name = "python-magic", marker = "python_full_version < '3.11'" }, + { name = "python-oxmsg", marker = "python_full_version < '3.11'" }, + { name = "rapidfuzz", marker = "python_full_version < '3.11'" }, + { name = "requests", marker = "python_full_version < '3.11'" }, + { name = "tqdm", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, + { name = "unstructured-client", version = "0.42.12", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "wrapt", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/65/b73d84ede08fc2defe9c59d85ebf91f78210a424986586c6e39784890c8e/unstructured-0.18.32.tar.gz", hash = "sha256:40a7cf4a4a7590350bedb8a447e37029d6e74b924692576627b4edb92d70e39d", size = 1707730, upload-time = "2026-02-10T22:28:22.332Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/e7/35298355bdb917293dc3e179304e737ce3fe14247fb5edf09fddddc98409/unstructured-0.18.32-py3-none-any.whl", hash = "sha256:c832ecdf467f5a869cc5e91428459e4b9ed75a16156ce3fab8f41ff64d840bc7", size = 1794965, upload-time = "2026-02-10T22:28:20.301Z" }, +] + +[package.optional-dependencies] +all-docs = [ + { name = "effdet", marker = "python_full_version < '3.11'" }, + { name = "google-cloud-vision", marker = "python_full_version < '3.11'" }, + { name = "markdown", marker = "python_full_version < '3.11'" }, + { name = "msoffcrypto-tool", marker = "python_full_version < '3.11'" }, + { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "onnx", marker = "python_full_version < '3.11'" }, + { name = "onnxruntime", version = "1.20.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "openpyxl", marker = "python_full_version < '3.11'" }, + { name = "pandas", marker = "python_full_version < '3.11'" }, + { name = "pdf2image", marker = "python_full_version < '3.11'" }, + { name = "pdfminer-six", marker = "python_full_version < '3.11'" }, + { name = "pi-heif", marker = "python_full_version < '3.11'" }, + { name = "pikepdf", marker = "python_full_version < '3.11'" }, + { name = "pypandoc", marker = "python_full_version < '3.11'" }, + { name = "pypdf", marker = "python_full_version < '3.11'" }, + { name = "python-docx", marker = "python_full_version < '3.11'" }, + { name = "python-pptx", marker = "python_full_version < '3.11'" }, + { name = "unstructured-inference", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "unstructured-pytesseract", marker = "python_full_version < '3.11'" }, + { name = "xlrd", marker = "python_full_version < '3.11'" }, +] + +[[package]] +name = "unstructured" +version = "0.24.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform == 'win32'", + "python_full_version == '3.14.*' and sys_platform == 'win32'", + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +dependencies = [ + { name = "beautifulsoup4", marker = "python_full_version >= '3.11'" }, + { name = "charset-normalizer", marker = "python_full_version >= '3.11'" }, + { name = "emoji", marker = "python_full_version >= '3.11'" }, + { name = "filelock", marker = "python_full_version >= '3.11'" }, + { name = "filetype", marker = "python_full_version >= '3.11'" }, + { name = "html5lib", marker = "python_full_version >= '3.11'" }, + { name = "installer", marker = "python_full_version >= '3.11'" }, + { name = "langdetect", marker = "python_full_version >= '3.11'" }, + { name = "lxml", marker = "python_full_version >= '3.11'" }, + { name = "nh3", marker = "python_full_version >= '3.11'" }, + { name = "numba", marker = "python_full_version >= '3.11'" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "psutil", marker = "python_full_version >= '3.11'" }, + { name = "python-iso639", marker = "python_full_version >= '3.11'" }, + { name = "python-magic", marker = "python_full_version >= '3.11'" }, + { name = "python-oxmsg", marker = "python_full_version >= '3.11'" }, + { name = "rapidfuzz", marker = "python_full_version >= '3.11'" }, + { name = "regex", marker = "python_full_version >= '3.11'" }, + { name = "requests", marker = "python_full_version >= '3.11'" }, + { name = "spacy", marker = "python_full_version >= '3.11'" }, + { name = "tqdm", marker = "python_full_version >= '3.11'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.11'" }, + { name = "unstructured-client", version = "0.45.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "wrapt", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/bf/b912a60c8523980e10639c36af3fc3053949df090e7f35924864659949c0/unstructured-0.24.1.tar.gz", hash = "sha256:e895794f2adea4bc7bb1fb394c575cecea3a5441ed39b4777eb7fb12c0720745", size = 1542546, upload-time = "2026-07-11T23:53:35.604Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/5b/891e3dd018dd9d1032707d3bcc406bdbfaad7ef153f8055d988279c3a390/unstructured-0.24.1-py3-none-any.whl", hash = "sha256:1744bf99dec2e07df80f9ba1fa5160be41778c76b021174be44a0235e7284adf", size = 1601417, upload-time = "2026-07-11T23:53:33.634Z" }, +] + +[package.optional-dependencies] +all-docs = [ + { name = "google-cloud-vision", marker = "python_full_version >= '3.11'" }, + { name = "markdown", marker = "python_full_version >= '3.11'" }, + { name = "msoffcrypto-tool", marker = "python_full_version >= '3.11'" }, + { name = "networkx", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "openai-whisper", marker = "python_full_version >= '3.11'" }, + { name = "openpyxl", marker = "python_full_version >= '3.11'" }, + { name = "pandas", marker = "python_full_version >= '3.11'" }, + { name = "pdf2image", marker = "python_full_version >= '3.11'" }, + { name = "pdfminer-six", marker = "python_full_version >= '3.11'" }, + { name = "pi-heif", marker = "python_full_version >= '3.11'" }, + { name = "pikepdf", marker = "python_full_version >= '3.11'" }, + { name = "pypandoc-binary", marker = "(python_full_version >= '3.11' and python_full_version < '3.13') or (python_full_version >= '3.11' and sys_platform != 'win32')" }, + { name = "pypdf", marker = "python_full_version >= '3.11'" }, + { name = "python-docx", marker = "python_full_version >= '3.11'" }, + { name = "python-pptx", marker = "python_full_version >= '3.11'" }, + { name = "unstructured-inference", version = "1.6.13", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "unstructured-pytesseract", marker = "python_full_version >= '3.11'" }, + { name = "xlrd", marker = "python_full_version >= '3.11'" }, +] + +[[package]] +name = "unstructured-client" +version = "0.42.12" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +dependencies = [ + { name = "aiofiles", marker = "python_full_version < '3.11'" }, + { name = "cryptography", marker = "python_full_version < '3.11'" }, + { name = "httpcore", marker = "python_full_version < '3.11'" }, + { name = "httpx", marker = "python_full_version < '3.11'" }, + { name = "pydantic", marker = "python_full_version < '3.11'" }, + { name = "pypdf", marker = "python_full_version < '3.11'" }, + { name = "pypdfium2", marker = "python_full_version < '3.11'" }, + { name = "requests-toolbelt", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/ca/73904d53e486af2f1d9d8baaf43d2a74b3d67e5f533834f5d51056471339/unstructured_client-0.42.12.tar.gz", hash = "sha256:50eb6717d8c6513b14b309fce8d6551354e433da982b7a9161a889d8e6a11166", size = 94714, upload-time = "2026-03-25T20:24:21.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/21/80/fbf02ec3c566a3e383a5649385096834a2a981832f1432c3a8797b29185a/unstructured_client-0.42.12-py3-none-any.whl", hash = "sha256:fe6f217066a0c308ba7213185524506dbfc3bb9d35df0ab79549291e9728a012", size = 220154, upload-time = "2026-03-25T20:24:20.288Z" }, +] + +[[package]] +name = "unstructured-client" +version = "0.45.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform == 'win32'", + "python_full_version == '3.14.*' and sys_platform == 'win32'", + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform == 'win32'", + "python_full_version == '3.11.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +dependencies = [ + { name = "aiofiles", marker = "python_full_version >= '3.11'" }, + { name = "httpcore", marker = "python_full_version >= '3.11'" }, + { name = "httpx", marker = "python_full_version >= '3.11'" }, + { name = "pydantic", marker = "python_full_version >= '3.11'" }, + { name = "pypdf", marker = "python_full_version >= '3.11'" }, + { name = "pypdfium2", marker = "python_full_version >= '3.11'" }, + { name = "requests-toolbelt", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/c6/bbc79efa9365fa8aecf353794a1253355eccf17468be3e6fb45a050e30d7/unstructured_client-0.45.0.tar.gz", hash = "sha256:3ffdaebdc27d2f043712dfeaee49cd38b990b480bed72e96255bf6245c0cc790", size = 94490, upload-time = "2026-06-05T21:36:51.635Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/e6/f1a9b2e1edc49665acaece9d806294945818fd46e969d66fe9a08fdb822f/unstructured_client-0.45.0-py3-none-any.whl", hash = "sha256:bf8f406f16d333a434aac601761d8794e518cf4cd21e424c196beef04e747786", size = 160590, upload-time = "2026-06-05T21:36:49.99Z" }, +] + +[[package]] +name = "unstructured-inference" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11' and sys_platform == 'win32'", + "python_full_version < '3.11' and sys_platform != 'win32'", +] +dependencies = [ + { name = "accelerate", marker = "python_full_version < '3.11'" }, + { name = "huggingface-hub", marker = "python_full_version < '3.11'" }, + { name = "matplotlib", version = "3.10.9", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "onnx", marker = "python_full_version < '3.11'" }, + { name = "onnxruntime", version = "1.20.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "opencv-python", marker = "python_full_version < '3.11'" }, + { name = "pandas", marker = "python_full_version < '3.11'" }, + { name = "pdfminer-six", marker = "python_full_version < '3.11'" }, + { name = "pypdfium2", marker = "python_full_version < '3.11'" }, + { name = "python-multipart", marker = "python_full_version < '3.11'" }, + { name = "rapidfuzz", marker = "python_full_version < '3.11'" }, + { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "timm", marker = "python_full_version < '3.11'" }, + { name = "torch", marker = "python_full_version < '3.11'" }, + { name = "transformers", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/10/8f3bccfa9f1e0101a402ae1f529e07876541c6b18004747f0e793ed41f9e/unstructured_inference-1.2.0.tar.gz", hash = "sha256:19ca28512f3649c70a759cf2a4e98663e942a1b83c1acdb9506b0445f4862f23", size = 45732, upload-time = "2026-01-30T20:57:58.019Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/3b/349cd091b590a6f1dbfebcb5fee0ea7b0b6ef6520df58794c9582567a24f/unstructured_inference-1.2.0-py3-none-any.whl", hash = "sha256:60a1635aa8e97a9e7daed1a129836f51c26588e0d2062c9cc6a5a17e6d40cb6a", size = 49443, upload-time = "2026-01-30T20:57:56.617Z" }, +] + +[[package]] +name = "unstructured-inference" +version = "1.6.13" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.15' and sys_platform != 'win32'", + "python_full_version == '3.14.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform == 'win32'", + "python_full_version == '3.13.*' and sys_platform != 'win32'", + "python_full_version == '3.12.*' and sys_platform != 'win32'", + "python_full_version == '3.11.*' and sys_platform != 'win32'", +] +dependencies = [ + { name = "accelerate", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "huggingface-hub", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "matplotlib", version = "3.11.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "onnx", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "onnxruntime", version = "1.27.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "opencv-python", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pandas", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pdfminer-six", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "pypdfium2", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "rapidfuzz", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "scipy", version = "1.17.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*' and sys_platform != 'win32'" }, + { name = "scipy", version = "1.18.0", source = { registry = "https://pypi.org/simple" }, marker = "(python_full_version >= '3.12' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "timm", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "torch", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, + { name = "transformers", marker = "(python_full_version >= '3.11' and sys_platform != 'win32') or (python_full_version == '3.12.*' and sys_platform == 'win32')" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/ce/1e58008b8416884edfa6d18d65b635cde892189512d2e7531f91553b34d0/unstructured_inference-1.6.13.tar.gz", hash = "sha256:4efa2f3f517370aa09166c669cdc1addee71531e95bfbec7e6e3be66be90c147", size = 50137, upload-time = "2026-06-11T22:27:33.146Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/c0/6598b1420605382e7ed879ff7e1d51e12cc7a82e46971c7a61c3740c77db/unstructured_inference-1.6.13-py3-none-any.whl", hash = "sha256:73b727260e4a43133276727c371b57f7d4d92c68e8a7529a28e9576755356524", size = 57451, upload-time = "2026-06-11T22:27:31.91Z" }, +] + +[[package]] +name = "unstructured-pytesseract" +version = "0.3.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/b1/4b3a976b76549f22c3f5493a622603617cbe08804402978e1dac9c387997/unstructured.pytesseract-0.3.15.tar.gz", hash = "sha256:4b81bc76cfff4e2ef37b04863f0e48bd66184c0b39c3b2b4e017483bca1a7394", size = 15703, upload-time = "2025-03-05T00:59:17.516Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/6d/adb955ecf60811a3735d508974bbb5358e7745b635dc001329267529c6f2/unstructured.pytesseract-0.3.15-py3-none-any.whl", hash = "sha256:a3f505c5efb7ff9f10379051a7dd6aa624b3be6b0f023ed6767cc80d0b1613d1", size = 14992, upload-time = "2025-03-05T00:59:15.962Z" }, +] + +[[package]] +name = "url-normalize" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/cd/846d87d6d49d963b04ef4429b73d71d3c17468059956bab360866a9b0aec/url_normalize-3.0.0.tar.gz", hash = "sha256:0552cbf2831a32a28994a13d29bca58a60e10ff6c0380e343ec6d1c2a0d232d8", size = 21777, upload-time = "2026-04-25T00:31:59.514Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/8a/f72344eab18674fd7b174f35abbce41ed88fea72927f111726732d0ca779/url_normalize-3.0.0-py3-none-any.whl", hash = "sha256:95234bd359f86831c1fd87c248877f2a6887db2f3b5087120083f2fffcba4889", size = 16854, upload-time = "2026-04-25T00:31:58.271Z" }, +] + +[[package]] +name = "urllib3" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.51.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a2/65/b7c6c443ccc58678c91e1e973bbe2a878591538655d6e1d47f24ba1c51f3/uvicorn-0.51.0.tar.gz", hash = "sha256:f6f4b69b657c312f516dd2d268ab9ae6f254b11e4bac504f37b2ab58b24dd0b0", size = 94412, upload-time = "2026-07-08T10:59:05.962Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/ec/dbb7e5a6b91f86bfb9eb7d2988a2730907b6a729875b949c7f022e8b88fa/uvicorn-0.51.0-py3-none-any.whl", hash = "sha256:5d38af6cd620f2ae3849fb44fd4879e0890aa1febe8d47eb355fb45d93fe6a5b", size = 73219, upload-time = "2026-07-08T10:59:04.44Z" }, +] + +[[package]] +name = "virtualenv" +version = "21.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "distlib" }, + { name = "filelock" }, + { name = "platformdirs" }, + { name = "python-discovery" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/34/d9/b477fddb68840b570af8b22afe9b035cbc277b5fb7b33dea390617a8b10f/virtualenv-21.6.1.tar.gz", hash = "sha256:15f978b7cd329f24855ff4a0c4b4899cc7678589f49adbdcbbb4d3232e641128", size = 5526620, upload-time = "2026-07-10T19:33:53.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/7c/4e7225d46d634a0d8d534dd8a6ce0c319d09b4d0cf0337eb314ca4789d8c/virtualenv-21.6.1-py3-none-any.whl", hash = "sha256:afe991df855715a2b2f60edfcc0107ef95a79fdfd8cb4cdaa71603d1c12e463b", size = 5506392, upload-time = "2026-07-10T19:33:51.629Z" }, +] + +[[package]] +name = "w3lib" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/91/b2eb59c2cf243de5de1e91c963655df78c015509f51297685a8c86a27b8c/w3lib-2.4.1.tar.gz", hash = "sha256:8dd69ee39ff6398d708c793abc779c334a69bac7cee1cdf71736c669ed6be864", size = 48494, upload-time = "2026-03-20T09:50:27.477Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/c3/f8b216cbd742e5b84c40f045204c764ccb7524d2aeab021054ec69446b0a/w3lib-2.4.1-py3-none-any.whl", hash = "sha256:40930132907e68de906a5b89331ab8c8ff4f01bd35b5539ef7896017d814138d", size = 21695, upload-time = "2026-03-20T09:50:26.187Z" }, +] + +[[package]] +name = "wasabi" +version = "1.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/f9/054e6e2f1071e963b5e746b48d1e3727470b2a490834d18ad92364929db3/wasabi-1.1.3.tar.gz", hash = "sha256:4bb3008f003809db0c3e28b4daf20906ea871a2bb43f9914197d540f4f2e0878", size = 30391, upload-time = "2024-05-31T16:56:18.99Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/7c/34330a89da55610daa5f245ddce5aab81244321101614751e7537f125133/wasabi-1.1.3-py3-none-any.whl", hash = "sha256:f76e16e8f7e79f8c4c8be49b4024ac725713ab10cd7f19350ad18a8e3f71728c", size = 27880, upload-time = "2024-05-31T16:56:16.699Z" }, +] + +[[package]] +name = "wcmatch" +version = "10.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bracex" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/11/15/dc61746d8c0852f6d711ad09c774b63cf7c8211aa49e30871ac3d342b7e2/wcmatch-10.2.1.tar.gz", hash = "sha256:ecac70a5c70e62ba854b78318d3a1408e8651f8f1c96e5837743b71aa6a4fb92", size = 132497, upload-time = "2026-07-02T17:21:48.484Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/ba/20b48eedeab5316bf9a502bb9eb7e3b1588bd61d0f565822fefa8f06e10b/wcmatch-10.2.1-py3-none-any.whl", hash = "sha256:2d775395b93f233af66690f62cb9d52b084ec159a31cc4084f4069d72f437acd", size = 39763, upload-time = "2026-07-02T17:21:47.134Z" }, +] + +[[package]] +name = "weasel" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cloudpathlib" }, + { name = "confection" }, + { name = "httpx" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "smart-open" }, + { name = "srsly" }, + { name = "typer" }, + { name = "wasabi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/e5/e272bb9a045105a1fdf4b798d8086f5932a178f4d738f17a74f5c9e0ae9a/weasel-1.0.0.tar.gz", hash = "sha256:7b129b44c90cc543b760532974ca1e4eb30dad2aa2026f57bdce66354ae610fc", size = 38682, upload-time = "2026-03-20T08:10:25.266Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/07/57ebf7a6798b016c064bd0ca81b4c6a99daa4dc377b898bc7b41eb6b5af0/weasel-1.0.0-py3-none-any.whl", hash = "sha256:89518acee027f49d743126c3502d35e6dd14f5768be5c37c9af47c171b6005cc", size = 50713, upload-time = "2026-03-20T08:10:23.637Z" }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, +] + +[[package]] +name = "wrapt" +version = "2.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/a4/282c8e64300a59fc834518a54bf0afabb4ff9218b5fa76958b450459a844/wrapt-2.2.2.tar.gz", hash = "sha256:0788e321027c999bf221b667bd4a54aaefd1a36283749a860ac3eb77daed0302", size = 129068, upload-time = "2026-06-20T23:49:44.49Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/8b/59781d0fe7b0adfbea37f600857de4be68921e454aeecf1a11bda35cdccc/wrapt-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:055e6fcfaa28e58c6a8c247d48b92be9d56f818b7068aa4f22b15b3343a09931", size = 80556, upload-time = "2026-06-20T23:47:28.473Z" }, + { url = "https://files.pythonhosted.org/packages/94/dc/66c61aca927230c9cf97a3cb005c803971a1076ff9f7d61085d035c20085/wrapt-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8374eb6b1a58809211e84ff835a182bb17ab2807a5bfef23204c8cff38178a00", size = 81648, upload-time = "2026-06-20T23:47:30.504Z" }, + { url = "https://files.pythonhosted.org/packages/23/1b/545eee1c18f3af4cf140bb5822b6ef81ebe569df0a63ac109973103a30a5/wrapt-2.2.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:656593bb3f5529f03d27af4136c4d7b11990e470bcbc6fefa5ef218695bece55", size = 152956, upload-time = "2026-06-20T23:47:31.867Z" }, + { url = "https://files.pythonhosted.org/packages/44/a7/6f42a3d03e44dc612a5dcff324e7366075a7857f0be2d49a8cb8a68279b8/wrapt-2.2.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dfb00cb7bb22099e2f64b7340fb96113639aa7260c0972af3797ace2297b936c", size = 154771, upload-time = "2026-06-20T23:47:33.352Z" }, + { url = "https://files.pythonhosted.org/packages/bf/55/4d76175aaa97523c38f1d28f79d18ab41a1b116814158a818bc0eba00571/wrapt-2.2.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e7f10ee0bd53673bfd52b67cbce83336fe6cad90d2377b03baf66491d2bbfb91", size = 149460, upload-time = "2026-06-20T23:47:34.712Z" }, + { url = "https://files.pythonhosted.org/packages/84/9b/12e23264d8f4735e8483262f95c5a6b03c3665fd2a84bdf99a45b6a2f4ec/wrapt-2.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4402f57c5f0d0579599858ffbdd9bf4e3f0972f51096f2bd6cc7dab6b76ee49e", size = 153648, upload-time = "2026-06-20T23:47:36.092Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a3/bcd5ec37289dcd85ecd4d15395a6a6063d60bc45ff94a9d77814e1e54d64/wrapt-2.2.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:3a4eb7964ff4643d333c84f880bcf554652b2a1050aebc54ae696327f61acfaf", size = 148502, upload-time = "2026-06-20T23:47:37.623Z" }, + { url = "https://files.pythonhosted.org/packages/f2/be/716d708f607fa70f8a6eb47dff8ee945d5278dfc89ffeeff33039d052e63/wrapt-2.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e542b7c5af91e2123a8aabf19894319d5ec4268d2a9ffd2f239386133fc47746", size = 152238, upload-time = "2026-06-20T23:47:39.118Z" }, + { url = "https://files.pythonhosted.org/packages/b5/c0/1a48e7e54501274f5d906f18372221b13183b0afbb5b8bb4c7ca0392c0b4/wrapt-2.2.2-cp310-cp310-win32.whl", hash = "sha256:6e7e45b43d3c774d244fe7264378f5a3f0f383bc55a54a9866434e524540110f", size = 77278, upload-time = "2026-06-20T23:47:40.476Z" }, + { url = "https://files.pythonhosted.org/packages/b0/82/9cd69a1af288fbdedf01a10e3c8a0b6890b08c7f3f96d36a213699dbcd94/wrapt-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:955f1d6e72a352e478de8d8b503abe301c5e139a141b62eb0923bd694995025f", size = 80131, upload-time = "2026-06-20T23:47:41.785Z" }, + { url = "https://files.pythonhosted.org/packages/7f/73/8db7e27daef37ae70a53ea62bef7fe80cc51a8b5e9e9181a8be6eb9a999c/wrapt-2.2.2-cp310-cp310-win_arm64.whl", hash = "sha256:b89d8d73c82db2bb7e6090b3afd7973f980d24e905cc34394eab60b884b3bf67", size = 79615, upload-time = "2026-06-20T23:47:43.109Z" }, + { url = "https://files.pythonhosted.org/packages/27/15/0c2d55168707465abfc41f33c0b23d792a5fa9b65c26983606940900a120/wrapt-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f1a2ff355ece6a111ca7a20dc86df6659c9205d3fcee674ca34f2a2854fd4e73", size = 80782, upload-time = "2026-06-20T23:47:44.367Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b5/5c0b093eb48f8a062ef6267d3cb36e9bb1b88440181f6545a383c60efdf8/wrapt-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:55b9a899e6fff5444f229d30aa6e9ac92d2216d9d60f33c771b5d76a760d5f8e", size = 81678, upload-time = "2026-06-20T23:47:45.857Z" }, + { url = "https://files.pythonhosted.org/packages/34/f3/de70937472dd3e8a4e6811192f9c6075efdffd4a2cd9b4596bf160f89668/wrapt-2.2.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a2d78c363f97d8bd718ee40432c66395685e9e98528ccaa423c3355d1715a26d", size = 159671, upload-time = "2026-06-20T23:47:47.345Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ec/40aed2330e7f02ecf74386ffcfef9ccb7108c6a430f15b6a252b663b1bed/wrapt-2.2.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d619e1eed9bd4f6ed9f24cd61971aa086fa86505289628d464bcf8a2c2e3f328", size = 160785, upload-time = "2026-06-20T23:47:48.759Z" }, + { url = "https://files.pythonhosted.org/packages/45/04/aa5309beed5344b00220ae6b3b24055852192656194c27947bee1736306a/wrapt-2.2.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:518b0c5e323511ec56a38894802ddd5e1222626484e68efe63f201854ad788e5", size = 153699, upload-time = "2026-06-20T23:47:50.177Z" }, + { url = "https://files.pythonhosted.org/packages/01/df/2def7e99d1fe87eea413f95f671924cdddcb08823b1ffd212748dfa6d062/wrapt-2.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4bccea5cdecffa9dd70e343741f0e41e0a16619313d04b72f78bb525162ebcd0", size = 159695, upload-time = "2026-06-20T23:47:51.602Z" }, + { url = "https://files.pythonhosted.org/packages/c7/f6/a906d01a2ce12157bad2404957b3e2140da354b8a70b2fa48bbf282871c0/wrapt-2.2.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:209112cafd963710a05d199aae431d79a28bc76eb8e6d1bbbb8ad24340722cae", size = 152813, upload-time = "2026-06-20T23:47:53.03Z" }, + { url = "https://files.pythonhosted.org/packages/02/49/bc0086292d239575b4c08f4cf8a4079fa58abbad58ec23abf84833a283ed/wrapt-2.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e5a5290e4bf2f332fc29ce72ffb9a2fff678aaac047e2e9f5f7165cd7792e099", size = 158809, upload-time = "2026-06-20T23:47:54.391Z" }, + { url = "https://files.pythonhosted.org/packages/55/83/8fbd034de1f3e907edaa18786d5dd8f6932874edee0826c7cecb5cab03a1/wrapt-2.2.2-cp311-cp311-win32.whl", hash = "sha256:5499236ad1dc116012e2a5dd943f3f31af12fce452128e2bbcbd55a7d3d4d14c", size = 77414, upload-time = "2026-06-20T23:47:55.882Z" }, + { url = "https://files.pythonhosted.org/packages/7e/9c/23695baa331c6de4e874c3d78b8e0bed92e1d2a274e665b29858f6841672/wrapt-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:8636809939152be6ae20a6cef0fed9fe60f411b47847d0426a826884b469e971", size = 80368, upload-time = "2026-06-20T23:47:57.237Z" }, + { url = "https://files.pythonhosted.org/packages/08/49/40cefc342bf89b234a4490d741290fce781774b831aefb39c25471da96c9/wrapt-2.2.2-cp311-cp311-win_arm64.whl", hash = "sha256:5d0a142f7af07caeb5e5da87493162a7b8efa19ba919e550a746f7446e13fb30", size = 79489, upload-time = "2026-06-20T23:47:58.56Z" }, + { url = "https://files.pythonhosted.org/packages/2a/85/180b40628b23772692a0c76e8030114e1c0ae068470ed531919f0a5f2a4a/wrapt-2.2.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8417fd3c674d3c8023d080292d29301531a12daf8bd938dd419710dd2f464f2b", size = 81484, upload-time = "2026-06-20T23:47:59.924Z" }, + { url = "https://files.pythonhosted.org/packages/94/f2/21c90f2a16689702e2aaff45795b11018dff2c9b1242bac10d225483f676/wrapt-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e7070c7472582e31af3dfc2622b2381a0df7435110a9388ed8db5ffbce67efb", size = 82151, upload-time = "2026-06-20T23:48:01.303Z" }, + { url = "https://files.pythonhosted.org/packages/5f/b3/7e6e9fcf4fe7e1b69a49fe6cc5a44e8224bab6283c5233c97e132f14908e/wrapt-2.2.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2e096c9d39a59b35b63c9aacfbbbec2088ff51ff1fc31051acc60a07f42f273a", size = 169828, upload-time = "2026-06-20T23:48:02.719Z" }, + { url = "https://files.pythonhosted.org/packages/0b/43/894f132d857ed5a9904d937baf368badcbe5ea9e436e2f1930fe21c9f1f0/wrapt-2.2.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d1a6050405bf334be33bf66296f113563622972a34900ae6fa60fd283a1a900", size = 171544, upload-time = "2026-06-20T23:48:04.266Z" }, + { url = "https://files.pythonhosted.org/packages/29/de/3c833e03725b477e9ea34028224dd21a48781830101e4e036f77e8b6b102/wrapt-2.2.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:10adb01371408c6de504a6658b9886480f1a4919a83752748a387a504a21df79", size = 160663, upload-time = "2026-06-20T23:48:05.708Z" }, + { url = "https://files.pythonhosted.org/packages/33/be/27edce350b24e3054d9d047f65f16d4c4d4c1f3f31c4278a1f8a95c723c8/wrapt-2.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3442eee2a5798f9b451f1b2cd7518ce8b7e28a2a364696c414460a0e295c012a", size = 169387, upload-time = "2026-06-20T23:48:07.243Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c4/9fd9679af8bf38e146652c7f47b6b352c3e5795b4ad1c0b7f94e15ac2aa7/wrapt-2.2.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:6c99012a22f735a85eed7c4b86a3e99c30fdd57d9e115b2b45f796264b58d0bf", size = 158849, upload-time = "2026-06-20T23:48:08.91Z" }, + { url = "https://files.pythonhosted.org/packages/bc/c2/aa6c0c2206803068c6859dabe01f8c84c43744da93d4c67b8946d21655ee/wrapt-2.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3b686cfc008776a3952d6213cb296ed7f45d782a8453936406faa89eac0835ab", size = 168147, upload-time = "2026-06-20T23:48:10.374Z" }, + { url = "https://files.pythonhosted.org/packages/42/63/3eb25da41049d20ae18fcab2dd8b056e02387c4bfa626cbdfb7c3b872e4f/wrapt-2.2.2-cp312-cp312-win32.whl", hash = "sha256:ef2cce266b5b0b07e19fa82e59673b81142b7a3607c8ed1254113d048ed668da", size = 77734, upload-time = "2026-06-20T23:48:11.769Z" }, + { url = "https://files.pythonhosted.org/packages/da/09/0390e008a305360948fa9ce69507d041ac12cb2ee5d28e34467e2ee79391/wrapt-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:abf8c20a2d72ee69e16328b3c91342c446e723bfe48bfcc4dded3b9722ac027f", size = 80585, upload-time = "2026-06-20T23:48:13.117Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b3/84c445c66969f2d3457276b183a48c91097d59bbef9af6c075366b0f8c36/wrapt-2.2.2-cp312-cp312-win_arm64.whl", hash = "sha256:c6c64c5d02578bc4c4bca4f0aef1504de933c1d5b4ac2710b9131111459506c8", size = 79553, upload-time = "2026-06-20T23:48:14.5Z" }, + { url = "https://files.pythonhosted.org/packages/43/fc/f32f4b22c6511173c11d9e541ab4e7d8467a0f1b3455acaf784115d31ff8/wrapt-2.2.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9e8b648270c613720a202d9a45ebabc33261b22c3a839b115ac5bce8c0bb0d69", size = 81296, upload-time = "2026-06-20T23:48:15.881Z" }, + { url = "https://files.pythonhosted.org/packages/72/06/4d117d5d77a9344776c0248b24dae3d3dd2f58e5f765fa08cf887072e719/wrapt-2.2.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6fb7e94e8fe3e4c3067bb1653a91cce7c5e83acc119fdd41501b1bf74654617", size = 81841, upload-time = "2026-06-20T23:48:17.262Z" }, + { url = "https://files.pythonhosted.org/packages/15/ff/63ad96f98eb58a742b1a20d80f21da88924405910149950b912368150468/wrapt-2.2.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb18fc51e813df0d9c98049e3bf2298a5495a648602040e21fa3c7329371159e", size = 167882, upload-time = "2026-06-20T23:48:18.764Z" }, + { url = "https://files.pythonhosted.org/packages/20/1f/8bb62d8933df7acf3247194e6e9fc68edf9d2fa203252c89c94b319dd472/wrapt-2.2.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94b00b00f806eb3ef2abe9049ed45994a81ee9284884d96e6b8314927c6cea3d", size = 167411, upload-time = "2026-06-20T23:48:20.315Z" }, + { url = "https://files.pythonhosted.org/packages/17/09/8789dcb09ee1de715727db7521aabbb68ffa68dfade3a49468440cfced49/wrapt-2.2.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:62415fd095bc590b842b6d092f2b5d9ccbaeb7e0b28535c03dcea2718b48636b", size = 158607, upload-time = "2026-06-20T23:48:21.728Z" }, + { url = "https://files.pythonhosted.org/packages/9c/20/66e02562d53ee67d841f175e38e3c993c2d78a3e104c576cad61c028b43c/wrapt-2.2.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a41e758d80dc0ab8c210f641ac892009d356cf1f955d97db544c8dd317b4d14c", size = 166367, upload-time = "2026-06-20T23:48:23.177Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a3/832ac4e41222fb263b3042d42c2f08d305db7d0f0c9b1d3a271a9eede8f6/wrapt-2.2.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:b84cd4058001c9727b0e9980b7a9e66325b5ca748b1b578e822cade1bc6b304f", size = 157176, upload-time = "2026-06-20T23:48:24.711Z" }, + { url = "https://files.pythonhosted.org/packages/b7/01/1bd5e4d2df9c0178989ac8da9186543465388588ee2ef153e2591accebef/wrapt-2.2.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:26fc73a1b15e0946d2942b9a4426d162b51676338327dc067ccd8d2d76385f94", size = 167025, upload-time = "2026-06-20T23:48:26.118Z" }, + { url = "https://files.pythonhosted.org/packages/1c/69/583ed25291ab53e1ec117135fb1c33425e2f46d2bc8f29c17f7a94cf4274/wrapt-2.2.2-cp313-cp313-win32.whl", hash = "sha256:3c4095803491f6ef72128914c28ec05bbad9758433bb35f6715a3e9c8e46fb2d", size = 77605, upload-time = "2026-06-20T23:48:27.643Z" }, + { url = "https://files.pythonhosted.org/packages/29/68/e69fc6d06e1523c68e0d00f95c9aed1158ce9908ee41603f7f2eae3d5db6/wrapt-2.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:2cb07f414fab25dbe6b5c7398e1491423a5c81a6209533639969a6c928d474a4", size = 80508, upload-time = "2026-06-20T23:48:29.013Z" }, + { url = "https://files.pythonhosted.org/packages/55/21/fe7a393d9e5dc0923bed8f5d857e9dcff210f1fa0888c02cc8f3ffaa55aa/wrapt-2.2.2-cp313-cp313-win_arm64.whl", hash = "sha256:1fc7691f070220215cccb2a20836b9adbaecb8ff22ad47abe63de5f110994fac", size = 79565, upload-time = "2026-06-20T23:48:30.429Z" }, + { url = "https://files.pythonhosted.org/packages/b6/e5/c120d13bf5091164f68c3c1657e84f16f57e71d978421b626393ac5bd7eb/wrapt-2.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ec8f83949028366531383603139403cac7a826e4011955813cdd640017845ce5", size = 83264, upload-time = "2026-06-20T23:48:31.807Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b0/d4a1eb97e0e286625bdf21bc7f702637f9607787ffbbdb5ec14d50c79dbf/wrapt-2.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4b481fb0c40d9fd90a5809911208da700987d373a20a4709dc9e3944af7a6bec", size = 83791, upload-time = "2026-06-20T23:48:33.482Z" }, + { url = "https://files.pythonhosted.org/packages/18/1e/f060df47755e87b57684cee7bfc1362b204df55fac96ffebc0631b697b79/wrapt-2.2.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0065a3b657cec06813b4241d2462ccec287f6863103d7445b725fb3a889736f9", size = 203399, upload-time = "2026-06-20T23:48:34.97Z" }, + { url = "https://files.pythonhosted.org/packages/c4/de/2316a757a1abb6453700b79d83e532146dcef2611348282d4d8889792161/wrapt-2.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:30f7424af5c5c345b7f26490e097f74a2ef45b3d08b664dc33571aee3bd3b56c", size = 210461, upload-time = "2026-06-20T23:48:36.569Z" }, + { url = "https://files.pythonhosted.org/packages/ed/29/d1160785ae18ca2495a6d82a21154103d74f656c9fd457fb35f6b11b965a/wrapt-2.2.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:07fdcb012821859168641acf68afad61ef9783cf37100af85f152550e9677194", size = 195313, upload-time = "2026-06-20T23:48:38.175Z" }, + { url = "https://files.pythonhosted.org/packages/f5/2d/7caa9598ae61a9cf0989cc501739cbeeb7d650ab3193cca1407b9af0c6ab/wrapt-2.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f90038ab58fafb584801ca62d72384d7d5225d93c76f7b773c22fae545bd8066", size = 206116, upload-time = "2026-06-20T23:48:39.804Z" }, + { url = "https://files.pythonhosted.org/packages/ac/02/281ea1088b8650d865f311b35cf86fd21df89128e2909714f1161e01c9d0/wrapt-2.2.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:c5d7825491bfa2d08b97e9557768987952c7b9ae687d06c3320b40a37ccb7f20", size = 192668, upload-time = "2026-06-20T23:48:41.346Z" }, + { url = "https://files.pythonhosted.org/packages/be/7d/976e2d5b4b5c5babda40974edd54d0a5585cb60132ed86b46f4b80239b16/wrapt-2.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0ad520e6daa9bbf136f14de735474dbec7dcc0891f718e1d274ce8dc92e645af", size = 198891, upload-time = "2026-06-20T23:48:43.056Z" }, + { url = "https://files.pythonhosted.org/packages/59/b7/e47651797c097f75a37e2ce86dcf04048ff576f3a674f7c558df7b5e9622/wrapt-2.2.2-cp313-cp313t-win32.whl", hash = "sha256:25904acb9475f46c24fe0423dbc8fda8cc5fbc282ab3dc6e72e919748c53f4e9", size = 78537, upload-time = "2026-06-20T23:48:44.509Z" }, + { url = "https://files.pythonhosted.org/packages/d1/6f/9fa5d59fb06d890defb5a8f727ce6a14d2932c8760153f96956628559fee/wrapt-2.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:305d4c247d61c4115794a169141823c62f719525ddb90b23aa332741c77d2c28", size = 82005, upload-time = "2026-06-20T23:48:46.391Z" }, + { url = "https://files.pythonhosted.org/packages/15/80/4c7bd9873d1f9f7d138d93556b500469dbe24f42710b877519c2b9eb380d/wrapt-2.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c20279cd1a29800815d7b2d6338b60a6c6e78263f9d6e62e0eda251ba9cae2d0", size = 80762, upload-time = "2026-06-20T23:48:47.964Z" }, + { url = "https://files.pythonhosted.org/packages/24/05/7fd9c3f83b2c74cbfc572a0b88aa37431e04bd8aed70d2c0efd3464206de/wrapt-2.2.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:0e64826f920c42d9d9f87e8cc09ffae66c51ede12d59061a5a426deb9aa71745", size = 81341, upload-time = "2026-06-20T23:48:49.39Z" }, + { url = "https://files.pythonhosted.org/packages/4b/68/1bfa43100dd90d4ef74a05897b86275cf57e1313ca14aae2545bc9f872c9/wrapt-2.2.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dcaa5e1451bd8751d7bd1568dfa3321c78092a52a7ecb5d1a0f18a5791e1fd00", size = 81921, upload-time = "2026-06-20T23:48:50.986Z" }, + { url = "https://files.pythonhosted.org/packages/74/eb/df7b7f0b631dbbc750f39be27d8b55f65777d8ac86da80e12be41a644c4b/wrapt-2.2.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0abfd648dac9ac9c5b3aa9b523d27f1789046640b58dcd5652a720ddb325e1fc", size = 167713, upload-time = "2026-06-20T23:48:52.598Z" }, + { url = "https://files.pythonhosted.org/packages/4d/9a/d1bd36f6d088c8e652a9383cabbd49af30b8c576302a7eccddbab6963e3f/wrapt-2.2.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f4bfd8d1eb438153eff8b8cfe87f032ba65731e1ce06138b5090f745a33f6f95", size = 166779, upload-time = "2026-06-20T23:48:54.33Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ae/24ffacd4187fac2740a1972093929e836dea092d42c87d728cd98fee11a6/wrapt-2.2.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c427c9d06d859848a69f0d928fe28b5c33a941b2265d10a0e1f15cd244f1ee33", size = 158407, upload-time = "2026-06-20T23:48:55.944Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ed/974427668249a356051e8d67d47fa54ef6c777f0fcf3bae9d292c047d4b6/wrapt-2.2.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4250b43d1a129d947e083c4dc6baf333c9bb34edd26f912d5b0457841fc858ab", size = 166594, upload-time = "2026-06-20T23:48:57.617Z" }, + { url = "https://files.pythonhosted.org/packages/fb/5f/e1d7c6e4523f78db2fbd7826babd0348da1d5e0834c4f918b9ab5757dfae/wrapt-2.2.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:173e5bb5ca350a6e0abab60b7ec7cdd7992a814cb14b4de670a28f067f105663", size = 157068, upload-time = "2026-06-20T23:48:59.171Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c1/7ebd1027f00700c0b0233b20aceef2b4784294ed64971424c4a78e069e34/wrapt-2.2.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:aa14b01804bce36c6d63d7b6a4f55df390f29f8648cc13a1f40b166f4d54680d", size = 166470, upload-time = "2026-06-20T23:49:00.737Z" }, + { url = "https://files.pythonhosted.org/packages/99/eb/974e471a6a978b8180186b8a9dc5ae3361ce269a967190b709b8ce17abfb/wrapt-2.2.2-cp314-cp314-win32.whl", hash = "sha256:58f9f8d637c9a6e245c6ef5b109b67ec187d2faed23d1405656b51d96e0a5b56", size = 78062, upload-time = "2026-06-20T23:49:02.327Z" }, + { url = "https://files.pythonhosted.org/packages/49/ec/e1281156cdc7a66693838ad7a0865ad641c74abd337a957d668b575aaffb/wrapt-2.2.2-cp314-cp314-win_amd64.whl", hash = "sha256:385cb1866f20479e83299af585375bfa0a4b0c6c9907a981483ea782ea8ae406", size = 80832, upload-time = "2026-06-20T23:49:03.837Z" }, + { url = "https://files.pythonhosted.org/packages/45/7d/1b6b5ddd94005a2dac97a4490c9838f3154977850d633abcb65b30089437/wrapt-2.2.2-cp314-cp314-win_arm64.whl", hash = "sha256:8ffbeaea6771a6eba6e6eeb09767864995726bc8240bb54baf88a9bb1db34d5c", size = 80029, upload-time = "2026-06-20T23:49:05.237Z" }, + { url = "https://files.pythonhosted.org/packages/b0/33/9ebcf8aafe91c601127cbd93708c16aa8f688f34a10bf004046803ecdc4f/wrapt-2.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:09f811d43f6f33ec7515f0be76b159569f4057ab54d3e079c3204dddb90afa2a", size = 83357, upload-time = "2026-06-20T23:49:06.632Z" }, + { url = "https://files.pythonhosted.org/packages/39/38/ec45b635153327b52e52732a0ea980e5f00b7efba65f9e018828f1e69daa/wrapt-2.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a795d3c06e5fbf9ea2f13196180b77aeab1b4685917256ee0d014cc163d90063", size = 83794, upload-time = "2026-06-20T23:49:08.098Z" }, + { url = "https://files.pythonhosted.org/packages/4e/ea/1a89e6d3b7a83c3affe5c09cde77792c947e63e4bc85ad84cd5bb9abb0d8/wrapt-2.2.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:45c2f2768e790c9f8db90f239ef23a2af8e7570f25a35619ef902df4a738447f", size = 203362, upload-time = "2026-06-20T23:49:09.811Z" }, + { url = "https://files.pythonhosted.org/packages/19/d8/3b58763d9863b5a73771c0d97110f9595d248db454009e07e1535ee905a4/wrapt-2.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bbf00ee0cb55ec24e2b0995a71942b85b21a066db8f3f46e1dbfdb9433ffba81", size = 210449, upload-time = "2026-06-20T23:49:11.521Z" }, + { url = "https://files.pythonhosted.org/packages/2d/6f/17fd9e053103d8be148d20d5d7505facc72d5fe1f9127973904ceaed79cf/wrapt-2.2.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2252f77663651b89255895f58cc6ac08fcb206d4371813e5af61bb62d4f7689c", size = 195349, upload-time = "2026-06-20T23:49:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/ef/04/d0d1ccaaa12cb7dccf28a23f0279a608ba498f71e81d949d5ed54bcfd5c1/wrapt-2.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2cd7181ab1c31192ff5219269830744b5a62020b3a6d433588c4f1c95b8f8bff", size = 206099, upload-time = "2026-06-20T23:49:15.051Z" }, + { url = "https://files.pythonhosted.org/packages/44/b3/e8aa07b619890a2aa6cde1931b1887abb08820721b564a5f80b7ca3f3aa0/wrapt-2.2.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:6fe35fd51b74867d8b80174c277bd6bbf6a73e443f908129dc531c4b688a20d5", size = 192728, upload-time = "2026-06-20T23:49:16.854Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f0/1819fb50f0d3c9bd758d8a83b56f1b470dee8b5b8eac8702b7c137cea9d4/wrapt-2.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:11d95fc2fbad3163596c39d440e6f21ca9fccece74b56e30a37ac2fca786a07c", size = 198842, upload-time = "2026-06-20T23:49:18.504Z" }, + { url = "https://files.pythonhosted.org/packages/67/7c/e88313f16a99930b899ef970d91c281544a470749a359decad994483bbda/wrapt-2.2.2-cp314-cp314t-win32.whl", hash = "sha256:d8a15813215f33fa83667bfc978b300e35669ea8bb424e970a1426bcb7bc6cca", size = 79059, upload-time = "2026-06-20T23:49:20.107Z" }, + { url = "https://files.pythonhosted.org/packages/a0/4f/ac12fda57a55068a094ec42851fb0a40e8489d8941863d517452de62e507/wrapt-2.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:d09db0f7e8357060d3c38fc22a018aba683a796bf184360fd1a58f6fc180dc77", size = 82462, upload-time = "2026-06-20T23:49:21.631Z" }, + { url = "https://files.pythonhosted.org/packages/48/a7/df732dac86d9b2027c56bd163dbc883e037b16c3469614752e148d219c61/wrapt-2.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:f32fe639c39561ccc187bcae17e9271be0eb45f1c2952510d2f29b33ab577347", size = 81182, upload-time = "2026-06-20T23:49:23.199Z" }, + { url = "https://files.pythonhosted.org/packages/6e/d2/6317eb6d4554855bbf12d61857774af34747bf88a42c19bf306de67e2fa3/wrapt-2.2.2-py3-none-any.whl", hash = "sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048", size = 61460, upload-time = "2026-06-20T23:49:42.966Z" }, +] + +[[package]] +name = "xlrd" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/07/5a/377161c2d3538d1990d7af382c79f3b2372e880b65de21b01b1a2b78691e/xlrd-2.0.2.tar.gz", hash = "sha256:08b5e25de58f21ce71dc7db3b3b8106c1fa776f3024c54e45b45b374e89234c9", size = 100167, upload-time = "2025-06-14T08:46:39.039Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/62/c8d562e7766786ba6587d09c5a8ba9f718ed3fa8af7f4553e8f91c36f302/xlrd-2.0.2-py2.py3-none-any.whl", hash = "sha256:ea762c3d29f4cca48d82df517b6d89fbce4db3107f9d78713e48cd321d5c9aa9", size = 96555, upload-time = "2025-06-14T08:46:37.766Z" }, +] + +[[package]] +name = "xlsxwriter" +version = "3.2.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/46/2c/c06ef49dc36e7954e55b802a8b231770d286a9758b3d936bd1e04ce5ba88/xlsxwriter-3.2.9.tar.gz", hash = "sha256:254b1c37a368c444eac6e2f867405cc9e461b0ed97a3233b2ac1e574efb4140c", size = 215940, upload-time = "2025-09-16T00:16:21.63Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/0c/3662f4a66880196a590b202f0db82d919dd2f89e99a27fadef91c4a33d41/xlsxwriter-3.2.9-py3-none-any.whl", hash = "sha256:9a5db42bc5dff014806c58a20b9eae7322a134abb6fce3c92c181bfb275ec5b3", size = 175315, upload-time = "2025-09-16T00:16:20.108Z" }, +] + +[[package]] +name = "yarl" +version = "1.24.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/79/12/1e8f37460ea0f7eb59c221fdaf0ed75e7ac43e97f8093b9c6f411df50a78/yarl-1.24.2.tar.gz", hash = "sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8", size = 210798, upload-time = "2026-05-19T21:31:05.599Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/df/f1c7a3de0831cd83194f1a85c5bb431b13f81e6b45079314c86d1c4ef3f2/yarl-1.24.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5249a113065c2b7a958bc699759e359cd61cfc81e3069662208f48f191b7ed12", size = 129057, upload-time = "2026-05-19T21:27:47.564Z" }, + { url = "https://files.pythonhosted.org/packages/48/41/7daafb32dd7562bf45b1ce56562e7e1a9146f6479b6456873eb8a3413c40/yarl-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7f4425fa244fbf530b006d0c5f79ce920114cfff5b4f5f6056e669f8e160fdc0", size = 91545, upload-time = "2026-05-19T21:27:50.089Z" }, + { url = "https://files.pythonhosted.org/packages/a8/8f/7b3ec212f1ea0683f55f978e3246bc313c38818664edfc97a9f349a4901e/yarl-1.24.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15c0b5e49d3c44e2a0b93e6a49476c5edad0a7686b92c395765a7ea775572a75", size = 91380, upload-time = "2026-05-19T21:27:51.953Z" }, + { url = "https://files.pythonhosted.org/packages/8a/1b/8bafab7db23b0567ae9db749099b329d91e3b82bc6028b2050ba583e116c/yarl-1.24.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:246d32a53a947c8f0189f5d699cbd4c7036de45d9359e13ba238d1239678c727", size = 105957, upload-time = "2026-05-19T21:27:53.98Z" }, + { url = "https://files.pythonhosted.org/packages/7f/77/21030c2f8d21d21559719beafc772ada2014be933418ed1eaed9cc800e42/yarl-1.24.2-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:64480fb3e4d4ed9ed71c48a91a477384fc342a50ca30071d2f8a88d51d9c9413", size = 97242, upload-time = "2026-05-19T21:27:55.981Z" }, + { url = "https://files.pythonhosted.org/packages/50/d8/f9ea63d1b6aa910a866e089d871fff6cbd49caab29b86b35221a62dfa0d5/yarl-1.24.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:349de4701dc3760b6e876628423a8f147ef4f5599d10aba1e10702075d424ed9", size = 114719, upload-time = "2026-05-19T21:27:58.037Z" }, + { url = "https://files.pythonhosted.org/packages/e9/a3/04e0ee98ac58a249ea7ed75223f5f901ba81a834f0b4921b58e5cec11757/yarl-1.24.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d162677af8d5d3d6ebab8394b021f4d041ac107a4b705873148a77a49dc9e1b2", size = 112140, upload-time = "2026-05-19T21:27:59.618Z" }, + { url = "https://files.pythonhosted.org/packages/02/ad/0b9cc9f38a7324a7eb1d80f834eaa5283d17e9271bbda3186e598dddaeac/yarl-1.24.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f5f5c6ec23a9043f2d139cc072f53dd23168d202a334b9b2fda8de4c3e890d90", size = 106721, upload-time = "2026-05-19T21:28:02.586Z" }, + { url = "https://files.pythonhosted.org/packages/65/e7/a52478ebfc66ec989e085c6ae038b9f1bfa4190baa193b133b669c709e2f/yarl-1.24.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:60de6742447fbbf697f16f070b8a443f1b5fe6ca3826fbef9fe70ecd5328e643", size = 106478, upload-time = "2026-05-19T21:28:04.523Z" }, + { url = "https://files.pythonhosted.org/packages/04/d8/5508530fea8472542de00013ae280765fc938ee196fc4030c43a498afb36/yarl-1.24.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acf93187c3710e422368eb768aee98db551ec7c85adc250207a95c16548ab7ac", size = 105423, upload-time = "2026-05-19T21:28:06.515Z" }, + { url = "https://files.pythonhosted.org/packages/84/f1/ece28505e9628e8b756e11bb4f28864a17cc33b6b44db4d2aaf0622bf630/yarl-1.24.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:f4b0352fd41fd34b6651934606268816afd6914d09626f9bcbbf018edb0afb3f", size = 99878, upload-time = "2026-05-19T21:28:08.637Z" }, + { url = "https://files.pythonhosted.org/packages/3f/52/fb5d34529b46dd84013afcfb30b8d2bc2832ed03d412736f577d604fa393/yarl-1.24.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:6b208bb939099b4b297438da4e9b25357f0b1c791888669b963e45b203ea9f36", size = 114025, upload-time = "2026-05-19T21:28:10.64Z" }, + { url = "https://files.pythonhosted.org/packages/43/f0/ff9d31aaab024f7a251c0ed308a98ae29bf9f7dc344e78f28b1322431ca2/yarl-1.24.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:4b85b8825e631295ff4bc8943f7471d54c533a9360bbe15ebb38e018b555bb8a", size = 105613, upload-time = "2026-05-19T21:28:12.784Z" }, + { url = "https://files.pythonhosted.org/packages/31/7d/3296fb3f3ecd52bf9ae6c16b0895c1cda7e9170a2083861552b683f70264/yarl-1.24.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e26acf20c26cb4fefc631fdb75aca2a6b8fa8b7b5d7f204fb6a8f1e63c706f53", size = 111665, upload-time = "2026-05-19T21:28:14.393Z" }, + { url = "https://files.pythonhosted.org/packages/1a/74/77aa6ddaca4fbf42e45e675a465c43956dd40702281049975a2aa04eae59/yarl-1.24.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:819ca24f8eafcfb683c1bd5f44f2f488cea1274eb8944731ffd2e1f10f619342", size = 106914, upload-time = "2026-05-19T21:28:15.893Z" }, + { url = "https://files.pythonhosted.org/packages/d8/02/7611f22cd1d4ed7373eb7f9ee21fde1046edba2e7c0e514880d760352f48/yarl-1.24.2-cp310-cp310-win_amd64.whl", hash = "sha256:5cb0f995a901c36be096ccbf4c673591c2faabbe96279598ffaec8c030f85bf4", size = 92658, upload-time = "2026-05-19T21:28:17.471Z" }, + { url = "https://files.pythonhosted.org/packages/91/00/671d0add79938127292839ae44506ce2f7fe8909c72d5a931864f128fd0b/yarl-1.24.2-cp310-cp310-win_arm64.whl", hash = "sha256:f408eace7e22a68b467a0562e0d27d322f91fe3eaaa6f466b962c6cfaea9fa39", size = 87887, upload-time = "2026-05-19T21:28:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/c5/c5/1ce244152ff2839645e7cae92f90e7bafcb2c52bea7ff586ac714f14f5df/yarl-1.24.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1", size = 128971, upload-time = "2026-05-19T21:28:20.543Z" }, + { url = "https://files.pythonhosted.org/packages/87/5a/00f36967203ed89cb3acd2c8ed526cc3fed9418eb70ce128160a911c8499/yarl-1.24.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c", size = 91507, upload-time = "2026-05-19T21:28:22.556Z" }, + { url = "https://files.pythonhosted.org/packages/31/d0/1fb0c1cd27288f39f6974da4318c32768d72c9890984541fdf1e2e32a51d/yarl-1.24.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d", size = 91343, upload-time = "2026-05-19T21:28:24.092Z" }, + { url = "https://files.pythonhosted.org/packages/03/ce/d4a646508bed2f8dec6435b40166fe9308dd191262033d3f307b2bbcaecd/yarl-1.24.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae", size = 105704, upload-time = "2026-05-19T21:28:25.872Z" }, + { url = "https://files.pythonhosted.org/packages/4b/07/b3278e82d8bc41485bcf6d856cd0433262593de615b1d3dc43bd3f5bead4/yarl-1.24.2-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a", size = 97281, upload-time = "2026-05-19T21:28:27.352Z" }, + { url = "https://files.pythonhosted.org/packages/17/5b/4cee6e7c92e487bebe7afc797da0aa54a248ab4e776a68fe369ec29665a5/yarl-1.24.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e", size = 114020, upload-time = "2026-05-19T21:28:29.458Z" }, + { url = "https://files.pythonhosted.org/packages/5c/82/111076571545a7d4f9cca3fbd5c6f40615af58642be09f12328f48022468/yarl-1.24.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50", size = 111450, upload-time = "2026-05-19T21:28:31.262Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ec/08f671f69a444d704aeecebf92af659b67b97a869942411d0a578b08c334/yarl-1.24.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003", size = 106384, upload-time = "2026-05-19T21:28:32.856Z" }, + { url = "https://files.pythonhosted.org/packages/e5/86/ce41e7a7a199340b2330d52b60f25c4074b6636dd0e60b1a80d31a9db042/yarl-1.24.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f", size = 106153, upload-time = "2026-05-19T21:28:35.222Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5d/31be8a729531ab3e55ac3e7e5c800be8c89ea98947f418b2f6ea259fb6ee/yarl-1.24.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f", size = 105322, upload-time = "2026-05-19T21:28:36.642Z" }, + { url = "https://files.pythonhosted.org/packages/47/9b/b57afb22b386ae87ac9940f09878b98d8c333f89113e6fc96fcf4ca9eb64/yarl-1.24.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294", size = 99057, upload-time = "2026-05-19T21:28:38.386Z" }, + { url = "https://files.pythonhosted.org/packages/a3/4f/06348c27c8389256c313e8a57d796808fc0264c915dd5e7cfd3c0e314dc7/yarl-1.24.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2", size = 113502, upload-time = "2026-05-19T21:28:40.091Z" }, + { url = "https://files.pythonhosted.org/packages/5f/1c/284f307b298e4a17b7943b07d9d7ecc4151537f8d137ba51f3bb6c31ca20/yarl-1.24.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c", size = 105253, upload-time = "2026-05-19T21:28:41.987Z" }, + { url = "https://files.pythonhosted.org/packages/c8/bf/0de123bec8619e45c80cbded9085f61b5b4a9eddb8abe6d25d28ee1ec866/yarl-1.24.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b", size = 111345, upload-time = "2026-05-19T21:28:43.93Z" }, + { url = "https://files.pythonhosted.org/packages/90/af/0248eb065e51129d2a9b2436cd1b5c772c19a6b04e5b6a186955671e3319/yarl-1.24.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5", size = 106558, upload-time = "2026-05-19T21:28:45.806Z" }, + { url = "https://files.pythonhosted.org/packages/21/3c/f960d7a65ef97d8ba9b424fb5128796a4bc710fc6df2ddbbd7dfdc3bbd20/yarl-1.24.2-cp311-cp311-win_amd64.whl", hash = "sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45", size = 92808, upload-time = "2026-05-19T21:28:48.465Z" }, + { url = "https://files.pythonhosted.org/packages/03/1a/49fb03750e4de4d2284cd5b885a383133c34eef45bd59631b2bb8b7e81e8/yarl-1.24.2-cp311-cp311-win_arm64.whl", hash = "sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122", size = 87610, upload-time = "2026-05-19T21:28:50.07Z" }, + { url = "https://files.pythonhosted.org/packages/f0/da/866bcb01076ba49d2b42b309867bed3826421f1c479655eb7a607b44f20b/yarl-1.24.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8", size = 129957, upload-time = "2026-05-19T21:28:51.695Z" }, + { url = "https://files.pythonhosted.org/packages/bf/1d/fcefb70922ea2268a8971d8e5874d9a8218644200fb8465f1dcad55e6851/yarl-1.24.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2", size = 92164, upload-time = "2026-05-19T21:28:53.242Z" }, + { url = "https://files.pythonhosted.org/packages/29/b6/170e2b8d4e3bc30e6bfdcca53556537f5bf595e938632dfcb059311f3ff6/yarl-1.24.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d", size = 91688, upload-time = "2026-05-19T21:28:54.865Z" }, + { url = "https://files.pythonhosted.org/packages/fe/a5/c9f655d5553ea0b99fdac9d6a99ad3f9b3e73b8e5758bb46f58c9831f74c/yarl-1.24.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035", size = 102902, upload-time = "2026-05-19T21:28:56.963Z" }, + { url = "https://files.pythonhosted.org/packages/5d/bc/6b9664d815d79af4ee553337f9d606c56bbf269186ada9172de45f1b5f60/yarl-1.24.2-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576", size = 97931, upload-time = "2026-05-19T21:28:58.56Z" }, + { url = "https://files.pythonhosted.org/packages/98/ec/32ba48acae30fecd60928f5791188b80a9d6ee3840507ffda29fecd37b71/yarl-1.24.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8", size = 111030, upload-time = "2026-05-19T21:29:00.148Z" }, + { url = "https://files.pythonhosted.org/packages/82/5a/6f4cd081e5f4934d2ae3a8ef4abe3afacc010d26f0035ee91b35cd7d7c37/yarl-1.24.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7", size = 110392, upload-time = "2026-05-19T21:29:02.155Z" }, + { url = "https://files.pythonhosted.org/packages/7a/da/323a01c349bd5fb01bb6652e314d9bb218cee630a736bdb810ad50e4013f/yarl-1.24.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c", size = 105612, upload-time = "2026-05-19T21:29:04.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/80/264ab684f181e1a876389374519ff05d10248725535ae2ac4e8ac4e563d6/yarl-1.24.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d", size = 104487, upload-time = "2026-05-19T21:29:06.491Z" }, + { url = "https://files.pythonhosted.org/packages/41/07/efabe5df87e96d7ad5959760b888344be48cd6884db127b407c6b5503adc/yarl-1.24.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db", size = 102333, upload-time = "2026-05-19T21:29:08.267Z" }, + { url = "https://files.pythonhosted.org/packages/44/0c/bcf7c42603e1009295f586d8890f2ba032c8b53310e815adf0a202c73d9f/yarl-1.24.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712", size = 99025, upload-time = "2026-05-19T21:29:10.682Z" }, + { url = "https://files.pythonhosted.org/packages/4f/82/84482ab1a57a0f21a08afe6a7004c61d741f8f2ecc3b05c321577c612164/yarl-1.24.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996", size = 110507, upload-time = "2026-05-19T21:29:12.954Z" }, + { url = "https://files.pythonhosted.org/packages/c4/8d/a546ba1dfe1b0f290e05fef145cd07614c0f15df1a707195e512d1e39d1d/yarl-1.24.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b", size = 103719, upload-time = "2026-05-19T21:29:14.893Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b6/267f2a09213138473adfce6b8a6e17791d7fee70bd4d9003218e4dec58b0/yarl-1.24.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c", size = 110438, upload-time = "2026-05-19T21:29:16.485Z" }, + { url = "https://files.pythonhosted.org/packages/48/2d/1c8d89c7c5f9cad9fb2902445d94e2ab1d7aa35de029afbb8ae95c42d00f/yarl-1.24.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1", size = 105719, upload-time = "2026-05-19T21:29:18.367Z" }, + { url = "https://files.pythonhosted.org/packages/a7/25/722e3b93bd687009afb2d59a35e13d30ddd8f80571445bb0c4e4ce26ec66/yarl-1.24.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad", size = 92901, upload-time = "2026-05-19T21:29:20.014Z" }, + { url = "https://files.pythonhosted.org/packages/39/47/4486ccfb674c04854a1ef8aa77868b6a6f765feaf69633409d7ca4f02cb8/yarl-1.24.2-cp312-cp312-win_arm64.whl", hash = "sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30", size = 87229, upload-time = "2026-05-19T21:29:22.1Z" }, + { url = "https://files.pythonhosted.org/packages/82/62/fcf0ce677f17e5c471c06311dd25964be38a4c586993632910d2e75278bc/yarl-1.24.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536", size = 128978, upload-time = "2026-05-19T21:29:23.83Z" }, + { url = "https://files.pythonhosted.org/packages/d3/58/8e63299bb71ed61a834121d9d3fe6c9fcf2a6a5d09754ff4f20f2d20baf5/yarl-1.24.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607", size = 91733, upload-time = "2026-05-19T21:29:25.375Z" }, + { url = "https://files.pythonhosted.org/packages/c1/24/16748d5dab6daec8b0ed81ccec639a1cded0f18dcc62a4f696b4fe366c37/yarl-1.24.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1", size = 91113, upload-time = "2026-05-19T21:29:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/1b/66/b63fff7b71211e866624b21432d5943cbb633eb0c2872d9ee3070648f22c/yarl-1.24.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986", size = 103899, upload-time = "2026-05-19T21:29:28.842Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ac/ba1974b8533909636f7733fe86cf677e3619527c3c2fa913e0ea89c48757/yarl-1.24.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488", size = 97862, upload-time = "2026-05-19T21:29:31.086Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a5/123ac993b5c2ba6f554a140305620cb8f150fa543711bbc49be3ec0a65a4/yarl-1.24.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b", size = 111060, upload-time = "2026-05-19T21:29:32.657Z" }, + { url = "https://files.pythonhosted.org/packages/23/37/c472d3af3509688392134a88a825276770a187f1daa4de3f6dc0a327a751/yarl-1.24.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592", size = 110613, upload-time = "2026-05-19T21:29:34.379Z" }, + { url = "https://files.pythonhosted.org/packages/df/88/09c28dad91e662ccfaa1b78f1c57badde74fc9d0b23e74aef644750ecd73/yarl-1.24.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617", size = 107012, upload-time = "2026-05-19T21:29:36.216Z" }, + { url = "https://files.pythonhosted.org/packages/07/ab/9d4f69d571a94f4d112fa7e2e007200f5a54d319f58c82ac7b7baa61f5c6/yarl-1.24.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92", size = 105887, upload-time = "2026-05-19T21:29:38.746Z" }, + { url = "https://files.pythonhosted.org/packages/8e/9a/000b2b66c0d772a499fc531d21dab92dfeb73b640a12eed6ba89f49bb2d0/yarl-1.24.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a", size = 103620, upload-time = "2026-05-19T21:29:40.368Z" }, + { url = "https://files.pythonhosted.org/packages/41/7c/7c1050f73450fbdaa3f0c72017059f00ce5e13366692f3dba25275a1083d/yarl-1.24.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44", size = 100599, upload-time = "2026-05-19T21:29:42.66Z" }, + { url = "https://files.pythonhosted.org/packages/ec/b1/29e5756b3926705f5f6089bd5b9f50a56eaac550da6e260bf713ead44d04/yarl-1.24.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a", size = 110604, upload-time = "2026-05-19T21:29:44.632Z" }, + { url = "https://files.pythonhosted.org/packages/a3/4b/8415bc96e9b150cde942fbac9a8182985e58f40ce5c54c34ed015407d3ee/yarl-1.24.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf", size = 105161, upload-time = "2026-05-19T21:29:46.755Z" }, + { url = "https://files.pythonhosted.org/packages/8b/d4/cde059abfa229553b7298a2eadde2752e723d50aeedaef86ce59da2718ee/yarl-1.24.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056", size = 110619, upload-time = "2026-05-19T21:29:48.972Z" }, + { url = "https://files.pythonhosted.org/packages/e7/2c/d6a6c9a61549f7b6c7e6dc6937d195bcf069582b47b7200dcd0e7b256acf/yarl-1.24.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992", size = 107362, upload-time = "2026-05-19T21:29:51Z" }, + { url = "https://files.pythonhosted.org/packages/92/dd/3ae5fe417e9d1c353a548553326eb9935e76b6b727161563b424cc296df3/yarl-1.24.2-cp313-cp313-win_amd64.whl", hash = "sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656", size = 92667, upload-time = "2026-05-19T21:29:52.743Z" }, + { url = "https://files.pythonhosted.org/packages/10/cc/a7beb239f78f27fca1b053c8e8595e4179c02e62249b4687ec218c370c50/yarl-1.24.2-cp313-cp313-win_arm64.whl", hash = "sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461", size = 87069, upload-time = "2026-05-19T21:29:54.442Z" }, + { url = "https://files.pythonhosted.org/packages/40/0e/e08087695fc12789263821c5dc0f8dc52b5b17efd0887cacf419f8a43ba3/yarl-1.24.2-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2", size = 129670, upload-time = "2026-05-19T21:29:56.631Z" }, + { url = "https://files.pythonhosted.org/packages/3a/98/ab4b5ed1b1b5cd973c8a3eb994c3a6aefb6ce6d399e21bb5f0316c33815c/yarl-1.24.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630", size = 91916, upload-time = "2026-05-19T21:29:58.645Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b1/5297bb6a7df4782f7605bffc43b31f5044070935fbbcaa6c705a07e6ac65/yarl-1.24.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8", size = 91625, upload-time = "2026-05-19T21:30:00.412Z" }, + { url = "https://files.pythonhosted.org/packages/02/a7/45baabfff76829264e623b185cff0c340d7e11bf3e1cd9ea37e7d17934bd/yarl-1.24.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14", size = 104574, upload-time = "2026-05-19T21:30:02.544Z" }, + { url = "https://files.pythonhosted.org/packages/f3/40/3a5ab144d3d650ca37d4f4b57e56169be8af3ca34c448793e064b30baaed/yarl-1.24.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535", size = 97534, upload-time = "2026-05-19T21:30:04.319Z" }, + { url = "https://files.pythonhosted.org/packages/9c/b5/5658fef3681fb5776b4513b052bec750009f47b3a592251c705d75375798/yarl-1.24.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14", size = 111481, upload-time = "2026-05-19T21:30:05.988Z" }, + { url = "https://files.pythonhosted.org/packages/4c/06/fdcd7dde037f00866dce123ed4ba23dba94beb56fc4cf561668d27be37f2/yarl-1.24.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3", size = 111529, upload-time = "2026-05-19T21:30:07.738Z" }, + { url = "https://files.pythonhosted.org/packages/c2/53/d81269aaafccea0d33396c03035de997b743f11e648e6e27a0df99c72980/yarl-1.24.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208", size = 107338, upload-time = "2026-05-19T21:30:09.713Z" }, + { url = "https://files.pythonhosted.org/packages/ae/04/23049463f729bd899df203a7960505a75333edd499cda8aa1d5a82b64df5/yarl-1.24.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50", size = 106147, upload-time = "2026-05-19T21:30:11.365Z" }, + { url = "https://files.pythonhosted.org/packages/14/18/04a4b5830b43ed5e4c5015b40e9f6241ad91487d71611061b4e111d6ac80/yarl-1.24.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd", size = 104272, upload-time = "2026-05-19T21:30:12.978Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f7/8cffdf319aee7a7c1dbd07b61d91c3e3fda460c7a93b5f93e445f3806c4c/yarl-1.24.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67", size = 99962, upload-time = "2026-05-19T21:30:15.001Z" }, + { url = "https://files.pythonhosted.org/packages/d7/39/b3cce3b7dbef64ac700ad4cea156a207d01bede0f507587616c364b5468e/yarl-1.24.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1", size = 111063, upload-time = "2026-05-19T21:30:16.683Z" }, + { url = "https://files.pythonhosted.org/packages/a1/ea/100818505e7ebf165c7242ff17fdf7d9fee79e27234aeca871c1082920d7/yarl-1.24.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1", size = 105438, upload-time = "2026-05-19T21:30:18.769Z" }, + { url = "https://files.pythonhosted.org/packages/8f/d2/e075a0b32aa6625087de9e653087df0759fed5de4a435fef594181102a77/yarl-1.24.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b", size = 111458, upload-time = "2026-05-19T21:30:21.024Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5c/ceea7ba98b65c8eb8d947fdc52f9bedfcd43c6a57c9e3c90c17be8f324a3/yarl-1.24.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8", size = 107589, upload-time = "2026-05-19T21:30:23.412Z" }, + { url = "https://files.pythonhosted.org/packages/fa/d9/5582d57e2b2db9b85eb6663a22efdd78e08805f3f5389566e9fcad254d1b/yarl-1.24.2-cp314-cp314-win_amd64.whl", hash = "sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0", size = 94424, upload-time = "2026-05-19T21:30:25.425Z" }, + { url = "https://files.pythonhosted.org/packages/92/10/7dc07a0e22806a9280f42a57361395506e800c64e22737cd7b0886feab42/yarl-1.24.2-cp314-cp314-win_arm64.whl", hash = "sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57", size = 88690, upload-time = "2026-05-19T21:30:27.623Z" }, + { url = "https://files.pythonhosted.org/packages/9e/13/d5b8e2c8667db955bcb3de233f18798fefe7edf1d7429c2c9d4f9c401114/yarl-1.24.2-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b", size = 136248, upload-time = "2026-05-19T21:30:29.297Z" }, + { url = "https://files.pythonhosted.org/packages/de/46/a4a97c05c9c9b8fd266bb2a0df12992c7fbd02391eb9640583411b6dab32/yarl-1.24.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761", size = 95084, upload-time = "2026-05-19T21:30:31.031Z" }, + { url = "https://files.pythonhosted.org/packages/95/b2/845cf2074a015e6fe0d0808cf1a2d9e868386c4220d657ebd8302b199043/yarl-1.24.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8", size = 95272, upload-time = "2026-05-19T21:30:33.062Z" }, + { url = "https://files.pythonhosted.org/packages/fe/16/e69d4aa244aef45235ddfebc0e04036a6829842bc5a6a795aedc6c998d23/yarl-1.24.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed", size = 101497, upload-time = "2026-05-19T21:30:34.842Z" }, + { url = "https://files.pythonhosted.org/packages/15/94/c07107715d621076863ee88b3ddf183fa5e9d4aba5769623c9979828410a/yarl-1.24.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543", size = 94002, upload-time = "2026-05-19T21:30:37.724Z" }, + { url = "https://files.pythonhosted.org/packages/a9/35/fc1bbdd895b5e4010b8fdd037f7ed3aa289d3863e08231b30231ca9a0815/yarl-1.24.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0", size = 106524, upload-time = "2026-05-19T21:30:40.196Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f2/32b66d0a4ba47c296cf86d03e2c67bff58399fe6d6d84d5205c04c66cc6d/yarl-1.24.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024", size = 106165, upload-time = "2026-05-19T21:30:41.888Z" }, + { url = "https://files.pythonhosted.org/packages/95/47/37cb5ff50c5e825d4d38e81bb04d1b7e96bf960f7ab89f9850b162f3f114/yarl-1.24.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf", size = 103010, upload-time = "2026-05-19T21:30:43.985Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d2/4597912315096f7bb359e46e13bf8b60994fcbb2db29b804c0902ef4eff5/yarl-1.24.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc", size = 101128, upload-time = "2026-05-19T21:30:46.291Z" }, + { url = "https://files.pythonhosted.org/packages/b9/d5/c8e86e120521e646013d02a8e3b8884392e28494be8f392366e50d208efc/yarl-1.24.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb", size = 101382, upload-time = "2026-05-19T21:30:48.085Z" }, + { url = "https://files.pythonhosted.org/packages/fa/98/70b229236118f89dbeb739b76f10225bbf53b5497725502594c9a01d699a/yarl-1.24.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420", size = 95964, upload-time = "2026-05-19T21:30:49.785Z" }, + { url = "https://files.pythonhosted.org/packages/87/f8/56c386981e3c8648d279fdef2397ffec577e8320fd5649745e34d54faeb7/yarl-1.24.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f", size = 106204, upload-time = "2026-05-19T21:30:51.862Z" }, + { url = "https://files.pythonhosted.org/packages/1a/1e/765afe97811ca35933e2a7de70ac57b1997ea2e4ee895719ee7a231fb7e5/yarl-1.24.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa", size = 101510, upload-time = "2026-05-19T21:30:53.62Z" }, + { url = "https://files.pythonhosted.org/packages/ee/78/393913f4b9039e1edd09ae8a9bbb9d539be909a8abf6d8a2084585bed4b7/yarl-1.24.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe", size = 105584, upload-time = "2026-05-19T21:30:55.962Z" }, + { url = "https://files.pythonhosted.org/packages/78/87/deb17b7049bbe74ea11a713b86f8f27800cc1c8648b0b797243ebb4830ba/yarl-1.24.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd", size = 103410, upload-time = "2026-05-19T21:30:57.962Z" }, + { url = "https://files.pythonhosted.org/packages/8f/be/f9f7594e23b5b93affff0318e4593c1920331bcaefda326cabcad94296a1/yarl-1.24.2-cp314-cp314t-win_amd64.whl", hash = "sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215", size = 102980, upload-time = "2026-05-19T21:30:59.735Z" }, + { url = "https://files.pythonhosted.org/packages/65/a4/ba80dccd3593ff1f01051a818694d07b58cb8232677ee9a22a5a1f93a9fc/yarl-1.24.2-cp314-cp314t-win_arm64.whl", hash = "sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d", size = 91219, upload-time = "2026-05-19T21:31:01.934Z" }, + { url = "https://files.pythonhosted.org/packages/fd/4d/4b880086bd0d3e034d25647be1d830afc3e3f610e98c4ab3490af6b1b6d5/yarl-1.24.2-py3-none-any.whl", hash = "sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9", size = 53576, upload-time = "2026-05-19T21:31:03.909Z" }, +] diff --git a/web/eslint.config.mjs b/web/eslint.config.mjs new file mode 100644 index 0000000..4ba8587 --- /dev/null +++ b/web/eslint.config.mjs @@ -0,0 +1,9 @@ +import { defineConfig, globalIgnores } from "eslint/config"; +import nextVitals from "eslint-config-next/core-web-vitals"; +import nextTypeScript from "eslint-config-next/typescript"; + +export default defineConfig([ + ...nextVitals, + ...nextTypeScript, + globalIgnores([".next/**", "out/**", "build/**", "next-env.d.ts"]), +]); diff --git a/web/package.json b/web/package.json index 0ef0e05..9b13f31 100644 --- a/web/package.json +++ b/web/package.json @@ -6,6 +6,8 @@ "dev": "next dev -p 3013", "build": "next build", "start": "next start -p 3013", + "lint": "eslint .", + "lint:fix": "eslint . --fix", "typecheck": "next typegen && tsc --noEmit --incremental false" }, "dependencies": { @@ -17,6 +19,8 @@ "@types/node": "^25.9.1", "@types/react": "^19", "@types/react-dom": "^19", + "eslint": "^9.39.2", + "eslint-config-next": "^16.2.9", "typescript": "^6.0.3" }, "engines": { From d2dcb1291a6ae140616c249097f413aa4ab119c8 Mon Sep 17 00:00:00 2001 From: Zachary Roth <100426704+zacharyr0th@users.noreply.github.com> Date: Thu, 16 Jul 2026 11:49:07 -0700 Subject: [PATCH 3/5] chore(web): ignore local Vercel project state --- web/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/web/.gitignore b/web/.gitignore index 5e637f4..11bd6c1 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -1,3 +1,4 @@ .next/ node_modules/ next-env.d.ts +.vercel From ba82f8d913c625fac5ecfd9500923f2811d7073a Mon Sep 17 00:00:00 2001 From: Zachary Roth <100426704+zacharyr0th@users.noreply.github.com> Date: Thu, 16 Jul 2026 11:56:33 -0700 Subject: [PATCH 4/5] fix(ci): align workspace and benchmark lock gates --- .github/workflows/security.yml | 4 ++-- bench/uv.lock | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 51e08e2..39ea563 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -99,7 +99,7 @@ jobs: run: bun test - name: Typecheck MCP - run: mise run typecheck + run: bun run typecheck web-security: runs-on: ubuntu-24.04 @@ -125,7 +125,7 @@ jobs: run: bun audit - name: Typecheck web app - run: mise run typecheck + run: bun run typecheck - name: Lint web app run: bun run lint diff --git a/bench/uv.lock b/bench/uv.lock index 2a6f631..5b0bac8 100644 --- a/bench/uv.lock +++ b/bench/uv.lock @@ -584,7 +584,7 @@ wheels = [ [[package]] name = "docpull" -version = "6.2.0" +version = "6.3.0" source = { editable = "../" } dependencies = [ { name = "aiohttp" }, From 1996a05c6bd152f9bff4abb57efb181ad3da4d23 Mon Sep 17 00:00:00 2001 From: Zachary Roth <100426704+zacharyr0th@users.noreply.github.com> Date: Thu, 16 Jul 2026 12:34:08 -0700 Subject: [PATCH 5/5] feat: add run-scoped relationship and acquisition workflows --- README.md | 5 +- docs/CHANGELOG.md | 24 + docs/adr/0001-evidence-acquisition-engine.md | 7 + docs/competitor-tracker-integration.md | 5 +- docs/context-packs.md | 4 +- docs/migrations/6.3.md | 24 + docs/release-post-v6.3.md | 17 +- docs/surface-contract.md | 6 +- plugin/README.md | 4 +- src/docpull/__init__.py | 8 + src/docpull/acquisition_workflows.py | 567 ++++++++++++++++++ src/docpull/cli.py | 74 ++- src/docpull/context_packs/__init__.py | 2 + src/docpull/context_packs/cli.py | 7 +- src/docpull/context_packs/common.py | 58 +- src/docpull/context_packs/dataset.py | 140 ++++- src/docpull/context_packs/relationship.py | 567 ++++++++++++++++++ src/docpull/context_packs/typed.py | 55 +- src/docpull/context_packs/workflow_cli.py | 47 ++ src/docpull/contracts.py | 154 ++++- src/docpull/evidence.py | 79 ++- src/docpull/mcp/server.py | 83 ++- src/docpull/models/events.py | 5 + src/docpull/pack_tools.py | 55 +- src/docpull/pipeline/base.py | 2 + src/docpull/pipeline/steps/fetch.py | 26 + src/docpull/project.py | 14 +- .../intelligence-bundle.v1.schema.json | 133 ++++ .../schemas/relationship-pack.v1.schema.json | 401 +++++++++++++ .../schemas/workflow-result.v1.schema.json | 45 ++ src/docpull/surface.py | 9 +- src/docpull/workflows.py | 76 ++- tests/test_acquisition_workflows.py | 100 +++ tests/test_cli.py | 46 ++ tests/test_relationship_workflow.py | 218 +++++++ tests/test_typed_knowledge_packs.py | 35 ++ tests/test_workflow_contracts.py | 5 +- 37 files changed, 3042 insertions(+), 65 deletions(-) create mode 100644 src/docpull/acquisition_workflows.py create mode 100644 src/docpull/context_packs/relationship.py create mode 100644 src/docpull/schemas/relationship-pack.v1.schema.json create mode 100644 tests/test_acquisition_workflows.py create mode 100644 tests/test_relationship_workflow.py diff --git a/README.md b/README.md index d980a3b..aaa0de8 100644 --- a/README.md +++ b/README.md @@ -181,6 +181,8 @@ docpull repo-pack psf/requests -o packs/repo --cache docpull package-pack pypi:requests -o packs/package docpull standards-pack rfc:9110 -o packs/standard docpull dataset-pack ./metrics.csv -o packs/dataset +docpull dataset-pack 'https://data.example.org/rows.json?$limit=100' -o packs/dataset +docpull relationship-pack example.com --subject "Example Brand" -o packs/relationships docpull transcript-pack ./meeting.vtt -o packs/transcript docpull wiki-pack wiki:Web_scraping -o packs/wiki docpull brand-pack example.com -o packs/brand @@ -459,7 +461,8 @@ special handling for common web, documentation, and API surfaces. | Public GitHub repos | `docpull repo-pack` emits repo metadata, README/docs/examples/changelog files, manifests, and releases | | npm / PyPI packages | `docpull package-pack` emits registry metadata, README/description, versions, license, dependencies, and install commands | | Standards | `docpull standards-pack` emits RFC, IETF, W3C, and WHATWG metadata plus section-level records | -| Local datasets | `docpull dataset-pack` emits bounded schema, exact row counts where streamable, column, null-count, and sample summaries | +| Local/remote datasets | `docpull dataset-pack` emits bounded schema, exact row counts where streamable, column/null/sample summaries, and HTTPS JSON/CSV snapshot provenance | +| Relationship review | `docpull relationship-pack` emits cited observations and explicit coverage gaps without approving claims or inferring independence | | Transcripts | `docpull transcript-pack` emits timestamped segment records from VTT, SRT, text, JSON, or direct transcript URLs | | Wikimedia / Wikipedia | `docpull wiki-pack` emits MediaWiki REST page metadata, license/revision metadata, and section-level records | | Brand evidence | `docpull brand-pack` emits cited identity, firmographic, social, logo, and color observations | diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 1cf6d7d..1a06918 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -8,6 +8,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [6.3.0] - 2026-07-16 ### Added +- Add `relationship-pack` across CLI, SDK, MCP, workflow registry, and project + sources. It emits cited `owned_by`, `operated_by`, `acquired_by`, + `franchised_by`, and `invested_in` observations plus one coverage result per + input; missing evidence remains a coverage gap and never becomes an + independence claim. +- Put core `fetch`, `crawl`, and `dataset-pack` on + `WorkflowRequest`/`WorkflowResult`; empty and partial crawls now retain a + structured current-run manifest, progress, budget usage, hashes, replay + configuration, warnings, and typed failures. +- Support bounded remote HTTPS JSON/CSV dataset snapshots with original and + resolved URL provenance, query parameters, content type, and deterministic + SHA-256 hashes. - Add the DocPull product site with home, pricing, privacy, terms, `llms.txt`, robots, sitemap, manifest, branded icons, and reusable launch assets. - Add metadata-only native integration context adapters that produce cited, @@ -17,6 +29,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 dependency review for reproducible local and CI environments. ### Changed +- Make CLI success strictly current-run scoped by default. Add explicit + `--exit-policy usable-output` for consumers that intentionally accept older + records in a shared directory. +- Classify authority per entity/source in multi-company bundles and add + `official_corporate`, `government_registry`, `regulatory_filing`, + `press_release`, and `local_reporting` roles. +- Extract relationship observations into intelligence bundles while keeping + every candidate unresolved until downstream human review. - Load the root SDK and internal package exports lazily while preserving every documented import and CLI, Python SDK, and MCP surface. - Coalesce byte-equivalent concurrent HTTP GETs without retaining completed @@ -30,6 +50,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 modules to reduce import cost and duplicated contract definitions. ### Fixed +- Populate retryable acquisition failures with stable codes such as + `http_429`, fetch stage, HTTP status, attempt count, and Retry-After seconds. +- Prevent stale records in a reused output directory from turning a zero-record + current run into exit status 0. - Restore automatic CI, CodeQL, security, benchmark, live-smoke, and metrics triggers after the runtime-tooling migration, and make the Python matrix select the advertised patch versions explicitly. diff --git a/docs/adr/0001-evidence-acquisition-engine.md b/docs/adr/0001-evidence-acquisition-engine.md index eeddcef..514b969 100644 --- a/docs/adr/0001-evidence-acquisition-engine.md +++ b/docs/adr/0001-evidence-acquisition-engine.md @@ -3,6 +3,7 @@ - Status: Accepted - Date: 2026-07-16 - Release: 6.2.0 +- Last amended: 6.3.0 ## Decision @@ -35,6 +36,9 @@ flowchart LR part of acquisition rather than downstream interpretation. - Machine-derived statements cross the boundary as `observation` or `candidate`, never as an approved claim. +- Relationship extraction is limited to cited `owned_by`, `operated_by`, + `acquired_by`, `franchised_by`, and `invested_in` review candidates. Missing + evidence is a `coverage_gap`, never an `independent` claim. - Authority tiers describe source relationship only. They are not review or product-specific approval decisions. - Policy changes report structural and textual evidence. They do not express a @@ -42,6 +46,9 @@ flowchart LR - Result contracts contain progress, warnings, failures, budget use, hashes, artifacts, and replay settings so another repository does not need to infer run state from logs. +- Fetches and crawls are run-scoped. Strict success depends only on records + produced by the current run; reuse of older usable output is an explicit + compatibility policy. ## Consequences diff --git a/docs/competitor-tracker-integration.md b/docs/competitor-tracker-integration.md index 5e89597..022b8d0 100644 --- a/docs/competitor-tracker-integration.md +++ b/docs/competitor-tracker-integration.md @@ -39,7 +39,10 @@ deprecated compatibility envelope. presenting it for review. 7. Keep `change_candidates` in a review queue; do not infer approval from source authority or confidence. -8. Surface warnings and retain replay configuration for audit/reproduction. +8. Keep `relationship_candidates` unresolved. Verify their evidence spans and + require human approval before creating ownership or operator claims. +9. Treat `coverage_gap` as unknown coverage, never as proof of independence. +10. Surface warnings and retain replay configuration for audit/reproduction. ## Ownership split diff --git a/docs/context-packs.md b/docs/context-packs.md index 49e8b1f..34fb0ac 100644 --- a/docs/context-packs.md +++ b/docs/context-packs.md @@ -68,7 +68,7 @@ exported, or checked in Context CI. | `repo-pack` | public GitHub URL or `owner/repo[@ref]` | repo metadata, selected docs/manifests, releases | | `package-pack` | `npm:` or `pypi:` | registry metadata, README/description, versions, dependencies | | `standards-pack` | `rfc:`, `ietf:`, `w3c:`, `whatwg:` | standard metadata, section-level records, references | -| `dataset-pack` | local CSV, TSV, JSON, NDJSON, SQLite, optional Parquet | schema, exact streamable row counts, and bounded data dictionary records | +| `dataset-pack` | local CSV, TSV, JSON, NDJSON, SQLite, optional Parquet; HTTPS JSON/CSV | schema, exact streamable row counts, bounded data dictionary records, and remote snapshot provenance | | `transcript-pack` | local VTT, SRT, text, JSON, or direct transcript URL | timestamped transcript segment records | | `wiki-pack` | `wiki:`, `wikipedia:<title>`, or Wikimedia/MediaWiki page URLs | page metadata, license/revision metadata, lead and section-level records from the MediaWiki REST API | @@ -78,7 +78,7 @@ matching `async_build_*_pack` helpers when already inside an event loop. ## Evidence Workflow Protocol -Brand, product, styleguide, visual/image, screenshot, and policy lanes implement +Brand, product, styleguide, visual/image, screenshot, policy, relationship, and dataset lanes implement the common workflow protocol. Their existing result JSON and Markdown remain, and every run additionally writes: diff --git a/docs/migrations/6.3.md b/docs/migrations/6.3.md index a48cd74..fcc9e74 100644 --- a/docs/migrations/6.3.md +++ b/docs/migrations/6.3.md @@ -28,3 +28,27 @@ continue treating cache internals as opaque. The public site lives in the private `web` workspace and does not change the PyPI package or MCP runtime. Its pricing page describes the open-source package; it does not enable paid or browser-backed acquisition paths. + +## Acquisition results and exit policy + +Core fetch and crawl operations now write `workflow.request.json`, +`workflow.result.json`, `artifact.manifest.json`, and +`current-run.manifest.json`, including empty and partial runs. The default +`--exit-policy strict` succeeds only when the current run produced usable +records. Use `--exit-policy usable-output` only when intentionally retaining +the pre-6.3 behavior that accepts older records in a shared output directory. + +Failures now expose typed `stage`, `http_status`, `attempts`, +`retry_after_seconds`, and `retryable` fields. Consumers should stop parsing +terminal text and inspect `WorkflowResult.failures`. + +## Relationship and dataset workflows + +`relationship-pack` emits observation-only relationship candidates and exactly +one coverage result per input. Inputs without a cited candidate are marked as +coverage gaps; DocPull does not infer independence. The workflow is available +through CLI, SDK, MCP, the generic workflow registry, and declarative projects. + +`dataset-pack` accepts bounded HTTPS JSON and CSV sources in addition to local +files. Remote schema entries retain the original URL and query parameters, +resolved URL, content type, status, and SHA-256 snapshot hash. diff --git a/docs/release-post-v6.3.md b/docs/release-post-v6.3.md index 30516b2..1c5afe3 100644 --- a/docs/release-post-v6.3.md +++ b/docs/release-post-v6.3.md @@ -6,6 +6,19 @@ GETs share one in-flight request, resumable frontiers use a compact journal, and pack intelligence workflows reuse source, citation, entity, and graph indexes instead of rereading the same artifacts. +This release also completes the common workflow boundary for core acquisition +and knowledge workflows. `fetch`, `crawl`, and `dataset-pack` now emit the same +run-scoped `WorkflowResult` envelope as pack builders, including current-run +manifests, typed retryable failures, budgets, hashes, and replay settings. +Remote HTTPS JSON and CSV datasets retain their original URL, query parameters, +snapshot hash, and provenance. + +The new generic `relationship-pack` emits evidence-backed review candidates for +`owned_by`, `operated_by`, `acquired_by`, `franchised_by`, and `invested_in`. +Every input receives exactly one coverage result. Missing evidence is a +`coverage_gap`, never a negative ownership or independence claim, and all +candidates remain observations until a downstream human approves them. + The repository now includes a production-ready DocPull site with pricing, privacy, terms, machine-readable `llms.txt`, metadata, robots, sitemap, icons, and reusable launch assets. The complete Python, MCP, and web surface is covered @@ -14,4 +27,6 @@ audits, tests, and reproducible release builds. No migration is required for existing packs or consumers. CLI, Python SDK, MCP, JSON Schema, `intelligence.bundle.v1`, change-event, and -`company_brain.bundle.json` compatibility remains intact. +`company_brain.bundle.json` compatibility remains intact. Strict CLI exit +behavior is now explicitly run-scoped; consumers that intentionally accept +partial current-run output can opt into `--exit-policy usable-output`. diff --git a/docs/surface-contract.md b/docs/surface-contract.md index d1fa0ae..4f61c48 100644 --- a/docs/surface-contract.md +++ b/docs/surface-contract.md @@ -35,9 +35,9 @@ DocPull targets capability alignment, not 1:1 flag parity. MCP should not mirror | Capability | CLI | Python SDK/API | MCP | Contract | | --- | --- | --- | --- | --- | -| Fetch one URL | `docpull <url> --single` or default crawl entry | `fetch_one`, `fetch_blocking`, `Fetcher` | `fetch_url` | Core-aligned | +| Fetch one URL | `docpull <url> --single` or `workflow_run(fetch)` | `fetch_one`, `fetch_blocking`, `Fetcher`, `run_workflow` | `fetch_url`, `workflow_run` | Core-aligned | | Optional rendering | `docpull <url> --render ...`, `docpull render ... --runtime local\|vercel\|e2b`, trusted-target acknowledgement, cloud controls for live smoke, budget caps, prebuilt agent-browser templates, and E2B templates | `RenderConfig`, `Renderer`, `AgentBrowserRenderer`, `VercelSandboxRenderer`, `E2BSandboxRenderer`, `estimate_cloud_render_cost_usd`, `render_url`, `render_url_to_directory`, fetch config | `render_url` with runtime controls; `fetch_url` stays browser-free | Core-aligned | -| Crawl public web/source | `docpull <url>` with crawl/output flags | `Fetcher` and config models | `ensure_docs` for named aliases | Adapted | +| Crawl public web/source | `docpull <url>` with crawl/output flags and run-scoped result | `Fetcher`, config models, `run_workflow(crawl)` | `ensure_docs`, `workflow_run` | Core-aligned | | Output Markdown / NDJSON / SQLite / OKF | CLI output flags | Pipeline/config primitives | Indirect through fetched Markdown and pack tools | Adapted | | List configured sources | Not a primary CLI command | `docpull.mcp.sources` internals, not public SDK | `list_sources` | MCP-focused | | List cached/indexed sources | Not a primary CLI command | Local filesystem/search helpers | `list_indexed` | MCP-focused | @@ -48,7 +48,7 @@ DocPull targets capability alignment, not 1:1 flag parity. MCP should not mirror | Refresh/score/diff/audit context packs | `docpull refresh`, `docpull pack score`, `docpull pack sources`, `docpull pack diff`, `docpull pack audit` | Pack helper modules, `refresh_pack`, `audit_pack` | `refresh_pack`, `pack_score`, `pack_diff`, `audit_pack` | Core-aligned | | Build pack citations/entities/search/briefs | `docpull pack citations`, `docpull pack entities`, `docpull pack search`, `docpull pack brief` | `build_citation_map`, `extract_pack_entities`, `search_pack`, `build_research_brief` | `pack_citations`, `pack_entities`, `pack_search`, `pack_brief` | Core-aligned | | Prepare full pack intelligence bundle | `docpull pack prepare` | `prepare_pack` in `docpull.pack_tools` | `pack_prepare` | Core-aligned | -| Evidence-pack workflow protocol | `brand-pack`, `product-pack`, `styleguide-pack`, `image-pack`, `screenshot-pack`, `policy-pack` | concrete `build_*_pack` builders plus `WorkflowRequest`, `run_workflow`, `async_run_workflow` | `workflow_run` plus dedicated pack tools | Core-aligned | +| Evidence-pack workflow protocol | `brand-pack`, `product-pack`, `styleguide-pack`, `image-pack`, `screenshot-pack`, `policy-pack`, `relationship-pack`, `dataset-pack` | concrete `build_*_pack` builders plus `WorkflowRequest`, `run_workflow`, `async_run_workflow` | `workflow_run` plus dedicated evidence tools | Core-aligned | | Tracker import bundle | `docpull pack intelligence-bundle` (`company-brain` alias) | `build_intelligence_bundle` (`build_company_brain_bundle` alias) | `intelligence_bundle` | Core-aligned | | Context CI and eval-grade context | `docpull ci`, `docpull pack prepare --eval-grade`, `docpull pack validate --level eval` | `run_context_ci`, `validate_pack_contract`, pack preparation helpers | Not exposed yet | Core-aligned | | Build/query local source graphs | `docpull graph build`, `docpull graph status`, `docpull graph query`, `docpull graph neighbors`, `docpull graph refresh` | `build_graph`, `load_graph`, `graph_status`, `query_graph`, `graph_neighbors`, `refresh_graph` | `graph_build`, `graph_status`, `graph_query`, `graph_neighbors`, `graph_refresh` | Core-aligned | diff --git a/plugin/README.md b/plugin/README.md index d5b0677..d9c36bd 100644 --- a/plugin/README.md +++ b/plugin/README.md @@ -17,9 +17,9 @@ for the boundary between the plugin's MCP tools and the broader CLI/SDK. ## What you get <!-- docpull:mcp-tools:start --> -- **MCP server** (34 tools): +- **MCP server** (35 tools): - Read: `fetch_url`, `list_sources`, `list_indexed`, `grep_docs`, `read_doc`, `pack_score`, `pack_diff`, `pack_citations`, `pack_entities`, `pack_search`, `pack_brief`, `graph_status`, `graph_query`, `graph_neighbors`, `validate_policy`, `serve_pack_status` - - Write: `render_url`, `ensure_docs`, `workflow_run`, `brand_pack`, `product_pack`, `styleguide_pack`, `image_pack`, `screenshot_pack`, `policy_pack`, `intelligence_bundle`, `refresh_pack`, `audit_pack`, `pack_prepare`, `graph_build`, `graph_refresh`, `export_pack`, `add_source`, `remove_source` + - Write: `render_url`, `ensure_docs`, `workflow_run`, `brand_pack`, `product_pack`, `styleguide_pack`, `image_pack`, `screenshot_pack`, `policy_pack`, `relationship_pack`, `intelligence_bundle`, `refresh_pack`, `audit_pack`, `pack_prepare`, `graph_build`, `graph_refresh`, `export_pack`, `add_source`, `remove_source` - All read tools advertise `readOnlyHint` so hosts that auto-approve safe tools won't prompt for them. <!-- docpull:mcp-tools:end --> - **Claude Code slash commands**: diff --git a/src/docpull/__init__.py b/src/docpull/__init__.py index 4a0434b..15ec625 100644 --- a/src/docpull/__init__.py +++ b/src/docpull/__init__.py @@ -36,6 +36,7 @@ "build_package_pack", "build_paper_pack", "build_policy_pack", + "build_relationship_pack", "build_product_pack", "build_repo_pack", "build_standards_pack", @@ -52,6 +53,9 @@ "ChangeEvent", "EvidenceSpan", "IntelligenceBundle", + "CoverageResult", + "RelationshipCandidate", + "RelationshipPack", "SourceAuthority", "WorkflowRequest", "WorkflowResult", @@ -189,6 +193,7 @@ def __dir__() -> list[str]: build_paper_pack, build_policy_pack, build_product_pack, + build_relationship_pack, build_repo_pack, build_standards_pack, build_styleguide_pack, @@ -199,8 +204,11 @@ def __dir__() -> list[str]: from .contracts import ( ArtifactManifest, ChangeEvent, + CoverageResult, EvidenceSpan, IntelligenceBundle, + RelationshipCandidate, + RelationshipPack, SourceAuthority, WorkflowRequest, WorkflowResult, diff --git a/src/docpull/acquisition_workflows.py b/src/docpull/acquisition_workflows.py new file mode 100644 index 0000000..22a7b86 --- /dev/null +++ b/src/docpull/acquisition_workflows.py @@ -0,0 +1,567 @@ +"""WorkflowRequest/WorkflowResult adapters for core fetch and crawl operations.""" + +from __future__ import annotations + +import asyncio +import json +from datetime import datetime +from pathlib import Path +from typing import Any, Literal, cast + +from .contracts import ( + ArtifactManifest, + BudgetUsage, + HashDigest, + ReplayConfiguration, + WorkflowFailure, + WorkflowProgressEvent, + WorkflowRequest, + WorkflowResult, + WorkflowWarning, + artifact_entries, + build_workflow_request, + canonical_sha256, + file_sha256, + new_progress_event, + stable_id, + workflow_failure_from_mapping, +) +from .core.fetcher import Fetcher +from .models.config import BudgetConfig, CrawlConfig, DocpullConfig, NetworkConfig, OutputConfig, ProfileName +from .models.events import EventType, FetchEvent, FetchStats, SkipReason +from .pipeline.base import PageContext +from .time_utils import utc_now_iso + + +def execute_acquisition_workflow(request: WorkflowRequest, *, crawl: bool) -> dict[str, Any]: + """Execute acquisition synchronously and always materialize a structured result.""" + + return asyncio.run(_execute_acquisition_workflow(request, crawl=crawl)) + + +async def _execute_acquisition_workflow( + request: WorkflowRequest, + *, + crawl: bool, +) -> dict[str, Any]: + output_dir = _output_dir(request) + output_dir.mkdir(parents=True, exist_ok=True) + value = _input_url(request) + options = request.options + try: + profile = ProfileName(str(options.get("profile") or "rag")) + except ValueError as err: + raise ValueError(f"Unsupported acquisition profile: {options.get('profile')}") from err + config = DocpullConfig( + url=value, + profile=profile, + output=OutputConfig( + directory=output_dir, + format=str(options.get("format") or "ndjson"), # type: ignore[arg-type] + emit_chunks=bool(options.get("emit_chunks", False)), + ), + crawl=CrawlConfig( + max_pages=int(options.get("max_pages") or (50 if crawl else 1)), + max_depth=int(options.get("max_depth") or (3 if crawl else 1)), + ), + network=NetworkConfig(max_retries=int(options.get("max_retries", 3))), + budget=BudgetConfig(maximum_paid_cost_usd=0), + ) + started_at = utc_now_iso() + events: list[FetchEvent] = [] + failures: list[WorkflowFailure] = [] + warnings: list[WorkflowWarning] = [] + try: + async with Fetcher(config) as fetcher: + if crawl: + async for event in fetcher.run(): + events.append(event) + failure = _failure_from_event(event, default_attempts=config.network.max_retries + 1) + if failure is not None: + failures.append(failure) + warning = _warning_from_event(event) + if warning is not None: + warnings.append(warning) + else: + context = await fetcher.fetch_one(value) + failure = _failure_from_context( + context, + default_attempts=config.network.max_retries + 1, + ) + if failure is not None: + failures.append(failure) + warning = _warning_from_context(context) + if warning is not None: + warnings.append(warning) + stats = fetcher.stats + except Exception as err: # noqa: BLE001 + stats = FetchStats(pages_failed=1) + failures.append( + workflow_failure_from_mapping( + { + "code": "workflow_error", + "stage": "workflow", + "error": str(err), + "retryable": False, + "url": value, + } + ) + ) + + return write_acquisition_contracts( + request=request, + workflow="crawl" if crawl else "fetch", + output_dir=output_dir, + started_at=started_at, + stats=stats, + events=events, + failures=failures, + warnings=warnings, + replay_configuration=request.replay, + ) + + +def write_acquisition_contracts( + *, + request: WorkflowRequest, + workflow: str, + output_dir: Path, + started_at: str, + stats: object, + events: list[FetchEvent], + failures: list[WorkflowFailure], + warnings: list[WorkflowWarning], + replay_configuration: ReplayConfiguration, +) -> dict[str, Any]: + """Write run-scoped acquisition contracts without consulting stale output.""" + + output_dir = output_dir.resolve() + output_dir.mkdir(parents=True, exist_ok=True) + finished_at = utc_now_iso() + request_path = output_dir / "workflow.request.json" + request_path.write_text( + json.dumps(request.model_dump(mode="json", exclude_none=True), indent=2, sort_keys=True) + "\n", + encoding="utf-8", + ) + current_record_count = int(getattr(stats, "pages_fetched", 0)) + run_id = stable_id( + "run", + { + "request_id": request.request_id, + "workflow": workflow, + "started_at": started_at, + }, + ) + current_artifacts = _current_acquisition_artifacts( + output_dir, + started_at=started_at, + include_records=current_record_count > 0, + ) + current_run_manifest = { + "contract_version": "acquisition.run.v1", + "schema_version": 1, + "run_id": run_id, + "request_id": request.request_id, + "workflow": workflow, + "started_at": started_at, + "finished_at": finished_at, + "status": _result_status(current_record_count, failures, warnings), + "current_run_record_count": current_record_count, + "stats": _stats_payload(stats), + "artifacts": current_artifacts, + "failure_count": len(failures), + "warning_count": len(warnings), + } + run_manifest_path = output_dir / "current-run.manifest.json" + run_manifest_path.write_text( + json.dumps(current_run_manifest, indent=2, sort_keys=True) + "\n", + encoding="utf-8", + ) + + artifact_map = { + "workflow_request": "workflow.request.json", + "current_run_manifest": "current-run.manifest.json", + **{item["name"]: item["path"] for item in current_artifacts if item.get("name") and item.get("path")}, + } + entries = artifact_entries(output_dir, artifact_map) + aggregate = canonical_sha256([entry.model_dump(mode="json") for entry in entries]) + pack_id = stable_id("pack", {"workflow": workflow, "run_id": run_id, "aggregate": aggregate}) + manifest = ArtifactManifest( + pack_id=pack_id, + run_id=run_id, + entries=entries, + aggregate_sha256=aggregate, + ) + artifact_manifest_path = output_dir / "artifact.manifest.json" + artifact_manifest_path.write_text( + json.dumps(manifest.model_dump(mode="json"), indent=2, sort_keys=True) + "\n", + encoding="utf-8", + ) + progress_events = _progress_events( + events, started_at=started_at, finished_at=finished_at, workflow=workflow + ) + result = WorkflowResult( + request_id=request.request_id, + workflow=workflow, + status=cast( + Literal["completed", "completed_with_warnings", "failed", "cancelled"], + _result_status(current_record_count, failures, warnings), + ), + started_at=started_at, + finished_at=finished_at, + pack_identity={"pack_id": pack_id, "aggregate_sha256": aggregate, "workflow": workflow}, + run_identity={ + "run_id": run_id, + "request_id": request.request_id, + "scheduler": None, + "current_run_manifest": "current-run.manifest.json", + }, + summary={ + **_stats_payload(stats), + "current_run_record_count": current_record_count, + "usable_output": current_record_count > 0, + }, + data={ + "current_run_manifest": current_run_manifest, + "partial_success": current_record_count > 0 and bool(failures), + }, + progress_events=progress_events, + warnings=warnings, + failures=_dedupe_failures(failures), + budget_usage=BudgetUsage( + limit_usd=0, + estimated_usd=0, + paid_request_count=0, + http_request_count=int(getattr(stats, "pages_fetched", 0)) + + int(getattr(stats, "pages_failed", 0)) + + int(getattr(stats, "pages_skipped", 0)), + ), + hashes={ + "request": HashDigest(digest=file_sha256(request_path)), + "artifact_manifest": HashDigest(digest=file_sha256(artifact_manifest_path)), + "current_run_manifest": HashDigest(digest=file_sha256(run_manifest_path)), + "pack": HashDigest(digest=aggregate), + }, + replay_configuration=replay_configuration, + compatibility_artifacts={ + key: value for key, value in artifact_map.items() if key != "workflow_request" + }, + ) + result_path = output_dir / "workflow.result.json" + payload = result.model_dump(mode="json", exclude_none=True) + result_path.write_text(json.dumps(payload, indent=2, sort_keys=True) + "\n", encoding="utf-8") + return payload + + +def _failure_from_context(context: PageContext, *, default_attempts: int) -> WorkflowFailure | None: + error = getattr(context, "error", None) + should_skip = bool(getattr(context, "should_skip", False)) + skip_code = getattr(context, "skip_code", None) + if not error and not ( + should_skip + and skip_code + in { + SkipReason.HTTP_ERROR, + SkipReason.ROBOTS_DISALLOWED, + SkipReason.URL_VALIDATION_FAILED, + SkipReason.INVALID_CONTENT_TYPE, + SkipReason.NO_CONTENT_EXTRACTED, + SkipReason.NO_CONTENT_TO_SAVE, + } + ): + return None + return workflow_failure_from_mapping( + { + "url": getattr(context, "url", None), + "error": error or getattr(context, "skip_reason", None) or "Acquisition failed", + "code": ( + f"http_{getattr(context, 'status_code', None)}" + if getattr(context, "status_code", None) + else (skip_code.value if skip_code else "fetch_error") + ), + "stage": "fetch", + "http_status": getattr(context, "status_code", None), + "attempts": getattr(context, "http_attempts", None) or default_attempts, + "retry_after_seconds": getattr(context, "retry_after_seconds", None), + }, + default_stage="fetch", + default_attempts=default_attempts, + ) + + +def _failure_from_event(event: FetchEvent, *, default_attempts: int) -> WorkflowFailure | None: + event_type = getattr(event, "type", None) + skip_reason = getattr(event, "skip_reason", None) + status_code = getattr(event, "status_code", None) + is_failure_skip = event_type == EventType.FETCH_SKIPPED and skip_reason in { + SkipReason.HTTP_ERROR, + SkipReason.ROBOTS_DISALLOWED, + SkipReason.URL_VALIDATION_FAILED, + SkipReason.INVALID_CONTENT_TYPE, + SkipReason.NO_CONTENT_EXTRACTED, + SkipReason.NO_CONTENT_TO_SAVE, + } + if event_type != EventType.FETCH_FAILED and not is_failure_skip: + return None + return workflow_failure_from_mapping( + { + "url": getattr(event, "url", None), + "error": getattr(event, "error", None) or getattr(event, "message", None) or "Acquisition failed", + "code": getattr(event, "failure_code", None) + or (f"http_{status_code}" if status_code else None) + or (skip_reason.value if skip_reason else "fetch_error"), + "stage": getattr(event, "failure_stage", None) or "fetch", + "retryable": getattr(event, "retryable", None), + "http_status": status_code, + "attempts": getattr(event, "attempts", None) or default_attempts, + "retry_after_seconds": getattr(event, "retry_after_seconds", None), + }, + default_stage="fetch", + default_attempts=default_attempts, + ) + + +def _warning_from_context(context: PageContext) -> WorkflowWarning | None: + skip_code = getattr(context, "skip_code", None) + if not getattr(context, "should_skip", False) or skip_code in { + SkipReason.HTTP_ERROR, + SkipReason.ROBOTS_DISALLOWED, + SkipReason.URL_VALIDATION_FAILED, + SkipReason.INVALID_CONTENT_TYPE, + SkipReason.NO_CONTENT_EXTRACTED, + SkipReason.NO_CONTENT_TO_SAVE, + }: + return None + return WorkflowWarning( + code=skip_code.value if skip_code else "fetch_skipped", + message=getattr(context, "skip_reason", None) or "Source was skipped", + metadata={"url": getattr(context, "url", None)}, + ) + + +def _warning_from_event(event: FetchEvent) -> WorkflowWarning | None: + skip_reason = getattr(event, "skip_reason", None) + if getattr(event, "type", None) != EventType.FETCH_SKIPPED or skip_reason in { + SkipReason.HTTP_ERROR, + SkipReason.ROBOTS_DISALLOWED, + SkipReason.URL_VALIDATION_FAILED, + SkipReason.INVALID_CONTENT_TYPE, + SkipReason.NO_CONTENT_EXTRACTED, + SkipReason.NO_CONTENT_TO_SAVE, + }: + return None + return WorkflowWarning( + code=skip_reason.value if skip_reason else "fetch_skipped", + message=getattr(event, "message", None) or "Source was skipped", + metadata={"url": getattr(event, "url", None)}, + ) + + +def _current_acquisition_artifacts( + output_dir: Path, + *, + started_at: str, + include_records: bool, +) -> list[dict[str, Any]]: + if not include_records: + return [] + + started_epoch = datetime.fromisoformat(started_at.replace("Z", "+00:00")).timestamp() + rows: list[dict[str, Any]] = [] + for name, filename in ( + ("documents_ndjson", "documents.ndjson"), + ("corpus_manifest", "corpus.manifest.json"), + ("sources", "sources.md"), + ("acquisition_routes", "acquisition.routes.json"), + ("rights_manifest", "rights.manifest.json"), + ("provenance_graph", "provenance.graph.json"), + ): + path = output_dir / filename + if not path.exists() or not path.is_file() or path.stat().st_mtime < started_epoch: + continue + rows.append( + { + "name": name, + "path": filename, + "bytes": path.stat().st_size, + "sha256": file_sha256(path), + } + ) + return rows + + +def _result_status( + current_record_count: int, + failures: list[WorkflowFailure], + warnings: list[WorkflowWarning], +) -> str: + if current_record_count == 0: + return "failed" + if failures or warnings: + return "completed_with_warnings" + return "completed" + + +def _stats_payload(stats: object) -> dict[str, Any]: + if hasattr(stats, "to_dict"): + payload = stats.to_dict() + if isinstance(payload, dict): + return payload + return { + key: getattr(stats, key, 0) + for key in ( + "urls_discovered", + "pages_fetched", + "pages_skipped", + "pages_failed", + "files_saved", + "bytes_downloaded", + "duration_seconds", + ) + } + + +def _progress_events( + events: list[FetchEvent], + *, + started_at: str, + finished_at: str, + workflow: str, +) -> list[WorkflowProgressEvent]: + rows = [ + new_progress_event( + phase="run", + status="started", + timestamp=started_at, + message=f"Started {workflow}", + ) + ] + for event in events: + event_type = getattr(event, "type", None) + if event_type not in { + EventType.DISCOVERY_STARTED, + EventType.DISCOVERY_COMPLETE, + EventType.FETCH_PROGRESS, + EventType.FETCH_FAILED, + EventType.FETCH_SKIPPED, + }: + continue + rows.append( + new_progress_event( + phase="discovery" if "discovery" in event_type.value else "fetch", + status="failed" + if event_type == EventType.FETCH_FAILED + else "warning" + if event_type == EventType.FETCH_SKIPPED + else "progress", + timestamp=(event.timestamp.isoformat() if getattr(event, "timestamp", None) else None), + message=getattr(event, "message", None) or getattr(event, "error", None), + current=getattr(event, "current", None), + total=getattr(event, "total", None), + metadata={"url": event.url} if getattr(event, "url", None) else {}, + ) + ) + rows.append( + new_progress_event( + phase="run", + status="completed", + timestamp=finished_at, + message=f"Completed {workflow}", + ) + ) + return [WorkflowProgressEvent.model_validate(item) for item in rows] + + +def _dedupe_failures(failures: list[WorkflowFailure]) -> list[WorkflowFailure]: + rows: dict[str, WorkflowFailure] = {} + for failure in failures: + key = canonical_sha256(failure.model_dump(mode="json", exclude_none=True)) + rows[key] = failure + return [rows[key] for key in sorted(rows)] + + +def _input_url(request: WorkflowRequest) -> str: + for key in ("url", "value"): + value = request.input.get(key) + if isinstance(value, str) and value.strip(): + return value.strip() + raise ValueError("Acquisition WorkflowRequest.input must include url or value") + + +def _output_dir(request: WorkflowRequest) -> Path: + value = request.output.get("directory") + if not isinstance(value, str) or not value.strip(): + raise ValueError("Acquisition WorkflowRequest.output.directory is required") + return Path(value).expanduser().resolve() + + +def write_cli_acquisition_contracts( + *, + config: DocpullConfig, + workflow: str, + started_at: str, + stats: object, + events: list[FetchEvent] | None = None, + contexts: list[PageContext] | None = None, + extra_failures: list[WorkflowFailure] | None = None, +) -> dict[str, Any]: + """Bridge the compatibility CLI onto the canonical acquisition contracts.""" + + options = { + "profile": config.profile.value, + "format": config.output.format, + "max_pages": config.crawl.max_pages, + "max_depth": config.crawl.max_depth, + "max_retries": config.network.max_retries, + "emit_chunks": config.output.emit_chunks, + } + request = build_workflow_request( + workflow=workflow, + input_payload={"url": config.url}, + output_dir=config.output.directory, + options=options, + source_policy={ + "robots": "respect", + "allowed_schemes": ["https"], + "local_first": True, + }, + budget={"maximum_paid_cost_usd": config.budget.maximum_paid_cost_usd}, + browser_enabled=config.render.enabled, + paid_routes_enabled=config.render.enabled + and config.render.backend in {"vercel-sandbox", "e2b-sandbox"}, + ) + event_rows = list(events or []) + failures = list(extra_failures or []) + warnings: list[WorkflowWarning] = [] + for event in event_rows: + failure = _failure_from_event(event, default_attempts=config.network.max_retries + 1) + if failure is not None: + failures.append(failure) + warning = _warning_from_event(event) + if warning is not None: + warnings.append(warning) + for context in contexts or []: + failure = _failure_from_context(context, default_attempts=config.network.max_retries + 1) + if failure is not None: + failures.append(failure) + warning = _warning_from_context(context) + if warning is not None: + warnings.append(warning) + return write_acquisition_contracts( + request=request, + workflow=workflow, + output_dir=config.output.directory, + started_at=started_at, + stats=stats, + events=event_rows, + failures=failures, + warnings=warnings, + replay_configuration=request.replay, + ) + + +__all__ = [ + "execute_acquisition_workflow", + "write_acquisition_contracts", + "write_cli_acquisition_contracts", +] diff --git a/src/docpull/cli.py b/src/docpull/cli.py index c9d4eaa..1f30048 100644 --- a/src/docpull/cli.py +++ b/src/docpull/cli.py @@ -140,14 +140,22 @@ def _output_dir_has_records(output_dir: Path) -> bool: return False -def _fetch_exit_code(stats: object, output_dir: Path, *, allow_empty: bool = False) -> int: +def _fetch_exit_code( + stats: object, + output_dir: Path, + *, + allow_empty: bool = False, + exit_policy: str = "strict", +) -> int: if int(getattr(stats, "pages_failed", 0)) > 0: return 1 if allow_empty: return 0 - if int(getattr(stats, "pages_fetched", 0)) == 0 and not _output_dir_has_records(output_dir): - return 1 - return 0 + if int(getattr(stats, "pages_fetched", 0)) > 0: + return 0 + if exit_policy == "usable-output" and _output_dir_has_records(output_dir): + return 0 + return 1 def _add_render_options(parser: argparse.ArgumentParser) -> None: @@ -604,6 +612,15 @@ def create_parser() -> argparse.ArgumentParser: action="store_true", help="Suppress output", ) + output_group.add_argument( + "--exit-policy", + choices=["strict", "usable-output"], + default="strict", + help=( + "Exit based on this run only (strict, default), or accept usable records " + "already present in the output directory (usable-output)" + ), + ) return parser @@ -626,9 +643,10 @@ def run_fetcher(args: argparse.Namespace) -> int: maybe_write_run_accounting, ) from .models.config import DocpullConfig, ProfileName - from .models.events import EventType, SkipReason + from .models.events import EventType, FetchStats, SkipReason from .rendering import estimate_cloud_render_cost_usd from .skill_export import default_skill_root, expand_skill_agents + from .time_utils import utc_now_iso fetcher_class: Any = globals().get("Fetcher") or __getattr__("Fetcher") console = Console() @@ -900,6 +918,27 @@ def run_fetcher(args: argparse.Namespace) -> int: console.print("[red]Budget error:[/red] " + escape(str(err))) return 1 + acquisition_started_at = utc_now_iso() + run_events: list = [] + + def write_structured_result( + stats: object, + *, + contexts: list | None = None, + extra_failures: list | None = None, + ) -> None: + from .acquisition_workflows import write_cli_acquisition_contracts + + write_cli_acquisition_contracts( + config=config, + workflow="fetch" if args.single else "crawl", + started_at=acquisition_started_at, + stats=stats, + events=run_events, + contexts=contexts, + extra_failures=extra_failures, + ) + async def run() -> int: if not args.quiet: console.print(f"[bold blue]docpull[/bold blue] v{__version__}") @@ -924,6 +963,7 @@ async def run() -> int: return 1 ctx = await fetcher.fetch_one(config.url) if ctx.error: + write_structured_result(fetcher.stats, contexts=[ctx]) console.print(f"[red]Failed:[/red] {ctx.error}") return 1 if ctx.should_skip: @@ -936,6 +976,7 @@ async def run() -> int: SkipReason.NO_CONTENT_EXTRACTED, SkipReason.NO_CONTENT_TO_SAVE, } + write_structured_result(fetcher.stats, contexts=[ctx]) return 1 if ctx.skip_code in failure_skips else 0 if not args.quiet: n_chunks = len(ctx.chunks) if ctx.chunks else 0 @@ -950,6 +991,7 @@ async def run() -> int: render_estimated_cost=render_estimated_cost, paid_capable=render_is_cloud, ) + write_structured_result(fetcher.stats, contexts=[ctx]) return 0 # Track skip reasons for summary @@ -959,6 +1001,7 @@ async def run() -> int: if args.quiet: async for event in fetcher.run(): + run_events.append(event) if event.type == EventType.FETCH_SKIPPED and event.skip_reason: skip_counts[event.skip_reason] += 1 else: @@ -971,6 +1014,7 @@ async def run() -> int: task = progress.add_task("Starting...", total=None) async for event in fetcher.run(): + run_events.append(event) if event.type == EventType.STARTED: progress.update(task, description=f"[cyan]{event.message}") elif event.type == EventType.RESUMED: @@ -1019,6 +1063,7 @@ async def run() -> int: paid_capable=render_is_cloud, skip_counts=skip_counts, ) + write_structured_result(stats) if not args.quiet: console.print() console.print("[bold]Results:[/bold]") @@ -1035,12 +1080,26 @@ async def run() -> int: for reason, count in sorted(skip_counts.items(), key=lambda x: -x[1]): console.print(f" {reason.value}: {count}") - exit_code = _fetch_exit_code(stats, config.output.directory, allow_empty=args.dry_run) + exit_code = _fetch_exit_code( + stats, + config.output.directory, + allow_empty=args.dry_run, + exit_policy=args.exit_policy, + ) if exit_code and not args.quiet and stats.pages_fetched == 0 and stats.pages_failed == 0: console.print("[yellow]No readable pages were fetched; output pack is empty.[/yellow]") return exit_code except Exception as e: + from .contracts import workflow_failure_from_mapping + + failure = workflow_failure_from_mapping( + {"error": str(e), "stage": "workflow", "code": "workflow_error"} + ) + write_structured_result( + FetchStats(pages_failed=1), + extra_failures=[failure], + ) console.print("[red]Error:[/red] " + escape(str(e))) if args.verbose: import traceback @@ -1607,12 +1666,14 @@ def main(argv: list[str] | None = None) -> int: "image-pack", "screenshot-pack", "policy-pack", + "relationship-pack", }: from .context_packs.workflow_cli import ( run_brand_pack_cli, run_image_pack_cli, run_policy_pack_cli, run_product_pack_cli, + run_relationship_pack_cli, run_screenshot_pack_cli, run_styleguide_pack_cli, ) @@ -1624,6 +1685,7 @@ def main(argv: list[str] | None = None) -> int: "image-pack": run_image_pack_cli, "screenshot-pack": run_screenshot_pack_cli, "policy-pack": run_policy_pack_cli, + "relationship-pack": run_relationship_pack_cli, } return workflow_runners[raw_argv[0]](raw_argv[1:]) if raw_argv and raw_argv[0] == "openapi-pack": diff --git a/src/docpull/context_packs/__init__.py b/src/docpull/context_packs/__init__.py index 0a05b45..3045fd4 100644 --- a/src/docpull/context_packs/__init__.py +++ b/src/docpull/context_packs/__init__.py @@ -17,6 +17,7 @@ **{name: (".package", name) for name in ("async_build_package_pack", "build_package_pack")}, **{name: (".paper", name) for name in ("async_build_paper_pack", "build_paper_pack")}, "build_policy_pack": (".policy_pack", "build_policy_pack"), + "build_relationship_pack": (".relationship", "build_relationship_pack"), "build_product_pack": (".product", "build_product_pack"), **{name: (".repo", name) for name in ("async_build_repo_pack", "build_repo_pack")}, **{name: (".standards", name) for name in ("async_build_standards_pack", "build_standards_pack")}, @@ -52,6 +53,7 @@ def __dir__() -> list[str]: from .paper import async_build_paper_pack, build_paper_pack from .policy_pack import build_policy_pack from .product import build_product_pack + from .relationship import build_relationship_pack from .repo import async_build_repo_pack, build_repo_pack from .standards import async_build_standards_pack, build_standards_pack from .styleguide import build_styleguide_pack diff --git a/src/docpull/context_packs/cli.py b/src/docpull/context_packs/cli.py index e727e4c..e025461 100644 --- a/src/docpull/context_packs/cli.py +++ b/src/docpull/context_packs/cli.py @@ -184,9 +184,12 @@ def run_standards_pack_cli(argv: list[str] | None = None) -> int: def run_dataset_pack_cli(argv: list[str] | None = None) -> int: parser = argparse.ArgumentParser( prog="docpull dataset-pack", - description="Build a local v3 pack from local CSV, TSV, JSON, NDJSON, SQLite, or Parquet files", + description=( + "Build a v3 pack from local CSV, TSV, JSON, NDJSON, SQLite, or Parquet files, " + "or bounded HTTPS JSON/CSV snapshots" + ), ) - parser.add_argument("sources", nargs="+", help="Local dataset files") + parser.add_argument("sources", nargs="+", help="Local dataset files or HTTPS JSON/CSV URLs") _add_typed_common_args(parser, DEFAULT_DATASET_OUTPUT_DIR, max_items_default=50) args = parser.parse_args(argv) return _run_and_print( diff --git a/src/docpull/context_packs/common.py b/src/docpull/context_packs/common.py index 346ba5d..350c72e 100644 --- a/src/docpull/context_packs/common.py +++ b/src/docpull/context_packs/common.py @@ -20,7 +20,6 @@ BudgetUsage, HashDigest, ReplayConfiguration, - WorkflowFailure, WorkflowProgressEvent, WorkflowResult, WorkflowWarning, @@ -30,6 +29,7 @@ file_sha256, new_progress_event, stable_id, + workflow_failure_from_mapping, ) from ..core.fetcher import Fetcher from ..evidence import classify_source_authority, document_identity, evidence_span_payload @@ -37,6 +37,7 @@ from ..http.rate_limiter import PerHostRateLimiter from ..models.config import DocpullConfig, ProfileName from ..models.document import DocumentRecord +from ..models.events import SkipReason from ..models.run import RunIdentity from ..output_contract import OUTPUT_CONTRACT_SCHEMA_VERSION, write_raw_contract_sidecars from ..pack_tools import build_citation_map @@ -449,12 +450,48 @@ async def fetch_pages( ctx = await fetcher.fetch_one(url, save=False) run.http_request_count += 1 if ctx.error: - run.errors.append({"url": url, "error": ctx.error}) + run.errors.append( + { + "url": url, + "error": ctx.error, + "stage": "fetch", + "http_status": ctx.status_code, + "attempts": ctx.http_attempts or (config.network.max_retries + 1), + "retry_after_seconds": ctx.retry_after_seconds, + } + ) continue if ctx.should_skip: - run.warnings.append( - {"code": "page_skipped", "message": str(ctx.skip_reason or "skipped"), "url": url} - ) + if ctx.skip_code in { + SkipReason.HTTP_ERROR, + SkipReason.ROBOTS_DISALLOWED, + SkipReason.URL_VALIDATION_FAILED, + }: + run.errors.append( + { + "url": url, + "error": str(ctx.skip_reason or "Page acquisition blocked"), + "code": ( + f"http_{ctx.status_code}" + if ctx.status_code + else str(ctx.skip_code.value if ctx.skip_code else "page_blocked") + ), + "stage": "fetch", + "http_status": ctx.status_code, + "attempts": ctx.http_attempts or (config.network.max_retries + 1), + "retry_after_seconds": ctx.retry_after_seconds, + "blocked": ctx.skip_code + in {SkipReason.ROBOTS_DISALLOWED, SkipReason.URL_VALIDATION_FAILED}, + } + ) + else: + run.warnings.append( + { + "code": "page_skipped", + "message": str(ctx.skip_reason or "skipped"), + "url": url, + } + ) continue html = (ctx.html or b"").decode("utf-8", errors="replace") snapshots.append( @@ -1015,16 +1052,7 @@ def _write_workflow_contract_files( ) for item in run.warnings ] - failure_models = [ - WorkflowFailure( - message=str(item.get("error") or item.get("message") or "Acquisition failure"), - source_url=str(item.get("url")) if item.get("url") else None, - metadata={ - str(key): value for key, value in item.items() if key not in {"error", "message", "url"} - }, - ) - for item in run.errors - ] + failure_models = [workflow_failure_from_mapping(item, default_stage="fetch") for item in run.errors] status: Literal["completed", "completed_with_warnings", "failed", "cancelled"] if failure_models and not result_payload.get("summary"): status = "failed" diff --git a/src/docpull/context_packs/dataset.py b/src/docpull/context_packs/dataset.py index d80a66d..398984e 100644 --- a/src/docpull/context_packs/dataset.py +++ b/src/docpull/context_packs/dataset.py @@ -4,14 +4,23 @@ import asyncio import csv +import hashlib +import io import json import sqlite3 from collections import Counter from pathlib import Path from typing import Any +from urllib.parse import parse_qsl, urlparse from .common import ContextPackError, write_json -from .typed import PrepareLevel, TypedPackItem, simple_summary_markdown, write_typed_pack +from .typed import ( + PrepareLevel, + TypedPackItem, + read_https_text, + simple_summary_markdown, + write_typed_pack, +) from .typed_models import DatasetSchemaArtifact DATASET_WORKFLOW = "dataset-pack" @@ -27,21 +36,30 @@ def build_dataset_pack( chunk_tokens: int = 4000, prepare_level: PrepareLevel = "raw", ) -> dict[str, Any]: - """Summarize local CSV/TSV/JSON/NDJSON/SQLite/Parquet datasets as a v3 pack.""" + """Summarize local datasets and bounded remote HTTPS JSON/CSV snapshots.""" if not sources: - raise ContextPackError("dataset-pack requires at least one local file.") + raise ContextPackError("dataset-pack requires at least one local file or HTTPS JSON/CSV URL.") output_dir = output_dir.resolve() output_dir.mkdir(parents=True, exist_ok=True) items: list[TypedPackItem] = [] schemas: list[dict[str, Any]] = [] for source in sources[:max_items]: + source_text = str(source) + if _is_remote_source(source_text): + summaries = [_remote_summary(source_text)] + for summary in summaries: + schemas.append(summary) + items.append(_item_for_summary(None, summary, source_url=source_text)) + if len(items) >= max_items: + break + continue path = Path(source).expanduser().resolve() if not path.exists() or not path.is_file(): raise ContextPackError(f"Dataset source file does not exist: {path}") summaries = _summaries_for_path(path, max_items=max_items - len(items)) for summary in summaries: schemas.append(summary) - items.append(_item_for_summary(path, summary)) + items.append(_item_for_summary(path, summary, source_url=path.as_uri())) if len(items) >= max_items: break if len(items) >= max_items: @@ -69,7 +87,7 @@ def build_dataset_pack( index_payload={"datasets": schemas}, summary_markdown=simple_summary_markdown( title="Dataset Pack", - source=", ".join(str(Path(source)) for source in sources), + source=", ".join(str(source) for source in sources), items=items, ), result_summary={"dataset_count": len(schemas)}, @@ -104,6 +122,86 @@ def _summaries_for_path(path: Path, *, max_items: int) -> list[dict[str, Any]]: raise ContextPackError(f"Unsupported dataset file type: {path.suffix or path.name}") +def _is_remote_source(value: str) -> bool: + parsed = urlparse(value) + return parsed.scheme == "https" and bool(parsed.netloc) + + +def _remote_summary(url: str) -> dict[str, Any]: + parsed = urlparse(url) + suffix = Path(parsed.path).suffix.lower() + accept = "application/json,text/csv;q=0.9" if suffix == ".json" else "text/csv,application/json;q=0.9" + try: + response = read_https_text(url, accept=accept, max_bytes=10_000_000) + except ValueError as err: + raise ContextPackError(str(err)) from err + content_type = response.content_type.split(";", 1)[0].strip().lower() + snapshot_hash = hashlib.sha256(response.text.encode("utf-8")).hexdigest() + provenance = { + "original_url": url, + "resolved_url": response.url, + "query_parameters": [ + {"name": name, "value": value} for name, value in parse_qsl(parsed.query, keep_blank_values=True) + ], + "snapshot_hash": snapshot_hash, + "hash_algorithm": "sha256", + "content_type": response.content_type, + "http_status": response.status_code, + } + name = Path(parsed.path).name or parsed.netloc + if suffix == ".json" or "json" in content_type: + data = json.loads(response.text) + if isinstance(data, list): + json_rows = [row for row in data[:MAX_SAMPLE_ROWS] if isinstance(row, dict)] + summary = _tabular_summary( + path=None, + kind="json", + name=name, + rows=json_rows, + fieldnames=sorted({key for row in json_rows for key in row}), + row_count=len(data), + source=url, + ) + elif isinstance(data, dict): + summary = { + "kind": "json", + "name": name, + "path": url, + "row_count": 1, + "columns": [ + {"name": key, "types": [type(value).__name__], "null_count": int(value is None)} + for key, value in sorted(data.items()) + ], + "sample": data, + } + else: + raise ContextPackError(f"Remote JSON dataset must be an object or array: {url}") + elif suffix == ".csv" or content_type in {"text/csv", "application/csv"}: + reader = csv.DictReader(io.StringIO(response.text)) + csv_rows: list[dict[str, Any]] = [] + row_count = 0 + for row in reader: + row_count += 1 + if len(csv_rows) < MAX_SAMPLE_ROWS: + csv_rows.append(dict(row)) + summary = _tabular_summary( + path=None, + kind="csv", + name=name, + rows=csv_rows, + fieldnames=list(reader.fieldnames or []), + row_count=row_count, + source=url, + ) + else: + raise ContextPackError( + f"Remote dataset must be HTTPS JSON or CSV; received {response.content_type or 'unknown'}: {url}" + ) + summary["provenance"] = provenance + summary["snapshot_hash"] = snapshot_hash + return summary + + def _delimited_summary(path: Path, *, delimiter: str) -> dict[str, Any]: rows: list[dict[str, Any]] = [] row_count = 0 @@ -224,12 +322,13 @@ def _parquet_summary(path: Path) -> dict[str, Any]: def _tabular_summary( *, - path: Path, + path: Path | None, kind: str, name: str, rows: list[dict[str, Any]], fieldnames: list[str], row_count: int | None, + source: str | None = None, ) -> dict[str, Any]: columns = [] for field in fieldnames: @@ -246,7 +345,7 @@ def _tabular_summary( return { "kind": kind, "name": name, - "path": str(path), + "path": source or str(path), "row_count": row_count if row_count is not None else None, "sample_row_count": len(rows), "column_count": len(fieldnames), @@ -255,21 +354,38 @@ def _tabular_summary( } -def _item_for_summary(path: Path, summary: dict[str, Any]) -> TypedPackItem: +def _item_for_summary( + path: Path | None, + summary: dict[str, Any], + *, + source_url: str, +) -> TypedPackItem: markdown = _summary_markdown(summary) - title = f"{Path(summary['path']).name}: {summary['name']}" + parsed = urlparse(source_url) + source_name = Path(parsed.path).name if parsed.scheme else Path(summary["path"]).name + title = f"{source_name or parsed.netloc}: {summary['name']}" + provenance_raw = summary.get("provenance") + provenance: dict[str, Any] = provenance_raw if isinstance(provenance_raw, dict) else {} return TypedPackItem( title=title, - url=path.as_uri(), + url=source_url, markdown=markdown, source_type="dataset", item_kind=str(summary["kind"]), metadata={ - "dataset_path": str(path), + "dataset_path": str(path) if path else None, + "dataset_url": source_url if path is None else None, "dataset_name": summary["name"], "dataset_kind": summary["kind"], + "snapshot_hash": summary.get("snapshot_hash"), + "provenance": provenance, + }, + route={ + "source_kind": "https" if path is None else "file", + "source_url": source_url, + "original_url": provenance.get("original_url"), + "resolved_url": provenance.get("resolved_url"), }, - route={"source_kind": "file", "source_url": path.as_uri()}, public={"row_count": summary.get("row_count"), "column_count": summary.get("column_count")}, ) diff --git a/src/docpull/context_packs/relationship.py b/src/docpull/context_packs/relationship.py new file mode 100644 index 0000000..7f16f96 --- /dev/null +++ b/src/docpull/context_packs/relationship.py @@ -0,0 +1,567 @@ +"""Evidence-backed relationship candidates for human review.""" + +from __future__ import annotations + +import hashlib +import json +import re +from pathlib import Path +from typing import Any, Literal, cast +from urllib.parse import urlparse + +from ..contracts import ( + CoverageResult, + RelationshipCandidate, + RelationshipPack, + WorkflowWarning, + canonical_sha256, + stable_id, + workflow_failure_from_mapping, +) +from ..evidence import evidence_span_payload +from ..policy import PolicyConfig +from .common import ( + ContextPackError, + ContextPackRun, + PageSnapshot, + artifact_ref, + domain_from_input, + fetch_pages_blocking, + homepage_url_for_domain, + likely_internal_pages, + public_url, + status_from_errors, + write_basic_pack_files, + write_json, +) + +RELATIONSHIP_WORKFLOW = "relationship-pack" +DEFAULT_RELATIONSHIP_OUTPUT_DIR = Path("packs/relationship") +SUPPORTED_RELATIONSHIP_PREDICATES = ( + "owned_by", + "operated_by", + "acquired_by", + "franchised_by", + "invested_in", +) + + +def extract_relationship_candidates_from_records( + records: list[dict[str, Any]], +) -> list[dict[str, Any]]: + """Extract deterministic review candidates from existing pack records.""" + + candidates: list[dict[str, Any]] = [] + for index, record in enumerate(records): + if not isinstance(record, dict): + continue + content = str(record.get("content") or "") + url = str(record.get("url") or "") + if not content or not url: + continue + metadata_raw = record.get("metadata") + extraction_raw = record.get("extraction") + metadata: dict[str, Any] = metadata_raw if isinstance(metadata_raw, dict) else {} + extraction: dict[str, Any] = extraction_raw if isinstance(extraction_raw, dict) else {} + subject = next( + ( + str(value).strip() + for value in ( + metadata.get("entity_name"), + metadata.get("brand_name"), + metadata.get("company_name"), + extraction.get("entity_name"), + ) + if isinstance(value, str) and value.strip() + ), + "", + ) + if not subject: + title = str(record.get("title") or "").strip() + subject = re.split(r"\s+[|—–-]\s+", title, maxsplit=1)[0].strip() + if not subject: + subject = (urlparse(url).hostname or "Unknown entity").removeprefix("www.") + page = PageSnapshot( + url=url, + title=str(record.get("title") or subject), + html="", + markdown=content, + metadata=metadata, + extraction=extraction, + source_type=str(record.get("source_type") or "relationship-source"), + ) + candidates.extend( + _extract_relationship_candidates( + { + "name": subject, + "location_scope": metadata.get("location_scope"), + }, + [page], + citation_offset=index, + ) + ) + deduped = { + str(candidate.get("candidate_id")): candidate + for candidate in candidates + if candidate.get("candidate_id") + } + return [deduped[key] for key in sorted(deduped)] + + +def build_relationship_pack( + sources: list[str | dict[str, Any]] | str, + *, + output_dir: Path = DEFAULT_RELATIONSHIP_OUTPUT_DIR, + policy: PolicyConfig | None = None, + max_pages_per_source: int = 4, +) -> dict[str, Any]: + """Extract cited relationship observations and one coverage result per input.""" + + raw_sources = [sources] if isinstance(sources, str) else list(sources) + if not raw_sources: + raise ContextPackError("relationship-pack requires at least one source input.") + if max_pages_per_source < 1: + raise ContextPackError("max_pages_per_source must be at least 1.") + + specs = [_normalize_source(item, index=index) for index, item in enumerate(raw_sources, start=1)] + domains = sorted( + { + domain + for spec in specs + for domain in spec["official_domains"] + if isinstance(domain, str) and domain + } + ) + effective_policy = policy or PolicyConfig(allowed_domains=domains) + if policy is not None and not policy.allowed_domains and domains: + effective_policy = PolicyConfig.model_validate( + {**policy.model_dump(mode="json"), "allowed_domains": domains} + ) + output_dir = output_dir.resolve() + run = ContextPackRun( + workflow=RELATIONSHIP_WORKFLOW, + output_dir=output_dir, + policy=effective_policy, + input_value=str(specs[0].get("url") or specs[0].get("path") or specs[0]["name"]), + ) + + all_pages: list[PageSnapshot] = [] + coverage_rows: list[dict[str, Any]] = [] + candidates: list[dict[str, Any]] = [] + for spec in specs: + error_start = len(run.errors) + warning_start = len(run.warnings) + pages = _pages_for_source(spec, run=run, max_pages=max_pages_per_source) + page_offset = len(all_pages) + all_pages.extend(pages) + extracted = _extract_relationship_candidates( + spec, + pages, + citation_offset=page_offset, + ) + candidates.extend(extracted) + failures = [ + workflow_failure_from_mapping(item, default_stage="fetch") for item in run.errors[error_start:] + ] + warnings = [ + WorkflowWarning.model_validate( + { + "code": str(item.get("code") or "warning"), + "message": str(item.get("message") or "Workflow warning"), + "metadata": item.get("metadata") if isinstance(item.get("metadata"), dict) else {}, + } + ) + for item in run.warnings[warning_start:] + ] + if extracted: + coverage_status = "candidate_found" + elif any(failure.retryable for failure in failures): + coverage_status = "retryable_failure" + elif pages: + coverage_status = "acquired_no_candidate" + else: + coverage_status = "blocked" + if not extracted: + warnings.append( + WorkflowWarning( + code="coverage_gap", + message=( + "No reviewable relationship candidate was established for this input; " + "this is not a negative ownership or independence claim." + ), + metadata={"input_id": spec["input_id"]}, + ) + ) + coverage = CoverageResult( + input_id=spec["input_id"], + input={ + "name": spec["name"], + "url": spec.get("url"), + "path": spec.get("path"), + "location_scope": spec.get("location_scope"), + "official_domains": spec["official_domains"], + }, + status=cast( + Literal[ + "candidate_found", + "acquired_no_candidate", + "retryable_failure", + "blocked", + ], + coverage_status, + ), + acquired_document_count=len(pages), + coverage_gap=not bool(extracted), + candidates=[RelationshipCandidate.model_validate(item) for item in extracted], + failures=failures, + warnings=warnings, + ) + coverage_rows.append(coverage.model_dump(mode="json", exclude_none=True)) + + if len(coverage_rows) != len(specs): + raise ContextPackError("relationship-pack did not emit exactly one coverage result per input.") + + pack_identity = { + "pack_id": stable_id("pack", {"workflow": RELATIONSHIP_WORKFLOW, "coverage": coverage_rows}), + "input_count": len(specs), + "content_hash": canonical_sha256(coverage_rows), + } + run_identity = { + "run_id": stable_id( + "run", + { + "pack_id": pack_identity["pack_id"], + "inputs": [spec["input_id"] for spec in specs], + "max_pages_per_source": max_pages_per_source, + }, + ), + "scheduler": None, + } + contract = RelationshipPack( + pack_identity=pack_identity, + run_identity=run_identity, + coverage=[CoverageResult.model_validate(item) for item in coverage_rows], + candidates=[RelationshipCandidate.model_validate(item) for item in candidates], + summary={ + "input_count": len(specs), + "coverage_count": len(coverage_rows), + "candidate_count": len(candidates), + "candidate_found_count": sum(item["status"] == "candidate_found" for item in coverage_rows), + "acquired_no_candidate_count": sum( + item["status"] == "acquired_no_candidate" for item in coverage_rows + ), + "retryable_failure_count": sum(item["status"] == "retryable_failure" for item in coverage_rows), + "blocked_count": sum(item["status"] == "blocked" for item in coverage_rows), + }, + ) + contract_path = output_dir / "relationship.pack.v1.json" + write_json(contract_path, contract.model_dump(mode="json", exclude_none=True)) + result_payload = { + "workflow": RELATIONSHIP_WORKFLOW, + "provider": "local", + "status": status_from_errors(run.errors), + "input": {"sources": specs}, + "summary": contract.summary, + "coverage": coverage_rows, + "relationship_candidates": candidates, + "warnings": run.warnings, + "errors": run.errors, + "replay_config": {"max_pages_per_source": max_pages_per_source}, + } + return write_basic_pack_files( + run=run, + pages=all_pages, + result_filename="relationship.result.json", + result_payload=result_payload, + markdown_filename="RELATIONSHIPS.md", + markdown_text=_relationship_markdown(contract), + pack_filename="relationship.pack.json", + extra_artifacts={ + "relationship_contract": artifact_ref(output_dir, contract_path), + }, + ) + + +def _normalize_source(item: str | dict[str, Any], *, index: int) -> dict[str, Any]: + raw = {"value": item} if isinstance(item, str) else dict(item) + value = str(raw.get("url") or raw.get("path") or raw.get("value") or "").strip() + path = Path(value).expanduser() + resolved_path = path.resolve() if value and path.exists() else None + url: str | None = None + if resolved_path is None: + domain = domain_from_input(value) + if domain: + url = public_url(value if "://" in value else homepage_url_for_domain(domain)) + else: + domain = None + supplied_raw = raw.get("official_domains") or ( + [raw["official_domain"]] if raw.get("official_domain") else [] + ) + supplied_domains = [supplied_raw] if isinstance(supplied_raw, str) else list(supplied_raw) + official_domains = sorted( + { + str(domain).lower().removeprefix("www.").rstrip(".") + for domain in [*list(supplied_domains), domain] + if domain + } + ) + name = str(raw.get("name") or "").strip() + name_explicit = bool(name) + if not name: + name = resolved_path.stem if resolved_path else (domain or f"input-{index}") + identity = { + "name": name, + "url": url, + "path": str(resolved_path) if resolved_path else None, + "location_scope": raw.get("location_scope"), + "official_domains": official_domains, + } + return { + **identity, + "input_id": str(raw.get("input_id") or stable_id("input", identity)), + "name_explicit": name_explicit, + } + + +def _pages_for_source( + spec: dict[str, Any], + *, + run: ContextPackRun, + max_pages: int, +) -> list[PageSnapshot]: + if spec.get("path"): + pages = _pages_from_path(Path(str(spec["path"]))) + if pages and not spec.get("name_explicit"): + entity_name = pages[0].metadata.get("entity_name") + if isinstance(entity_name, str) and entity_name.strip(): + spec["name"] = entity_name.strip() + return pages + url = str(spec.get("url") or "") + if not url: + run.errors.append( + { + "code": "source_unavailable", + "stage": "input", + "error": "Relationship source has no usable HTTPS URL or local pack path.", + "blocked": True, + } + ) + return [] + domain = domain_from_input(url) + if not domain: + run.errors.append( + {"code": "invalid_source", "stage": "input", "error": f"Invalid source: {url}", "blocked": True} + ) + return [] + allowed, reason = run.policy.allows_url(url) + if not allowed: + run.errors.append( + { + "code": "policy_denied", + "stage": "policy", + "url": url, + "error": f"Source policy blocked relationship input: {reason}", + "blocked": True, + } + ) + return [] + home = fetch_pages_blocking([url], run=run, max_pages=1) + if not home or max_pages == 1: + return home + candidates = likely_internal_pages(home[0], domain, max_pages=max_pages) + pages = fetch_pages_blocking(candidates, run=run, max_pages=max_pages) + return pages or home + + +def _pages_from_path(path: Path) -> list[PageSnapshot]: + records_path = path / "documents.ndjson" if path.is_dir() else path + if not records_path.exists() or not records_path.is_file(): + return [] + pages: list[PageSnapshot] = [] + for line in records_path.read_text(encoding="utf-8").splitlines(): + if not line.strip(): + continue + try: + record = json.loads(line) + except json.JSONDecodeError: + continue + if not isinstance(record, dict): + continue + content = str(record.get("content") or "") + url = str(record.get("url") or "") + if not content or not url: + continue + pages.append( + PageSnapshot( + url=url, + title=str(record.get("title") or url), + html="", + markdown=content, + metadata=dict(record.get("metadata") or {}), + extraction=dict(record.get("extraction") or {}), + source_type=str(record.get("source_type") or "relationship-source"), + ) + ) + return pages + + +def _extract_relationship_candidates( + spec: dict[str, Any], + pages: list[PageSnapshot], + *, + citation_offset: int, +) -> list[dict[str, Any]]: + subject = str(spec["name"]) + escaped = re.escape(subject) + patterns = ( + ( + "owned_by", + rf"\b{escaped}\b[^.!?\n]{{0,60}}?\b(?:is|was|became|remains)?\s*" + rf"(?:wholly\s+)?owned by\s+(?P<object>[^.!?\n]{{2,100}})", + False, + ), + ( + "operated_by", + rf"\b{escaped}\b[^.!?\n]{{0,60}}?\b(?:is|was)?\s*operated by\s+(?P<object>[^.!?\n]{{2,100}})", + False, + ), + ( + "acquired_by", + rf"\b{escaped}\b[^.!?\n]{{0,60}}?\b(?:is|was)?\s*acquired by\s+(?P<object>[^.!?\n]{{2,100}})", + False, + ), + ( + "franchised_by", + rf"\b{escaped}\b[^.!?\n]{{0,60}}?\b(?:is|was)?\s*(?:a\s+)?" + rf"franchis(?:e|ed) (?:of|by)\s+(?P<object>[^.!?\n]{{2,100}})", + False, + ), + ( + "invested_in", + rf"\b{escaped}\b[^.!?\n]{{0,40}}?\binvested in\s+(?P<object>[^.!?\n]{{2,100}})", + False, + ), + ( + "invested_in", + rf"(?P<object>[^.!?\n]{{2,100}}?)\s+(?:has\s+)?invested in\s+\b{escaped}\b", + True, + ), + ( + "acquired_by", + rf"(?P<object>[^.!?\n]{{2,100}}?)\s+acquired\s+\b{escaped}\b", + False, + ), + ( + "operated_by", + rf"(?P<object>[^.!?\n]{{2,100}}?)\s+operates\s+\b{escaped}\b", + False, + ), + ) + output: list[dict[str, Any]] = [] + seen: set[tuple[str, str, str]] = set() + for page_index, page in enumerate(pages, start=1): + content = page.markdown + for predicate, pattern, reverse in patterns: + for match in re.finditer(pattern, content, flags=re.IGNORECASE): + exact_text = _sentence_containing(content, match.start(), match.end()) + object_name = _clean_object_name(match.group("object")) + if not object_name or object_name.casefold() == subject.casefold(): + continue + candidate_subject = object_name if reverse else subject + candidate_object = subject if reverse else object_name + key = (predicate, object_name.casefold(), hashlib.sha256(exact_text.encode()).hexdigest()) + if key in seen: + continue + seen.add(key) + citation_index = citation_offset + page_index + evidence = evidence_span_payload( + url=page.url, + content=content, + exact_text=exact_text, + citation_id=f"S{citation_index}", + record_citation_id=f"S{citation_index}.1", + ) + seed = { + "subject": candidate_subject, + "predicate": predicate, + "object": candidate_object, + "evidence": evidence, + } + candidate = RelationshipCandidate.model_validate( + { + "candidate_id": stable_id("relationship", seed), + "subject": { + "name": candidate_subject, + "location_scope": None if reverse else spec.get("location_scope"), + }, + "predicate": predicate, + "object": { + "name": candidate_object, + "location_scope": spec.get("location_scope") if reverse else None, + }, + "confidence": { + "owned_by": 0.86, + "acquired_by": 0.84, + "operated_by": 0.80, + "franchised_by": 0.78, + "invested_in": 0.76, + }[predicate], + "evidence": [evidence], + "warnings": ["Review candidate only; human approval is required before publication."], + } + ) + output.append(candidate.model_dump(mode="json", exclude_none=True)) + return output + + +def _sentence_containing(content: str, start: int, end: int) -> str: + sentence_start = max(content.rfind(".", 0, start), content.rfind("\n", 0, start)) + 1 + sentence_end_candidates = [ + index for index in (content.find(".", end), content.find("\n", end)) if index >= 0 + ] + sentence_end = min(sentence_end_candidates) + 1 if sentence_end_candidates else len(content) + return content[sentence_start:sentence_end].strip() + + +def _clean_object_name(value: str) -> str: + cleaned = " ".join(value.split()).strip(" ,;:-") + cleaned = re.split( + r"\b(?:which|who|whose|after|before|when|while|according to|in \d{4})\b", + cleaned, + maxsplit=1, + flags=re.IGNORECASE, + )[0].strip(" ,;:-") + cleaned = re.sub(r"^(?:the\s+)", "", cleaned, flags=re.IGNORECASE) + return cleaned[:160] + + +def _relationship_markdown(pack: RelationshipPack) -> str: + lines = [ + "# Relationship Review Candidates", + "", + "All relationships are observations requiring human approval.", + "Absence of a candidate is a coverage result, never an independence claim.", + "", + "## Coverage", + "", + ] + for item in pack.coverage: + lines.append(f"- `{item.input_id}`: **{item.status}** ({item.acquired_document_count} documents)") + lines.extend(["", "## Candidates", ""]) + for candidate in pack.candidates: + lines.append( + f"- {candidate.subject.name} `{candidate.predicate}` {candidate.object.name} " + f"(confidence {candidate.confidence:.2f})" + ) + if not pack.candidates: + lines.append("- No relationship candidates were found in acquired evidence.") + return "\n".join(lines) + + +__all__ = [ + "DEFAULT_RELATIONSHIP_OUTPUT_DIR", + "RELATIONSHIP_WORKFLOW", + "SUPPORTED_RELATIONSHIP_PREDICATES", + "build_relationship_pack", + "extract_relationship_candidates_from_records", +] diff --git a/src/docpull/context_packs/typed.py b/src/docpull/context_packs/typed.py index e0ba88c..1ee5128 100644 --- a/src/docpull/context_packs/typed.py +++ b/src/docpull/context_packs/typed.py @@ -13,17 +13,20 @@ from datetime import timedelta from pathlib import Path from typing import Any, Literal +from urllib.parse import urlparse +from ..accounting import RunAccounting, default_route_steps, write_run_accounting from ..conversion.chunking import TokenCounter, chunk_markdown from ..http.client import AsyncHttpClient from ..http.rate_limiter import PerHostRateLimiter from ..models.document import DocumentRecord from ..output_contract import default_rights_state, validate_pack_contract from ..pipeline.manifest import CorpusManifest +from ..policy import PolicyConfig from ..security.robots import RobotsChecker from ..security.url_validator import UrlValidator from ..time_utils import parse_persisted_datetime, utc_now, utc_now_iso -from .common import artifact_ref, write_json +from .common import ContextPackRun, _write_workflow_contract_files, artifact_ref, write_json PrepareLevel = Literal["raw", "agent", "eval"] OfficialSourceContract = Literal["arxiv_api", "crossref_api", "ncbi_eutils", "mediawiki_rest"] @@ -303,6 +306,20 @@ def write_typed_pack( output_dir = output_dir.resolve() output_dir.mkdir(parents=True, exist_ok=True) + allowed_domains = sorted( + { + str(urlparse(item.url).hostname or "").lower().removeprefix("www.") + for item in items + if urlparse(item.url).scheme == "https" and urlparse(item.url).hostname + } + ) + policy = PolicyConfig(allowed_domains=allowed_domains) + run = ContextPackRun( + workflow=workflow, + output_dir=output_dir, + policy=policy, + input_value=items[0].url, + ) sources_dir = output_dir / "sources" sources_dir.mkdir(parents=True, exist_ok=True) @@ -408,6 +425,11 @@ def write_typed_pack( "index": artifact_ref(output_dir, index_path), "items": artifact_ref(output_dir, items_path), "markdown": artifact_ref(output_dir, summary_path), + "source_policy": "source_policy.json", + "accounting": "run.accounting.json", + "workflow_request": "workflow.request.json", + "workflow_result": "workflow.result.json", + "artifact_manifest": "artifact.manifest.json", } if extra_artifacts: artifacts.update({key: artifact_ref(output_dir, value) for key, value in extra_artifacts.items()}) @@ -417,6 +439,7 @@ def write_typed_pack( "generated_at": utc_now_iso(), "workflow": workflow, "status": "completed", + "input": {"sources": [item.url for item in items]}, "output_dir": str(output_dir), "objective": objective or f"Review {workflow} context records", "summary": { @@ -426,6 +449,12 @@ def write_typed_pack( **result_summary, }, "artifacts": artifacts, + "warnings": [], + "errors": [], + "replay_config": { + "chunk_tokens": chunk_tokens, + "prepare_level": prepare_level, + }, "validation": validate_pack_contract(output_dir, level="raw"), } pack_path = output_dir / pack_filename @@ -442,6 +471,30 @@ def write_typed_pack( elif result["validation"]["status"] != "pass": result["status"] = "completed_with_validation_errors" write_json(pack_path, result) + source_policy = policy.to_source_policy_payload( + source=workflow, + url=items[0].url, + metadata={"workflow": workflow, "source_count": len(items)}, + ) + write_json(output_dir / artifacts["source_policy"], source_policy) + accounting = RunAccounting( + budget_limit_usd=policy.budget.maximum_paid_cost_usd, + estimated_paid_cost_usd=0.0, + http_request_count=sum(urlparse(item.url).scheme == "https" for item in items), + route_steps=default_route_steps(), + command=workflow, + ) + accounting_payload = accounting.to_dict() + write_run_accounting(output_dir, accounting) + run.progress("artifacts", "completed", message="Wrote workflow artifacts") + run.progress("run", "completed", message=f"Completed {workflow}") + _write_workflow_contract_files( + run=run, + result_payload=result, + source_policy=source_policy, + artifacts=artifacts, + accounting_payload=accounting_payload, + ) return result diff --git a/src/docpull/context_packs/workflow_cli.py b/src/docpull/context_packs/workflow_cli.py index 71a2b3f..1b6e9b5 100644 --- a/src/docpull/context_packs/workflow_cli.py +++ b/src/docpull/context_packs/workflow_cli.py @@ -3,6 +3,7 @@ from __future__ import annotations import argparse +import json from pathlib import Path from ..policy import PolicyConfig @@ -15,6 +16,7 @@ ) from .cli import _positive_int, _run_and_print from .policy_pack import DEFAULT_POLICY_OUTPUT_DIR, build_policy_pack +from .relationship import DEFAULT_RELATIONSHIP_OUTPUT_DIR, build_relationship_pack def run_policy_pack_cli(argv: list[str] | None = None) -> int: @@ -42,10 +44,55 @@ def run_policy_pack_cli(argv: list[str] | None = None) -> int: ) +def run_relationship_pack_cli(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser( + prog="docpull relationship-pack", + description="Extract cited ownership/operator/acquisition/franchise/investment review candidates", + ) + parser.add_argument("sources", nargs="*", help="HTTPS sources, domains, or local pack paths") + parser.add_argument("--inputs", type=Path, help="JSON array of entity/source input objects") + parser.add_argument("--subject", help="Subject name for a single positional source") + parser.add_argument("--location-scope", help="Optional location scope for a single positional source") + parser.add_argument("--output-dir", "-o", type=Path, default=DEFAULT_RELATIONSHIP_OUTPUT_DIR) + parser.add_argument("--policy", type=Path) + parser.add_argument("--max-pages-per-source", type=_positive_int, default=4) + parser.add_argument("--json", action="store_true", dest="json_output") + args = parser.parse_args(argv) + sources: list[str | dict[str, object]] = list(args.sources) + if args.inputs: + payload = json.loads(args.inputs.read_text(encoding="utf-8")) + if not isinstance(payload, list) or not all(isinstance(item, (str, dict)) for item in payload): + parser.error("--inputs must contain a JSON array of strings or objects") + sources.extend(payload) + if args.subject or args.location_scope: + if len(sources) != 1 or not isinstance(sources[0], str): + parser.error("--subject/--location-scope require exactly one positional source") + sources = [ + { + "url": sources[0], + "name": args.subject or sources[0], + "location_scope": args.location_scope, + } + ] + if not sources: + parser.error("provide at least one source or --inputs JSON file") + return _run_and_print( + lambda: build_relationship_pack( + sources, + output_dir=args.output_dir, + policy=PolicyConfig.from_file(args.policy) if args.policy else None, + max_pages_per_source=args.max_pages_per_source, + ), + json_output=args.json_output, + success_label="Relationship pack", + ) + + __all__ = [ "run_brand_pack_cli", "run_image_pack_cli", "run_policy_pack_cli", + "run_relationship_pack_cli", "run_product_pack_cli", "run_screenshot_pack_cli", "run_styleguide_pack_cli", diff --git a/src/docpull/contracts.py b/src/docpull/contracts.py index c714cd7..a42aa37 100644 --- a/src/docpull/contracts.py +++ b/src/docpull/contracts.py @@ -9,10 +9,11 @@ import hashlib import json +import re from pathlib import Path from typing import Any, Final, Literal -from pydantic import BaseModel, ConfigDict, Field +from pydantic import BaseModel, ConfigDict, Field, model_validator from .models.document import DocumentRecord from .models.run import RunIdentity @@ -23,6 +24,7 @@ ARTIFACT_MANIFEST_CONTRACT: Final[Literal["artifact.manifest.v1"]] = "artifact.manifest.v1" INTELLIGENCE_BUNDLE_CONTRACT: Final[Literal["intelligence.bundle.v1"]] = "intelligence.bundle.v1" CHANGE_EVENT_CONTRACT: Final[Literal["change.event.v1"]] = "change.event.v1" +RELATIONSHIP_PACK_CONTRACT: Final[Literal["relationship.pack.v1"]] = "relationship.pack.v1" class ContractModel(BaseModel): @@ -67,8 +69,12 @@ class WorkflowWarning(ContractModel): class WorkflowFailure(ContractModel): code: str = "workflow_error" message: str + stage: str = "workflow" retryable: bool = False source_url: str | None = None + http_status: int | None = Field(default=None, ge=100, le=599) + attempts: int | None = Field(default=None, ge=1) + retry_after_seconds: float | None = Field(default=None, ge=0) metadata: dict[str, Any] = Field(default_factory=dict) @@ -149,10 +155,15 @@ class EvidenceSpan(ContractModel): class SourceAuthority(ContractModel): role: Literal[ "official_product", + "official_corporate", "legal", "documentation", "social", "marketplace", + "government_registry", + "regulatory_filing", + "press_release", + "local_reporting", "third_party", ] tier: Literal["tier_1_authoritative", "tier_2_owned", "tier_3_distribution", "tier_4_external"] @@ -179,9 +190,73 @@ class SourceSnapshot(ContractModel): document_version: str | None = None content_hash: str | None = None fetched_at: str | None = None + entity_id: str | None = None + official_domains: list[str] = Field(default_factory=list) authority: SourceAuthority +class RelationshipEntity(ContractModel): + name: str + location_scope: str | None = None + + +class RelationshipCandidate(ContractModel): + candidate_id: str | None = None + type: Literal["relationship_candidate"] = "relationship_candidate" + subject: RelationshipEntity + predicate: Literal[ + "owned_by", + "operated_by", + "acquired_by", + "franchised_by", + "invested_in", + ] + object: RelationshipEntity + status: Literal["observation"] = "observation" + confidence: float = Field(ge=0.0, le=1.0) + evidence: list[EvidenceSpan] = Field(min_length=1) + warnings: list[str] = Field(default_factory=list) + + +class CoverageResult(ContractModel): + input_id: str + input: dict[str, Any] + status: Literal[ + "candidate_found", + "acquired_no_candidate", + "retryable_failure", + "blocked", + ] + acquired_document_count: int = Field(default=0, ge=0) + coverage_gap: bool = False + candidates: list[RelationshipCandidate] = Field(default_factory=list) + failures: list[WorkflowFailure] = Field(default_factory=list) + warnings: list[WorkflowWarning] = Field(default_factory=list) + + @model_validator(mode="after") + def _validate_status_payload(self) -> CoverageResult: + if self.status == "candidate_found" and not self.candidates: + raise ValueError("candidate_found coverage requires at least one candidate") + if self.status != "candidate_found" and self.candidates: + raise ValueError("only candidate_found coverage may contain candidates") + if self.status != "candidate_found" and not self.coverage_gap: + raise ValueError("coverage without a candidate must be marked as a coverage_gap") + if self.status == "retryable_failure" and not any(failure.retryable for failure in self.failures): + raise ValueError("retryable_failure coverage requires a retryable failure") + return self + + +class RelationshipPack(ContractModel): + contract_version: Literal["relationship.pack.v1"] = RELATIONSHIP_PACK_CONTRACT + schema_version: int = 1 + pack_identity: dict[str, Any] + run_identity: dict[str, Any] + coverage: list[CoverageResult] + candidates: list[RelationshipCandidate] = Field(default_factory=list) + summary: dict[str, Any] = Field(default_factory=dict) + warnings: list[WorkflowWarning] = Field(default_factory=list) + + class ChangeCandidate(ContractModel): change_candidate_id: str classification: Literal["pricing", "positioning", "product", "security", "policy", "other"] @@ -203,6 +278,7 @@ class IntelligenceBundle(ContractModel): source_snapshots: list[SourceSnapshot] = Field(default_factory=list) document_versions: list[dict[str, Any]] = Field(default_factory=list) observations: list[Observation] = Field(default_factory=list) + relationship_candidates: list[RelationshipCandidate] = Field(default_factory=list) change_candidates: list[ChangeCandidate] = Field(default_factory=list) warnings: list[WorkflowWarning] = Field(default_factory=list) summary: dict[str, Any] = Field(default_factory=dict) @@ -280,6 +356,7 @@ class BasisContractV2(ContractModel): "artifact-manifest.v1.schema.json": ArtifactManifest, "intelligence-bundle.v1.schema.json": IntelligenceBundle, "change-event.v1.schema.json": ChangeEvent, + "relationship-pack.v1.schema.json": RelationshipPack, "document.v3.schema.json": DocumentRecord, "run-identity.v1.schema.json": RunIdentity, "pack.v3.schema.json": PackContractV3, @@ -426,6 +503,75 @@ def new_progress_event( return WorkflowProgressEvent.model_validate(payload).model_dump(mode="json", exclude_none=True) +def workflow_failure_from_mapping( + item: dict[str, Any], + *, + default_stage: str = "workflow", + default_attempts: int | None = None, +) -> WorkflowFailure: + """Normalize acquisition errors into the public typed failure contract.""" + + message = str(item.get("error") or item.get("message") or "Acquisition failure") + status_value = item.get("http_status", item.get("status_code", item.get("status"))) + http_status: int | None = None + if isinstance(status_value, int) and not isinstance(status_value, bool): + http_status = status_value + elif isinstance(status_value, str) and status_value.isdigit(): + http_status = int(status_value) + if http_status is None: + match = re.search(r"\bHTTP\s+(\d{3})\b", message, flags=re.IGNORECASE) + if match: + http_status = int(match.group(1)) + + attempts_value = item.get("attempts", default_attempts) + attempts = attempts_value if isinstance(attempts_value, int) and attempts_value > 0 else None + retry_after_value = item.get("retry_after_seconds", item.get("retry_after")) + retry_after: float | None = None + if isinstance(retry_after_value, (int, float)) and not isinstance(retry_after_value, bool): + retry_after = max(0.0, float(retry_after_value)) + elif isinstance(retry_after_value, str): + try: + retry_after = max(0.0, float(retry_after_value)) + except ValueError: + retry_after = None + + retryable_statuses = {408, 425, 429, 500, 502, 503, 504} + retryable = bool(item.get("retryable")) or http_status in retryable_statuses + code = str(item.get("code") or (f"http_{http_status}" if http_status else "workflow_error")) + stage = str(item.get("stage") or default_stage) + public_keys = { + "attempts", + "code", + "error", + "http_status", + "message", + "retry_after", + "retry_after_seconds", + "retryable", + "source_url", + "stage", + "status", + "status_code", + "url", + } + metadata = { + str(key): value for key, value in item.items() if key not in public_keys and value is not None + } + return WorkflowFailure( + code=code, + message=message, + stage=stage, + retryable=retryable, + source_url=str(item.get("source_url") or item.get("url")) + if item.get("source_url") or item.get("url") + else None, + http_status=http_status, + attempts=attempts, + retry_after_seconds=retry_after, + metadata=metadata, + ) + + def _artifact_role(name: str) -> str: if "citation" in name or "source" in name: return "evidence" @@ -469,6 +615,7 @@ def _media_type(path: Path) -> str | None: "CHANGE_EVENT_CONTRACT", "CONTRACT_MODELS", "INTELLIGENCE_BUNDLE_CONTRACT", + "RELATIONSHIP_PACK_CONTRACT", "WORKFLOW_REQUEST_CONTRACT", "WORKFLOW_RESULT_CONTRACT", "ArtifactEntry", @@ -477,11 +624,15 @@ def _media_type(path: Path) -> str | None: "BudgetUsage", "ChangeCandidate", "ChangeEvent", + "CoverageResult", "CitationMapContractV1", "EvidenceSpan", "HashDigest", "IntelligenceBundle", "Observation", + "RelationshipCandidate", + "RelationshipEntity", + "RelationshipPack", "PackContractV3", "ProvenanceContractV1", "ReplayConfiguration", @@ -502,4 +653,5 @@ def _media_type(path: Path) -> str | None: "new_progress_event", "stable_id", "write_contract_schemas", + "workflow_failure_from_mapping", ] diff --git a/src/docpull/evidence.py b/src/docpull/evidence.py index 8a56cdb..d8dc141 100644 --- a/src/docpull/evidence.py +++ b/src/docpull/evidence.py @@ -39,16 +39,75 @@ "marketplace.visualstudio.com", "chromewebstore.google.com", } +_REGULATORY_HOSTS = {"sec.gov", "www.sec.gov"} +_PRESS_PATH_TERMS = ("/press/", "/press-releases/", "/newsroom/", "/news-releases/") +_CORPORATE_PATH_TERMS = ("/about", "/company", "/corporate", "/investor") -def classify_source_authority(url: str, *, official_domain: str | None = None) -> SourceAuthority: +def classify_source_authority( + url: str, + *, + official_domain: str | None = None, + official_domains: list[str] | tuple[str, ...] | set[str] | None = None, + declared_role: str | None = None, +) -> SourceAuthority: """Classify source role and authority without making review decisions.""" parsed = urlparse(url) host = (parsed.hostname or "").lower().removeprefix("www.") path = (parsed.path or "/").lower() - official = (official_domain or "").lower().removeprefix("www.").rstrip(".") - same_official = bool(official) and (host == official or host.endswith(f".{official}")) + declared = (declared_role or "").strip().lower() + supported_declared_roles = { + "official_product", + "official_corporate", + "legal", + "documentation", + "social", + "marketplace", + "government_registry", + "regulatory_filing", + "press_release", + "local_reporting", + "third_party", + } + if declared in supported_declared_roles: + tier = { + "official_product": "tier_1_authoritative", + "official_corporate": "tier_1_authoritative", + "legal": "tier_1_authoritative", + "documentation": "tier_1_authoritative", + "government_registry": "tier_1_authoritative", + "regulatory_filing": "tier_1_authoritative", + "social": "tier_2_owned", + "press_release": "tier_2_owned", + "marketplace": "tier_3_distribution", + "local_reporting": "tier_4_external", + "third_party": "tier_4_external", + }[declared] + return SourceAuthority( + role=declared, # type: ignore[arg-type] + tier=tier, # type: ignore[arg-type] + rationale="Source role was explicitly declared by the entity/source contract.", + ) + + domains = list(official_domains or []) + if official_domain: + domains.append(official_domain) + normalized_domains = {domain.lower().removeprefix("www.").rstrip(".") for domain in domains if domain} + same_official = any(host == official or host.endswith(f".{official}") for official in normalized_domains) + + if host in _REGULATORY_HOSTS and ("/edgar/" in path or "/archives/" in path): + return SourceAuthority( + role="regulatory_filing", + tier="tier_1_authoritative", + rationale="Government-hosted regulatory filing source.", + ) + if host.endswith(".gov") or host == "gov": + return SourceAuthority( + role="government_registry", + tier="tier_1_authoritative", + rationale="Official government registry or agency source.", + ) if same_official and any(term in path for term in _LEGAL_TERMS): return SourceAuthority( @@ -62,6 +121,12 @@ def classify_source_authority(url: str, *, official_domain: str | None = None) - tier="tier_1_authoritative", rationale="Official-domain product documentation source.", ) + if any(term in path for term in _PRESS_PATH_TERMS): + return SourceAuthority( + role="press_release", + tier="tier_2_owned" if same_official else "tier_4_external", + rationale="Press-release or newsroom source; the underlying relationship remains reviewable.", + ) if any(host == domain or host.endswith(f".{domain}") for domain in _SOCIAL_DOMAINS): return SourceAuthority( role="social", @@ -75,6 +140,14 @@ def classify_source_authority(url: str, *, official_domain: str | None = None) - rationale="Platform marketplace listing rather than the canonical product site.", ) if same_official: + if host.startswith(("corporate.", "investors.")) or any( + term in path for term in _CORPORATE_PATH_TERMS + ): + return SourceAuthority( + role="official_corporate", + tier="tier_1_authoritative", + rationale="Official-domain corporate or investor-relations source.", + ) return SourceAuthority( role="official_product", tier="tier_1_authoritative", diff --git a/src/docpull/mcp/server.py b/src/docpull/mcp/server.py index 930d71d..74bb21d 100644 --- a/src/docpull/mcp/server.py +++ b/src/docpull/mcp/server.py @@ -532,6 +532,7 @@ "source_snapshots": {"type": "array", "items": {"type": "object"}}, "document_versions": {"type": "array", "items": {"type": "object"}}, "observations": {"type": "array", "items": {"type": "object"}}, + "relationship_candidates": {"type": "array", "items": {"type": "object"}}, "change_candidates": {"type": "array", "items": {"type": "object"}}, }, "required": [ @@ -864,6 +865,7 @@ async def _dispatch_tool( "image_pack", "screenshot_pack", "policy_pack", + "relationship_pack", }: from ..policy import PolicyConfig from ..workflows import create_workflow_request, run_workflow @@ -875,14 +877,35 @@ async def _dispatch_tool( "image_pack": ("image-pack", "url_or_pack", "packs/images"), "screenshot_pack": ("screenshot-pack", "url", "packs/screenshot"), "policy_pack": ("policy-pack", "domain_or_url", "packs/policies"), + "relationship_pack": ("relationship-pack", "source", "packs/relationships"), } if name == "workflow_run": workflow_name = _require_str(arguments, "workflow") - value = _require_str(arguments, "value") + raw_input = arguments.get("input") + if raw_input is not None: + if not isinstance(raw_input, dict) or not raw_input: + raise ValueError("'input' must be a non-empty object") + input_payload: dict[str, Any] | None = raw_input + value: str | None = None + else: + value = _require_str(arguments, "value") + input_payload = None default_output = f"packs/{workflow_name.replace('-pack', '').replace('_', '-')}" else: workflow_name, input_key, default_output = workflow_aliases[name] - value = _require_str(arguments, input_key) + raw_sources = arguments.get("sources") if name == "relationship_pack" else None + if raw_sources is not None: + if ( + not isinstance(raw_sources, list) + or not raw_sources + or not all(isinstance(item, (str, dict)) for item in raw_sources) + ): + raise ValueError("'sources' must be a non-empty array of strings or objects") + input_payload = {"sources": raw_sources} + value = None + else: + value = _require_str(arguments, input_key) + input_payload = None output_dir = _path_arg(arguments, "output_dir", default_output) policy_path_raw = arguments.get("policy") if policy_path_raw is not None and not isinstance(policy_path_raw, str): @@ -891,6 +914,9 @@ async def _dispatch_tool( reserved = { "workflow", "value", + "input", + "sources", + "source", "domain_or_url", "url_or_domain", "url_or_pack", @@ -909,6 +935,7 @@ async def _dispatch_tool( workflow_name, value, output_dir=output_dir, + input_payload=input_payload, options=options, policy=workflow_policy, ) @@ -1593,7 +1620,8 @@ async def _list_tools() -> list[Tool]: # type: ignore[no-any-unimported] description=( "Run a registered evidence-pack workflow through workflow.request.v1 and return " "workflow.result.v1. Supported workflows are brand, product, styleguide, visual/image, " - "screenshot, and policy. Browser use remains explicitly gated." + "screenshot, policy, relationship, dataset, fetch, and crawl. Browser use remains " + "explicitly gated." ), annotations=ToolAnnotations( title="Run an evidence-pack workflow", @@ -1615,14 +1643,27 @@ async def _list_tools() -> list[Tool]: # type: ignore[no-any-unimported] "image-pack", "screenshot-pack", "policy-pack", + "relationship-pack", + "dataset-pack", + "fetch", + "crawl", ], }, "value": {"type": "string"}, + "input": { + "type": "object", + "minProperties": 1, + "description": ( + "Full WorkflowRequest input payload. Use sources for multi-source " + "dataset and relationship workflows." + ), + }, "output_dir": {"type": "string"}, "policy": {"type": "string"}, "options": {"type": "object"}, }, - "required": ["workflow", "value", "output_dir"], + "required": ["workflow", "output_dir"], + "oneOf": [{"required": ["value"]}, {"required": ["input"]}], }, outputSchema=_WORKFLOW_RESULT_OUTPUT_SCHEMA, ), @@ -1782,6 +1823,40 @@ async def _list_tools() -> list[Tool]: # type: ignore[no-any-unimported] }, outputSchema=_WORKFLOW_RESULT_OUTPUT_SCHEMA, ), + Tool( + name="relationship_pack", + description=( + "Extract cited owned-by, operated-by, acquired-by, franchised-by, and invested-in " + "observations. Outputs review candidates and never infers independence from missing " + "evidence." + ), + annotations=ToolAnnotations( + title="Build a relationship evidence pack", + readOnlyHint=False, + destructiveHint=False, + idempotentHint=False, + openWorldHint=True, + ), + inputSchema={ + "type": "object", + "properties": { + "source": {"type": "string"}, + "sources": { + "type": "array", + "minItems": 1, + "items": { + "oneOf": [{"type": "string"}, {"type": "object"}], + }, + }, + "output_dir": {"type": "string"}, + "max_pages_per_source": {"type": "integer", "minimum": 1, "default": 4}, + "policy": {"type": "string"}, + }, + "required": ["output_dir"], + "oneOf": [{"required": ["source"]}, {"required": ["sources"]}], + }, + outputSchema=_WORKFLOW_RESULT_OUTPUT_SCHEMA, + ), Tool( name="intelligence_bundle", description=( diff --git a/src/docpull/models/events.py b/src/docpull/models/events.py index 76edfaf..6e91fb7 100644 --- a/src/docpull/models/events.py +++ b/src/docpull/models/events.py @@ -110,6 +110,11 @@ class FetchEvent: output_path: Path | None = None content_type: str | None = None retry_attempt: int | None = None + attempts: int | None = None + retry_after_seconds: float | None = None + retryable: bool | None = None + failure_code: str | None = None + failure_stage: str | None = None duplicate_of: str | None = None # URL of original for dedup events skip_reason: SkipReason | None = None # Reason for skipping a URL diff --git a/src/docpull/pack_tools.py b/src/docpull/pack_tools.py index 44e9fea..eed8416 100644 --- a/src/docpull/pack_tools.py +++ b/src/docpull/pack_tools.py @@ -1033,8 +1033,16 @@ def build_intelligence_bundle( "search_limit": search_limit, }, } - canonical_snapshots = _intelligence_source_snapshots(source_snapshots, records) + expected_domains = [str(item) for item in citations_payload.get("expected_domains") or []] + canonical_snapshots = _intelligence_source_snapshots( + source_snapshots, + records, + expected_domains=expected_domains, + ) observations = _intelligence_observations(claims, records, citations_payload) + from .context_packs.relationship import extract_relationship_candidates_from_records + + relationship_candidates = extract_relationship_candidates_from_records(records) document_versions = _intelligence_document_versions(records) change_candidates = _intelligence_change_candidates(pack_dir) bundle_core = { @@ -1054,6 +1062,7 @@ def build_intelligence_bundle( "record_count": citations_payload["record_count"], "entity_count": len(entities), "claim_count": len(claims), + "relationship_candidate_count": len(relationship_candidates), "search_query_count": len(search_payloads), "search_result_count": sum( _safe_int(search_payload.get("result_count")) for search_payload in search_payloads @@ -1063,6 +1072,7 @@ def build_intelligence_bundle( "source_snapshots": canonical_snapshots, "document_versions": document_versions, "observations": observations, + "relationship_candidates": relationship_candidates, "change_candidates": change_candidates, "warnings": _intelligence_warnings(score_payload, source_scores_payload), "artifacts": artifacts, @@ -1669,8 +1679,9 @@ def _company_brain_signals(search_payloads: list[dict[str, Any]]) -> list[dict[s def _intelligence_source_snapshots( snapshots: list[dict[str, Any]], records: list[dict[str, Any]], + *, + expected_domains: list[str], ) -> list[dict[str, Any]]: - official_domain = str(snapshots[0].get("domain") or "") if snapshots else "" records_by_url = { str(record.get("url")): record for record in records if isinstance(record, dict) and record.get("url") } @@ -1678,6 +1689,9 @@ def _intelligence_source_snapshots( for snapshot in snapshots: url = str(snapshot.get("url") or "") record = records_by_url.get(url, {}) + official_domains = _record_official_domains(record, expected_domains, url=url) + raw_metadata = record.get("metadata") + metadata: dict[str, Any] = raw_metadata if isinstance(raw_metadata, dict) else {} content_hashes = sorted(str(item) for item in snapshot.get("content_hashes") or []) output.append( { @@ -1688,9 +1702,12 @@ def _intelligence_source_snapshots( "document_version": record.get("content_hash"), "content_hash": canonical_sha256(content_hashes) if content_hashes else None, "fetched_at": snapshot.get("latest_fetched_at"), + "entity_id": metadata.get("entity_id"), + "official_domains": official_domains, "authority": classify_source_authority( url, - official_domain=official_domain, + official_domains=official_domains, + declared_role=(str(metadata.get("source_role")) if metadata.get("source_role") else None), ).model_dump(mode="json"), } ) @@ -1720,7 +1737,6 @@ def _intelligence_observations( citations_payload: dict[str, Any], ) -> list[dict[str, Any]]: expected_domains = [str(item) for item in citations_payload.get("expected_domains") or []] - official_domain = expected_domains[0] if expected_domains else "" by_url = { str(record.get("url")): record for record in records if isinstance(record, dict) and record.get("url") } @@ -1732,7 +1748,13 @@ def _intelligence_observations( if not url or not text or record is None: continue content = str(record.get("content") or "") - authority = classify_source_authority(url, official_domain=official_domain) + raw_metadata = record.get("metadata") + metadata: dict[str, Any] = raw_metadata if isinstance(raw_metadata, dict) else {} + authority = classify_source_authority( + url, + official_domains=_record_official_domains(record, expected_domains, url=url), + declared_role=(str(metadata.get("source_role")) if metadata.get("source_role") else None), + ) evidence = evidence_span_payload( url=url, content=content, @@ -1765,6 +1787,29 @@ def _intelligence_observations( return observations +def _record_official_domains( + record: dict[str, Any], + expected_domains: list[str], + *, + url: str, +) -> list[str]: + raw_metadata = record.get("metadata") + metadata: dict[str, Any] = raw_metadata if isinstance(raw_metadata, dict) else {} + declared = metadata.get("official_domains") + if isinstance(declared, str): + values = [declared] + elif isinstance(declared, list): + values = [str(item) for item in declared] + else: + single = metadata.get("official_domain") + values = [str(single)] if single else list(expected_domains) + normalized = {value.lower().removeprefix("www.").rstrip(".") for value in values if value.strip()} + host = (urlparse(url).hostname or "").lower().removeprefix("www.").rstrip(".") + if host and any(host == domain or host.endswith(f".{domain}") for domain in expected_domains): + normalized.add(host) + return sorted(normalized) + + def _intelligence_change_candidates(pack_dir: Path) -> list[dict[str, Any]]: path = pack_dir / "change.events.jsonl" if not path.exists(): diff --git a/src/docpull/pipeline/base.py b/src/docpull/pipeline/base.py index 83e171a..c6744a6 100644 --- a/src/docpull/pipeline/base.py +++ b/src/docpull/pipeline/base.py @@ -53,6 +53,8 @@ class PageContext: # Additional data from fetch status_code: int | None = None + http_attempts: int | None = None + retry_after_seconds: float | None = None content_type: str | None = None bytes_downloaded: int = 0 persisted_path: Path | None = None diff --git a/src/docpull/pipeline/steps/fetch.py b/src/docpull/pipeline/steps/fetch.py index 8d3b248..bfa438a 100644 --- a/src/docpull/pipeline/steps/fetch.py +++ b/src/docpull/pipeline/steps/fetch.py @@ -185,8 +185,15 @@ async def execute( ) ctx.status_code = response.status_code + ctx.http_attempts = 1 ctx.content_type = response.content_type ctx.bytes_downloaded = len(response.content) + retry_after = _header_get(response.headers, "retry-after") + if retry_after: + try: + ctx.retry_after_seconds = max(0.0, float(retry_after)) + except ValueError: + ctx.retry_after_seconds = None # 304 Not Modified: cached copy is still valid. Skip with a # distinct reason so the CLI summary can count "unchanged" hits @@ -271,6 +278,19 @@ async def execute( except Exception as e: logger.error(f"Fetch error for {url}: {e}") + status_value = getattr(e, "status", None) + if isinstance(status_value, int) and 100 <= status_value <= 599: + ctx.status_code = status_value + ctx.http_attempts = int(getattr(self._client, "_max_retries", 0)) + 1 + headers = getattr(e, "headers", None) + retry_after = headers.get("Retry-After") if headers is not None else None + if isinstance(retry_after, str): + try: + ctx.retry_after_seconds = max(0.0, float(retry_after)) + except ValueError: + ctx.retry_after_seconds = None + retryable = ctx.status_code in {408, 425, 429, 500, 502, 503, 504} + if emit: emit( FetchEvent( @@ -278,6 +298,12 @@ async def execute( url=url, error=str(e), message=f"Fetch failed: {e}", + status_code=ctx.status_code, + attempts=ctx.http_attempts, + retry_after_seconds=ctx.retry_after_seconds, + retryable=retryable, + failure_code=f"http_{ctx.status_code}" if ctx.status_code else "fetch_error", + failure_stage="fetch", ) ) diff --git a/src/docpull/project.py b/src/docpull/project.py index 0d8d9ec..caa4f93 100644 --- a/src/docpull/project.py +++ b/src/docpull/project.py @@ -111,6 +111,7 @@ def _fetcher_class() -> Any: "styleguide", "visual", "policy", + "relationship", ] OutputFormat = Literal["markdown", "ndjson", "sqlite", "context-pack"] SemanticMode = Literal["auto", "off", "on"] @@ -133,6 +134,7 @@ def _fetcher_class() -> Any: "styleguide", "visual", "policy", + "relationship", ) SOURCE_TYPES: tuple[str, ...] = (*CRAWL_SOURCE_TYPES, *TYPED_PROJECT_SOURCE_TYPES) CONTEXT_TARGETS: tuple[str, ...] = ("cursor", "claude", "codex", "openai", "llamaindex", "langchain") @@ -1946,6 +1948,14 @@ def _sync_typed_project_source( output_dir=output_dir, max_pages=min(max_items, 16), ) + elif source.type == "relationship": + from .context_packs.relationship import build_relationship_pack + + build_relationship_pack( + [{"name": source.name, "url": source_spec}], + output_dir=output_dir, + max_pages_per_source=min(max_items, 8), + ) else: raise ProjectError(f"Unsupported typed project source type: {source.type}") @@ -2911,10 +2921,10 @@ def _typed_project_source_spec_allowed(source_type: str, value: str) -> bool: if source_type == "standards": return is_https or lowered.startswith(("rfc:", "ietf:", "w3c:", "whatwg:")) if source_type == "dataset": - return not parsed.scheme + return not parsed.scheme or (is_https and Path(parsed.path).suffix.lower() in {".json", ".csv"}) if source_type == "wiki": return _is_wiki_page_url(parsed) or lowered.startswith(("wiki:", "wikipedia:")) - if source_type in {"brand", "product", "styleguide", "visual", "policy"}: + if source_type in {"brand", "product", "styleguide", "visual", "policy", "relationship"}: return is_https or bool(re.fullmatch(r"[A-Za-z0-9.-]+\.[A-Za-z]{2,}", text)) return False diff --git a/src/docpull/schemas/intelligence-bundle.v1.schema.json b/src/docpull/schemas/intelligence-bundle.v1.schema.json index f8622b1..a9dc3f2 100644 --- a/src/docpull/schemas/intelligence-bundle.v1.schema.json +++ b/src/docpull/schemas/intelligence-bundle.v1.schema.json @@ -190,6 +190,108 @@ "title": "Observation", "type": "object" }, + "RelationshipCandidate": { + "additionalProperties": true, + "properties": { + "candidate_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Candidate Id" + }, + "confidence": { + "maximum": 1.0, + "minimum": 0.0, + "title": "Confidence", + "type": "number" + }, + "evidence": { + "items": { + "$ref": "#/$defs/EvidenceSpan" + }, + "minItems": 1, + "title": "Evidence", + "type": "array" + }, + "object": { + "$ref": "#/$defs/RelationshipEntity" + }, + "predicate": { + "enum": [ + "owned_by", + "operated_by", + "acquired_by", + "franchised_by", + "invested_in" + ], + "title": "Predicate", + "type": "string" + }, + "status": { + "const": "observation", + "default": "observation", + "title": "Status", + "type": "string" + }, + "subject": { + "$ref": "#/$defs/RelationshipEntity" + }, + "type": { + "const": "relationship_candidate", + "default": "relationship_candidate", + "title": "Type", + "type": "string" + }, + "warnings": { + "items": { + "type": "string" + }, + "title": "Warnings", + "type": "array" + } + }, + "required": [ + "subject", + "predicate", + "object", + "confidence", + "evidence" + ], + "title": "RelationshipCandidate", + "type": "object" + }, + "RelationshipEntity": { + "additionalProperties": true, + "properties": { + "location_scope": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Location Scope" + }, + "name": { + "title": "Name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "RelationshipEntity", + "type": "object" + }, "SourceAuthority": { "additionalProperties": true, "properties": { @@ -200,10 +302,15 @@ "role": { "enum": [ "official_product", + "official_corporate", "legal", "documentation", "social", "marketplace", + "government_registry", + "regulatory_filing", + "press_release", + "local_reporting", "third_party" ], "title": "Role", @@ -270,6 +377,18 @@ "default": null, "title": "Document Version" }, + "entity_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Entity Id" + }, "fetched_at": { "anyOf": [ { @@ -282,6 +401,13 @@ "default": null, "title": "Fetched At" }, + "official_domains": { + "items": { + "type": "string" + }, + "title": "Official Domains", + "type": "array" + }, "source_id": { "title": "Source Id", "type": "string" @@ -381,6 +507,13 @@ "title": "Pack Identity", "type": "object" }, + "relationship_candidates": { + "items": { + "$ref": "#/$defs/RelationshipCandidate" + }, + "title": "Relationship Candidates", + "type": "array" + }, "run_identity": { "additionalProperties": true, "title": "Run Identity", diff --git a/src/docpull/schemas/relationship-pack.v1.schema.json b/src/docpull/schemas/relationship-pack.v1.schema.json new file mode 100644 index 0000000..e9865ca --- /dev/null +++ b/src/docpull/schemas/relationship-pack.v1.schema.json @@ -0,0 +1,401 @@ +{ + "$defs": { + "CoverageResult": { + "additionalProperties": true, + "properties": { + "acquired_document_count": { + "default": 0, + "minimum": 0, + "title": "Acquired Document Count", + "type": "integer" + }, + "candidates": { + "items": { + "$ref": "#/$defs/RelationshipCandidate" + }, + "title": "Candidates", + "type": "array" + }, + "coverage_gap": { + "default": false, + "title": "Coverage Gap", + "type": "boolean" + }, + "failures": { + "items": { + "$ref": "#/$defs/WorkflowFailure" + }, + "title": "Failures", + "type": "array" + }, + "input": { + "additionalProperties": true, + "title": "Input", + "type": "object" + }, + "input_id": { + "title": "Input Id", + "type": "string" + }, + "status": { + "enum": [ + "candidate_found", + "acquired_no_candidate", + "retryable_failure", + "blocked" + ], + "title": "Status", + "type": "string" + }, + "warnings": { + "items": { + "$ref": "#/$defs/WorkflowWarning" + }, + "title": "Warnings", + "type": "array" + } + }, + "required": [ + "input_id", + "input", + "status" + ], + "title": "CoverageResult", + "type": "object" + }, + "EvidenceSpan": { + "additionalProperties": true, + "properties": { + "char_end": { + "minimum": 0, + "title": "Char End", + "type": "integer" + }, + "char_start": { + "minimum": 0, + "title": "Char Start", + "type": "integer" + }, + "citation_id": { + "title": "Citation Id", + "type": "string" + }, + "document_id": { + "title": "Document Id", + "type": "string" + }, + "document_version": { + "title": "Document Version", + "type": "string" + }, + "exact_text": { + "title": "Exact Text", + "type": "string" + }, + "exact_text_sha256": { + "title": "Exact Text Sha256", + "type": "string" + }, + "record_citation_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Record Citation Id" + }, + "url": { + "title": "Url", + "type": "string" + } + }, + "required": [ + "citation_id", + "document_id", + "document_version", + "url", + "char_start", + "char_end", + "exact_text", + "exact_text_sha256" + ], + "title": "EvidenceSpan", + "type": "object" + }, + "RelationshipCandidate": { + "additionalProperties": true, + "properties": { + "candidate_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Candidate Id" + }, + "confidence": { + "maximum": 1.0, + "minimum": 0.0, + "title": "Confidence", + "type": "number" + }, + "evidence": { + "items": { + "$ref": "#/$defs/EvidenceSpan" + }, + "minItems": 1, + "title": "Evidence", + "type": "array" + }, + "object": { + "$ref": "#/$defs/RelationshipEntity" + }, + "predicate": { + "enum": [ + "owned_by", + "operated_by", + "acquired_by", + "franchised_by", + "invested_in" + ], + "title": "Predicate", + "type": "string" + }, + "status": { + "const": "observation", + "default": "observation", + "title": "Status", + "type": "string" + }, + "subject": { + "$ref": "#/$defs/RelationshipEntity" + }, + "type": { + "const": "relationship_candidate", + "default": "relationship_candidate", + "title": "Type", + "type": "string" + }, + "warnings": { + "items": { + "type": "string" + }, + "title": "Warnings", + "type": "array" + } + }, + "required": [ + "subject", + "predicate", + "object", + "confidence", + "evidence" + ], + "title": "RelationshipCandidate", + "type": "object" + }, + "RelationshipEntity": { + "additionalProperties": true, + "properties": { + "location_scope": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Location Scope" + }, + "name": { + "title": "Name", + "type": "string" + } + }, + "required": [ + "name" + ], + "title": "RelationshipEntity", + "type": "object" + }, + "WorkflowFailure": { + "additionalProperties": true, + "properties": { + "attempts": { + "anyOf": [ + { + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Attempts" + }, + "code": { + "default": "workflow_error", + "title": "Code", + "type": "string" + }, + "http_status": { + "anyOf": [ + { + "maximum": 599, + "minimum": 100, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Http Status" + }, + "message": { + "title": "Message", + "type": "string" + }, + "metadata": { + "additionalProperties": true, + "title": "Metadata", + "type": "object" + }, + "retry_after_seconds": { + "anyOf": [ + { + "minimum": 0, + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Retry After Seconds" + }, + "retryable": { + "default": false, + "title": "Retryable", + "type": "boolean" + }, + "source_url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Source Url" + }, + "stage": { + "default": "workflow", + "title": "Stage", + "type": "string" + } + }, + "required": [ + "message" + ], + "title": "WorkflowFailure", + "type": "object" + }, + "WorkflowWarning": { + "additionalProperties": true, + "properties": { + "code": { + "title": "Code", + "type": "string" + }, + "message": { + "title": "Message", + "type": "string" + }, + "metadata": { + "additionalProperties": true, + "title": "Metadata", + "type": "object" + } + }, + "required": [ + "code", + "message" + ], + "title": "WorkflowWarning", + "type": "object" + } + }, + "$id": "https://docpull.dev/schemas/relationship-pack.v1.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": true, + "properties": { + "candidates": { + "items": { + "$ref": "#/$defs/RelationshipCandidate" + }, + "title": "Candidates", + "type": "array" + }, + "contract_version": { + "const": "relationship.pack.v1", + "default": "relationship.pack.v1", + "title": "Contract Version", + "type": "string" + }, + "coverage": { + "items": { + "$ref": "#/$defs/CoverageResult" + }, + "title": "Coverage", + "type": "array" + }, + "pack_identity": { + "additionalProperties": true, + "title": "Pack Identity", + "type": "object" + }, + "run_identity": { + "additionalProperties": true, + "title": "Run Identity", + "type": "object" + }, + "schema_version": { + "default": 1, + "title": "Schema Version", + "type": "integer" + }, + "summary": { + "additionalProperties": true, + "title": "Summary", + "type": "object" + }, + "warnings": { + "items": { + "$ref": "#/$defs/WorkflowWarning" + }, + "title": "Warnings", + "type": "array" + } + }, + "required": [ + "pack_identity", + "run_identity", + "coverage" + ], + "title": "RelationshipPack", + "type": "object" +} diff --git a/src/docpull/schemas/workflow-result.v1.schema.json b/src/docpull/schemas/workflow-result.v1.schema.json index 4117947..0e29ef2 100644 --- a/src/docpull/schemas/workflow-result.v1.schema.json +++ b/src/docpull/schemas/workflow-result.v1.schema.json @@ -119,11 +119,38 @@ "WorkflowFailure": { "additionalProperties": true, "properties": { + "attempts": { + "anyOf": [ + { + "minimum": 1, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Attempts" + }, "code": { "default": "workflow_error", "title": "Code", "type": "string" }, + "http_status": { + "anyOf": [ + { + "maximum": 599, + "minimum": 100, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Http Status" + }, "message": { "title": "Message", "type": "string" @@ -133,6 +160,19 @@ "title": "Metadata", "type": "object" }, + "retry_after_seconds": { + "anyOf": [ + { + "minimum": 0, + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Retry After Seconds" + }, "retryable": { "default": false, "title": "Retryable", @@ -149,6 +189,11 @@ ], "default": null, "title": "Source Url" + }, + "stage": { + "default": "workflow", + "title": "Stage", + "type": "string" } }, "required": [ diff --git a/src/docpull/surface.py b/src/docpull/surface.py index 7a12345..b755099 100644 --- a/src/docpull/surface.py +++ b/src/docpull/surface.py @@ -40,7 +40,7 @@ class CliCommand: CliCommand("repo-pack", "Build a local v3 pack from a public GitHub repository"), CliCommand("package-pack", "Build a local v3 pack from npm or PyPI package metadata"), CliCommand("standards-pack", "Build a local v3 pack from RFC, IETF, W3C, or WHATWG standards"), - CliCommand("dataset-pack", "Build a local v3 pack from local dataset files"), + CliCommand("dataset-pack", "Build a v3 pack from local or HTTPS JSON/CSV datasets"), CliCommand("transcript-pack", "Build a local v3 pack from transcript files or URLs"), CliCommand("wiki-pack", "Build a local v3 pack from Wikimedia/MediaWiki REST page content"), CliCommand("brand-pack", "Build an evidence-backed brand knowledge pack"), @@ -49,6 +49,7 @@ class CliCommand: CliCommand("image-pack", "Build a bounded visual asset manifest"), CliCommand("screenshot-pack", "Capture an explicitly enabled local screenshot pack"), CliCommand("policy-pack", "Discover policies and emit clause-level change evidence"), + CliCommand("relationship-pack", "Extract cited relationship candidates for human review"), CliCommand("mcp", "Run the stdio MCP server"), CliCommand("policy", "Validate or explain source policy files"), CliCommand("auth", "Check authenticated source access without writing content"), @@ -114,6 +115,9 @@ class CliCommand: "ChangeEvent", "EvidenceSpan", "IntelligenceBundle", + "CoverageResult", + "RelationshipCandidate", + "RelationshipPack", "SourceAuthority", "WorkflowRequest", "WorkflowResult", @@ -133,6 +137,7 @@ class CliCommand: "build_package_pack", "build_paper_pack", "build_policy_pack", + "build_relationship_pack", "build_product_pack", "build_repo_pack", "build_standards_pack", @@ -235,6 +240,7 @@ class CliCommand: "build_package_pack", "build_paper_pack", "build_policy_pack", + "build_relationship_pack", "build_product_pack", "build_repo_pack", "build_standards_pack", @@ -289,6 +295,7 @@ class CliCommand: "image_pack", "screenshot_pack", "policy_pack", + "relationship_pack", "intelligence_bundle", "pack_score", "pack_diff", diff --git a/src/docpull/workflows.py b/src/docpull/workflows.py index b4554b2..4d69614 100644 --- a/src/docpull/workflows.py +++ b/src/docpull/workflows.py @@ -44,19 +44,30 @@ def execute(self, request: WorkflowRequest) -> dict[str, Any]: def create_workflow_request( workflow: str, - value: str, + value: str | None = None, *, output_dir: Path, + input_payload: dict[str, Any] | None = None, options: dict[str, Any] | None = None, policy: PolicyConfig | None = None, ) -> WorkflowRequest: + if input_payload is not None and value is not None: + raise WorkflowExecutionError("Pass either value or input_payload, not both") + if input_payload is None: + if not isinstance(value, str) or not value.strip(): + raise WorkflowExecutionError("A non-empty value or input_payload is required") + effective_input = {"value": value.strip()} + elif not input_payload: + raise WorkflowExecutionError("input_payload must not be empty") + else: + effective_input = dict(input_payload) effective_policy = policy or PolicyConfig() merged_options = dict(options or {}) if policy is not None: merged_options["policy"] = policy.model_dump(mode="json") return build_workflow_request( workflow=_normalize_workflow(workflow), - input_payload={"value": value}, + input_payload=effective_input, output_dir=output_dir, options=merged_options, source_policy=effective_policy.to_source_policy_payload(source=workflow), @@ -186,6 +197,54 @@ def _run_policy(request: WorkflowRequest) -> dict[str, Any]: ) +def _run_dataset(request: WorkflowRequest) -> dict[str, Any]: + from .context_packs.dataset import build_dataset_pack + + options = request.options + prepare_level = str(options.get("prepare_level") or "raw") + if prepare_level not in {"raw", "agent", "eval"}: + raise WorkflowExecutionError("WorkflowRequest.options.prepare_level must be raw, agent, or eval") + sources: list[str | Path] = [] + sources.extend(_request_values(request)) + return build_dataset_pack( + sources, + output_dir=_request_output_dir(request), + max_items=_positive_int(options, "max_items", 50), + chunk_tokens=_positive_int(options, "chunk_tokens", 4000), + prepare_level=prepare_level, # type: ignore[arg-type] + ) + + +def _run_relationship(request: WorkflowRequest) -> dict[str, Any]: + from .context_packs.relationship import build_relationship_pack + + raw_sources = request.input.get("sources") + if raw_sources is None: + sources: list[str | dict[str, Any]] = [_request_value(request)] + elif isinstance(raw_sources, list) and all(isinstance(item, (str, dict)) for item in raw_sources): + sources = list(raw_sources) + else: + raise WorkflowExecutionError("WorkflowRequest.input.sources must be a list of strings or objects") + return build_relationship_pack( + sources, + output_dir=_request_output_dir(request), + policy=_request_policy(request), + max_pages_per_source=_positive_int(request.options, "max_pages_per_source", 4), + ) + + +def _run_fetch(request: WorkflowRequest) -> dict[str, Any]: + from .acquisition_workflows import execute_acquisition_workflow + + return execute_acquisition_workflow(request, crawl=False) + + +def _run_crawl(request: WorkflowRequest) -> dict[str, Any]: + from .acquisition_workflows import execute_acquisition_workflow + + return execute_acquisition_workflow(request, crawl=True) + + WORKFLOW_REGISTRY: dict[str, PackWorkflow] = { "brand-pack": FunctionPackWorkflow("brand-pack", _run_brand), "product-pack": FunctionPackWorkflow("product-pack", _run_product), @@ -194,6 +253,10 @@ def _run_policy(request: WorkflowRequest) -> dict[str, Any]: "image-pack": FunctionPackWorkflow("image-pack", _run_visual), "screenshot-pack": FunctionPackWorkflow("screenshot-pack", _run_screenshot), "policy-pack": FunctionPackWorkflow("policy-pack", _run_policy), + "dataset-pack": FunctionPackWorkflow("dataset-pack", _run_dataset), + "relationship-pack": FunctionPackWorkflow("relationship-pack", _run_relationship), + "fetch": FunctionPackWorkflow("fetch", _run_fetch), + "crawl": FunctionPackWorkflow("crawl", _run_crawl), } @@ -207,6 +270,8 @@ def _normalize_workflow(value: str) -> str: "image": "image-pack", "screenshot": "screenshot-pack", "policy": "policy-pack", + "dataset": "dataset-pack", + "relationship": "relationship-pack", } return aliases.get(normalized, normalized) @@ -219,6 +284,13 @@ def _request_value(request: WorkflowRequest) -> str: raise WorkflowExecutionError("WorkflowRequest.input must include a non-empty value or URL") +def _request_values(request: WorkflowRequest) -> list[str]: + values = request.input.get("sources") + if isinstance(values, list) and all(isinstance(item, str) and item.strip() for item in values): + return [item.strip() for item in values] + return [_request_value(request)] + + def _request_output_dir(request: WorkflowRequest) -> Path: value = request.output.get("directory") if not isinstance(value, str) or not value.strip(): diff --git a/tests/test_acquisition_workflows.py b/tests/test_acquisition_workflows.py new file mode 100644 index 0000000..4c5f690 --- /dev/null +++ b/tests/test_acquisition_workflows.py @@ -0,0 +1,100 @@ +from __future__ import annotations + +from pathlib import Path + +import pytest + +from docpull.contracts import WorkflowResult +from docpull.models.events import EventType, FetchEvent, FetchStats, SkipReason +from docpull.workflows import create_workflow_request, run_workflow + + +class ContractFetcher: + events: list[FetchEvent] = [] + stats = FetchStats() + + def __init__(self, _config: object) -> None: + self.stats = self.__class__.stats + + async def __aenter__(self): + return self + + async def __aexit__(self, *_exc: object) -> None: + return None + + async def run(self): + for event in self.events: + yield event + + +def test_empty_crawl_always_emits_structured_run_result( + tmp_path: Path, + monkeypatch: pytest.MonkeyPatch, +) -> None: + ContractFetcher.events = [ + FetchEvent( + type=EventType.FETCH_SKIPPED, + url="https://example.test/", + message="Robots disallowed", + skip_reason=SkipReason.ROBOTS_DISALLOWED, + ) + ] + ContractFetcher.stats = FetchStats(urls_discovered=1, pages_skipped=1) + monkeypatch.setattr("docpull.acquisition_workflows.Fetcher", ContractFetcher) + output = tmp_path / "crawl" + request = create_workflow_request("crawl", "https://example.test/", output_dir=output) + + payload = run_workflow(request) + result = WorkflowResult.model_validate(payload) + + assert result.status == "failed" + assert result.summary["current_run_record_count"] == 0 + assert result.run_identity["current_run_manifest"] == "current-run.manifest.json" + assert (output / "current-run.manifest.json").exists() + assert result.failures[0].code == "robots_disallowed" + assert result.failures[0].retryable is False + + +def test_partial_crawl_populates_typed_retryable_http_failure( + tmp_path: Path, + monkeypatch: pytest.MonkeyPatch, +) -> None: + ContractFetcher.events = [ + FetchEvent( + type=EventType.FETCH_FAILED, + url="https://example.test/rate-limited", + error="HTTP 429", + status_code=429, + attempts=4, + retry_after_seconds=60, + retryable=True, + failure_code="http_429", + failure_stage="fetch", + ) + ] + ContractFetcher.stats = FetchStats( + urls_discovered=2, + pages_fetched=1, + pages_failed=1, + files_saved=1, + ) + monkeypatch.setattr("docpull.acquisition_workflows.Fetcher", ContractFetcher) + output = tmp_path / "partial" + request = create_workflow_request("crawl", "https://example.test/", output_dir=output) + + result = WorkflowResult.model_validate(run_workflow(request)) + + assert result.status == "completed_with_warnings" + assert result.data["partial_success"] is True + failure = result.failures[0] + assert failure.model_dump(exclude_none=True) | {} == { + "code": "http_429", + "message": "HTTP 429", + "stage": "fetch", + "retryable": True, + "source_url": "https://example.test/rate-limited", + "http_status": 429, + "attempts": 4, + "retry_after_seconds": 60.0, + "metadata": {}, + } diff --git a/tests/test_cli.py b/tests/test_cli.py index 45af839..4bef93e 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -12,6 +12,11 @@ from docpull.models.events import EventType, SkipReason +@pytest.fixture(autouse=True) +def _isolate_cli_outputs(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None: + monkeypatch.chdir(tmp_path) + + def _capture_fetcher_config( monkeypatch, *, @@ -367,6 +372,47 @@ def test_crawl_returns_nonzero_when_no_records_are_written(tmp_path, monkeypatch args = parser.parse_args(["https://example.com", "--quiet", "-o", str(tmp_path)]) assert run_fetcher(args) == 1 + result = json.loads((tmp_path / "workflow.result.json").read_text(encoding="utf-8")) + manifest = json.loads((tmp_path / "current-run.manifest.json").read_text(encoding="utf-8")) + assert result["summary"]["current_run_record_count"] == 0 + assert manifest["current_run_record_count"] == 0 + assert manifest["run_id"] == result["run_identity"]["run_id"] + + +def test_strict_exit_ignores_stale_records_and_usable_output_is_explicit(tmp_path, monkeypatch): + stale = { + "url": "https://stale.example/", + "content": "stale record from a previous run", + } + (tmp_path / "documents.ndjson").write_text(json.dumps(stale) + "\n", encoding="utf-8") + empty_stats = SimpleNamespace( + urls_discovered=1, + pages_fetched=0, + pages_skipped=1, + pages_failed=0, + duration_seconds=0.1, + ) + events = [ + SimpleNamespace(type=EventType.FETCH_SKIPPED, skip_reason=SkipReason.ROBOTS_DISALLOWED), + SimpleNamespace(type=EventType.COMPLETED, message="Done"), + ] + _capture_fetcher_config(monkeypatch, run_events=events, stats=empty_stats) + parser = create_parser() + + strict = parser.parse_args(["https://example.com", "--quiet", "-o", str(tmp_path)]) + assert run_fetcher(strict) == 1 + + usable = parser.parse_args( + [ + "https://example.com", + "--quiet", + "-o", + str(tmp_path), + "--exit-policy", + "usable-output", + ] + ) + assert run_fetcher(usable) == 0 def test_non_quiet_crawl_renders_progress_and_summary(monkeypatch, capsys): diff --git a/tests/test_relationship_workflow.py b/tests/test_relationship_workflow.py new file mode 100644 index 0000000..9955a86 --- /dev/null +++ b/tests/test_relationship_workflow.py @@ -0,0 +1,218 @@ +from __future__ import annotations + +from pathlib import Path + +import pytest + +from docpull.context_packs.common import PageSnapshot +from docpull.context_packs.relationship import ( + build_relationship_pack, + extract_relationship_candidates_from_records, +) +from docpull.contracts import IntelligenceBundle, RelationshipPack, WorkflowResult +from docpull.models.document import DocumentRecord +from docpull.pack_tools import build_intelligence_bundle +from docpull.workflows import create_workflow_request, run_workflow +from tests.pack_fixtures import write_context_pack + + +def _page(name: str, content: str, index: int) -> PageSnapshot: + return PageSnapshot( + url=f"https://brand-{index}.example.test/about", + title=name, + html="", + markdown=content, + metadata={"entity_name": name, "official_domains": [f"brand-{index}.example.test"]}, + extraction={}, + source_type="fixture", + ) + + +@pytest.mark.parametrize( + ("text", "predicate", "expected_subject", "expected_object"), + [ + ("Bagel Brand is owned by Parent Company.", "owned_by", "Bagel Brand", "Parent Company"), + ( + "Bagel Brand is operated by Hospitality Group.", + "operated_by", + "Bagel Brand", + "Hospitality Group", + ), + ( + "Bagel Brand was acquired by Acquisition Group.", + "acquired_by", + "Bagel Brand", + "Acquisition Group", + ), + ( + "Bagel Brand is a franchise of Franchise Group.", + "franchised_by", + "Bagel Brand", + "Franchise Group", + ), + ( + "Investor Group invested in Bagel Brand.", + "invested_in", + "Investor Group", + "Bagel Brand", + ), + ], +) +def test_relationship_predicates_preserve_direction_and_evidence( + text: str, + predicate: str, + expected_subject: str, + expected_object: str, +) -> None: + record = DocumentRecord.from_page( + url="https://bagel.example/about", + title="Bagel Brand", + content=text, + metadata={"entity_name": "Bagel Brand"}, + ).model_dump(mode="json", exclude_none=True) + + candidate = extract_relationship_candidates_from_records([record])[0] + + assert candidate["predicate"] == predicate + assert candidate["subject"]["name"] == expected_subject + assert candidate["object"]["name"] == expected_object + span = candidate["evidence"][0] + assert text[span["char_start"] : span["char_end"]] == span["exact_text"] + + +def test_relationship_pack_emits_exactly_one_coverage_result_for_64_inputs( + tmp_path: Path, + monkeypatch: pytest.MonkeyPatch, +) -> None: + inputs = [ + { + "input_id": f"bagel-{index:02d}", + "name": f"Bagel Brand {index}", + "url": f"https://brand-{index}.example.test/", + "location_scope": f"Chicago storefront {index}", + } + for index in range(64) + ] + + def fake_pages(spec, *, run, max_pages): + del max_pages + index = int(str(spec["input_id"]).rsplit("-", 1)[1]) + if index % 4 == 0: + return [_page(spec["name"], f"{spec['name']} is owned by Parent Company {index}.", index)] + if index % 4 == 1: + return [_page(spec["name"], f"{spec['name']} serves bagels and coffee.", index)] + if index % 4 == 2: + run.errors.append( + { + "url": spec["url"], + "error": "HTTP 429", + "http_status": 429, + "attempts": 4, + "retry_after_seconds": 60, + "stage": "fetch", + } + ) + return [] + run.errors.append( + { + "url": spec["url"], + "error": "robots_disallowed", + "code": "robots_disallowed", + "stage": "policy", + "blocked": True, + } + ) + return [] + + monkeypatch.setattr("docpull.context_packs.relationship._pages_for_source", fake_pages) + result = build_relationship_pack(inputs, output_dir=tmp_path / "relationships") + contract = RelationshipPack.model_validate_json( + (tmp_path / "relationships" / "relationship.pack.v1.json").read_text(encoding="utf-8") + ) + + assert result["summary"]["input_count"] == 64 + assert len(contract.coverage) == 64 + assert {item.input_id for item in contract.coverage} == {item["input_id"] for item in inputs} + assert {item.status for item in contract.coverage} == { + "candidate_found", + "acquired_no_candidate", + "retryable_failure", + "blocked", + } + assert all(item.coverage_gap == (item.status != "candidate_found") for item in contract.coverage) + assert all(candidate.status == "observation" for candidate in contract.candidates) + assert all(candidate.evidence for candidate in contract.candidates) + assert all( + evidence.exact_text_sha256 and evidence.char_end > evidence.char_start + for candidate in contract.candidates + for evidence in candidate.evidence + ) + assert not any(candidate.object.name.casefold() == "independent" for candidate in contract.candidates) + retryable = next(item for item in contract.coverage if item.status == "retryable_failure") + expected_failure = { + "code": "http_429", + "stage": "fetch", + "retryable": True, + "http_status": 429, + "attempts": 4, + "retry_after_seconds": 60.0, + } + actual_failure = retryable.failures[0].model_dump(exclude_none=True) + assert {key: actual_failure[key] for key in expected_failure} == expected_failure + + +def test_relationship_workflow_registry_emits_workflow_result(tmp_path: Path) -> None: + pack = tmp_path / "source-pack" + record = DocumentRecord.from_page( + url="https://bagel.example/about", + title="Bagel Brand", + content="Bagel Brand is operated by Example Hospitality Group.", + metadata={"entity_name": "Bagel Brand", "official_domains": ["bagel.example"]}, + ).model_dump(mode="json", exclude_none=True) + write_context_pack(pack, records=[record], include_domains=["bagel.example"]) + output = tmp_path / "result" + request = create_workflow_request("relationship-pack", str(pack), output_dir=output) + + payload = run_workflow(request) + + result = WorkflowResult.model_validate(payload) + assert result.workflow == "relationship-pack" + assert result.data["relationship_candidates"][0]["predicate"] == "operated_by" + + +def test_intelligence_bundle_extracts_relationships_and_classifies_each_official_domain( + tmp_path: Path, +) -> None: + pack = tmp_path / "multi-company" + records = [ + DocumentRecord.from_page( + url="https://first.example/about", + title="First Brand", + content="First Brand is owned by First Parent.", + metadata={"entity_name": "First Brand", "official_domains": ["first.example"]}, + source_citation_id="S1", + record_citation_id="S1.1", + ).model_dump(mode="json", exclude_none=True), + DocumentRecord.from_page( + url="https://second.example/company", + title="Second Brand", + content="Second Brand was acquired by Second Parent.", + metadata={"entity_name": "Second Brand", "official_domains": ["second.example"]}, + source_citation_id="S2", + record_citation_id="S2.1", + ).model_dump(mode="json", exclude_none=True), + ] + write_context_pack(pack, records=records, include_domains=["first.example", "second.example"]) + + payload = build_intelligence_bundle(pack, default_search=False) + parsed = IntelligenceBundle.model_validate(payload) + + assert {candidate.predicate for candidate in parsed.relationship_candidates} == { + "owned_by", + "acquired_by", + } + assert all(candidate.status == "observation" for candidate in parsed.relationship_candidates) + by_url = {snapshot.url: snapshot for snapshot in parsed.source_snapshots} + assert by_url["https://first.example/about"].authority.role == "official_corporate" + assert by_url["https://second.example/company"].authority.role == "official_corporate" + assert by_url["https://second.example/company"].official_domains == ["second.example"] diff --git a/tests/test_typed_knowledge_packs.py b/tests/test_typed_knowledge_packs.py index 5ae85e0..a0509e6 100644 --- a/tests/test_typed_knowledge_packs.py +++ b/tests/test_typed_knowledge_packs.py @@ -322,6 +322,41 @@ def test_dataset_pack_roundtrips_through_v3_prepare_and_exports(tmp_path: Path) _assert_pack_roundtrip(pack_dir, pack_file="dataset.pack.json", expected_source_types={"dataset"}) +def test_dataset_pack_supports_remote_https_json_with_snapshot_provenance( + tmp_path: Path, + monkeypatch: pytest.MonkeyPatch, +) -> None: + source = "https://data.example.test/resource.json?$limit=2&category=bagel&category=cafe" + + def fake_read(url: str, **_kwargs: Any) -> RemoteText: + assert url == source + return RemoteText( + text=json.dumps([{"name": "A", "count": 1}, {"name": "B", "count": 2}]), + url="https://data.example.test/resource.json?$limit=2&category=bagel&category=cafe", + content_type="application/json; charset=utf-8", + status_code=200, + ) + + monkeypatch.setattr("docpull.context_packs.dataset.read_https_text", fake_read) + output = tmp_path / "remote-dataset" + + result = build_dataset_pack([source], output_dir=output) + schema = json.loads((output / "dataset.schema.json").read_text(encoding="utf-8")) + workflow = json.loads((output / "workflow.result.json").read_text(encoding="utf-8")) + + provenance = schema["datasets"][0]["provenance"] + assert provenance["original_url"] == source + assert provenance["query_parameters"] == [ + {"name": "$limit", "value": "2"}, + {"name": "category", "value": "bagel"}, + {"name": "category", "value": "cafe"}, + ] + assert len(provenance["snapshot_hash"]) == 64 + assert result["summary"]["record_count"] == 1 + assert workflow["contract_version"] == "workflow.result.v1" + assert workflow["workflow"] == "dataset-pack" + + def test_transcript_pack_roundtrips_through_v3_prepare_and_exports(tmp_path: Path) -> None: source = _transcript_source(tmp_path) pack_dir = tmp_path / "transcript-pack" diff --git a/tests/test_workflow_contracts.py b/tests/test_workflow_contracts.py index 8f7324f..0e3301a 100644 --- a/tests/test_workflow_contracts.py +++ b/tests/test_workflow_contracts.py @@ -224,7 +224,9 @@ def test_all_schemas_are_draft_2020_12_and_accept_model_examples(tmp_path: Path) def test_declarative_project_accepts_knowledge_workflow_source_types(tmp_path: Path) -> None: init_project(name="tracker", root=tmp_path) - for index, source_type in enumerate(("brand", "product", "styleguide", "visual", "policy")): + for index, source_type in enumerate( + ("brand", "product", "styleguide", "visual", "policy", "relationship") + ): add_source( f"https://{source_type}-{index}.example.test", name=source_type, @@ -238,6 +240,7 @@ def test_declarative_project_accepts_knowledge_workflow_source_types(tmp_path: P "styleguide", "visual", "policy", + "relationship", ]

d7Ma};%&>S~UVd9z3+ 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 TDq^NbGoUD|_P7}G^v(YQxwkck literal 0 HcmV?d00001 diff --git a/docs/social/v6.1-benchmark/assets/02-core-results.png b/docs/social/v6.1-benchmark/assets/02-core-results.png new file mode 100644 index 0000000000000000000000000000000000000000..ec192b37f540573ead16b836d63638c42c12d110 GIT binary patch literal 67040 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¬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 literal 0 HcmV?d00001 diff --git a/docs/social/v6.1-benchmark/assets/03-boundaries.png b/docs/social/v6.1-benchmark/assets/03-boundaries.png new file mode 100644 index 0000000000000000000000000000000000000000..6eb70d496ab4424cd31ae8c20eabaa2ed1ace137 GIT binary patch literal 86006 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