From f92e77aebf17db51648c25d6af9b42002c1cb047 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 17 Aug 2026 11:00:15 +0000 Subject: [PATCH 01/38] ci: update docs publishing using myst-version-switcher-plugin --- .github/workflows/ci.yml | 46 ++++++++++++++++++-------- .github/workflows/publish-dispatch.yml | 36 ++++++++++++++++++++ docs/conf.py | 15 ++------- 3 files changed, 71 insertions(+), 26 deletions(-) create mode 100644 .github/workflows/publish-dispatch.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ccb56911..f535d0c7a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,28 +1,32 @@ name: CI on: - push: - branches: - - main - tags: - - '*' pull_request: + push: + branches: [main] + tags: ["*"] # '*' never matches '/', so e.g. release/x tags don't build jobs: lint: uses: ./.github/workflows/_tox.yml with: - tox: pre-commit + tox: pre-commit, type-checking test: uses: ./.github/workflows/_test.yml with: runs-on: ubuntu-latest - docs: - uses: ./.github/workflows/_docs.yml - permissions: - contents: write + docs: # Call the docs building workflow directly + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.24.1 + with: + # Whatever turns your sources into docs/_build/html at $BASE_URL. uv and Node + # are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs + build-command: uv run --locked tox -e docs + html-dir: build/html + + dist: + uses: ./.github/workflows/_dist.yml example: needs: test @@ -32,8 +36,22 @@ jobs: EXAMPLE_DEPLOY_KEY: ${{ secrets.EXAMPLE_DEPLOY_KEY }} release: - needs: [test, docs] - if: github.ref_type == 'tag' - uses: ./.github/workflows/_release.yml + needs: [test, docs, dist] + if: github.ref_type == 'tag' # tag pushes only + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.24.1 + permissions: + contents: write # create the Release + attach assets + + publish: + needs: [docs] + # don't publish a pages site in the fork's org + if: github.repository == 'DiamondLightSource/python-copier-template' && github.ref_type == 'tag' # publish only on tags + uses: ./.github/workflows/publish-dispatch.yml # your workflow (below) + with: + version-name: ${{ needs.docs.outputs.version-name }} permissions: - contents: write + contents: read + actions: write + pages: write + id-token: write + statuses: write diff --git a/.github/workflows/publish-dispatch.yml b/.github/workflows/publish-dispatch.yml new file mode 100644 index 000000000..4a02e00d0 --- /dev/null +++ b/.github/workflows/publish-dispatch.yml @@ -0,0 +1,36 @@ +# .github/workflows/publish-dispatch.yml +name: Publish (dispatch) +on: + workflow_call: # ci.yml's `publish` job, for every event + inputs: + version-name: {required: false, default: "", type: string} + # tag re-dispatch + fork-PR preview + manual re-deploy + workflow_dispatch: + inputs: + pr: + description: "Fork PR to approve + preview (empty = re-deploy)" + required: false + default: "" + retry-until: + description: "Internal = epoch-second retry deadline. Don't set manually." + required: false + default: "" + +jobs: + publish: + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish.yml@v0.24 + with: + # "" on dispatch → pure durable gather + version-name: ${{ inputs.version-name }} + # set (dispatch) → pin that fork head SHA + pr: ${{ inputs.pr }} + # the file the tag re-dispatch re-fires + dispatch-workflow: publish-dispatch.yml + # forwarded so the re-dispatch job's auto-retry can re-fire this shim + retry-until: ${{ inputs.retry-until }} + permissions: + contents: read + actions: write + pages: write + id-token: write + statuses: write diff --git a/docs/conf.py b/docs/conf.py index f78540b5b..b3e5c1ba6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -3,11 +3,9 @@ # This file only contains a selection of the most common options. For a full # list see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html - +import os import sys from importlib.metadata import version -from pathlib import Path -from subprocess import check_output import requests @@ -19,14 +17,7 @@ # The full version, including alpha/beta/rc tags. release = version(project) -# The short X.Y version. -if "+" in release: - # Not on a tag, use branch name - root = Path(__file__).absolute().parent.parent - git_branch = check_output("git branch --show-current".split(), cwd=root) - version = git_branch.decode().strip() -else: - version = release +version = os.environ.get("VERSION_NAME", "local") extensions = [ # For graphviz diagrams @@ -136,7 +127,7 @@ "version_match": version, }, "check_switcher": True, - "navbar_end": ["theme-switcher", "icon-links", "version-switcher"], + "navbar_end": ["theme-switcher", "navbar-icon-links", "version-switcher"], } # A dictionary of values to pass into the template engine’s context for all pages From fa1e221a35da798f9ae5e5dbc1faf2ccf8e878f0 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 17 Aug 2026 15:17:21 +0000 Subject: [PATCH 02/38] ci: edit and update ci.yml.jinja file with new changes from ci.yml --- .../workflows/ci.yml.jinja" | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 49133a9e1..951acbed3 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -1,14 +1,11 @@ name: CI on: - push: - branches: - - main - tags: - - '*' pull_request: - merge_group: - + push: + branches:[main] + tags:['*'] + jobs: lint: @@ -17,15 +14,9 @@ jobs: tox: pre-commit,type-checking {% raw %} test: - strategy: - matrix: - runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest - python-version: ["3.11", "3.12", "3.13", "3.14"] - fail-fast: false uses: ./.github/workflows/_test.yml with: - runs-on: ${{ matrix.runs-on }} - python-version: ${{ matrix.python-version }} + runs-on: ubuntu-latest {% endraw %}{% if docker %}{% raw %} container: needs: test @@ -38,10 +29,12 @@ jobs: packages: write {% endraw %}{% endif %}{% if sphinx %} docs: - uses: ./.github/workflows/_docs.yml - permissions: - contents: write -{% endif %} + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.24.1 + with: + # Whatever turns your sources into docs/_build/html at $BASE_URL. + # uv and Node are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs + build-command: uv run --locked tox -e docs + html-dir: build/html dist: uses: ./.github/workflows/_dist.yml {% if pypi %} @@ -55,6 +48,19 @@ jobs: release: needs: [dist, test{% if sphinx %}, docs{% endif %}] if: github.ref_type == 'tag' - uses: ./.github/workflows/_release.yml + uses: DiamondLightSource/myst-version-switcher-plugin/.workflows/release.yml@v0.24.1 permissions: contents: write + publish: + needs: [docs] + if: github.repository == 'DiamondLightSource/python-copier-template' && github.ref_type == 'tag' #publish only on tags + uses: ./.github/workflows/publish-dispatch.yml # your workflow (below) + with: + version-name: ${{ needs.docs.outputs.version-name }} + permissions: + contents: read + actions: write + pages: write + id-token: write + statuses: write + {%endif} From 1bfab01d88510040009f3dbbfc2f40309bd7f383 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 18 Aug 2026 08:20:50 +0000 Subject: [PATCH 03/38] chore: test a commit --- .../workflows/ci.yml.jinja" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 951acbed3..10f41d41b 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -45,7 +45,7 @@ jobs: permissions: id-token: write {% endif %} - release: + release: #release needs: [dist, test{% if sphinx %}, docs{% endif %}] if: github.ref_type == 'tag' uses: DiamondLightSource/myst-version-switcher-plugin/.workflows/release.yml@v0.24.1 From f4300a852a8ed7acb5b541144d93e72ea83903c5 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 18 Aug 2026 08:24:13 +0000 Subject: [PATCH 04/38] chore: test a commit2 --- .../workflows/ci.yml.jinja" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 10f41d41b..951acbed3 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -45,7 +45,7 @@ jobs: permissions: id-token: write {% endif %} - release: #release + release: needs: [dist, test{% if sphinx %}, docs{% endif %}] if: github.ref_type == 'tag' uses: DiamondLightSource/myst-version-switcher-plugin/.workflows/release.yml@v0.24.1 From 8cf5f894018ba1c96c8d40b7140f9e9ee002ad06 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 18 Aug 2026 15:26:54 +0000 Subject: [PATCH 05/38] chore: delete _release.yml file --- .../workflows/_release.yml" | 1 - .../workflows/publish-dispatch.yml" | 36 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) delete mode 120000 "template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/_release.yml" create mode 100644 "template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/_release.yml" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/_release.yml" deleted file mode 120000 index d5d5c173f..000000000 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/_release.yml" +++ /dev/null @@ -1 +0,0 @@ -../../../.github/workflows/_release.yml \ No newline at end of file diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" new file mode 100644 index 000000000..4a02e00d0 --- /dev/null +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" @@ -0,0 +1,36 @@ +# .github/workflows/publish-dispatch.yml +name: Publish (dispatch) +on: + workflow_call: # ci.yml's `publish` job, for every event + inputs: + version-name: {required: false, default: "", type: string} + # tag re-dispatch + fork-PR preview + manual re-deploy + workflow_dispatch: + inputs: + pr: + description: "Fork PR to approve + preview (empty = re-deploy)" + required: false + default: "" + retry-until: + description: "Internal = epoch-second retry deadline. Don't set manually." + required: false + default: "" + +jobs: + publish: + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish.yml@v0.24 + with: + # "" on dispatch → pure durable gather + version-name: ${{ inputs.version-name }} + # set (dispatch) → pin that fork head SHA + pr: ${{ inputs.pr }} + # the file the tag re-dispatch re-fires + dispatch-workflow: publish-dispatch.yml + # forwarded so the re-dispatch job's auto-retry can re-fire this shim + retry-until: ${{ inputs.retry-until }} + permissions: + contents: read + actions: write + pages: write + id-token: write + statuses: write From 63349e2f0d81f1b136524bf70358d348032cee2c Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 09:51:03 +0000 Subject: [PATCH 06/38] ci: remove type checking from tox in ci.yml --- .github/workflows/ci.yml | 2 +- .../workflows/ci.yml.jinja" | 7 ++++--- .../workflows/publish-dispatch.yml" | 2 +- .../workflows/{% if sphinx %}_docs.yml{% endif %}" | 1 - 4 files changed, 6 insertions(+), 6 deletions(-) delete mode 120000 "template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/{% if sphinx %}_docs.yml{% endif %}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f535d0c7a..f0deafa8d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ jobs: lint: uses: ./.github/workflows/_tox.yml with: - tox: pre-commit, type-checking + tox: pre-commit test: uses: ./.github/workflows/_test.yml diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 951acbed3..b5cb75f1d 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -11,7 +11,7 @@ jobs: lint: uses: ./.github/workflows/_tox.yml with: - tox: pre-commit,type-checking + tox: pre-commit {% raw %} test: uses: ./.github/workflows/_test.yml @@ -27,7 +27,8 @@ jobs: permissions: contents: read packages: write -{% endraw %}{% endif %}{% if sphinx %} +{% endraw %}{% endif %} + {% if sphinx %} docs: uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.24.1 with: @@ -48,7 +49,7 @@ jobs: release: needs: [dist, test{% if sphinx %}, docs{% endif %}] if: github.ref_type == 'tag' - uses: DiamondLightSource/myst-version-switcher-plugin/.workflows/release.yml@v0.24.1 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.24.1 permissions: contents: write publish: diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" index 4a02e00d0..90ca411df 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" @@ -18,7 +18,7 @@ on: jobs: publish: - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish.yml@v0.24 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish.yml@v0.24.1 with: # "" on dispatch → pure durable gather version-name: ${{ inputs.version-name }} diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/{% if sphinx %}_docs.yml{% endif %}" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/{% if sphinx %}_docs.yml{% endif %}" deleted file mode 120000 index 6f47d301b..000000000 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/{% if sphinx %}_docs.yml{% endif %}" +++ /dev/null @@ -1 +0,0 @@ -../../../.github/workflows/_docs.yml \ No newline at end of file From 1ef5fdeec4098f516540f1fbf0e4bded9ec8ea6a Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 10:35:57 +0000 Subject: [PATCH 07/38] chore: add long description to pyproject.toml --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index a13dabbb7..2eddc5947 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,6 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "python-copier-template" +description = "Diamond's opinionated copier template for pure Python projects." dynamic = ["version"] requires-python = ">=3.11" From 2e7e25f4c3523dedc71730b39d9b71e67cdea222 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 10:39:50 +0000 Subject: [PATCH 08/38] chore: add readme to pyproject.toml --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 2eddc5947..222e9fef3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,6 +6,7 @@ build-backend = "setuptools.build_meta" name = "python-copier-template" description = "Diamond's opinionated copier template for pure Python projects." dynamic = ["version"] +readme = "README.md" requires-python = ">=3.11" [dependency-groups] From 5ce47c376d3ffcb6abc85678afe0df6a2c4a0373 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 13:06:50 +0000 Subject: [PATCH 09/38] chore: remove dist as a requirement for release in ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f0deafa8d..6cd6334c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,7 +36,7 @@ jobs: EXAMPLE_DEPLOY_KEY: ${{ secrets.EXAMPLE_DEPLOY_KEY }} release: - needs: [test, docs, dist] + needs: [test, docs] if: github.ref_type == 'tag' # tag pushes only uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.24.1 permissions: From 20e3ae6072a6e4098ac506b9766f5253aeea9668 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 15:20:59 +0000 Subject: [PATCH 10/38] add type-checking back to lint job --- .../workflows/ci.yml.jinja" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index b5cb75f1d..f1e96efd1 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -11,7 +11,7 @@ jobs: lint: uses: ./.github/workflows/_tox.yml with: - tox: pre-commit + tox: pre-commit,type-checking {% raw %} test: uses: ./.github/workflows/_test.yml From c42623a9589cc6529c7f5debf440c801f9a89c5d Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 15:25:01 +0000 Subject: [PATCH 11/38] chore:revert back some of ci yml jinja changes --- .../workflows/ci.yml.jinja" | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index f1e96efd1..bfc7dda52 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -14,9 +14,15 @@ jobs: tox: pre-commit,type-checking {% raw %} test: + strategy: + matrix: + runs-on: ["ubuntu-latest"] # can add windows-latest, macos-latest + python-version: ["3.11", "3.12", "3.13", "3.14"] + fail-fast: false uses: ./.github/workflows/_test.yml with: - runs-on: ubuntu-latest + runs-on: ${{ matrix.runs-on }} + python-version: ${{ matrix.python-version }} {% endraw %}{% if docker %}{% raw %} container: needs: test @@ -27,8 +33,7 @@ jobs: permissions: contents: read packages: write -{% endraw %}{% endif %} - {% if sphinx %} +{% endraw %}{% endif %}{% if sphinx %} docs: uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.24.1 with: @@ -36,6 +41,7 @@ jobs: # uv and Node are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs build-command: uv run --locked tox -e docs html-dir: build/html + {% endif %} dist: uses: ./.github/workflows/_dist.yml {% if pypi %} From 77f8fea3fce536cbdfe6353116af595e10854619 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 15:25:37 +0000 Subject: [PATCH 12/38] chore:remove extra endif --- .../workflows/ci.yml.jinja" | 1 - 1 file changed, 1 deletion(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index bfc7dda52..179dc3e89 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -70,4 +70,3 @@ jobs: pages: write id-token: write statuses: write - {%endif} From beb39c0b5f36ae3e6a85e6dcc46833d3ea5af222 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 15:56:13 +0000 Subject: [PATCH 13/38] chore: cahnges to conf.py files --- docs/conf.py | 2 +- template/{% if sphinx %}docs{% endif %}/conf.py.jinja | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index b3e5c1ba6..d50ff7e7d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -126,7 +126,7 @@ "json_url": switcher_json, "version_match": version, }, - "check_switcher": True, + "check_switcher": False, "navbar_end": ["theme-switcher", "navbar-icon-links", "version-switcher"], } diff --git a/template/{% if sphinx %}docs{% endif %}/conf.py.jinja b/template/{% if sphinx %}docs{% endif %}/conf.py.jinja index 92ea6b5f1..03eb63735 100644 --- a/template/{% if sphinx %}docs{% endif %}/conf.py.jinja +++ b/template/{% if sphinx %}docs{% endif %}/conf.py.jinja @@ -168,7 +168,7 @@ html_theme_options = { "version_match": version, }, "check_switcher": False, - "navbar_end": ["theme-switcher", "icon-links", "version-switcher"], + "navbar_end": ["theme-switcher", "navbar-icon-links", "version-switcher"], "navigation_with_keys": False, } From 98d9e5f99f42c2b1d52aeba492577730731434bf Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 16:15:44 +0000 Subject: [PATCH 14/38] ci: remove dist job from ci.yml --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6cd6334c2..82b67804a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,9 +25,6 @@ jobs: build-command: uv run --locked tox -e docs html-dir: build/html - dist: - uses: ./.github/workflows/_dist.yml - example: needs: test if: github.ref_name == 'main' From cc2c0baa94565ce7be3ccefa80620ac41eb0a683 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 20 Aug 2026 11:00:57 +0000 Subject: [PATCH 15/38] chore: update uv lock and jinja file --- .../workflows/ci.yml.jinja" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 179dc3e89..5d1133b53 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -58,6 +58,7 @@ jobs: uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.24.1 permissions: contents: write + {% if sphinx %}{% raw %} publish: needs: [docs] if: github.repository == 'DiamondLightSource/python-copier-template' && github.ref_type == 'tag' #publish only on tags @@ -70,3 +71,4 @@ jobs: pages: write id-token: write statuses: write + {% endraw %}{% endif %} From cfffc411a089470c3aa9dc471a5a906cfa7adb77 Mon Sep 17 00:00:00 2001 From: Shreelakshmi Iyengar Date: Thu, 10 Sep 2026 12:02:48 +0100 Subject: [PATCH 16/38] ci: upgrade docs pipeline from v0.24 to v0.27.0 --- .github/workflows/ci.yml | 18 +-------- .github/workflows/publish-dispatch.yml | 36 ----------------- .github/workflows/publish.yml | 39 +++++++++++++++++++ .../workflows/ci.yml.jinja" | 18 +-------- .../workflows/publish-dispatch.yml" | 36 ----------------- .../workflows/publish.yml" | 39 +++++++++++++++++++ 6 files changed, 82 insertions(+), 104 deletions(-) delete mode 100644 .github/workflows/publish-dispatch.yml create mode 100644 .github/workflows/publish.yml delete mode 100644 "template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" create mode 100644 "template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82b67804a..a84be1d52 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest docs: # Call the docs building workflow directly - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.24.1 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 with: # Whatever turns your sources into docs/_build/html at $BASE_URL. uv and Node # are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs @@ -35,20 +35,6 @@ jobs: release: needs: [test, docs] if: github.ref_type == 'tag' # tag pushes only - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.24.1 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.27.0 permissions: contents: write # create the Release + attach assets - - publish: - needs: [docs] - # don't publish a pages site in the fork's org - if: github.repository == 'DiamondLightSource/python-copier-template' && github.ref_type == 'tag' # publish only on tags - uses: ./.github/workflows/publish-dispatch.yml # your workflow (below) - with: - version-name: ${{ needs.docs.outputs.version-name }} - permissions: - contents: read - actions: write - pages: write - id-token: write - statuses: write diff --git a/.github/workflows/publish-dispatch.yml b/.github/workflows/publish-dispatch.yml deleted file mode 100644 index 4a02e00d0..000000000 --- a/.github/workflows/publish-dispatch.yml +++ /dev/null @@ -1,36 +0,0 @@ -# .github/workflows/publish-dispatch.yml -name: Publish (dispatch) -on: - workflow_call: # ci.yml's `publish` job, for every event - inputs: - version-name: {required: false, default: "", type: string} - # tag re-dispatch + fork-PR preview + manual re-deploy - workflow_dispatch: - inputs: - pr: - description: "Fork PR to approve + preview (empty = re-deploy)" - required: false - default: "" - retry-until: - description: "Internal = epoch-second retry deadline. Don't set manually." - required: false - default: "" - -jobs: - publish: - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish.yml@v0.24 - with: - # "" on dispatch → pure durable gather - version-name: ${{ inputs.version-name }} - # set (dispatch) → pin that fork head SHA - pr: ${{ inputs.pr }} - # the file the tag re-dispatch re-fires - dispatch-workflow: publish-dispatch.yml - # forwarded so the re-dispatch job's auto-retry can re-fire this shim - retry-until: ${{ inputs.retry-until }} - permissions: - contents: read - actions: write - pages: write - id-token: write - statuses: write diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 000000000..8f2399c9e --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,39 @@ +name: Publish + +on: + # matches ci.yml's `name:`, NOT its filename + workflow_run: + workflows: [CI] + types: [completed] + + # fork-PR previews and manual re-deploys + workflow_dispatch: + inputs: + pr: + description: "Fork PR to approve + preview (empty = re-deploy)" + required: false + default: "" + +jobs: + publish: + # Both guards fail OPEN — copy them verbatim. + # conclusion == 'success' : workflow_run fires on failures too + # head_repository == this repo : workflow_run holds a WRITE token even when a + # fork's PR triggered it (the pwn-request shape) + # The repository check keeps forks of blueapi from publishing to their own Pages. + if: >- + github.repository == 'DiamondLightSource/blueapi' && + (github.event_name == 'workflow_dispatch' || + (github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.head_repository.full_name == github.repository)) + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish-gh-pages.yml@v0.27.0 + with: + pr: ${{ inputs.pr }} + max-releases: "30" + max-prs: "20" + permissions: + contents: read + actions: read # gather cross-run docs artifacts + pages: write + id-token: write + statuses: write # record the fork-preview approval / preview link diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 5d1133b53..580236714 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -35,7 +35,7 @@ jobs: packages: write {% endraw %}{% endif %}{% if sphinx %} docs: - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.24.1 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 with: # Whatever turns your sources into docs/_build/html at $BASE_URL. # uv and Node are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs @@ -55,20 +55,6 @@ jobs: release: needs: [dist, test{% if sphinx %}, docs{% endif %}] if: github.ref_type == 'tag' - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.24.1 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.27.0 permissions: contents: write - {% if sphinx %}{% raw %} - publish: - needs: [docs] - if: github.repository == 'DiamondLightSource/python-copier-template' && github.ref_type == 'tag' #publish only on tags - uses: ./.github/workflows/publish-dispatch.yml # your workflow (below) - with: - version-name: ${{ needs.docs.outputs.version-name }} - permissions: - contents: read - actions: write - pages: write - id-token: write - statuses: write - {% endraw %}{% endif %} diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" deleted file mode 100644 index 90ca411df..000000000 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish-dispatch.yml" +++ /dev/null @@ -1,36 +0,0 @@ -# .github/workflows/publish-dispatch.yml -name: Publish (dispatch) -on: - workflow_call: # ci.yml's `publish` job, for every event - inputs: - version-name: {required: false, default: "", type: string} - # tag re-dispatch + fork-PR preview + manual re-deploy - workflow_dispatch: - inputs: - pr: - description: "Fork PR to approve + preview (empty = re-deploy)" - required: false - default: "" - retry-until: - description: "Internal = epoch-second retry deadline. Don't set manually." - required: false - default: "" - -jobs: - publish: - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish.yml@v0.24.1 - with: - # "" on dispatch → pure durable gather - version-name: ${{ inputs.version-name }} - # set (dispatch) → pin that fork head SHA - pr: ${{ inputs.pr }} - # the file the tag re-dispatch re-fires - dispatch-workflow: publish-dispatch.yml - # forwarded so the re-dispatch job's auto-retry can re-fire this shim - retry-until: ${{ inputs.retry-until }} - permissions: - contents: read - actions: write - pages: write - id-token: write - statuses: write diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" new file mode 100644 index 000000000..8f2399c9e --- /dev/null +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" @@ -0,0 +1,39 @@ +name: Publish + +on: + # matches ci.yml's `name:`, NOT its filename + workflow_run: + workflows: [CI] + types: [completed] + + # fork-PR previews and manual re-deploys + workflow_dispatch: + inputs: + pr: + description: "Fork PR to approve + preview (empty = re-deploy)" + required: false + default: "" + +jobs: + publish: + # Both guards fail OPEN — copy them verbatim. + # conclusion == 'success' : workflow_run fires on failures too + # head_repository == this repo : workflow_run holds a WRITE token even when a + # fork's PR triggered it (the pwn-request shape) + # The repository check keeps forks of blueapi from publishing to their own Pages. + if: >- + github.repository == 'DiamondLightSource/blueapi' && + (github.event_name == 'workflow_dispatch' || + (github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.head_repository.full_name == github.repository)) + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish-gh-pages.yml@v0.27.0 + with: + pr: ${{ inputs.pr }} + max-releases: "30" + max-prs: "20" + permissions: + contents: read + actions: read # gather cross-run docs artifacts + pages: write + id-token: write + statuses: write # record the fork-preview approval / preview link From 4bc49b328a22f441f59357c0e0a8b9e2eefbc250 Mon Sep 17 00:00:00 2001 From: Shreelakshmi Iyengar Date: Thu, 10 Sep 2026 13:45:07 +0100 Subject: [PATCH 17/38] chore: remove a few package names from renovate --- template/renovate.json.jinja | 3 --- 1 file changed, 3 deletions(-) diff --git a/template/renovate.json.jinja b/template/renovate.json.jinja index 5e52f7a6b..232fae065 100644 --- a/template/renovate.json.jinja +++ b/template/renovate.json.jinja @@ -22,15 +22,12 @@ "actions/checkout", "astral-sh/setup-uv", "actions/upload-artifact", - "actions/download-artifact", - "softprops/action-gh-release", "codecov/codecov-action"{% if docker %}, "docker/setup-buildx-action", "docker/login-action", "docker/build-push-action", "docker/metadata-action"{% endif %}{% if pypi %}, "pypa/gh-action-pypi-publish"{% endif %}{% if sphinx %}, - "peaceiris/actions-gh-pages"{% endif %} ], "matchManagers": [ "github-actions" From edafb0d26d8dedcf1fc1a35cba6b91f38af2ccc5 Mon Sep 17 00:00:00 2001 From: Shreelakshmi Iyengar Date: Thu, 10 Sep 2026 13:50:17 +0100 Subject: [PATCH 18/38] chore: formatting changes in pyproject.toml --- template/pyproject.toml.jinja | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/template/pyproject.toml.jinja b/template/pyproject.toml.jinja index 418e8100b..ea14d52d0 100644 --- a/template/pyproject.toml.jinja +++ b/template/pyproject.toml.jinja @@ -59,8 +59,10 @@ version_file = "src/{{ package_name }}/_version.py" typeCheckingMode = "strict" {% else %} typeCheckingMode = "standard" -{% endif %}reportMissingImports = false # Ignore missing stubs in imported modules -{% endif %}{% if type_checker=="mypy" %} +{% endif %} +reportMissingImports = false # Ignore missing stubs in imported modules +{% endif %} +{% if type_checker=="mypy" %} [tool.mypy] ignore_missing_imports = true # Ignore missing stubs in imported modules {% endif %} From 73821b83b648a55a6b04b4f04ccf402f36a8e22c Mon Sep 17 00:00:00 2001 From: Shreelakshmi Iyengar Date: Fri, 11 Sep 2026 10:10:01 +0100 Subject: [PATCH 19/38] remove if in renovate.json.jinja --- template/renovate.json.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/renovate.json.jinja b/template/renovate.json.jinja index 232fae065..83024640d 100644 --- a/template/renovate.json.jinja +++ b/template/renovate.json.jinja @@ -27,7 +27,7 @@ "docker/login-action", "docker/build-push-action", "docker/metadata-action"{% endif %}{% if pypi %}, - "pypa/gh-action-pypi-publish"{% endif %}{% if sphinx %}, + "pypa/gh-action-pypi-publish"{% endif %}, ], "matchManagers": [ "github-actions" From ae89f4acd24312628e0e2441493bc5dbde76d9b3 Mon Sep 17 00:00:00 2001 From: Shreelakshmi Iyengar Date: Fri, 11 Sep 2026 16:13:46 +0100 Subject: [PATCH 20/38] remove trailing comma --- template/renovate.json.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/renovate.json.jinja b/template/renovate.json.jinja index 83024640d..01e894375 100644 --- a/template/renovate.json.jinja +++ b/template/renovate.json.jinja @@ -27,7 +27,7 @@ "docker/login-action", "docker/build-push-action", "docker/metadata-action"{% endif %}{% if pypi %}, - "pypa/gh-action-pypi-publish"{% endif %}, + "pypa/gh-action-pypi-publish"{% endif %} ], "matchManagers": [ "github-actions" From 71341f04c5e0e5de2cfe3bfe172cb4cf860b27d1 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 14 Sep 2026 12:34:52 +0000 Subject: [PATCH 21/38] chore: rearrange order in renovate.json --- template/renovate.json.jinja | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/template/renovate.json.jinja b/template/renovate.json.jinja index 01e894375..2d461a922 100644 --- a/template/renovate.json.jinja +++ b/template/renovate.json.jinja @@ -27,7 +27,8 @@ "docker/login-action", "docker/build-push-action", "docker/metadata-action"{% endif %}{% if pypi %}, - "pypa/gh-action-pypi-publish"{% endif %} + "pypa/gh-action-pypi-publish", + "actions/download-artifact"{% endif %} ], "matchManagers": [ "github-actions" From 47f7612e822f46e355cc79e980e8b8fb0599f665 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 14 Sep 2026 14:13:13 +0000 Subject: [PATCH 22/38] ci: add install graphviz --- .github/workflows/ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a84be1d52..ba9f868f8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,12 @@ jobs: with: runs-on: ubuntu-latest + install-graphviz: + runs-on: ubuntu-latest + steps: + - name: Install system packages + run: sudo apt-get update && sudo apt-get install -y graphviz + docs: # Call the docs building workflow directly uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 with: From 26df0ae9e14d632095e768cb050a1929eccd6157 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 14 Sep 2026 14:15:36 +0000 Subject: [PATCH 23/38] ci: add needs install graphviz to docs --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ba9f868f8..7f942094a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,7 @@ jobs: run: sudo apt-get update && sudo apt-get install -y graphviz docs: # Call the docs building workflow directly + needs: install-graphviz uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 with: # Whatever turns your sources into docs/_build/html at $BASE_URL. uv and Node From 8e03b1e885e0f78848f4ff736d700dd3a2666cbe Mon Sep 17 00:00:00 2001 From: root Date: Mon, 14 Sep 2026 14:26:33 +0000 Subject: [PATCH 24/38] ci: add install graphviz to ci.yml.jinja file --- .../workflows/ci.yml.jinja" | 6 ++++++ 1 file changed, 6 insertions(+) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 580236714..41cb9c409 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -34,6 +34,12 @@ jobs: contents: read packages: write {% endraw %}{% endif %}{% if sphinx %} + install-graphviz: + runs-on: ubuntu-latest + steps: + - name: Install system packages + run: sudo apt-get update && sudo apt-get install -y graphviz + docs: uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 with: From f2713eef96644c663b7013fe13808b98e32aaa60 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 6 Oct 2026 13:52:22 +0000 Subject: [PATCH 25/38] fix indentation --- .github/workflows/publish.yml | 6 +++--- .../workflows/ci.yml.jinja" | 8 ++++---- .../workflows/publish.yml" | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8f2399c9e..37cf096b1 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -22,7 +22,7 @@ jobs: # fork's PR triggered it (the pwn-request shape) # The repository check keeps forks of blueapi from publishing to their own Pages. if: >- - github.repository == 'DiamondLightSource/blueapi' && + github.repository == 'DiamondLightSource/python-copier-template' && (github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_repository.full_name == github.repository)) @@ -33,7 +33,7 @@ jobs: max-prs: "20" permissions: contents: read - actions: read # gather cross-run docs artifacts + actions: read # gather cross-run docs artifacts pages: write id-token: write - statuses: write # record the fork-preview approval / preview link + statuses: write # record the fork-preview approval / preview link diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 41cb9c409..3ac9b436e 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -35,10 +35,10 @@ jobs: packages: write {% endraw %}{% endif %}{% if sphinx %} install-graphviz: - runs-on: ubuntu-latest - steps: - - name: Install system packages - run: sudo apt-get update && sudo apt-get install -y graphviz + runs-on: ubuntu-latest + steps: + - name: Install system packages + run: sudo apt-get update && sudo apt-get install -y graphviz docs: uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" index 8f2399c9e..5750f4ee2 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" @@ -22,7 +22,7 @@ jobs: # fork's PR triggered it (the pwn-request shape) # The repository check keeps forks of blueapi from publishing to their own Pages. if: >- - github.repository == 'DiamondLightSource/blueapi' && + github.repository == {{ package_name}}/{{repo_name }} && (github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_repository.full_name == github.repository)) @@ -33,7 +33,7 @@ jobs: max-prs: "20" permissions: contents: read - actions: read # gather cross-run docs artifacts + actions: read # gather cross-run docs artifacts pages: write id-token: write - statuses: write # record the fork-preview approval / preview link + statuses: write # record the fork-preview approval / preview link From 65a4d76c6661dcb40680dfbcb98766755d6c2338 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Oct 2026 08:22:08 +0000 Subject: [PATCH 26/38] remove install graphviz --- .github/workflows/ci.yml | 7 ------- .../workflows/ci.yml.jinja" | 6 ------ 2 files changed, 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f942094a..a84be1d52 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,14 +17,7 @@ jobs: with: runs-on: ubuntu-latest - install-graphviz: - runs-on: ubuntu-latest - steps: - - name: Install system packages - run: sudo apt-get update && sudo apt-get install -y graphviz - docs: # Call the docs building workflow directly - needs: install-graphviz uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 with: # Whatever turns your sources into docs/_build/html at $BASE_URL. uv and Node diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 3ac9b436e..580236714 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -34,12 +34,6 @@ jobs: contents: read packages: write {% endraw %}{% endif %}{% if sphinx %} - install-graphviz: - runs-on: ubuntu-latest - steps: - - name: Install system packages - run: sudo apt-get update && sudo apt-get install -y graphviz - docs: uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 with: From 8fa32d35e7f29df4aafd57f66a27078fd175b18f Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Oct 2026 09:28:12 +0000 Subject: [PATCH 27/38] chore: update to v 0.28 --- .github/workflows/ci.yml | 4 ++-- .github/workflows/publish.yml | 2 +- .../workflows/ci.yml.jinja" | 4 ++-- .../workflows/publish.yml" | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a84be1d52..6e17cc296 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest docs: # Call the docs building workflow directly - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.28.0 with: # Whatever turns your sources into docs/_build/html at $BASE_URL. uv and Node # are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs @@ -35,6 +35,6 @@ jobs: release: needs: [test, docs] if: github.ref_type == 'tag' # tag pushes only - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.27.0 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.28.0 permissions: contents: write # create the Release + attach assets diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 37cf096b1..4ec83a596 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -26,7 +26,7 @@ jobs: (github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_repository.full_name == github.repository)) - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish-gh-pages.yml@v0.27.0 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish-gh-pages.yml@v0.28.0 with: pr: ${{ inputs.pr }} max-releases: "30" diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 580236714..1bf9d5f32 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -35,7 +35,7 @@ jobs: packages: write {% endraw %}{% endif %}{% if sphinx %} docs: - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.27.0 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.28.0 with: # Whatever turns your sources into docs/_build/html at $BASE_URL. # uv and Node are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs @@ -55,6 +55,6 @@ jobs: release: needs: [dist, test{% if sphinx %}, docs{% endif %}] if: github.ref_type == 'tag' - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.27.0 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/release.yml@v0.28.0 permissions: contents: write diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" index 5750f4ee2..653138996 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" @@ -26,7 +26,7 @@ jobs: (github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_repository.full_name == github.repository)) - uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish-gh-pages.yml@v0.27.0 + uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish-gh-pages.yml@v0.28.0 with: pr: ${{ inputs.pr }} max-releases: "30" From 4ce72951c14edb2c60e27105f501e1a45c621eb3 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Oct 2026 10:09:36 +0000 Subject: [PATCH 28/38] style: change typo blueapi to python copier template --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4ec83a596..f56b7dafe 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,7 +20,7 @@ jobs: # conclusion == 'success' : workflow_run fires on failures too # head_repository == this repo : workflow_run holds a WRITE token even when a # fork's PR triggered it (the pwn-request shape) - # The repository check keeps forks of blueapi from publishing to their own Pages. + # The repository check keeps forks of python copier template from publishing to their own Pages. if: >- github.repository == 'DiamondLightSource/python-copier-template' && (github.event_name == 'workflow_dispatch' || From 3d934a50f9071298aa1c0326bf688d6a05894194 Mon Sep 17 00:00:00 2001 From: Hiran Wijesinghe Date: Wed, 7 Oct 2026 12:09:19 +0100 Subject: [PATCH 29/38] ci: install graphviz for docs build The shared docs workflow only installs uv, so sphinx.ext.graphviz warns that 'dot' is missing and --fail-on-warning fails the build. Co-Authored-By: Claude Sonnet 5.5 --- .github/workflows/ci.yml | 2 +- .../workflows/ci.yml.jinja" | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6e17cc296..385bf17b5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: with: # Whatever turns your sources into docs/_build/html at $BASE_URL. uv and Node # are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs - build-command: uv run --locked tox -e docs + build-command: sudo apt-get install -y graphviz && uv run --locked tox -e docs html-dir: build/html example: diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 1bf9d5f32..1d6ba2ef0 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -39,7 +39,7 @@ jobs: with: # Whatever turns your sources into docs/_build/html at $BASE_URL. # uv and Node are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs - build-command: uv run --locked tox -e docs + build-command: sudo apt-get install -y graphviz && uv run --locked tox -e docs html-dir: build/html {% endif %} dist: From 5bd01b89de7dc2406d21edbcd9651148c27dba3e Mon Sep 17 00:00:00 2001 From: Hiran Wijesinghe Date: Wed, 7 Oct 2026 12:11:23 +0100 Subject: [PATCH 30/38] chore: allow devcontainer to use the TUN device Co-Authored-By: Claude Sonnet 5.5 --- .devcontainer/devcontainer.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c12cce59d..f9e47e82c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -49,7 +49,9 @@ // Allow the container to access the host X11 display and EPICS CA "--net=host", // Make sure SELinux does not disable with access to host filesystems like tmp - "--security-opt=label=disable" + "--security-opt=label=disable", + // Allow the container to use the TUN device + "--device=/dev/net/tun" ], "mounts": [ // Mount in the user terminal config folder so it can be edited From b6abd38eab6b4cc66a6718319d8a7024ebf86dbe Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Oct 2026 12:47:37 +0000 Subject: [PATCH 31/38] remove ending html from path --- .../CONTRIBUTING.md.jinja" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" index fc2a1a036..5c7d7f331 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" @@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects. -For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/{{ _copier_answers._commit.split('-')[0] }}/how-to.html). +For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/{{ _copier_answers._commit.split('-')[0] }}/how-to/). From 534c0f198f4ca389f83e3b004c9bfe4d82ad83c3 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Oct 2026 12:57:59 +0000 Subject: [PATCH 32/38] chore: remove obselete code in template contributing.md --- .../CONTRIBUTING.md.jinja" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" index 5c7d7f331..6173a7a81 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" @@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects. -For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/{{ _copier_answers._commit.split('-')[0] }}/how-to/). +For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/main/how-to/). From 57b8110e43762fd5d79ed1f69dd9a64a886bc2d2 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Oct 2026 13:13:28 +0000 Subject: [PATCH 33/38] chore: fix url --- .../CONTRIBUTING.md.jinja" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" index 6173a7a81..d929faacb 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" @@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects. -For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/main/how-to/). +For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/main/how-to.html). From 10754f98d018b400fcfad046c17c042a84de809e Mon Sep 17 00:00:00 2001 From: root Date: Wed, 7 Oct 2026 15:33:03 +0000 Subject: [PATCH 34/38] docs: update how-to page on building docs --- docs/how-to/build-docs.md | 6 +++++- docs/images/gh-pages-setup.png | Bin 123700 -> 0 bytes docs/images/github-pages-actions-setup.png | Bin 0 -> 106292 bytes 3 files changed, 5 insertions(+), 1 deletion(-) delete mode 100644 docs/images/gh-pages-setup.png create mode 100644 docs/images/github-pages-actions-setup.png diff --git a/docs/how-to/build-docs.md b/docs/how-to/build-docs.md index 2351d0e51..ceda35213 100644 --- a/docs/how-to/build-docs.md +++ b/docs/how-to/build-docs.md @@ -41,8 +41,12 @@ $ tox -e docs-autobuild -- --watch tests (building-docs-in-ci)= ## Building docs in CI +Docs are built using the [myst-version-switcher-plugin](https://github.com/DiamondLightSource/myst-version-switcher-plugin). + After a successful run of CI Settings > Pages -![Setup GitHub Pages](../images/gh-pages-setup.png) +![Setup GitHub Pages](../images/github-pages-actions-setup.png) + +If your repo was using the ```gh-pages``` branch to publish docs, follow the [migration instructions](https://diamondlightsource.github.io/myst-version-switcher-plugin/main/how-to/) to now use Github Actions. diff --git a/docs/images/gh-pages-setup.png b/docs/images/gh-pages-setup.png deleted file mode 100644 index db083b7e797bbb3bed6f2b2dc3f4c053066ccaed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123700 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�DPv>)P%CURM6es*>wod)~x5d%f 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�$O?qaX|vuku2!Zh36i_-ihTfU@!A{O!F_Wc2jq+FIL;2Pr`iIk%g}WE98`| z@9g~CcxRNY&0IX1Q8K+V==l6t^xWA$jKX*!3rkc~)HrH`4bf{o%4q0Aa(28~S%IE- z%Wt32diT|7v{{F}Ptg{d_=1BB6D(jah=_^_mu@b0#giNF!H@tJ&b%BcY^KZ*d|5#vu>7W_#!``%{JUCtd`{YvL$_N0 zhm-^YJDPhhoh6mjy&;YZT~i2o%EJRhhh>E-5^&RcJL~>;mEAZYH4rYFD;Wzv2Jb6D z;7Lqj!P2UhF$;i z>F!VwX`~yZQ;=>D6p)r~knZl9oH5thYwvxX>-^tu?{&`l;##f=^B2$aj4|$U-}eZk zqpxE59N4)z)N*g?{O#JpuW@dJlMzacYWo0EEn>X---sqqf z0z@M%J%!gj@>HI8jFrQ$zqz!8u$*qZmLU-v|A@tKLDH7pACFOgNm^k0H1sjRVcyE1 z8qQG=wcXzvF0lgi`d;Bz{q|-_BGo^Yo&pyd-KipX0*G1OA7kJ#8?@n$k2eExO*rJC zFeKTO9{JkR!HIlM2eRDK@mzOcjly0ZE_NW3EzrinA<8BEux|Uu7`{7A%>zjF#Qd(& zC;O|#mOT#_oH`b_Q*U5mV*b+pf*Wx`u6n@VF%wU^Rvl{jM33aEDI4#n1 zFTDQAZ~Y1~K7zB9Pj^^!^sjaGa%4f68RC&h@JvT#@!rY=PiN8Vrhx3(IU!S1VsJ<3 z`ndEjZ0_Q5D9T1^+he+bghz%p0`opAP$Sj8WGa7#{-tcOk|fYyeZ0M|6LFd!)l2i< z{5yVHC)uJp8rvSJMg>|D(M$QU$?T7lKA_!a)D_*h$+zj|NCLWi=R^B5satOYf3k^$!^=TQIre*bJ^r|KCy}Jg=yp1 zf8W+$shiIQes8+MKL{ker~m!(ehaXA!~1jns*fr5&n;<-HUGE67u;c#+&}*he)s=F z&*T65O{9g4UD8jtxVWUE7Ww^RPV`{ypljXoU+WL`kbWs7noonj7CAjV{iQ6GRy+=l zQjMTj|Mj>!=9lrz%j^%bva_uo%{?_}Q`0jxZUwyd((l2pPvY&7Dp9%5?uxx<)OQ71w0{PVJqlwb|vs!c@_ayB&!-pu&}L92N`M{OlN_O@y6Jsuep@O zpe^zP#SJXry408LQa+8n`Q)DQo+QqmKkl^f90oSo&iqajMx_etf8OfDg0?<}@ip2J z;E&TCY)oQ#nmu+IC^GDfgGj(}`HJ)%V%LP&(p8yMB{PVensuAct@LnQU9q=T_UV8K zByA-xPfsuYyUa}_k=H$-p!+#JJ;U;NDG#En3oA?CDEOikC!Wg+mnhB;;xDGzx~uJ3 zK8Ei$`r62H=NM;C$>tWrM~u})v6%mQQZ)?SWtMF0>?sx5G)O9GNZRy(i5Rv&2FZFbXRu&RXlK53l(9B}rhf%d7^-W=EE56MTF= zt&P;;ES_K)4>aHNgxeTdDcvSxy!4-o*yd;}))X_N8@bf#TmEv2yx zCfyE}?MXpU9j$fbZQ>f{IGy1E8!xaLbU2{pDqq8pCRQ zx!6czb|Zl&i>`m9)CSGQP|7Ik5E~I&QS!h8c?O;RxgjSTl|ol^4{h|6_)?C0v4HkkK_z;%QKo9v;?45C_5*h$ zR$qp+(ZZT4cToXW+!HV_3T7Jp1d;Br@dpblds|2}zoOydm;8L>2o72x2`6^>8;eB-)L}JYoARQ@x=+I_DU%uHhu27H&jvtAgA#T~ZM(1m-s{rq)R=e|Y zHa1eLv0LzsvA%xu=2yvbAGh-v0eNzAJeO0bF`HqU-&9jN_orY|#q)%n6HZq487)Vy zvIx_@H5UMmsZ z(@`j)zJ$z-W;QQbSv>B`R49>j|D}O-v+-wt!1X}FzMMe1{rJ_?ujx%cK1~bpdq_pl z4p`=?`j-J^B)1I5s*nZfv*-}BHPlMJch#|eK)VpScrGYI-T!7}G$Q%OOI;JAV7ct8 ze<{R7v;o<|;(h8_yJM74jp3Z_gy9YYqqa32X><_rBYDgi&!K;<7;+ zAD9?Ja__`cSdhvIQ^Y_6^YDBjl;H3>B96>nSEuhGr=W6WQOV;d-c=i?=T{n$gdg*L z8PZ3)y4SzSLE+J~_`P8qTW}tZv@=#CY*~vG8=i1>R1c;-lEH>2fPLq!#>2z;et3k0 z?d^w40_%h8>hxMQNB)PY5UR%4RePm;qdYC@zFVCw0JvYpAwqD=dd}hdnjdb_wL}G1#zvf25vfVZ`jNp4O$U17qq#_FdVk9}jV3ugNsmx6Utx zlJGf0ynY2`t@pLW#7YwHBOws6pc=!ar`=d@-@b*K1C%Eh!6dUu74^F-d?)Ecuk6d} zp<|n?l=sUv;Ue_x_~zC_)=)@!`{>*K57+kYv-vm@JU=ZnQ!Koui9NFw@&nNK9w0L= zxHwww8d7swcrRF&+;3kmI^XTy*RBcnNJZkj@HyPk$0+}RcEF-L{>I$vYNoSWx48vn z08u9t;()2P;}uAD#6O7{Vau?#ywHLNjBq?#x&z!s-IX+7$BwukP!%ek-r%web*k?$ zgulzvI!2RD;=dHy;;df$_HkdP)N8*}N2E$sG#rnJcwVaj)CYTiT6M&5kO)lG^gR^3 z5mF4#hFYOHrW(yCH`HvCW_IfKnGutg7xCq1eA>?yqvYc1c&K$W66MVJm`&Je$6EUO zS$ZmuJK~#nF-Lw2jlI0vte3@mf*J8Csj&pfEOT12!o#wGm6e_RyZ5D} zCQh;Uqi+|>Tmut=S?t465ASIxtiHX+n(TVGuV91GSk;mg&4u+H{>YiXCP6D#7ll92 zd=Ypq-9oLDDw4BHvpexRr&2RxW!PV(()r8p-%^|ztzlHTRq^-l6BgPYvm)#4Bf#;8 z*#lXS(`w3}k)PkS#G-eD*T%cgsGHUG=M7w%HbHs$upYf;%eJW`NI~<|imyY$J+Na> z^3-xp#X5>~O3=MOcM+4K{Or|;X6Mg-z&SXr_eVJ(3I6&0`3Dr?;q!Q{N%y21CLwP$ zMik>6;=7HZ2JOG11nO6~?wQd+vHBz*4b5g|P87^8BGzqQEf*y4&}i53lGZ!30(^rY zCMFp!HM-S6PENeFohmD_b4~&Y3@IdsdxJt_J z9BvWIE_<$7W~#dJ@za&h_0KNBpD2j$09cH-&QCMB58&&zx1zh-6mu&`i92XKJg#Gr z#=lK?k`MLQvGweNr2XcEe^^-9+Y!L1EUk>Y;FBta)&?2#2pw?fX&cC`wBDzsl1kJc z-kQ!acTv@(1MkoPVh%qL)>}QI$E^SH$;!$&adIp=y<_Ih@Hg_wYWtoPVT{Y&@v?yt zW7QVgmoHyIzk!)Hb?cnldW~QpM;YyVStx^+dKv1`GXn9`!XH01H8<|-u9%aD%jRfP z?beopK<;2(>&}@#U32evs@JWuKo!XBS8;?3`uK)Ben|3{}QUI3)Re3th4-N}zcZeXKNmpA$M{C-t$_Cjg? zvmAKHWNFv)ga7EOusr9}1uVWQhnDVcd{5L1w4>?F3F`cHnxEki;IiB zql*o^RH-Ds_FLy33JhZ&TMxdfl{T84Io56Ve2_|bT5RTGtvo9I^`gl6B|s!nzrs+Z z)Gvl>ei4FL94Q-`uN;oYTF8YyX-n;%Otot|;aCNJTmMnHdFsDnhehI6;;)i%a@=3o zzxOrnOS)0VzG6b9izQx@$w7)^C;!MKf6{Ywi3GG=IGfRXLI@N$UTw$LR@PeFRL0|6 zoDY1YQhIUkV-;l<%{Qbw153!^k&7ykmIjZf>W`2dH{<1dKQf~5nckmQ6s2)HU`w== zOv?Ci+g|zJ+eE^^rg8UH;tRwfdZJPUY`i~LvM}&2KL5OcUDiT{8v5AI$rFcpc2!b z_fYuDPL0F>N93|hUNj37!SG_EG9=?z?N$`Lk$X5(9#eeki=XA;+WL(<64*X*_NNRn42eDh}lWWT$r^k#C@z_yDcqr7Xo%N|7L9Db9_M)R%=I z;f&=lYXm;Jl~R{B=>18!?` zI4j+!;E3`v6g0KF*p*q$OF`k)9@Xof|7+=llZB$@5*S^QaLvF#saO0IsI>x?L%( zKK1@*#hY++mYg9!1@$Q3>(InqKghc#xS6K;PmV$~>8_YH@u1WsN zcV%_=g>xOIr?U<2o6C1HP!CM8ben^OX2-*KiXWX^e;1)O$#wae(D%0iCi}vIEuLpD z4SM=n=DJ87!hN@E+z7>zS+QjLULkiZ6uz=CSsd?f&B+b8@7|;Fbw9Rnv~?yq#uVE= zvG=5&Kowq zBPcE&w!!C&+S&P6H81J(XN73otO^JW#QM0u@9Q57a?c5{WDba7GyG%o=K&#MHjcU7 z3YV_FzSpT2I_S(mVotqJ^h8L0SMaV7{4($ZLS?w8ha1zgtNxYQGziTq`{}uCd3q<# zg`|5dg#{H3c z4>AF40-yYRQd!vo*Zx_xWMsglf4tgTUGEq-%*7!_^MA5Rjp^w6^+s2NGsC zqdj#wp$9zk$`{?#m-izDJ7Y^}%uOZQ@fe^l3M{Z_)ndb0FsO08b?d>d$zv{xXr#c| z_vs(4t-+uG>?xnRg-i1~>#cDTiIkLGalj7<#w>cxTYof78WL+=c26zpZPrw*{ZSpH zV(?N{?C|Hs|Fga>sjp9gpbAR({`04hT}MY3UHYMBIh;r_oPDHM#Q)&}bYDsOz;8NM zH1FRfz_S=Pam1eidB(Dv6?gE(5mva&iXJlw0;=A6EJv6g-{YO)p_ zm~{uL2VcokNheoWS zLf85jbc(RTW}5o=lnm#$SRiek6cPa+@M)Wm{^B-~j2By&06B2mml;zDzUn5sZ_B`c zzM<9`1U&>+!#!$fDObSGHC$M*T^)=t5RXc$c5f^Cs#pyW*+Pl=fZRT^B9N&4fMhZU zos_lufGzi;+;qavibW6Hg8`~1hm*$TaASx1;jYyQeuxrOh-#Db6)YyPKM zCaWpQsnRcOccMD*IfJcQ*(z59^PLRn<0Lu`kQ*CGA(Sji6{c6(>@*|R-Gl@%U&P$b zJUJa$f7U@5^g=TEc_=ISgjqhlndobYojFEPbPHd%dzUt=ChF^Kye~K9(J0l@Jei3`tawkuN-+JBN4u&bwUdY1WAM zkKf*Pn!PQ}Xi9!?JVD=WHJ@`2#V3vBFqvIk^pA?dhniHhSPL2_zlVmTBUGFZ*6t@K zb6)!P?b|bXc^sw!28xh0H4$ayTkzC@8(eW0_b24Z*u-3(Nl9eY4v#&)5B9cYs?|$W z7G2f8CB@M!{(HV%AzMvx{}6VI+~ccSwa(cm6F|NL*;mWdP=1aU@Q!Cd{h;6)8x(Z*FsbVmI&&17WpU#i6RE0w_&a69$=@t@l)YH|S8P4GfyV)s2`@K zc9q4o>sL|cr+`YPi$%RwNDnzRkQB2x7b*7iY8RWf_3S29q zAn@i?Nr6Gj_Gr<^r*it;b7mjSlh9J?^$HfHoeOjbL%z`bqW$&_XX|MLK69G zCE1NxAogu&p@a3+2FpRl9kaR_veuCO%eN*R(z&M ziksbVGF@^!`t##_du3o1GdMz(+m-$d=>|5`D14+lNdWE7Qei6B&{qskw+Pyb>T07? zUd>pJ$4k~L9yyZHT<_Wxa}2);tAX$Z7+yyjcL;8Ohq4n~Tpo~y0z=N&5-oIO1t2J%jCkF;5tLk}Y6^Bcby_|7hUK(vu=mdU-N#SbzUS#+v?LZUlUVxi$; zp`qdTHy#26qS#T$M3ylsQn;d-{d>&+a+8@4=E3|)>@98gfqwR0VkXgJ^2$&GqR!&> z$@m0S(R~}kSdJ*(giDUjxVyp>OjfL zdKVhg-1cV`E8>kVv4n)iLEBcLG>rT~0jN*a>WSnKw1qQDYEos=ca!t*Pb$Tv32E}p zia4A4Mcx}pR-jDIm+7{5GSI(3p0gtthzOs&c?Ku_Vwc;|<#<-|SXT*y*!V6q&T%r0Puz^s|Ic&+%M{f=|`F*~=9(OCuUtbY>nFK?omMTV* zZlcPqyNqNE=!*?4EuR<@1THYNm8`%I$+;0XFgV`^dc&g`umjdcYvUROy|-rOAvca~ z@WvvNGfNtAa_fMwR|oOSlgwjIa_^Js%lf&q`m}L@mebRj+HwolBu`36IeY8KR1>;g zVg{HHgt3Gav;y@JQqERy>P+Tqw#uirwxWX*6G>MG^K~14-n#H?%lTKK$-1+Bx}CkR zzw=~-2NeYhfv*-C9UV;@LkvuuH*ct6YQ@sr#iD?6mWRTpj6+f?O81Hjfyg4$)Ra`m z+oXvrZuAyrftA_WD@k~&nx`=X7dYeNmifw2(5mdqH{-c1jW)B#$Q=^{)!&2NzgFK> zR8vmqCc1_8&Rip22O*|la?FX~w-oyV|ETN-+%1zoGE;OM#T3BC61lL5LM<=hN4b5o6YlF7;F*cjPddj@bsZh*re zW^O|&L9G_?L*U#}6`hz-5nnvENs<;%e9oZHw|DQhXW;ZOz83AtNuX9~yfaxE>1eIXrdH)0ZW;5! zU63vy$JJkS;=Q9JOpwsg(XFkm zSsE{-5E3owzVNt?-HcL9C}kwll5=tlon^;^X_<2Zf*mViz2G^L+;DOp=sXo$28D_9GOY(3?(Y&=%f2F#&>+RqO4>Cfh>@=)^qs0WH#` zyY1tZDypioE!o)Svn@ua=TLuSsO`VSWl#$Mqa_x-1yckjW-n#=+y1=g!HLTbB*=I! zkl8nQzPpm8noEgt_CE9S1)67ygaidGZ7lfoPybm$(MJ-V+JQCLe}B+fl(*r(*0x4?Hk=tRZNGvawZMS7 zdO$S-$OK4jFl-pL>(a!iaXA?hr!nKP2-&|#Pr1XpY6!k^U8dgMZSbqAxP&P^@JIW< zDhH!%Z0F_xp}x{H&<8~;TRRGE5SZuw91)*KB@n5|oo2MbWFwoEUFa~yuQ68E)ZBa> zzSD7YRCsGYpddSMWq7Z~@%Vi?3kxOzyANzPqnxuMu0Tf~9!}az*S& zeuf>I6`0;=T|K>gyUgwCO*1}Iw6%t+F|`>jftkTBE7fN9wanzD<&{E<3-`hEV=ACK zzlLLaIluaQU)WbI^=P(3{3p&%cbwU9H*s6zp%-O3S>cTQ|&*NKbyFWzIo&t*`(+K6Zie6}g`XmK2>FOqDt35HBDhq_EQp|>H zDnL*T4wMuIOTSD)J(H9EY}{Yko_Oh)@T zbA>q43A|14y~{nhXfB8AnXw%52ti;JLNW7FMC4OKwF8S$7ZX^$guqi8 z@v~`k9gTSJJ>XuT_`zpOa-9{hqFS}>2W+)nX{R0XU+iq$+<%$ zqjnegpuZ9mdk8d+AX2`@oCrFV8hsl6PiI*=^6%W;oM-lv5$Ud*byjwuXno_6GJ??rZX0RJkW`K+x^2 zj(ys6u{D}Po+~(5rWpm3f~4>+5L|0r4!_x*V#8pb1ao@e`K8$>jINE92ivcY^^{AK z<-^bc#lh$o_NZZfYz^Ny;keG*G~dFy4YtjG{%c z81vA1-FEVPQH-E?oEH0FdMYE^#LK<%B`<%y>VQFM_$u$+N#5CwcQKWCL-k*?WMv6C z%sVn9i4-+Wd3hIh*N)i?C6W@`d)zdin2!R$_0HH(tpi(9QWETJS{M7`ryn96V?vzSHd}!a+4j>*0f*wOudeLmP&`o< z@Q-^jD00`%4FlJOE0z~@EEGR=muG@rh<~EOuldaZ^Am1LR+gm*ntwVd@be8c*a>gN z{oSLx3j)ld;->UU3^PqOGLe_AGH@y?<|?Pg3feUXo!2PQ!s!mOVx!s_4ORm6}94!XKV79y@18|Q44 zJZY01E=94!v-R{;e_!rjJUbcD04LEcZ+8_}Htgc-KYRjfTGsh+e1j@t$CA%;0kIGT zTIhWN-OC{8{ zhVAEfF?jh{pbZ6dT?$&9ZGrjVvEjUG&kF$h`$gIxV7Qon+VY_LJ;93N+W8a&L6fl~ zks4@Zt{*9;|7+%^5O%1l*gqO+6ua#IB2n;vBgUO);+S8*e!U}Zv7vCbrP6AbvhLH_ zQco%xkPb#hk#UrgTeof?o=F!xK(TZ<*xIeDb$@&+UOJqrr#_HQ2eM89sr0|eUNiM# zkIJw75(|vw$e!9F0)Y)AG_M!6d5%suzc5V}Bqx)jox7sf;dOv^)d_e5*g+gH>4)C= z8b*<2!+T;Mev99IbiW3G@AVo+A!SNi^AP`=E9G-x;`DS{X(IVLgIeVdxa%-#*E}1s zo?q%OC5q!Td$82o#58)i74oRUZS~1Sl|4B*`6W*PyLMIv#3`i{JK(Sd)Ae@Wz9SK1 z6B8UFqSJv5?f+c*g=FG}oLWmZK;#fOI5Bx4C>T)sY0vM^yn_kez1W^!x3sj?8A{~4`pL`k zd&?)_zGg+DU>z%S^MLz2kv8~@`p&$3weRD3Jg`0GFCn>jhD6lW<3J5=b+V?)2m{~V zf5ZSO;kUOJE(aSwfa*jCNqSRT1fpd1_q#_eK`=PUZU=s=8VW;Yw<9Xl;8p??Py+$bh3v0{4Q zph2VuRSDbw&|ecQ=55a5FoBah-rj6%NAH5n(lSeGs?JTZJ?{U|6FRu^{eS2*Dws`G z*_pt)db79^yS%Mc?=Jjb4KTx%J>z~W>(_rgFWIh+UcpkBLgK*BEL)QvNQAp{)bLNFlKpQZ?AsH;^ms!THkq#|Yx_ssG zC8)`DfUgeSvXQ5gE}-=`&KTcPBw$ z5pg_Z@YFlLaYM^jB8=f3rxB3Vs2J6iAj$9UbvV0qis^9hxdgdXXljM0~QJ3X4#Pm0uI<$u3UlD z6F!ZEE&>W}UBSi7VNKMY)haij< z0V7TY5AACEz_he9Q?gAyaSRMtUX@4rbhOWo&QBqB`p7}YbtqrsTz%i=*)xRl`}bV) zo87SZjmIlksHBK5Xqzkk^Jb6Af$tfY;eFkpJ>tsupB(`}gw@fBj(<>GToB;>(t5TA zCZ_0FXn))_>ehFeDmR~ak*)Ard4#{S2yV>^=reBzbI`wty{*kupuHrc++DE*H}^9i zT&$oTWzwqCAI!UN3S^Rjr_1Y{EV9|790YC{DgQ>IYy-z?$n3A0R{92r!MwR0`(1z((UO>|Zs@CSu$%3fCC=j}H z49rGLo@XmqFYFo5yw)pZR1O05PK|HS^)E1A64Jt)D)Wq%zp)vG0=1776?1Nf7gh)m zXygup(!)P8GUILK2R*FDM)MTVHeg_+wpCjVP3Fp#-h>sJuMr)rO|~9<)#7#C@&xe(Den!V)yU4H6XNfKWq0i(a=*Ea;YBhcu{b^w)}EX{ zyF`*;N}@Ly5CayTev)yuM;W3xYwPPMEe%kAbf@26L(NgpYYEyuYSnX(;lT$mV})y= z0jMTQwQ-efk7Q+gaA_58poxfp7Hhdbn@uv7JsqY^<=6o<70t0~Bo;|4%!ZE-Repz` zfD+={{|R;I*s4$^*>p3hoXKeN4fNIZkHQBjf8*pNDQI36E>=W!o;?7kmE{cqFf>FN z!)A2G>cYN<;W9l#LsUm6`=$}4|9&1nJwy{FDn>@ecDJSl&!iK9>k=a9&g*g#-nOas zZlc-+s1ZtE5OyUJAPj6nw+g;FO-GW`G^i_S9UpM7#(R*k-K6O|L2nxdH zaoBv_6|apF@jzn4HgO1aToo`I_K%`(TKr6Q&y@CefwTqSDa!+yw-C_(|C0W-Nqcfq zBAWS9w>JJaN;`GhF)f{OS>!>)>`uidM11CTW@Z)N^3+ z#Bk|eMj|iKYj2~))zmni9o;!UIcVK-J#%$a{j=N({9G>UJp#9reFKO-c2? zqf*xLGQN15bE${&#k&vam|RWZf5xhj`L=YWKT9!g3hyk(`Kxg56BzmM8EbV2Nu>KP zMF@(|AMz5O-G9v}-!5$n)BNvT>`3h|l?MN7z+_#fr|%=Lo}Y8VG$LJ~j?J|v35W!# z{!LZ0Ia=ybC~$G?SOl{0l-)}Bx?4eD4~Teo*|ipY-;g!C2h6v$19xf z#^SzRdRw~y%q7`++#X^P>RSw2{T<_X9tMtMKf6I*_XN;sqlv20H}idlz{h7d?!5{e zC!93!Cf82(I%tP>?rMex1eM)lqi)RpahM{34vE&9A5CQRi-k#us z(9Dbh*RNoaB_}o4AH+fV&0o^feKRr)^P53+3xVZl{q*W_2K>8|MBBKqtwQ+9A)rpE z2Z=)|^~#}I%k9LHi8mg_ozyBWDiU+(_3B^;Xw{%S$_7#zU@sP%wP43qR=Dms)hL6g zEs|c{8#0&|F9f-5ki=sbCotcv`b&Dm6VVx$U%~JmfiMdLLLQ*lW}V;EA(Q&%Fy&si z+D|j#1+I}_9H#0_hbuzr3pD5DWNx=dGGzjCmUQoMaiaiiAW(G$Op2(qKYwb}m0&Qx zGQh>novvCAklZ-NtrnYx%OE@MgioMX-WMBQA0yt|H|S!jm&w|nhTpS0_s9@%E84b;RrxOo6gFQMp*uxefg5eonC#sbn@qM(V^ zKU{!0XG`Yfa&xP>VHTinUh@Qe`jJTB3>1swnAJ_t@P&7uI9=hDBxeYEVYoIUC~r^` zO@VNF=EfKOZLGY~@t75+VS>?XY|j3aG%;&eCzj{C57%Mg#>W(=&;M;=b#(FyrQ|u1 zfWf<$|G?M?hy}>p7JCRxWN4U(2f*ma8Y-}|wEW)C@D7BwXLILRK#))J#u7}Hxs5~A z4l$EDr6AbKP7ge1rNGRbfZbBZdkmYD)vKby5h&c=K>PuU{jtG@29QF4M3Dbh6LMIX z8sP;Vc%OS~e-#^hKLP)Vm(c*DesF=W{#36%>3#$Z0My+Z?D` zrO(ornNAYd-QOPorl5K{I?v?f?t=MaIFokb&U|}cz8l)f{`!Zc0*gp1)y?OTq_Etq+ytvGdhJ6ShwHjt?TW-AO2#mD(PHW&Ijw5oThsHngkK`=@xfy@1jt3bOR<~Ey!7ngx+ zw)daUI!Np)a0J9Jrk94dLgsQv5^1pCVs&=@P1f>}ACc9UXqP#>=kfE59GxM?l^jL} z=Iv*y#^RkZm4`1alV>KmWSH@1#Dv57+&#Vo-}Ol$P)QoHvzoU_+OO@#3ZLrYE{BiM+* zlZmIOL172$JZU)sRGBF--W1_Uo`jX5U-(+#t47S-CjVX0zc8k4^W6npS`Ds|1BeZ} z+bP1~_Kc!eI5}y<=~_DO_gy+FQQj0%zk!BD_-g&B-3^zc&y%&z(;6vP)8iA2r}9Z) z0vG6>C39YT#31SEJC1c%6hO+%}7&nu3Djo$cPr zLun8%9{$DS0_i0p^!xjd4`pUkSHLiepP!$Hg#eTNZ9lW92iTAxbk=hQfI>$}i^_U{ zK%4${p0;AhAyw|<4s_11qc)dpjic2hxJMBVFxL9_tx zEX^y<=he-F^{MWNFArvin%bkdZReQvS^^)zYmy?f)nDu)xlrM~{^1?e=~tM~hqPnP z*2~9%0_C~8c;(F)*y*0{E9achtJhry$2rse1H+z_kIiY4U;_oj1EVP|Z3N7Gi7`Ee zF^H`CTRK1sMELmn>NXys^WMN}YHW;e48CiJeZ14N{i6%v+FMLzqErA~bm;mL*dHJL zu9VMIXgV)Cw>$gB_R$}=!DvzH`rc;u*RgVhPe8!y=|%wpHfKx(N={#P4kIa0mj|>h z#BBnCSJj7O*2^=(Yt|#+?GS}KYu=lNZV>?!&dV+O$|Q+^;z|}s*6L@_el)Y|#Sn4j zIu>)HZ#kr32ms|mvzVaO5nFqTjc8YcoT<0C?Z2^}4!MEo-VJCKE75#B0T___)8MT<%9VsfMhTjcdHj46j- znO^;6$cv9lCjmmTks|6hBqb%n7%t8ak3}bc6XM|f0G!}b0Nr?wVy^eckKFE5=fh=Y z>Y?u7fY<~1lwvkd1~;|U@gzC$Hj*yU)8MVeuWH? z2J6X+AfSu1*I_doM9hD-bIyYY$#o+xy+(BCV{w^WLx!8U^wF>5Fz_#j)sn&(q$Qh> zhv;+}L8LARydqYSQfOIh?d+|bOw zcJ1-l!f;_K0?r@mrV0#vDWB8+Z28t;u-0|D*d3lPN(GNJ5X9UebWYN&c1020NlCF( zOWu$pI^(EJsWdBJ3m3Uf)Vff$mL45>ErJJ6+}hh;6-N~mLs|x1FzvX~d0wp7YGx)( z157gR+&M0nX_OSAh=3*tI?P&;O??^C((sN_GWIv9399Tj&PH3xircZi@Bdlt&coRY z@RAV&Gi4#@p0vhs7Hp5gTI6zGBM1R^b#89H;`I-|(Yonf)XY!4hAlMew>zG8iy5XX zdH|d{yjX_jn9Nx82H?**veB&`!i^}ti%(x1Ujqr?59rW@GD ziFtVH008W-4rN+}p)A~Pi;H8xh7kfB9$KBQ8?|Q>Q_7F|+jF~A9UX_+7GDU#KXX%J zs3oubXMSE77}3<4ReKoag=Iy~%iH;y;;$ZzEEakglBlbXDeRBzrv?-7IkQjSxzmxz z;Sa;SP`(qhH>uEAuy9RkOAp z<8z_s;o(7m9emj9_sdYr;4;d2X#}rOEn1CqW=_7UGT6mSsq@VM2Sylf7eUBjq7(NR zqt3+@1}3WIY&_!7vg<-!w-D0b);rGU7oB5`7&R>`t7uGv&a1LOy*n*Yq?^4>?Fgt7 zeDZ?3luoPV(zSSx(Y9pE%@LTST%QYG2I+&Bk#AXUYz(D`z4}`|{^DF1-O-<C7=h zvbj0)(aS!#TojoAvo(O4k228|Z3An##5ec;^i9$#<9UK#Q5x};AQ zafz!pIoUIYX4BGfE0t(lXGg~p(&|uQKZZ`3 z5g|osvs4!t$Y9Vez>^$7=;C&G_s)G$FcHhvtd%MykFJ%`*S+AUPRn zE&>?i5)2o274 zh_omq#Mli^k$K+Y@rb65fjNSzC^8D^sTW%dyaS||)l`L5f>ZFq^3Za9Z-o^Oqzn+Z z74lRQEN3NC0i@?sZwO5>Gs}S!-wDa@r6-`IW`BZa-(&0s23jEvy6!f zDr>`qk6Oo`NOr(5!xDCPf-2&d<*`@=9p;Mk>2zR z7{2?m*kNjVB_fw=&gMIRIUhg{ujl>lm6#6rb=M!o_ZoFOCuCSiJc?AtC<-+q4gn9y;ki*SSfGn9!U$RKf#V6j%F=t6#u4C7x%s`xjGv8dyxa@>xBESk7EtLg9f-8`GDcMV{YQ zWA})HX7;!CmQPz-%rm}5tAk(JJ<9K+T2>+_W0f{&q#GM3-#$>QgpNGL0fC4fe53{} zA!l0x#mh8@e=q}p^OIBCqci!#CuUBz9~bcg;`mI-$s&UGYmS9S=Taxr3u;Nr^~gp@ z9=?@)`?C{Bg5kW?*;PqGPO%}CI>P;XWOf(Ps`cm1Sp{|Q zH>ejSMB#MbTHH95QnC^c_h<6?sr*1!VHOSu4qTGG;w~y}0G*ZrDEndK51a@mcGF)L z#fF83orLfXjB{Q)noiF&!Th8cn5|H!a2g&RO+haa;P3y)fT>B+TZ>eof88CgYoM1Z)Um5Ib(Q?a&t{B zg(YbqKXWvnj9;n}xe`oa^u&MynvXvl+d}XB@Wvq}?J5tW+-_2Q!-oaFF!pHM z$_kT|H5w)uS;H|cmB_KAsR9iHy3=<t&ZX19B}zmjczwA84nO>ubCa2kHf zzH$vD3lq_WdZ;fF2_`dIDKUl_DeJN^*8sKOdNcg_91Yu&k@+*n>frR80=wjbJR~5r z6m$HEah$~#Nt?TL_1A$+?e*#7o!hscfi3jbf!O&?%fFt$@nVe?dU=WML5J##jfvE^ zr8&(eq@<+axb@;J%t3UHNybyyKdNY8EUr0_uuuoNdB(ghqE}sae$tcg=E6_L^8OZ& zeVWGcPL1ZdncnH0q~I@!xpZ!)2kEMPl;hPlQE&vkHZU;A1Ftg`O6l02HI+6_o3)3_ zleIkBZu|EF`FMvb^>_r%xUeuVY$yZBy3Z?+4CwuZw-G5&~ z`{XK-#KI<<0QFhl>};^{UFZ0CsN6;2oUYudPxz= z&!}-@F4cU3fXC3ZDnMW*w}4tT-OHb#1C)jNvi~<`+G2jT{Jsxl7v`hl=fqDPKSK#gz`&tAV#Qc((hroEDSc3zx#oQjMgNo*<8r z=b!Oc)RA#D<)(&71x#@Hz29fEf0l?mTIshlfWMhkf0Ft8?>Fc3%cC21u^0b2+Fc@? z_HKcUPXEg=6dMS>*DPxH@u1byJl5_HMj`K#q4>i+m-*dX;52Jm<628j5_BPgKN-sI@qn&&i-f7-w#@Hn3FG)Jk=75J}h_K)u(Vf ze==IA2eqAtq8&JNigo^RlgopZ9B_Un12_jp%Hem{r;#-`V!6;@$%90T_5O<9P4tJ} znMMuX1!ZNN`aQAjI2wNQ88v>NjZib#I1yqQBSP3Lpj3KR>Y&4>68qRkdC z(7n9i~;Scy!hQW1)RLAf(p_Y9^f6Kog9gk%O8w<}%M~3o|R@P$uwNuBfN0{%#!oCHP8xQG@ zb79+(u#k`p&aF=s`+Qd_$aC%`g5WDSRHMem>+bsa_A!n|U#YnUbf!zx@>h?R+7kzE zJ-7^oCF3&+*Z&95Ke&{AvKRxN=()!D*_x8r6Umy3mnuGoD7kl|U| z*`DcSta-T~`-M!z>p#zjbws~ZdQLJrH^(aM+kmw-rH?5#QdKqYXuc^e>~ONB@vE%k zleNSjhOwpniTL-VKhYqFnhU~_jdz; ze}lswmxl7w(||S-7Htr{vmH3{c$bzG{W))8^1i$oJ~J&_Vcu&7>H{#z{en&Z{(bm_ z8NDO=)PKJsF%L$og>>bg*SusBq+?0K8cyNmz7as@exSvYN#)TOry8fy9R7_sHl(AJgn3 z|9*Dxd!tW~^~rUFF-n7hE*F5o2xRm8bW^VS?Hfe+4;I)NDy33Ro>YH-126UgM7GlH zQKUFXfZ#<&MP0pzh1I>4D1@*|03Bk)dLPo+A1jXCKSZdE`r7=lpQIcn(fxASYhc>vmF0zVY&ufQ@XF&lpY3~hvR zsO2`)Miv2;Gn&X?1`IkAu%Vuw9)uj>;aJHPO$cks%0kl=^R-=0j2Mwl_BOg}s!yS6 z;AP5V*O#rrvDgz8(o*;b9U~!O6r!B~OhW&%=Df(^P^}}>F448p4$;sa7rB~}itTMLjh(Zj!l?ETjqIBqGvzujK7Jy&JUf~wgPe;(g@c0o=DUmY zQw*m|w}LsJKg;6fNgpcYuIY&23UWbKvonY9-?ROOiEE2~bu4ru!PIN*>Owobc?St% z*%Y_)6BIpz-g{VhH=csf1~aqh(Hj*Ycr5u7-@AwO)DQoO?=WQZ^_i^cmR2+!8hUO$}L+$Sp?fWeMXQlP`W4K=yBC7qaAod913n~tc@O=>x z;HX6LIb$OUxE%7`#=fXW?@#+#W~l>-VvuCKo(qjF^&0q0NVDeZL&JzZ`5FpAF@`%p;Gq0-6rJF9^<;7f>X4q&S*BarR^n|Kx| zKG4IbV`|j=ecEjf8sD=Ws0+uPoKXB-7{ap6nlY2=o)`aaYF|?B zXIuQiX%JT}DwMl`#vzhEo13h1{}>%s9YeLyy}$S4NIoX}U;FasqSV*_?viA8sAv8l zSBUu*44owZ?eB@f)A{F>@|Yav;XkjwK*Z+t&&%i~AdLUKg4lG!r(pK$zCK39Br`5q zQ&dz;v!~iY_wn{7o1aqqkfSQK`RdPKnZKi(*KJ0eF!c=HP8P+Ymu4YDsjaQ;xV3df zCMan6VenZa=+@=8n|MS;QR7^@cI&otmw z>hNFq4z=n4b#>#PiwffK{kzjDeAR5|DEaYY@9uM!cgTr}z=RLZeOeD+{<)s1M~J)S zC5MaVbvSxd-57{AU*CwV+a1nV-S}q|gE+qY`AhkEc?0aSqGU8IvWz`{fASi!Z~pW8 zzYQoJP#=rO#$Ecd7@-8b&_8vap`JV>z8^vx@oG24}z z@QW*N2fj6yd4;rH-mIcF|GlKqH`hO9G?d^W#LsQN>TjLdXEe05%VyT+3u;670s(}4 z;pmk%=dCRf9CC2-;BwnAL3@v8?j{lRc68@y34wu3M7~tXcO~Ex-Q%*Jzg{;maNVO` zlTM>tn+ux!15-AYpBP*1wLO-QOt>_zY;B#4;hGhT7b!fkP)Lvv$D^U}&(Vz+ujGUr82f#+K&JWyz1d_{d#`{bIX4X|oL?t* zafLzK5$HEjfT_?ZWQzGI7lVD$ZG_NIk>xc7292vCSd=5oFRnuFBf28Ho-j&S8k4?J43w?J3fZ}Rko9)c5?D)zBPf!-G^eb zr6%P&0L4?oY^#*b6IcH@!CF)i9|PZ-Lql!}aS0x<849TZLK8X32Vv z69BmQ@PJ%=XBh0AZGH*@GV~lm4$JJ#9xiuq)9r}T763hj)aR=u^VV&>Q`ME3Z?f*D zOCRT(EYD(YZYx<5>bXz1yB5+`)D)amVwPQ=rYXAczEuu^b-TYFYV0y0n$T(HNpJZ<|sDHt7;Xl zXixj?qY+38h(RVCuf=(XeYGAoi{*6lCGq#iMWZ-c8O?Zx9s zyO!RB;?H$}v_CT~xQArO^@fS#T+Scme@q!KY;m7r4R_B4=*42UMG^)`>a{K=5`d=7 z!}g3|x3O4#IL6|7f<{70a=c!uv`lEa1KvJmP)+@=QA>1qVkQxHGAF)2S7~pKFYSTQN&Vtf;k>TLyhEESiEA2UY$i?Avw;SIQ1eq4Z`b&3eNW zpYuqmJ!7+YD41n&Q@8AI&0GtoSGr!uZq6u`z#leS=-!o|(VvWEw9RHV<_j~=YH#Zq z_-^_;dwiyDnJd;~eWsB603NtGYdWRZ^79tyWxUSXfa2mOPrfN2fTI@OaUBpo+FR#% z2j=QmP_pWY%&Fn*yW1Qai_5ByS?%n4(lECGmZPBXuC+UGIN@wM&SKpXvZ;XK@gC&x z3-vnn+07II#NuOO7Cly|iBWMyXa-3os6iiS!fdk-IZdu=D$DIl#kzPko+uszb_Rx2 zNVegrQ6LTFY6$tQnD34nT*EM>rUxB0sPlSmnh}T7sei1jjLH9Qo-hTX#gXPU@oi=a zaVFD?k^upg1f6QCVyyN(CI=@QE!O=vxow>a237v-{A9@;fheWmq*S6liC!M@+X>jA zT3T8l)*_QHsD~uapwYlT&1W*b;+L9=1z;3-uA>4LP+)n^ZD%(9x!2#cg z)6b>yy2pKh`CawHwff}*G>7YVF8Zw1+0DH zfiN2kp-B-6h$$*I*i}F(n}VwVbx25wuHM5w2>hLqfthfwb9%5*4`U=nBygqfQ1UGi|-gtU~25#J(L2D5zBHYWDgwn40s$?xv^*v~|v zQ-h)25K450RPjRB@w))vK5IL_H?blxDzBXK^08a&$u)o!<{B9$Iqf$HYtQyDpzpb5 zmpO*rHG;3kOQDpDlM`qc38T;vurBbs2|{>0AQNEGgmMfSO@1SX2I#csSwmfs#{_)f zlP9sPOf|?$H9RQ^Vr1V&i8>s?}EeqQs*Qg6Sovjig`$CCFXs zI-Y;E8+sj?e9w{o_ewG@My@Z!R!LT2G@KDMlDfiVK|%LLPi~dllkc!boovH7p!N1`WKgwvTCx_<;><>j zcvRdJ6r;>6dL0so10a@~6~5+92`(xQ$QN4p1w<* zphl-$b^TqtTv{NHy&39!Z*R9sX*{0D>JUAb-5MtpC2!UN1B+Vi8|G&1A(4nbnaNKe z@GLHAxFHx(%{~#(6JfB!J-@Ism^EKg*w|{ofy1EstKrk_>uQxPfQo7unf(py)JxII z8`eRR8HP-@#)TXRaPL2Ud=A9G&se$0q&tGNR_u+tT+M0x4i*jh$;x=C`?nKL*F`!R8R?QzA}%Xj0KQwMGu@Xq zHd^W%J=w|V`RfxB_+q{UwL`8vcSaeRAVMCi$l#t- z!_kU6faE60uUCLzx7FeR_1fC*t1P>R_)m;F07Q4Jbh@K6y>x!=7X|O`q0M|%^X4}IudG; zY*)%>Wht~`5|?k2RrfVa^0-@`J2B}^(R6CKPp0XLE(tHdbEVclXf&YX2s+{D0OQBs+cEukY955HPB|5M{)bF$h8&iLrkw|ShcqEU&OIEU9L142uiZBs*%qg#L|Yd9jY# z&Sn9|`ve3c#oykHtd-w*`SOK^OK2d_UHgm!>ghz2c=&&&1ExGXtL^8NoxV^~n(ixZ z1Vo_yl_AO3i}1ifjh2~}m6YM&I7=^N_mFw+OY6X%s2~pw_wk#2Bn(Qo#P zBpPpra=J6+q~#Sp^54>f1)!*`*jFH_Vq#K|r+LAfqk-Pi*WnF;=6u`s+HMI57CePG z9_sIU?Ma^|T#G(!=d-4tgMc39^SD?G8yjt45AOPkaYs1aDGYrL=bAV+!>^Wo&9{R& z2w_|=f43bwiPNgPn3gsY!7rUh%SamtFT^A z4>>bphh)%5#v52J#0h7uxY(^Xba!LD^8v5A&AT@ha^I6}4H+M)5j!+%EpJM(;af-5gRKqD^DHk5eO&5F1Zkg`O|@l+{_9*N zA5n}}O6Neg7g}ceFOt)`9qyeVP4iV+SkbhcKIAUw9`AIJu0GjYibzPS`7vrna`|L| zMt%mi-b}Ly;K%5nvwMt;aJt1j@u_?FbO)zR`f!8zJ``_21|5oi1d!{&&iXzk2HAb` z*yp*=g=XVtNjjy1kH3E#g7-?#x52EC*kbuCeaSSb^LVkaEKR1!yiNm3IJjx`1};qmxg zgp*e9@ZmFA&R&l$HT+Z@h6Um`3o+(33((C7g^OU&^V!+p0d+brt;3u+o1?F!7Z*#o zOkatyvBRMwBM3ZS3g0eRAr3dt2F-k(NkaM=eJ(`W+45-XK0E?Rb!1Orom|!YSVWWH z+K45)`B+=k@h;?b^x$rydv=uH70nkRaB(#EDM1pF7cit@ju$v&ft|4~zY$rzqWVuL za#pI_MxVM&uE4-Em80aN=Yx}KPsK>jP4W4c@vw!p`IoF1o_ywfLII~HhZky4)912X zNde5=XzgHqylC@B5WlMvxbEPrty@`x5WIeGd?PgDgG-=l!8%xsO7sR)>KGe`7(S6l zOm+mN?EGXu)ij2E;x>vFnEr&)s|+bZ7@f`iz#=K<;J-c=_S(jox!QJPCyc`mLn|oaJHnM~6h!yt=DHrd=oN95?S0 zhGqn0Ddg?|8S3|RF7afgE%|TddkOB_7SXRJ%4eolpEO=&fZ>L?W`Cwj=S7}q#{y?)S8=udz2f`4|Y`u61{q)#g>Vl z&o3yHrQ$#*5MY!T)sLR_#Ur3hc)fgU_-R~DR!sN?vIZ&V(U<^kcNUwxdHpR{{C%77{|!<43tG|8JOCNSy}Lpz_n?;~ zDTxFq5`WMyM-M7M_jW=9o$Uch3z^b-c~d)N^fP?k!qHwrN!~v_~PuPr!$F;Gpl43O){Kp`sMV#tb)arr2}-0R?wHGegxVKzj3$ zurN!K%MH}vCn|Pe?qzeD3+F5X2+TJ512YCi{Ere%U%2c)K;r!%w*RlA@y`gRJTBb3 z`-mI?dI0zYc=YEe$Bx9C$jH0>1Dh9#ZU2ldl%FCJG0d{3jinhXRgcyt;p=C6a4rN4!~A7oXU}>f1{Hg?j_nF*i=?l zHq7n+?-Q)5K#Q}WRm?*IvQhz%QM~t69}l8%yel>yX3^WxMMAsTwi*}!n&C|At;CL{ zN`(<9$Hll@R%F=n;l8-+ywyVg8H%O0A1EAha;&o&bKi0T1D&DVjW2+F{rXPh;WR7! zc79K&7g!z-vzPq);b%POwCd3otBZGX)NYG~)HHxeIt1c0EDtJG?Nm`v8;00@@~eO` zOs7`DJ6Zz#FvSv=8wTg+qd?sP3c-``(S-t?lP^cw^mL-oM=YA^z*bHhi8?nzS~))VV#^dd2W?${F;Jul-0C zkxsi{3iBi2Kw>gplz`!U?#jUd&QBqRu@X_NA+7xAQ|eQ(Jof(Zs4N#c^vqOiqgEoH z$1gQ`%?)HPdDkPU$9sjCZ4lkblp78M%5JKh%|Ea_UOz#cMQ1!IC9&&72(&Z=Q%b8t zu_Nx=fv9?P;P88M3Q6tXd5OMwd=zh7v23l9?AE#AX^%N{H%xp0ngo)5Z&Y(x{+z?< zI=;!|N_StXxSzS8t&NrLmP*1;_oo6nDzsS=6J?fs?VMWZ#4P4hylK6W08vh^jg*I^ z`b6BrcM^EB?Ok;X#uQ5MNm6PGXt*P@t&Iss2L}h_vGF7TuY($XaSD*sn31V$cxonIDezTZl2lj*HeU28v}6y&RfP{ z`~defph<{GNT5OgcZ;sd+mMNWhVSwQ-bE_PAe8N)e2oC(ndfR-%3m8HRoI+=fgV-} zB9Rba*ta*iQXpTTVN_MSarV5v;Rc3UVR13@ML9qM?Ik?!{O?f1XecV!HGe(jC*Z|> zS1$k%gHm z`eG%uoZ&>qV-RpjeZGs$Xx~V}sQG{5QnYQ+P9*7QZ|xskh5RZWoOG_`xt_{1sGWtB zc7$Kk9G7Pl6x^^}?rT=SXIz^R0?%qM=%G<>H8C-P%gf((DVf&q(X1!F zz0EVz`u^JK?;kVQ-VWzBQs&r^_1Ev_y0hsJn!i;yidD zn1xMG{pK4R0lQfeSX=m>&5Bo5KM4MG?c}g=s3lx7hGX}X*xh1o5yblNP~UA5X`JjY z3oYfuA?y#szP+AlMCXA7ui@BSU0ppi>s34uE9Rkkx3@g#(;^w2=ei_CA$?3Nj?Jjw zv!;}5Gfl#%ofVP(AM!%4)<5+xUh&}oC(Vd)e~;6Un)iD^^*lO`OUW^IotWS|(mo0t z#`m#JlW1ygxrc|huiSb+Xs^_<6C2!&>jsG3UfNVk#Z}NL9wAHlKi{i-6b1VM z2~0|$y097_m~@0whqMIosYI1_qH7r9P|AlxUA? z1Gz2PPEA2|astD3FlQC@-IYdbCs6{J8z;9*zO;#3ng2lAG#&2)hnoGLB9lrrCe#=$ z0pgpl$R3U;thQv&b(U4>2|^9&MW=dS97}a|-=Badh%F+q*Wxw`iq=%@DD@C?BpKNR z49NC2o?U)CaO<7{;XXkHp&kcpXZ@o~JRNO)QB?_DC(rE{%*@UgyBtqSN!D7FX0=%k zcHN1@#l=ZTH8xJ?YImylHOi&oC=gY_bNV#yQ+D4a4mL^hap8I5;ct=zc1K4*e7v`5 zs*)*}o|8|fkfVBb)GtlQWBEacQi{p$PhmY_bhxrRX0CWJ#`^txLSC0ISFR!R7v`uj z@TB#|BC6(GGfS=Z)2`+c_au*;NPyKL_WJUuJ><1>C4S&m#Hx8sToa0bK#7BMe}S#> zMU_pv;_zb)eryKire#(G#WDxxYNtbe;L^5OMX)eHZ`g;zi;FezVFrr;evX_IGqbb3 zPDYTW!vy|lUQg(9`L0}rjS)iTB&yH=p)(Jdd2M#@;9%J9l`B9EC0N=9cFF$a1QIZ? z7kkAcGTvliLmz=_+d&);m-PXicsN5c^l`M*u$xQ>&$UQK@)_JM)Tca8;M=Ue8P8q(SzwJEy74bZCdhU%GAg8pGV9~v$vf`A8m$nkC;IgPx81FP-E z!~p~;vzc1kdd!XEy@RW6Hd)9%zN3KzQMf2s+u+y`E`i0Cceb`A+1;+; zesAGqGij&Ix@xdBhAD1mS7}l0n}4}*$%B22jnRo{n&hkP zD~h{OhnJD!0k-p0gORiA?#T|PQKBscwA10 zMMum&)R(b5Lh0B)e5_G@fh!>)hn4HNsEX-)i9_SZ`K(#1m1<18<2L!#$1_VV;7CHq zY4ar+oTNcvu|Ti$CK+LnB{|hC92^{WN2k7IP{TNF+qF~ZI2e~|o@u2%xX6t(=($05 zS*>Rlf|1THm&vq8h4q;z^;JlIWTe2cV-MU&$KFoL&P(?W_mTvc{S!*w+6ViVZ+A(D zxE^MnH5*BEvGSGXrdJP+-#(>z=$9bbm7RIEfLFjRk6c$HCNi~B=_i(OIy0fi9JQ8k zR#iJ_PcRxsfGeP~#2_`u96_`n;swtlh%5ItLxRa8bH9L)hnGs{ID5Fy+R@!PhG=(s zgunS-V8~_BA?ea9$8?ZhV`A>B`V%goHIb+LIHDA?(eS@JgP6Hx%~ zvo2K5yDM;UVd;$p2o$)CqT)NVY0fs~BKk-`npL#qLLpg1%RIsJV6!wCz^%;9jThZ z+6V+jbXt59H7+k~R`#^KElu|i(uOG$5bcv*v&~+4A7COg$8KI63IJ0e z)OzVmsm6-Dq(sU0{LVxEP*ass=6Q3J+?zy1zC?V{pw?#%T;Z`&W6x<(0Z<%n$jE)r zst^1^5MlB1_fJAJLh#R8kJ%f7R^&P8|Ac}>oLsT8;MF4S)Q=9d3Yn;6WMUnmjy}+Y z7k^4u7_nE^z>aRPRJ61c?ltdPN$WU$(WV%m)x{I3th?CtogE4DElV`rbK?hj-#H9$ zY#MmQ`Ms+J;zrtD5#5Y?BtG*I*929bjGy7=_=hlz8pbZV_Rvza!)x|Im9wWKZyXYC z(+bS(nVUinc>1g4j~s7RM#khSR%JJi&6_ueDO7g|MQXUuACL>j>nqgIJ5F!3G)pFL zpQfTbUb25xw0{`MEB2!L%P9`JCKEHM^;93y2zEvwm0ir)!j}La^1YpUgQ?4Y)H3wN zsq%GIMOM0PRUVG7ujX<&OY;b{IC?Dfr;tCY?auYuHkK7pTQ&@8YKwVE!F=+Yg?l?I zzYw=lFo7#@mBlfi3sM|eoaw4U=d7K_CPd&Z@t`u?cnPYoa0)Hhi=1n?9FA(#*7K1g%5@S2a!4;!&$3FlLI8 zr!^|?xy(9?m0qB-dfpU1jhi3J>2<`%Yf9bxmMA6ZVx-pV>@ueqKL7fsx9Ll9sYeI? z1oFidI@4}6kKGv;#-h<3@i(LgrR`UO)g5Pk=-oY(W>|cGnug+Phy?nZZ|pAZM(kSd?Y$nbw`!>I<(m}vkzU^=Xo0 z1aHyp(MwEz`b*>&(4_g;gOr#Hza3q~gocYi{BY89abP6&oK9BUC&uvvvMaP!2SEIs zZ`1xjwI@CmI>XK?v~NgBfeW5FF|p02KNKv0(N04DOJh>X+H|Gp63^qJyZS}0 z;3|i=l+-_MVEBIJX|mKp&rhzeKfkguHK&;oo0+WjhE$Hph`x8ON$NSW#vOl6M)BhY ztLNum1rPdJ_P^|Ly?fJrD6@j6CHsxSQ1;918o{45n?ZX=ck@eolV#E^S9=+m=#){B z2-2@KP1upIRk3@8;W{EGYcJ$|AA9e)QCoZOvR~xl=#n`+@?Ad?Z&_K;tfa_S1MTNl zYaXh(#82Z0r6*h&y9n{`+fUzykMx3%jPhWAuebOku&i?9>wx?6zJMzxQe8-81j^wE z>bn{*ETly}0-3~K#)+{fQuZ62kvt`JbrW}|2Pb7HTc4E?*HhM{OSGDoxxZD4pM8@~ zp{2Xf7Q%z$g}!~|*J9fHjQ*XI%iVzAhcX(IOZ%OSwZA@O(Lx8pyxYrLNaH2ubMx&X zqeC)P%eMr3=}5;eF_8}ayAofIqfmv?JX$sAtWw25qhBvCDM60jJ2E4V7A@AQe3tk$ zF1%~~TK}!u?+>X@*+}l4mV_|nQQgpW)ixz>*%m=i4f2&TYh8A1EM+aVEa#Gh*0qlsQ&L6l2iDRx-!DWI?B2^J zkdS{1!nGtI&9dUHaYJK8rqnizYw1dS%>16AqJqQ~9b?(~*1N#MT1~amh=b?{I=h&E z1W8aS5t2Dgv}F$4BsB`TR`r8e1_lPe3TsdFKo%7jPp;Cr(bd(pwX;1Gra%)4;#Xkf z&*P0py+gb&%u&9l3Bcl|k%&c9R6RO^8CGJ$nc-k2bURZM#8)ffn zu4rj#9edN34!7pJI5MbJgz6Rd`ru3!NS0lR8V9UIXOeSOU{?L z`7q-n}dC@x$u<H~ZwCkGF*TV2!ZbBEhgY4kI%&9ra6DY@BZ zf>`nW(^o5an(}GenP6lo5SPZpJIXzP1l#Z+QBZ{+ZfeKeeb z;RyAFqWKk`(mb{LJ7hBgs&PG{MZK7NSX&$cy!NoN)pOQ)La9B(QX4w^P`k)cZR^e)uI^UiZtJf z%f4p%c_lqRXYyLegD1?i!?!&4$kuP?sxjD-3phrmx(H@4W?If*W{*Tu)nX{hn|1p6 zdGxJX&0n;W_o5oJHF-K{>xP|wYaA85RT)2*A2FCKB}oRyjs9IfxcE#h;-#d2awkk|zroG*n(M&ZCq_nZgM(*( z|E%Vbl9H;rtVf3CF%N3Fv>$VgL`}`D_wgSH_ESji45)+P_mS(W`~-vgeB>@OyZJ@j z8)Nw;#f#p!N(=rKiQK7b!~PO_offwi5W+kppi)e<(onk*&mY>BC<-GdQc8OzrR&Tg3sxeTRe*ATvN%=teDGF2j= z5xmf%zVHp%6WwfuYSArVC9KGs~|K=--NukzPmdP=C(|(o2%LfCUigE((D(>^2t99$7R!byX9h0KY1T% zN@LRSNr(?NqzK#2ZaDAE=kVy?y~A9bD zx-ZukJnOYLD*dBI)Dd+WW+|NikNXapWZWok@sxTiYs|ZokN;L-7YWsxJi5I)#z&=`e}_EU@A3Q|i(v0X@X{~^Yq7G2*zuY&M!f#z@hhsZ zv2vt-ot}~$iG=Kd6wY8B!ENPe*M@F9?6inQe04HP?sG+34M)G-%W*(ZIStiXB-eGnQWoAdL+ zuU_2)*v+sbg@vpgh52ZX!{%beUemn%ng#L5& zDhHIVu3~HKNub1k5)9Hy1S4(Z6*qJ=v=mUvsStU2c;o1k>6cHO)84i1JQDr#1>O~2}eUW!RA zp4hHag?;@xUeS#Dw6el>(#aMD4XrDGqbY^#V0{vtja6RtD>{4Dfej0wjvmxB8+F zBDvT|m|2*{h1>gE4}U-i8u~4J+`v%g>NRVg2c%bJ(o^p_x5mv%@{@0GtMxt5`BG_* z0+Dd!*f1r9>p+-fbpR9NbZnckC&~ot`_ZXkt^g=c zk&(C_>~8h32Pg0jFc1d$q~CvrnVrG}Ua7aAs|DuAcJeF+!HhEm3$cl#seGKWHZQK-ZxiiY;I;q#zgrw|%+Ma~B-ngBa ztsdn{3$wTUTMyfHbgwd}rx9PIe5?GTT+@1!1>a}7K8)9Qs(tf0tzz2Ggl2K%g`HKF zz#Ow_A&V4mx&5c6wnu%z52&Ubs37R8WlN-n3I4?$`AOJ0)_E|(CkN+vVOS#*Y$<@; zHB$*4v{atp&sN4s^E%_{C)5RM^{VUEi`|VqL;l+G@}uGA{b}@|`@8!gsq5^d9WGtkWhgbETIh#x(95_UT$$Hw{66(n(yEUc}Q z$4@t{dzznfjF~i^?E4aO1^1{`yed)Uf`X1mSlAP1yUq4})}ZLOV`+CRD`QIzFCSq*o4%4E+KvOGt>QOsLhLt0dW6 zTXOUeM_c!ezxE)v+_ymkUJF-C+c!wIR)qJ}-DMBXk72z?-mj$LJW%Zj;n^VjczR{* zK3DTMd(w?~*yx>?9xVEI%cPTUv#An<oR|M(PICc^1<#P>qpUoq7D zMbzDX$KNH)z1vqINWk}$Vr4F{YD#%c@BL=|yYpV2ug5j$+-RYRsl5-})wQwmkQ=vg zWYeV{etVtS(5KgFS^4{Og2u)$>R79icyY`-$75_vY9)_?ID;Te3^8TxuG@MTg08TQ zzxc#ot0|jw69R9zGhQ_kxi~`4e90S#ThvsKWr9COf9e$JrT?AAk_#k=nPgIQ z@2rh4RqX>3qkk57EH)3*BQ!Lc_YhPn62gA9(5 zS+1$6slD}nPpbt&rCLi;_p|(vlJzm>jl$j|>m?AWiRY}B?u^)7x1Y8;=~DU}Kv;jY zJy*Vx9EV}rw59dYQ$QEYU+I);5NOfv`Q=4~sWS)_k^Md}1;>e&9yJ~mR5V>EI!MH` zd4bMl^((hC1r2Tew=F+)S`k4I(PshOvCvE;6UEvq=;-Jr=iA5|L`1^;-gUj3X&Vz! z(_Qm!7EI2En>w>8?I1xInqjz3YDG;=?ZP{+143LqLCGS96DiC@E)E^XUPW!(_ zK^u?@{KY_iP-m#ioO63vqrAnoeKPKMhGC9_dVSl-QEINVi3u9<{<3%&%^NOoT_k&9T=k}w znn>Zco+v=|tryXt@6p+)9P;^_d&KWRcnJCKL*1WA#3T8xJOcC@IkeV23nt+X=Vxax zzXY@{bQL;y-XTCpYg?O8Hdu3r@wt9OpB9IyiNbY$J0RyQNavWxQ~$p6xS!bh@GHIF zcCzujWSXrnC$~rHtRZDovwHM+0^Qb%H$N))+T(OL5{4$94iENM)?JSg0lsftQ z6h6O&lZqN#oZJ_FKar^icdR!E<0Xrxy$I)+i|B;bw+$@Uwyz}`gu`(ZMMG@vy1W__ z7rCVEZngOUHI=5bX|G((J;!u{Tc|6$kkh8!t$6|s-xi;P{f?lXrl6n9Db->9AtaN} z+M*J6vCMzOdr{r#&fq#=dUMm9;<#PNjQ9xuoi`TER`+-Fyu!jx_Rr?}JxzoAB*w$% zE&g#lDCq8OZTA}s>0{!MaX7ZNW?v8rD84L~whIi87XFnmXGKSx=X#ym5ZhxqP6D!Hg=@rc1b|T6BVJYKYa^BB#Gmh;e>798&@|TRbY34X)M>SwjMWhj zrz797B-^b$-5{?0e96tn$G6xO(+U;LX*;TwiB$1`7pzV)if$+1y`v~<{#+09i>Mu*K>>Xz?vergau4+1i4n!FiK*Fi})INcYdJPu;>p*e6^*)*~cT%zMhiF$wzs!uLZwf{ubq zsZvZGT9u=itts>#5|-f*cEO4r*2onp_3sZc|0+Q^LR0EdHYcV#!H0n=)YeHVm|ugXz}kGWZwNxLx}&^FK?P6Z?S;vL9(l- z6eg&Eu6AHuSn+!+XAeExJaDsLd1Cl-Ymx^l>tB%38+KF=^%$j1OigUZy`&SY28Sa+ zy9#vL-h3Sn!s)NMhz7Fg)&h>k*_`Qr=_r5sAeSLhw!hJjE>26kF+)nnCNPZugLKvJr|LQj0G=&dODUBlL5Fxhek7Y`3>Uhltd^2=qQ zV4MXod&!SB)OzB%ZoDgxD&L3%5ga4~=>!t^=67$bPW$tK2IBj;xNX@g5RN-AnU1l+ zr2`?L@3tODqiSq}mE^x82U^#OQe}>1<h2j*kzAE5*j&l`63bj0q;0Q)S!dspZOS z7Febfa#`FOu1_+%y1J%G#C6GW--d7n{oO@M5hj{pQ z>tkISdGAO??t<3$HMOWr4e5o=5O-FnMIo`9j0qbW-l}#w(Czvy!)7w_?mp>@-yI5> z%3)w?yzN$MhDLBe4c!m=zrH?0+S?R(2adta_6LOgM7+4-o!WHjC9mzxpc`K%YtUwO zA`IYcR=70?KCag7;q@B{F85tR*SRQA8NF!D{2ylP1>h>N(JUjuP!4oLo#B5*6+1tMXd0zPo0(|Q-AI9~$VehU?Kel9U# ztNwIyt9s>j9iXFIH7i08>{Gur68%4+`6;QX)qTdK|1}BKB@=0nkdc^~fDyp4BFZXx| zkU&@31I*ia>^B4(3+F&VdnAIoQ3LeJHV3m*Eo_@dN28$K&kA(bMN9rm)x7G)rbI*c z=AtAC5no5arsaT6&hb%TaP-dDetKFOSlxaoEM$%2wjUy&h^HX?-4Pk1k_WEbpxQH1 zY7TIHPx_|FITJVyhlxsw_LR7ViFwIp3dg1OFn>;IYBD)&Z8p+z0KubMcTn0(Bmy=j zEv>9(&(ZlcPkiwZ-dRM%2akBqKmtVdzvez>hCRj10f^CN402Isp?ZV$3owI6iHv_H zaSaU(v1Mok%G`Y!n*)%QaR)!j4y&+T`qJ6JI<%k*8fx=_434()3otL4s*m zd=;^g|GPnF{h*xij*LXo)YTOhO#7*SqvZI-Y@*{cOiuJ#phxf-?6mZhR*XJ zz;VerR!^2o@38@{o}7C^mz?wJP_9A4yw~+ZxsY0!DZuuN# zNm;80Kx5JZ??gJanpkO1bV{aQL*nD(d1eov`}!SUoNne96*cY8KBth13`|#aSFRxp z6Kg*7sYy5dnN(I$!D2F!jugvl`5_^kacO+B29!&@fh)%1cIJ?CqT1b>^`A?GfaF6% zSD#dfbAIVu4A*WM*1ft>)^yz6Q5@(w#3}X3G3TNCZ|}BBaT&i-B>~FX2Y2s+yx`3r zJs$tv5=l!w1H;VuV!|u2=E|V)K+~=_GXIpiIS<)?`y1-tUI`$KhW~wtO_gb{0>C}< zKLaIpeAHy7V zJvrCgsoR@cghL{a_Dns=;Ipb&NJ(|N=)JYSnuD37R!RyP&dcgP4R9bKfZ1ZqbTk`&(jQc5&D z1{rSWlAHOb3|Tsv+(5yI@i6&$Dgyn;`mn-CjtF0(BBLYk6JVS}ECyFS^<^Z|P(rdx zy^?5|5yHK*7%X9TYQ(6tHPyAfTKsw+t|m7u@~G%3Hb>wEI07`)Dm~ka`2RJm|Ld2R ztJjgN`o3!Ej8z>HE$S~S9T-E|_{Nc?<|Tg;k$_ujh5K~DryadBKJQlx!?6RvBGfT$T13(SdFi%UE+JYrg?O2$Yz(A#kBnt3VSHYP{TzQibO7p@O-$yTB z`^M1F8jvqvC6XkI_$S$Ks*{nEv)E6SB0-`T4H89#`-k*Z6KXuBmVnshdjSgH+ji7&cUsl<{qy)<~ucT7ZPD2bXBTQ8D#(W-t;OKHC>-kP-wV zUzO6UQBSNXK#Q}&`r*S)>xBYjKo3+o-QQmjyEcKPJ1QB&pH(UosXM`xGL5ly26_aS zCF-Rj_Qcy}Q!f#_f#dG<8sqJCLNk27o1X*|$1fa@gH1Z03-fBPue^ciA^LuD3p5)t zf^tWd{5W()rik`a_!6;x=C)n!EBJq?ddsjXw=QZJ43Jhq0Vx$FrMndr1f)wqKtQ^s z8%07=y1TnOm6Gl*>F(}t?&p1;_jrcNpOPf}AOz^-#&# z$x0_AIC$^mWYnZ!wlH9){we@WoGtbj(V!%1M`%Q8N&kB}`esi`@xDyGXEhm!1m|$s z3P}?h#oX6F=WW0<=GJ|De33DCuRC|9{tR}4#Wub9@1y4snIXMu`n>e!QsK*FHsbp< zJu^FrfG7Cz<0oS7p8k7#$BW>n!$5bz$^6~gNRdVB@FTa)c1I7%qLf{mW#8^ z&P?}C42Q+#sYR>n(IX^>^K*t!rHm}=2Jp+o?-7YZ2mwqc%5}QNdOt#tl)%m5piv8A z`++52-o=5f5}-qJ`epSq0G#i#f?s~+9h{mX24`X#rR?_=`Ekhi(6F>e^QVo+PI=zg zZtJV|=}+3@nvd+S#3%9Yt+r{dz`WH>=E z$=LnK9@EWVRvkn>X6h%wL9cxWEz%zC4hO$NWM7K!4o4&`Y^}8pkTtZ8OmJU$ zKOanCfe+Wr^Y&akPB6yY7YysS)-@m?OH!(OeEH+Z#DwRA6ycEQ=O^ zL-AC~4c~zskwJg*-2~@rLXbv5U0Py)umki)w9C~6qAo94?rQnl_X_|Rq={04PDl}^ zf{}li#Yh)lp$8HBLYdY>!P*!FU62^m=DCKoBZYwJI`^$1uwfOlg#k?o*2jGkudq;QIcIV(_ zU(TvvQ$VC?YPI;-=dYMVpLKT`Yc#}us1@z&eRV*h-8#Duzsk=Sul;M+#k#_GA;CRA-|W)nA_eC0250j z_7V1}D%-$8y`I|cU5(w-J#BCRsd74FMuNcs-NEH<5FOMn{ROmBVqlfR7Nsw9_?23% z_agy@mZ_=QMpYIL4!xFMaph{e2TzVlV!Zv@bgxa|s~W3zrUmM&d8o@ze0!UKfN-E< zR%COk3ffc_qPR;VJjKQ zKM(W1XCh)?V$$T@uMNv%xuPrwLK-`4uN+S{HFx6ql#jQ@>tZ0 zVvcoZc(pddqwTjlBN8}ZuTJOa)h|HFP}3F3ra%{r^-DTs`Y`5Tej-!BM8%5yS~1F9!~Rf zVsHMmW2RC8DbO?XeMv%h2Sz-tH^zRoJ(w#n{PSb4diKASM4?s-x{dK{{^V?$xYFwj zdHr6op3IBnZt^IJcEzZv~lkbxDZHgt(5kV1 zZd>4JUhF07vu|tQ;2hlIySIOgQq2EVUst#1k=fS!isGe?xd?;1i?w5g2Dq>fu$uLM zs_30=a)-4CmcGsdss2Qd!;S}&x+qGA4Rfo)%g%75z}d5M#- z;V|m;5FfJ8F%Q-Yp-RSaHKlcuViI$DcdExL=l23ohoEf4Blr+C2Lu+i?{mr=JnkNM z-F<3T$%P%2uk1CFHT`$N>*(+yG? zJ#mC=4w!Jwxhf^XO6d^l4O`c4Q=mY-EU%#VpVh5t-Y=^oWh^}9Cc+@aa@8rIvYMT0 zpwH2o;Ie}b%E4ixO&}yh4uV$Y>j^lp1q1|^yP}$aw?#T#TS*|~GGs*};kH@KEMY;e zFr5PryXZ0_YVcSLa9%qI3|-&YU@_SL(og2?5LvU4H6KcYc07vPNKCp*&V7|L2*+pyeReJ~&^N64;qhYaWHjvM^mLftJDvB^nG za4^#Cj`vVt%6VmNI#wA32N$B&0)N?_t$ElCNB+u6CP^0?k2Aw>YrfoBhKrEF zCLIeDPDxUL{osdIPIw*?r&Zx+VNK`{k*8UhCStsF#9dBB%t)Cbf-?&K`>z%58_h~r zD#rMDCA;Xz_tVwZdx!hW@M!6-Qcl!s!=XI;Ye;vzJN`!#UP4Ptuq0?){Byru5^bZLnJ3I7hVSk2ZS*^ z*2YMGz8Vj^=}c};4Y(?@8cy9C#mIMxc1bDIS`y64)}& z?EW_1ireIB@WdhV$%w#@ahdhG_43KQSkKz?Ukf%Xj4 zgI1I7C|J64CpVq8d~e>onF8p}4eV!vgM$UbvK3@fd+mRbz+`vsV8pDXci;*{&V0Bz zhkh1|$HthFi8@ForA@jUSF~5_qmmuOg_NJ_kv+Mo^mrv2>qKJmAtn{ z-)?n~*bjw#)1R{g^i*9lGc&O2l7J@_oM%nLAF*1Nm|yb-5cBk;h&-5R7=GP)Q@=4q zU)`VLXxr6I2R0S#B-~bsV5kM3*b6)c_7u)%=ewZkOObxvt6oRI^ffg}J-_yZ5V?3YOGA|>=MEF} zR4*ki-e1EY*Vz8Wj`BKoy=`Cy8XBwFh#zdqgH>{Ru}?T6y|rdwbmqceVdP$Rn3p+F#D@f^6eXY|`>NZ@Ov z)iYI9YBH+G(Q*Fon>&N!*^m1>-dzWMi83tO6QQ?M)w&xSkx)@l6${k;tE#wIbh{b{ z2ADf%Gh<;q3toa(AI*p+trLw`{aVn`XnnLmYOC71YJH*UrL8T>Nq5V?zB zHy6HTPp4A;Wux4L7t{4`Ii2d+o)_6zCH0DoLGPfP!9_x5TOh_Fw|W=|T9J0j%%s|7 z({?}AJPvuzEUR))=Cn@IHLG7Af~|-q%T2Vw#vRuA-fvVg^Todp5b_6L@T_hlf2|R* zSJ&JCECB&)&8zKE%|EEI*?yZOUAUQ%Kn3!e#5lJbSKs>H!A#FfKc~N7z9_+~<2O{y zAcvwliQiytYh{(Hs$RH{F7 z%T3sy2&BA8Jf#0J;`%01z0um@;<&aq{gS>RV-c}8_VxW5$(v-gIuU4eP1ohIIPC$!dhA|h>vOm};=oFl@@EA${U$%(_Y-t>?uF-C;$bf)gr zQrMcac8$#zsJmjaH{$R+8Yo zg@76G6hmp`;X|ebImhJ2Nd%l)dN52sPC8j>L5}c?F4YL9#Y1P;iw>aR@W^Ti{SQBk z;?%I~I+UZ40Hf#@{nP$11OZvf0LFaF$XLNRsL=6t&368f_O?CvLoDmhma~s%`_VgW z2T@J!~|3p9ohRgs(q+0<>BfXsOhb z?`XIjJ#t6ES#E~G-!H}=#*3FAj+W_qEhkOaX8u$|K3_iSrFaDM);G*249#-=ZHBW z@aOyYdsxHt?^%~inB-x(hv${~j)JS!9U#MvG@d+q)RG^^a|XFm*reQV|K+Kcnw*gS z{3&&IvD0vq)rs2JIT!-?>aXZ%pMnAgi5Rxd@+sIn4W_Fl!kq~1O8e9%HMj1Nm{nkvGuP4)dk6j>1n5zI!TXT&;2f>NgA_qPv?JpC@AIVqtM;KLa zZSK~7^^o$yUTS+Muy~5I2z3V(Se~JaUjTs$DPSMXSL=j0jC(c3tXH1d{SO zBuzmhXU^pq4(IrT^d}H zCs})QeNk#Mhyv9V<`YgJGf(m75iz3;`5(cq45#Ro3f^o^y&o~tt%gIc$#4eMR_Nb~ z7&-JB-H<^D8u-i|)w2I+9>ecCR+OBJi?B>3PrTBAHCpLO`&5OQ)X)N0b`K_ z(X1vuMWPQNj;2M#`NDke@-C9ibx}xS;%kT{e>a>xJO;%G z0@X+~hgncYy;bYs8lsfbCMO3r++!t-7ISkp0cM*nLl}@je2rYn5ye2X_pud`S{L)> ztf;)Gy{HzxO~Qgv4dH@l@#e$d1&6qGhNkh8)UU46fDGE6-b(YhpX|n^nEAGk?xupI zwLuIFd#F`Psg#`aK@&*KQ#1dmdh_?z!vP*g0KFKQHTIVq;UVvp)vS3fT4+6&F9JrbYuWTq(OiXyv5p-@4CpXVWKl z&u%8_pPq9gh>LlFRkn-Hzh~N_Ry%K-;BM zyPiHH;xN;NOkb<@sVMu|ZV0e7U)&9w7^x-98O==s8K=A^CS^P1JO40 zfGS6G7)5t-*`ELoBr7LpoigcWtn{%bXSqAtFkxOaA%=n+p`@PgcDTBh)iJmlSZGzu zHg=UiuS&S6{nMw>L5xs`%w*ohcns@I5Wv+_`xbOkPY=YDl*`#!#(#eQc=031b6EgK z@XOlE=~|R$Z`lWKu=4w^1@$WKk*m5cv*+C zU&V+B4c~K6Pic^U?0igByI#jn^`SW5*ihdnxGbwuKUm7-T}r!ysX89qkpIY4W-^;I zq#%r!^Z-<5lSz2q9vF`c&3}KdAn^n-xPJVsv|N_f*{!Ve?P+lNorIoc{Wj|R^=YDo z542yGBiPy5CQuayc1U0B0kKr#fLmX7WcO?&g81 zM^Z!Re?>E=y@RPYw4YMGJ$&iY;NtuQ3seC234gZC)Dcuyy_u~qP&51auw_umTP`t9 zRD{_CZr(Ll!Jq~Wi@&~H+uP(@13hFO_qNstMSK0t<-BGGuQ?<_mZoZ{Ft5`7OXD@W zhEsIzOwh^64UXn>ym)cPzks1*Z-Ghj!&|h>^P{G}e^<-ayS?cSy4^7mq~cyWkY8C{ zykc9Te&zH#mZ|o!C{MFaeQE8Ch9=Y{qk8}UA0Tj`wo>`^0rhN^HAXj?Yhpz3cl5qe zWL9}Wune%^XLo{H-uJ0T*MkkCXo+#46V zVagC6qhwa~e{arx!VsDiwavyUUf00SGF&zZcnUXG+5+awWkU%a?r5@Tigo#yKQ;s4;ZZ(BKz z(7_UYR|T!2vGFxteSIc5xlGouesHj~)rMzM(j2_?1jb|J3Nf4CS`gqFRXkZd@)(L&Kx78q!#Mc$vfbYn4quN5Nl z-&A-zajOskT29C9DOx35$eNl6qkS=5WPG<8H_h-1|4nkGzMx#m;sY+4GfLM*a#lWZZt4u<#}7~0>@V$3!|DC{-jz;K zb^-#2$b8PuL(?_dnwm0C`#pbne%-#j8;bt2ws2ytCc-}CdVeXk0Z$N*^zNv}x^NEP zPhsb^7d}t?W$su26?fWLT8l zymkYP)?$WECztuZ*Y(-}UGvbL+F<|u`I7*jDP3kE{cua**E@`rm9tAI8<@=hwh`O% zcaTk1fMDc9nIRj&`Px0jf=iFT-uD7{$OfI)q>HT#Zr!?^8CqJ*)Xn3DjOB<9g>0?Q zpWlD|Iw0OjL`Vo88HCfvJ4B;F;nC;mO?ZOd#ya&L(uuD_>K6jzYNB?BE1ia|cV_s& z)s&u-VB@g*5uXEK$SO~Zu8S-y==I;F6M5P)42OpuMvR95|1J}WC-0gS6DScU+|i+& zm=Tz4=q!Jv5@f9QL%tU`^}I?b`gkW!Sg3x*oc7g~PLf3B8sMT@Lj=ZKo96ruk??%H z2ceB@Yh&ZD^zImty##0nacR3 z+IZ*lubY1#)bcWHtaG_;zcTcXp0|1F?dSck?wG{F)-vr&`v7OCMWS9oJ!s;|r7XH* z8h&xjcJ(=1FkVdFb>eXZ%WZaczcXXv@Rr;D4I-Y>FYPbtdY(3 z*s-81>_JsBiLc$CcnBg>DOb2?*W;RkJw)mqR3X`iG;X@xg@qMT1qVlYstpgM(?>Jj z>@mayD4&ZX>J^XKjpGP(+>%@#S-HMXb??`QeP5(AM7s$KsT6w-y}(+>!|F&rBbrnE zc-|>EDQ} zpdQH$@KoW z_>F@r9D$(7&>ylgxKeTYv&b*%LJwu{^#_#6I2bS+6EEY`dVe!RqEg`A=U24Dg-nG>ZEcOF$*-gg(To%-8LBR<)!~XK-xF0baI_O-Fx5t|rW*vN|ral2( z`To7w@?IOMHed`Nt=Hcgf50rLJ$#Oa_7eowGpC~sk&FhYdeBa_SM8Y>TTwO<(l%kPEFhbai=88I6<*a!b^D zI4qO~u5-sHmwm_ZV(qWsjmQM4L`K6q@aj zqNB6Q{n(i-@pa>O=5nHX=q4l+g!kz2tzW^henCl0Vjd6E1b^10;8t;EoNmXQb#wDS z`;obzqCt2!dQW`_ec5IA!O4dhKfv};jNq=Y(Et9OdUZ~l4!XWOC|btGQ|p;aOG`{A z?t!d9a#V)sn6~fV#iT|AtD`?NCC~f7pumo86?u$FlFsK|UHNMu1eJ=bIxtxKA`{6E z1*NnTXTt!HECmN;Mvv|B_Dpx; zZ=tmkl6!%Fu?|5}dyK=Fs8@oIZ`?ncSNb zA^Uo^|A^o2#u@YQ$htaog#Dz>c5N_&fhEB?e185p5O19ov(CMIgXxA9_E-KKcI)kw z)b#Yr2MqO#{;qZH+JXEXhifNHSM?Wm$7_0!@5{VXdqHp38`YG8BQW)yh3f63-5J@< z;$l0l@nmt<%+VaV@Iaj-&h^e<;LUvGG-sPXu!t1$61g=Bn37H->kxjn9ZH!&$xocY!PGDZpC z4W;#~zkSis-RtGhE%~>>5JRG}GgG%VU1J;5x|?9uMM2Ag5hj>KCqPwt({PnR6Lu&& zApWd*E74?79Lb}ITKMV@<2wEb1(UJanoiB8?D}{at=_`?x)u4>_+$dUhKv8NKJ&vP zs||Dv^nFnY(bke2+mhp?jEpw#AaV$fAx8q-z76y!g?-XUAfvBx{B!4eZ@)8^+ujGv zdG_bL$k>#%jSO{LOAStTTQ_bNrRDMZGm@j&HtwF|tOjOeWZ2X&G@L@>Odu{kep`Vr z{=zC8fiX3-0CsK8HUt8j9Phf#Rj>TiEU`HcA$EdhX&f4LdSG)F0w@LPJB%pKbAi>t9Yu&tQoW7{N_c z3Zi&=uC5K&c2__Yl1n+{D;C6$CvI(#FfubOPupI1qwdr-A^thHHd^hM8dl+_9v8YUI;u>C`_ghJCJjMFOjTS;r+XJ>r;8~kGSp$17-%LvNf^)G zV%_~j%c-x+BIhRi6Qa>v)raQu(@fSb$XvAMdVN{%qNF{Xt~g$wtjm}1N{x7eSe_Gf zq7163YKoOns*#pw18EMUYin8e&@l8yXba|+@>HwBUG|={mzQ@>v?acA2W2e;IX$GM zrTuDYS!p+S3*4NL8>a{3VEVKtK97)6tEE`yawR433DzipPS88ULp?}e^DA6fQIW!Q zdwW8sh>6X;Ze;sb&DRz&&1`-JT^09}WKkjsFvi{U5la;Rk~u!Y|;zM}duM{d~q zo|sFZGa>iY zQCB3$7J%6erq6v(ot&|Iudg-apTZ<>>#QSt2vHV*>U zFI325C)4kIuI9q|`#A?|6IX%B8f%bLQ zkW=K@AMsqZiaCbB;R$OZ#Gex3z@;hOlU*Ikn0muz`rd(hE$x1?bI4)w%L$!`f$Z#T z2i%AWJoLK?3e{$2G&Ho*S)qLPu8mu(KnQ{{A}f8@rA-2--~ z7m(Zv*0YQ^8w~d_3MSVXpIyHS$&k=)FYt|d)X*I>0<#w{C_Y3B%E~^sw`VhJ)7I9q z`}f<6k&Ov5R>R|X%7@Qf0^{pGT26DaRdI2B(a{;~F5n45B`+*q|0{lD_oxq3-g)oO zT|a++CN_4>^DCB9NGB?t<+EA57sst~FqIpD#A$KK>6QGPh|d$lz~JpWk}t~`3_t-_ zna>f^USF0dw=w*20`bktFHl zp>X1Ca)s%MY<~)Yx~2b9+E`rtIxIfJBgy5is8NZHVyJyTGn{j|FEG9Az2kh!^ypF8 z=6IPqXeLJpS&x!LNSm6QOWR$VfP5zAbBWaed0?X zOjdvI2ZsbBRob3gwfYe@`Js}228@|oyHYKNRr4Z%Bo>^|Cx)me!VMsjgV@{e3&dPg zQ@6i(@e-HSiV9jfBtJ5Nc)bM2fS@KX%bmluFS=g}Ei-h9xj|L}m5(3{HC6r!AMq)n zdAs39!tw3;HtMaZ{xB0$QZ-RA&dEd1yi~K#jYMYkEl`9?^DO&8r>`o0@KsJOSX$0Q zB~Lj$KRZ<{PdHEU;3y(tuX!PGX2{Ozrb$q@e)k~^>!k^T&4*wTNuaQ@+E;0#8m@AA z)l_T5Ceu6{ks8qr`#>l~bKAoD_P1|INj>|JkF|StS1s9o*_1qCzMN7JiUHZDuVoE|pZw6wK(X*PY2WHWl)mR;kMEu(Fu z?F)9}k^~-i?_O3}QIk2HJ_D-#&*Wqbhvm!<6WBUgRu;pEb4YyJGd7%ZxUH%sdJu#3 zrv7FRHT;#D80@)H{CjpGd$&$EZ}?YW;P|pu{{cLA&25ujUb|WtuOd9vj z-W1+%AVq$4X&`fC$0>$4d?7~_T5XYibi)(%pAW4LADVcpSe&{swOwuxXR|3mJiojA8)c=?SDTx& zSx1ahB$L2CDzjDoM?ym*AtS+=bh0OIyi}7<1{FtIJ!!I|v#-zln>z~b6aLuJgO#)E z$uoIH#hGLRjAz?-WZeK_MmFqr>zmj!$ftdqIn0(IlaeVb_wJF9C#LS$uivL9+Y(Ar zIGbBrj4Uj-6B85N4i7PVS}DyB$Czw(rrT!fE~Jy+=E*0%PNHMfuUTHjgIZ8Xj-){G z7diqfH4z%u zi*QLtr-Hjf(0ei#?-=;3y$8@%-sLaWbc7C7NZeyGQ&S^bd|eRPA28p(u(tNj>;{R3 zHs`%m!{23pB5!`{`E<-bK#(G!*B(47ykQTIbhYuh4y8^#8FpvTAR;)QAhKplTvSnhEtf9srjnO=)a}W9 z#pdBLahu0T{Zhj*p};f*IRQo+yc;}IBSu61^PRxQj82wLOswwoJ2uOt=KG|Y+gF=q zrXTvHrR;l4S+GdnchBLrbayd-?f%XOT4*dGD^4=y}^-pQ_`blo%bE_Ru&nj zju{cM|DD2Z#;RgZ|8SIJH|_f5LQ#keUg6EtH_K8N`oBw7fy6oie@rpNXx}B>Ro#Gi z)_;eGlDns`@7{&$n_sT6928&53qU;9|G8fHm+iyG-ZYcpZIwGmEJV=s;!1u`-tY|xBL6~<@#hP zZGI_^y5D=K}X+2R;h}Paa*ywR)A$`98 z`c9%_tgbG}=?Tw{#qtNtv$Hd9O~?rK{P&A7fRt0HUQ4aq#PC1<#hdyhNe?B4mGPA z`pAlvdMWwEHys@v6R)O@^N&lm&S&%aDz9y`oatut`ID;*SCmy~U%ZOtcfPRXJ|Dtz zZa8)xk|*7rYm0CE``5d)^dRqNapmnY_Pjx(rb@&@TRQD02jucLlC#ilhojAw(5#bR zj!VqYPF1jfO&$mH@v3lJR%T|c<4Mc2)hpY{+@~KC+#g)DclF`H>>;Udd_Ad=VqR@h zVYP$(L8Chk%x5)0Y*D2H8$M+Q{T(mQftK;8S=Xz(&~Pa#qM&ADq__@Su#4E(us6`3 z6C#C)y~Eej6AmPjQdXv}u`zB)v%vMwao)MtADQBXQ=)ewiHFWuQTY5R<1fktmvA!I z(*W4lO|1`2|FXa--MbwJ-D7gQNu9G3A^%rajmud|H`6D550R0b|8{kKUJIT@_U0w9 z5Sn9EvRCGsEH_Rs%{@%tO5w}CGOoF?C3!)5tQf@qf|WcC~cDi}z@pVs4d)fYG2s{y7fu7x1N@Si)!c z^z`M+pDTKGet=lCi;4p76A~9U{a(L9_?>-Kk8@~L)VH|0+cW(2vU4Ln(>{(OQ}I4N z7-c8+a6f*c=|#ERU_y@Xnf+W~1*eT`9g)OsI5eOPiYZ?A32*XBo?uq74pj;*FY4T8%sLAh7@+Yv z9Bb)I-;2xTk@+OwJeNrY0`%;wp2puo1f1rKNT}Fv`!dWl6klD0SY}aY%F_r6Hm&uS z;HRgjzo4WnGTkzSZ6xc&E_y;q{BU(RCaLK=h-Pq=qX>n1lVGvgpdOk0ZG% zlJ@WJ!qy@rr4dLM!@dvT#_in>qk@CU`FEg&X1#FYV>z(bk`yU%9F;^;cUn^D5bKP* z8OBHY5lG+x-_xusO9HI9zwy&N7Uou|vu@w0@IFtD2PC*&Vk40l{u!#1Ca!&Db6V7|j}s{9u}Igb9m_o!gErI? z8)JFHKEWtr+VKXnn3-j)NWxMLFlv^oYr@JJ$6ruy2AHUNn`+ty?e8;VX77-*lwiYn z*JC9d984@sgo~t+Qr-)wNBX8jpiOW2^CviRupelP%1~!fRRV*}YRj+HzTh6Cx%2P6 zjLZYn;~nkUne!S=M6QDApBKDSeC@rx+K`sXy&=)vMZjXiyS*Kc6w7V>y_;xMPF-CR z_Vw^^#Ylpff6LpFnwr4Zy)!HbOP@a*D(SVjTzzos)`iyKc=%i0Jaff0QDV;(W zX7~zij%d))_sdRt%EGZttn*uDn||NEu;2Wd0Te`1W@hH_iL?nlJ-r_>3pS{W=r!uQ zw&Qr9ZV3hf=+Kj4WE% z!@2i555>{Z(dB#()kH;Bqcgp{lB~cCYkH_8Q<7Namlpw-1Ezw4A&CB+FOF8Os>~|R zqxDz0-IkXy=6hnZ4kl$3T3~!|cW=W}EbTedvv_MGC0I3n_1}=q8V*PgR-AwTXqWT; z8PJ+5gbFsGANMDd%c(|F(`|f+*y{m1Y zW1W)%BXiy91qD*CKWo7D0eBwD=T@OW^CLrS0jCQraTis;5?>6Eup&3MwtAwHxj;ZF z&cQT?Mo4^oPg5XYfS6Po?zXo~3WUrry9!*rhm8ax%0ATTakmAMYF3jm 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 literal 0 HcmV?d00001 From 663b651b58578d8ae7e1bf6e063e30aef31ccd2c Mon Sep 17 00:00:00 2001 From: Ollie Copping Date: Mon, 2 Nov 2026 10:07:57 +0000 Subject: [PATCH 35/38] Update lockfile --- uv.lock | 730 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 367 insertions(+), 363 deletions(-) diff --git a/uv.lock b/uv.lock index eefc3aaec..df35a4226 100644 --- a/uv.lock +++ b/uv.lock @@ -40,15 +40,15 @@ wheels = [ [[package]] name = "anyio" -version = "4.15.1" +version = "4.16.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, { name = "typing-extensions", marker = "python_full_version < '3.15'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a9/d2/f4d173e22df740bc37b1db102b386ba719b66e95b0f0d751f556b387e6d2/anyio-4.15.1.tar.gz", hash = "sha256:9f28306018cbd6d329e64a36d58256edff76dd996fe423bc957326e578b82a94", size = 276966, upload-time = "2026-09-05T10:42:39.44Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/98/7e457a3b014976887a050561955c0b76e1e7e2d6e27b78ecef2ef80518f2/anyio-4.16.0.tar.gz", hash = "sha256:59bb03251907983d1603d27c3087ddb1e93299ea2163adcdba37899a4fb12ffb", size = 310971, upload-time = "2026-11-01T11:20:07.282Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/b8/4bd346e22b28902df4d651910f5242c28d84e4a5c2435ca5c3f797ed7e2e/anyio-4.15.1-py3-none-any.whl", hash = "sha256:6152fdbbf9a77fdec97731721bebf7c4c44f7c29b424b0065826173efc7ed101", size = 132079, upload-time = "2026-09-05T10:42:37.923Z" }, + { url = "https://files.pythonhosted.org/packages/a9/16/7757fb84c819accc7d7e9af5291b261e4abb8627ee040f99e7d35ef2457a/anyio-4.16.0-py3-none-any.whl", hash = "sha256:c66ae634e0b8228396b801741beb3294326d4b6102f7bba4041c0dfb58c29026", size = 134521, upload-time = "2026-11-01T11:20:05.59Z" }, ] [[package]] @@ -76,11 +76,11 @@ wheels = [ [[package]] name = "cachetools" -version = "7.2.5" +version = "7.2.8" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5a/e5/43f9a3f926cc182a0ee95cfd53ec0b5ac0e2cdafa184af6fc50166fd03fd/cachetools-7.2.5.tar.gz", hash = "sha256:a2223b80de434291ddf4c105354e533bbaf4d29382f5d1bc3e4b9332cb31061e", size = 46088, upload-time = "2026-10-25T08:53:17.172Z" } +sdist = { url = "https://files.pythonhosted.org/packages/93/6f/faa5e0606769105e70e0478031a8f9a6b729e329f42ce2462585c6d9aa52/cachetools-7.2.8.tar.gz", hash = "sha256:3f9b146b2160975da273e7c23ec882f3996b65df608150d52083c07de0682075", size = 47821, upload-time = "2026-10-31T21:37:51.986Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/bd/bd8f45fbdf05ce06dbadda61bf0a09844bb0cf0a048d7f5c4a368d437e24/cachetools-7.2.5-py3-none-any.whl", hash = "sha256:9033308cc26b678784a27b096aab1541b9e698d785c3e9918b691ccd458d88df", size = 19132, upload-time = "2026-10-25T08:53:15.638Z" }, + { url = "https://files.pythonhosted.org/packages/0c/35/2fb720060bb278759da35f2076fab1af4e9d66e3add080e6b40d6e25ba48/cachetools-7.2.8-py3-none-any.whl", hash = "sha256:09b04a85741d0019b3fb7d02b7ee9933a422fa6923af92a0fd63b893b695830c", size = 19646, upload-time = "2026-10-31T21:37:50.278Z" }, ] [[package]] @@ -322,11 +322,11 @@ wheels = [ [[package]] name = "filelock" -version = "4.2.4" +version = "4.2.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/28/3893324bcadf8f89b1616637468d766af3f625008c0735bf704fdfa86617/filelock-4.2.4.tar.gz", hash = "sha256:c6d8663535e1650ee430507b4ffbac7b464dd64b7647ea0112a9f406499d163d", size = 652444, upload-time = "2026-10-19T01:57:51.001Z" } +sdist = { url = "https://files.pythonhosted.org/packages/35/6c/730b340182f1fd74d4ef8d3f35431ce84f8f97b1a1f2afd145174b7bb047/filelock-4.2.6.tar.gz", hash = "sha256:ee7af8ede36dcaf12e1016d9f7c3a63ecd5497d46f85dab21b8c779b8f944e97", size = 661339, upload-time = "2026-10-31T15:10:16.889Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/1b/5e74289a1878e666bb4b65fe5805a04cafcac2aa5f519ef1ead67ef91c56/filelock-4.2.4-py3-none-any.whl", hash = "sha256:301241438c57936ef93f4243a94f2559022268bfcf9b375a9a72eb0f8db8358e", size = 162475, upload-time = "2026-10-19T01:57:49.419Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8d/3f849fcb79359259737bc2d8ddcaee6149ffb773239a260c9ff20179736f/filelock-4.2.6-py3-none-any.whl", hash = "sha256:fd7d4fca497bf3e3d0945a13261f8e684f2aef12ce7cf76aef26e13bf7388b88", size = 164378, upload-time = "2026-10-31T15:10:15.322Z" }, ] [[package]] @@ -590,11 +590,11 @@ wheels = [ [[package]] name = "nodeenv" -version = "1.11.0" +version = "1.12.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/105de02c1322cfada6d9710d9146ef8026419d433c9d08359a2d35805811/nodeenv-1.11.0.tar.gz", hash = "sha256:3ce8fe5b71d16e8af7039ca65257354100bc772965d6bc549070649e53b1b146", size = 99301, upload-time = "2026-09-26T11:29:21.367Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/99/d27cfc9518f49e4cbc25c683ec7cf8704a9d31311341c291c0e78ddf791b/nodeenv-1.12.0.tar.gz", hash = "sha256:4ea7f88339310afebc3253f2c7a91b94bacf97d73a36a5c108962abdfaca501e", size = 131292, upload-time = "2026-10-31T19:03:18.847Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/c8/12811c9b48fde162bb72b6f2e78fada9a247a09d7bb5be2050a5d099c77b/nodeenv-1.11.0-py2.py3-none-any.whl", hash = "sha256:edaa16e6c14d7cf395d75d4bbd5a26390f4dc06501a33b4e76282b02cc688a25", size = 34277, upload-time = "2026-09-26T11:29:19.933Z" }, + { url = "https://files.pythonhosted.org/packages/2d/6a/8a9ac7d5e2f7cf53c459bfef90ebc17a2f8cd54b665af96799d4c534840e/nodeenv-1.12.0-py3-none-any.whl", hash = "sha256:80644d65c10cc2be12e3e4b54b3367ff288c7ad24ae75c2dcc65454fc7449d4d", size = 39442, upload-time = "2026-10-31T19:03:17.427Z" }, ] [[package]] @@ -617,11 +617,11 @@ wheels = [ [[package]] name = "platformdirs" -version = "4.13.5" +version = "4.14.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/e6/d0abbb256b44e6a05748c6942511ff67db8dbb068de0c35b24bf1b395b09/platformdirs-4.13.5.tar.gz", hash = "sha256:05831adf87d392760f4b5c3a0a95579ab5a10b18b9b9bd43680dcb47544788a0", size = 62362, upload-time = "2026-10-19T01:02:11.778Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/6e/886dc7c9d21e2d95aceb696f1e31271742033aeef3661f6e9c8921493592/platformdirs-4.14.3.tar.gz", hash = "sha256:021add1ab113483edbcd4694f5fbb2d688b893ea30d35e1155bb371cf4be0be8", size = 71124, upload-time = "2026-11-01T16:27:32.928Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6c/8a/1d8cb3842909dc193a73835adedf412e32e18f8ffd59f43983949622fe6f/platformdirs-4.13.5-py3-none-any.whl", hash = "sha256:53d3ec4280b815c1e0b02edad7f9ee8fda1ba9c0865dd9c2e6e63849ce82fc1e", size = 32779, upload-time = "2026-10-19T01:02:10.17Z" }, + { url = "https://files.pythonhosted.org/packages/93/41/f0aa003909ee77a9e7e55f8659abb635ca23ab0d022a449bbb18da87a1ef/platformdirs-4.14.3-py3-none-any.whl", hash = "sha256:cba2d05fe5e18b26b1fa6f376b8e6234c012abe1f8696c486fface7d0054e931", size = 35276, upload-time = "2026-11-01T16:27:31.498Z" }, ] [[package]] @@ -675,7 +675,7 @@ wheels = [ [[package]] name = "pydantic" -version = "2.14.1" +version = "2.14.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, @@ -683,142 +683,146 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7c/0b/8e10b2e693af8ec54346a14caf36221334775975a747c9ceaa3f8371d96d/pydantic-2.14.1.tar.gz", hash = "sha256:94f478203dd03404682a1ada216965651dd74b1d2d5ffd62e00e0837caab5c26", size = 900362, upload-time = "2026-10-11T18:37:55.396Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/d5/b4867fa7c7f04c34997d7d8aad744f64d210bb99d67cf18bf3fb1eea1aed/pydantic-2.14.2.tar.gz", hash = "sha256:fb7b2db6cefe8414dd612edeede49c4c433acb0432b0f92b95024e45f66c505d", size = 911596, upload-time = "2026-10-29T16:37:12.476Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/35/ea/a56b9fe5066f3537b7882f77e9c5dfb26d8c2eefdaed9b5fc73d57b4dc22/pydantic-2.14.1-py3-none-any.whl", hash = "sha256:9195d967ec791692a04438115466764fb8b9a27b31f14a760437694f40d6b454", size = 488106, upload-time = "2026-10-11T18:37:53.437Z" }, + { url = "https://files.pythonhosted.org/packages/97/01/c71a71258b58659c72504e5fd65b451f6e36e34dc931d0b237ded213c814/pydantic-2.14.2-py3-none-any.whl", hash = "sha256:7efbf7507b937931cd32a5755acb00ea1cf5ccb1d4e8067a5850d5069e382118", size = 490403, upload-time = "2026-10-29T16:37:10.181Z" }, ] [[package]] name = "pydantic-core" -version = "2.50.1" +version = "2.50.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/24/af4ec4be49fbc810f35b0bdcacc3d433b56bbfa469fd3bfd4ae116cd9bf1/pydantic_core-2.50.1.tar.gz", hash = "sha256:e50d7b94baac6c7d09927fa5ca5800a0c7ee5015c7fcff65beb3a1931b5a6e09", size = 513515, upload-time = "2026-10-11T18:35:44.82Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/45/1b/ca81811da3d2aea724fb3c4ba6b83f50ab8f210576306ccd601973142d35/pydantic_core-2.50.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:c531166c42ea7bdfecc8c50049581f05dd1993b09cc7c52bb36a14e96deaec7d", size = 2152145, upload-time = "2026-10-11T18:31:58.046Z" }, - { url = "https://files.pythonhosted.org/packages/59/20/938ef7e0541af0a314e2f9d63848dbd1656ba2ebfe5ca0469f7ebee00d5e/pydantic_core-2.50.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b6d0c2183008c188e19f4906d426b293bdc4f67ab17df8e180fe16cda208fa71", size = 2045761, upload-time = "2026-10-11T18:31:59.35Z" }, - { url = "https://files.pythonhosted.org/packages/2f/4b/456497fe2affa18f49b226e89bde31e8a204751ee343dd9beaac5438123e/pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94be440c03fede26969a5ce75468e0e6a9927a1b46d9b679ee8adc1b057b0350", size = 2049557, upload-time = "2026-10-11T18:32:01.121Z" }, - { url = "https://files.pythonhosted.org/packages/a5/9d/cd5dfe13928f55e236dff3a1bee06721d318ca6c955d9ca993b0a5d09f39/pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:36c426eac0af8d1529ff8467e612b933346caec1fdc0d774f78f67a1a11e16c1", size = 2188153, upload-time = "2026-10-11T18:32:02.442Z" }, - { url = "https://files.pythonhosted.org/packages/fb/8d/d0b25bc484f8d9136ea76ece69e0b2d24ab370cc2e7bbd1b79e61723b763/pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:028e2f212273d4a39b1ec1e0de8166b1165a65fc0f1111452a9d94fc7c625c63", size = 2388308, upload-time = "2026-10-11T18:32:03.767Z" }, - { url = "https://files.pythonhosted.org/packages/c5/64/6513cac7c9f78492abafa01d57a69de1d246bf3085fd7b0330bf14b025b3/pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6f0cc1bb9900dc558960894adeb30b0c083366fc1d69b856209fb2ca5c36fe5", size = 2431187, upload-time = "2026-10-11T18:32:05.159Z" }, - { url = "https://files.pythonhosted.org/packages/ed/60/7f2ae89c37e69a3dc0da9ff57b0388c285542c688d05f36767770429de85/pydantic_core-2.50.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8812592c85d0edf423f10eadcef42716d71e8219085ad9e85b775057b7306133", size = 2157623, upload-time = "2026-10-11T18:32:06.616Z" }, - { url = "https://files.pythonhosted.org/packages/87/02/e3a71373b85a7973099b9a229a4302c7792262717e0b4997e41c01f7dd16/pydantic_core-2.50.1-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:bbce99252ba3167b2b6277f1829d5bf4b43b754524bddf7f944707c3db7d2253", size = 2254539, upload-time = "2026-10-11T18:32:07.968Z" }, - { url = "https://files.pythonhosted.org/packages/3f/d5/5b620aaf40dc631d911565b64d49d3fa8422027c046a7a96dc4e4921ae98/pydantic_core-2.50.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:476f6ed8e43cd1e0b460920e23571700872b284e77331cb30c4faf459cf48a4b", size = 2267344, upload-time = "2026-10-11T18:32:09.399Z" }, - { url = "https://files.pythonhosted.org/packages/e0/48/f46baf4580d8a56ca4782aa65842e16d3cf39736b29fcce8e9c0521b3422/pydantic_core-2.50.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2cbd1b75b09e976ed0d6b6ca297675632ca35df86130088457cdc60ef36970ae", size = 2300877, upload-time = "2026-10-11T18:32:10.903Z" }, - { url = "https://files.pythonhosted.org/packages/2b/9d/e7d28505e6092c1fe075838a4f793ccbe6dd676e44ab16175815ee06cfe0/pydantic_core-2.50.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:5958c72adb417c39b12ac87525ac60b0d73315fcdc59e21f44ee4a5e2512c9ef", size = 2464270, upload-time = "2026-10-11T18:32:12.329Z" }, - { url = "https://files.pythonhosted.org/packages/22/b1/3bf63b82efd93ebc9968f9c12fc46037a28bcb452c88e4688f33e5ff7dca/pydantic_core-2.50.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f9e8a6c4ab04b78d61f78627370d834eb004b2869dcb28cfffa647b4ea1980", size = 2478653, upload-time = "2026-10-11T18:32:13.735Z" }, - { url = "https://files.pythonhosted.org/packages/28/17/26d1e4b9c2ba6a92b7dc75bbcb99ef44456b7e3af1bced868403667ea7d3/pydantic_core-2.50.1-cp311-cp311-win32.whl", hash = "sha256:4be846f55c9477f5f3ddde8f2ce941137e16862a56d018ed885d422bb6ae02f2", size = 2120246, upload-time = "2026-10-11T18:32:15.591Z" }, - { url = "https://files.pythonhosted.org/packages/24/65/3e875e7991eaecd4d70686293ff0d8a99aa8f93dc295e6a21c3d702912fb/pydantic_core-2.50.1-cp311-cp311-win_amd64.whl", hash = "sha256:0048b6dddc8ef4b64fccaad878bd143b0c3882ea9936279dc11d613f6b7dd1bc", size = 2176332, upload-time = "2026-10-11T18:32:17.153Z" }, - { url = "https://files.pythonhosted.org/packages/ab/5c/58dbd17c61f209d91c70f549eb7a3bbec7023e89ea12dead091462d6d658/pydantic_core-2.50.1-cp311-cp311-win_arm64.whl", hash = "sha256:6a733778df2f7087ec1100ed0b41533e4f3001976e99570fa34f57c66e7f8e3e", size = 2182471, upload-time = "2026-10-11T18:32:18.49Z" }, - { url = "https://files.pythonhosted.org/packages/ee/94/101b49a6c63f99586755690696eae14532772587d9e39e93f7b8d28a49da/pydantic_core-2.50.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:704075d10b74f2f3c6e15407c696d88701df35fc8953f434a431add0d0074db0", size = 2222428, upload-time = "2026-10-11T18:32:20.228Z" }, - { url = "https://files.pythonhosted.org/packages/db/a3/f8b1b39349c33037c73d7a1b794c9c29d8f07d5bd2b74399c1375a529cc6/pydantic_core-2.50.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e8e1d6ce820aa23317e8209a86bd65a540973c12dc7552b48a4f6c8e9926815e", size = 2025779, upload-time = "2026-10-11T18:32:21.723Z" }, - { url = "https://files.pythonhosted.org/packages/d2/2d/862a7d115305cc621358e51ba13f296e0ffdf4fbd984be9f63bc7862730b/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c18db21573bd2c6489f9a544b7499f0df2853958c568e5e783536ee1f690af41", size = 2048429, upload-time = "2026-10-11T18:32:23.3Z" }, - { url = "https://files.pythonhosted.org/packages/c0/7d/fed95d18bf2b5abe2d5ab2bbec4184bfc22b6805994a33ccdae8edffd25a/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb57f304525a5e3c13333b772bf9a473f36326e9c821b2e8e1b2fd36f80ae2c3", size = 2173274, upload-time = "2026-10-11T18:32:24.697Z" }, - { url = "https://files.pythonhosted.org/packages/93/1e/c6f22ceac65dc3d291ff79bea0eb74cbd1de8b128f01fee48af03bcea1e1/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a27c09d86600f1bf2fe3f37e1ae697faf3143931c09322cd799da94deee923b5", size = 2360403, upload-time = "2026-10-11T18:32:26.281Z" }, - { url = "https://files.pythonhosted.org/packages/2c/97/190b5b6bfe4c72f265feb657913eb30749193927a5ad7b83cfa7866a25a2/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46b3301d3b5c886f77de7546e47274a5842c622ea2020b8c6524c6b66913b4a6", size = 2439799, upload-time = "2026-10-11T18:32:27.844Z" }, - { url = "https://files.pythonhosted.org/packages/90/24/48cd98388e4ac2c08d0800af36d15413db15e20387f1038123a2c86cb2f6/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93ba4e9d8210d941c200431a56b2c0400b131865947903937ed3ec5404307d2e", size = 2160157, upload-time = "2026-10-11T18:32:29.553Z" }, - { url = "https://files.pythonhosted.org/packages/00/86/d909133d0b9979ed14c20f110f21124a0e346caf071bd66ac5af3009062b/pydantic_core-2.50.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:e5faeaee74a57d32b3ab3aebad2e348f06d3ba946fc5d28c1728455f00a3d13a", size = 2229523, upload-time = "2026-10-11T18:32:31.027Z" }, - { url = "https://files.pythonhosted.org/packages/90/31/4b43f08131b2098e73a852fd932063385f3103b33839fd9d1abdb89e673d/pydantic_core-2.50.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3cda0e538208e5d722bbf3698b24f19c0a7d05bc8d5f8a7f9b121ea7fa243d9", size = 2242700, upload-time = "2026-10-11T18:32:32.622Z" }, - { url = "https://files.pythonhosted.org/packages/88/77/de39658569dc7a4c293d110a89629f61145e7538f00d1e4280c28debefd3/pydantic_core-2.50.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:57f51b31ff826e2859120cf4737c5a758a48d96f3e97da40ccee1796d58078ff", size = 2278452, upload-time = "2026-10-11T18:32:34.165Z" }, - { url = "https://files.pythonhosted.org/packages/46/bd/1eeb9e4e791e81210ef9096f58080b32ba15b5b13c108d50aaa3f8ce9f73/pydantic_core-2.50.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8daa7ee75245d43ad7d747e5c9ecc1b1d06552f72b14887e9276f787d57375f4", size = 2450098, upload-time = "2026-10-11T18:32:35.547Z" }, - { url = "https://files.pythonhosted.org/packages/1c/e6/b2accfdff17e5a88d6358536702146de00f9339adaa4d5bbe1ee93cb4832/pydantic_core-2.50.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:acbf31f37c53a5ac0c34706c80b4f5107ba20b05fdd3816124bf236ef0c57dd2", size = 2476839, upload-time = "2026-10-11T18:32:37.119Z" }, - { url = "https://files.pythonhosted.org/packages/3b/7e/c8a83eb5d2cd42c2e13507150fb777b1edea5a018adc9cbf2858a1d08285/pydantic_core-2.50.1-cp312-cp312-win32.whl", hash = "sha256:45b11cac094aa25725581d9304eee93c9028516b9ea80dd9e175e13a5a2c840e", size = 2101425, upload-time = "2026-10-11T18:32:38.593Z" }, - { url = "https://files.pythonhosted.org/packages/c5/17/8bbd530b8659e9d963f5b16f6cb8e159f4cd174b4d6304e48969ab12dba8/pydantic_core-2.50.1-cp312-cp312-win_amd64.whl", hash = "sha256:132529c83901437ff642f585216831bf5fd7a91df66829907e155192ead62498", size = 2172522, upload-time = "2026-10-11T18:32:40.112Z" }, - { url = "https://files.pythonhosted.org/packages/af/9f/a79d690b127e4e3cff143d031538ab9aa715f6b2fbeecbd07cd6f2bf9fb7/pydantic_core-2.50.1-cp312-cp312-win_arm64.whl", hash = "sha256:4e834f6a8e4ff772dcc34f58ef5504147a3ea5b0f4eeb13b0f8eb2ca75ac57f1", size = 2161366, upload-time = "2026-10-11T18:32:41.606Z" }, - { url = "https://files.pythonhosted.org/packages/ae/57/0e237d7091d2cd44a35d243b7344227f90440166860469cd036afc23a04d/pydantic_core-2.50.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:d5e062c01286d861fd6a1c4ff6e063547b3e713067f2df033c0ff97ac2ca006b", size = 2222774, upload-time = "2026-10-11T18:32:43.103Z" }, - { url = "https://files.pythonhosted.org/packages/f7/b9/c720e56858d4e1539503297ed37063e0c08e0f3541c41b777f6a800f75fa/pydantic_core-2.50.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0c003c3b7f49debb893d2d85ae099ac5959c9839e2f330fadb1fcdf7a6594482", size = 2024738, upload-time = "2026-10-11T18:32:44.587Z" }, - { url = "https://files.pythonhosted.org/packages/4d/b8/fbfc25875219cc060e613170ff10e850c6d8924beb4910da57c2ee3ba1d2/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:409e0ea40ec30d9158f33574fd758e689f6045a0f2596701828c27816ca9687d", size = 2047049, upload-time = "2026-10-11T18:32:46.164Z" }, - { url = "https://files.pythonhosted.org/packages/d7/43/34210124d504c553688f2f04b48500b131237528ac545b445e0d6d30e0d5/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:131059670f1d2444269b8585cb888963994871932447c08b39ac6a51fcfef658", size = 2173415, upload-time = "2026-10-11T18:32:47.722Z" }, - { url = "https://files.pythonhosted.org/packages/65/cf/6e178e8fdc11da5965bef980983bf46326a42f436871dd51ba0a57f39df1/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6dbcbee53bf17196a7f745aa9bf5a9603953a1e365b1f020be3207c676a3e7c4", size = 2361719, upload-time = "2026-10-11T18:32:49.217Z" }, - { url = "https://files.pythonhosted.org/packages/11/14/bd5169d356aa91bf777e28ba0b281c192d286d03c2812c9c9db023a2f00e/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:325c23f3e35cfbf0fe3486fa5f7260d1e45885173002d30a28ca019994124255", size = 2439803, upload-time = "2026-10-11T18:32:51.025Z" }, - { url = "https://files.pythonhosted.org/packages/1c/bc/d79d000e5203ebef39af839f2ce77a777fcad6e08ad26af9a2fcd114ffc8/pydantic_core-2.50.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17e722e156d0444ecaefbe640bdb60928752bf2013e2b7a11cdb099aaae19bec", size = 2158402, upload-time = "2026-10-11T18:32:52.714Z" }, - { url = "https://files.pythonhosted.org/packages/1b/a5/4902cb5fd599422c130bd3124ab31ee8b771199bd56662702eed07d3fec7/pydantic_core-2.50.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:aa8224f10880d9bf1b5993988ba153d42a8b4f3f4f511f93b1f09c93ff613c72", size = 2229755, upload-time = "2026-10-11T18:32:54.126Z" }, - { url = "https://files.pythonhosted.org/packages/1a/f5/c1481f8669f6060d89110c9b1374173fc8767ca276b84f4870bd8acd5e3f/pydantic_core-2.50.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:41bc8237121bd8dc8d888dfd6279fc166ffc88c1f1bf3a8bf00869680533ca4c", size = 2242303, upload-time = "2026-10-11T18:32:55.641Z" }, - { url = "https://files.pythonhosted.org/packages/04/f9/77fc3c7653ba9b6e42049e17e96b25388187d4a7c274ab1cb07f58ac8419/pydantic_core-2.50.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:45c6266d071c241f2a168d45bf8c54344f0effce35e7e6b73afdec11f3687568", size = 2278345, upload-time = "2026-10-11T18:32:57.38Z" }, - { url = "https://files.pythonhosted.org/packages/95/9b/0579c5d12e7f2b16b27e6782427987341fcce07b0725e02ddb0b74add0c4/pydantic_core-2.50.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:1deeacb112d14d3f4fcb16b165f7dbaf76c70ba6e82f37ba042bdab51970a0b8", size = 2449947, upload-time = "2026-10-11T18:32:58.896Z" }, - { url = "https://files.pythonhosted.org/packages/a8/ac/1b677db91eba54cc5922f4de6edc46ba45c2bd712dfdc0130382d158e214/pydantic_core-2.50.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1c96fd793b73d1b92e65570132505498fe7b21eaef73cdf74e67e5dfba7ac9e4", size = 2476889, upload-time = "2026-10-11T18:33:00.665Z" }, - { url = "https://files.pythonhosted.org/packages/4d/2a/3a9f6624ee3ea9ccba5249dde11418bb4c35780a7a92608f8768bd3fea39/pydantic_core-2.50.1-cp313-cp313-win32.whl", hash = "sha256:06ead20d39ffd6f2f6f2a8f8a6de67ff8bb1b4f14a8a30e058502514ee2ac685", size = 2101118, upload-time = "2026-10-11T18:33:02.329Z" }, - { url = "https://files.pythonhosted.org/packages/2d/1f/323f78ddd9d9938aac420c1abb4e8ba799fc8bdab0acc67c0593b837c979/pydantic_core-2.50.1-cp313-cp313-win_amd64.whl", hash = "sha256:7816e98acc08119dc0f340ab167048ecc54126316330c1f0caf7c6756c88e28f", size = 2170840, upload-time = "2026-10-11T18:33:03.919Z" }, - { url = "https://files.pythonhosted.org/packages/cb/09/8497c52a739ae425c3ac2f7f56414cbc711c67d374346174f40fe2062644/pydantic_core-2.50.1-cp313-cp313-win_arm64.whl", hash = "sha256:c17799a62c142d61b8a3c51752a7cbc87fe2ad4ccfab10e628a77b405075c662", size = 2161633, upload-time = "2026-10-11T18:33:05.518Z" }, - { url = "https://files.pythonhosted.org/packages/49/33/28b96e81677153715e3eafb9f26663a80841e859fde282a380359b0d3fa1/pydantic_core-2.50.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:1cf41f1ae3fa155cf167a72689ad044bcc1e3c97e064123677149bdfb5dafc4a", size = 2224428, upload-time = "2026-10-11T18:33:07.153Z" }, - { url = "https://files.pythonhosted.org/packages/94/40/15c06410c9b7b8da5805d27b64e09bd3f900e986728106db2689dbc51513/pydantic_core-2.50.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4df197990c15b5a37c5a277d131d9f2c67de6133f2e5dafd80d9bba4b99f46f9", size = 2023740, upload-time = "2026-10-11T18:33:08.763Z" }, - { url = "https://files.pythonhosted.org/packages/a1/4e/5eb629f6efc2a27e421d789dd4bfacbb5f6d09c80c28b13d1e87d73163d5/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0036473f5583e6a60e50b8b21651511564277a3f05cc5dab8cf579f552cd5f6c", size = 2049435, upload-time = "2026-10-11T18:33:10.366Z" }, - { url = "https://files.pythonhosted.org/packages/ba/8e/f195aebec49ad12318876ac2368c197a7939f5d52f8e156d2238ef8a4588/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:992c3514ec891fa7858099183e4d64e6bd5a5d4ff452fae29df22faa77a006bb", size = 2172975, upload-time = "2026-10-11T18:33:12.368Z" }, - { url = "https://files.pythonhosted.org/packages/e0/f5/7ad9fb83010cd5ea0948409db105676ed779c4e709e2d3d89b9fe2558794/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:739dc730e6be3bd5ec2f4ab5cfc7eb047cc45fc1497b3bafec74ff2ed07df597", size = 2364197, upload-time = "2026-10-11T18:33:14.244Z" }, - { url = "https://files.pythonhosted.org/packages/ca/fb/bf0aab3e78301d202b82a0322ec968cd703b11fc0623fde9a28708936f62/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32fad3a91e51b6d2039c572db04a5a873260b399f6bd62c3552671fa7a4a2899", size = 2444259, upload-time = "2026-10-11T18:33:15.79Z" }, - { url = "https://files.pythonhosted.org/packages/45/35/38f6d6564fae57d9b12e5676dfa947e0e7d5c46dbeaa7eb3352261d6d299/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42b54c2c90ad348b5e3a85e03e715d572c1fde357ef104cdfe3b03b697a404ea", size = 2159857, upload-time = "2026-10-11T18:33:17.51Z" }, - { url = "https://files.pythonhosted.org/packages/65/a0/fb0a3ca10f139dcf765b2d312d10cf0f65c57c59993229d00ad12b14ceff/pydantic_core-2.50.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:2df1ff41884de2bc4b307bafd7c40a691094fad2ff8e767e5b45a319257bcf4e", size = 2233954, upload-time = "2026-10-11T18:33:19.591Z" }, - { url = "https://files.pythonhosted.org/packages/8c/6a/e63842252702aa4ec6e6b7178ca85e541a77459076592c23ebe2d9840b33/pydantic_core-2.50.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe90228920fd8ff2be62622b6bb8a2b11acd65046d50c6b130614b5879605a20", size = 2243876, upload-time = "2026-10-11T18:33:21.393Z" }, - { url = "https://files.pythonhosted.org/packages/39/25/5991cf8318b37e0dfab47b87541619a1df8501a793cba0d978846cba37a7/pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:844b869f118e22a41a091bdcedda8a71bc1b0f62c38d1a0c3211cece47e1d8fc", size = 2277908, upload-time = "2026-10-11T18:33:23.324Z" }, - { url = "https://files.pythonhosted.org/packages/a7/3e/3ee8baaa6cc25a6961c69168cf9ff0f002d56f4e0d541ad6724c18fb61f3/pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:2eb75304506894a281d346220a4f7481a1b8729577c5ed2a05395991966a8396", size = 2449285, upload-time = "2026-10-11T18:33:24.942Z" }, - { url = "https://files.pythonhosted.org/packages/c0/c7/acbec6deac13fe697a80c275a9b6661db62c4d323bac8a47347b1f39c7cd/pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6b20a4bffabdad0db2927ac034ae3b8a681b1f7a0182f3e60b479ad2fde21ebb", size = 2479013, upload-time = "2026-10-11T18:33:26.925Z" }, - { url = "https://files.pythonhosted.org/packages/10/08/21a3f237b264389f6219d053ee78fc1b5c2fd402c1b1cb2b6cb8b85f9834/pydantic_core-2.50.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:99ba9bc2b8062ea0c326a990f7f00e6530c23579de66dd246e72c4cafef950a5", size = 1484400, upload-time = "2026-10-11T18:33:28.693Z" }, - { url = "https://files.pythonhosted.org/packages/09/ce/077a6d262d12ef09108377ac0717f029f420d773ace63cafd6143af75568/pydantic_core-2.50.1-cp314-cp314-win32.whl", hash = "sha256:cf356f70551d40374eaffb1aa63f1eb6d2006681cbd7a9faea173ce0f4dd7cd2", size = 2103222, upload-time = "2026-10-11T18:33:30.326Z" }, - { url = "https://files.pythonhosted.org/packages/14/4c/350a2415209c43d670eb71d3c040f332c04a30583d39e311b05c7ac15762/pydantic_core-2.50.1-cp314-cp314-win_amd64.whl", hash = "sha256:d32f3acc081cc3923386d88f422cde8892335e95f034e0104bb4cf9310d9915f", size = 2171586, upload-time = "2026-10-11T18:33:32.139Z" }, - { url = "https://files.pythonhosted.org/packages/bf/92/9bea6ca96580a0902fed366f064f0829e404f41889b34543279a1162b888/pydantic_core-2.50.1-cp314-cp314-win_arm64.whl", hash = "sha256:bed5163e03b98bc1fa2eb05d74c63d9c5c95d8ed6254985481640fbf5e237dea", size = 2155773, upload-time = "2026-10-11T18:33:33.896Z" }, - { url = "https://files.pythonhosted.org/packages/86/8c/f121f073cf32bdd5cba7e6230b1ce0ac845b0cf43e44dd597d95af272db2/pydantic_core-2.50.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:9572c1369e9c9da2d64a7b7992c786d90ff295abc93964cfe3125e4290768070", size = 2234017, upload-time = "2026-10-11T18:33:35.588Z" }, - { url = "https://files.pythonhosted.org/packages/a4/69/2bb2bcd6146cffe98d760a46c42ae71efd5151d9b2f9c9bf6619a3b32083/pydantic_core-2.50.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2005207aafe1231315718bf6ed5d064a7300fb4772754af35ee72fc68159492e", size = 2001016, upload-time = "2026-10-11T18:33:37.57Z" }, - { url = "https://files.pythonhosted.org/packages/20/b3/fbf854c7d07ec114260c26e9e2071a4381740f9ae09641dbfcbdf2a18c45/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f6047f62a6c5ae08d0a6afb035667aa2d97c3d20d69762e034c5ea144d92a5", size = 2023015, upload-time = "2026-10-11T18:33:39.433Z" }, - { url = "https://files.pythonhosted.org/packages/65/20/6de55b2f92cdb614b745c6e9ced639fc4fd7e1e77604825a88bdece6fcbd/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ef800dd7d85bcdadf4c3076e4c94e43939493558a3b69a1ea830c706d4617bb", size = 2192543, upload-time = "2026-10-11T18:33:41.381Z" }, - { url = "https://files.pythonhosted.org/packages/0c/d9/19e91c94bd5c405945ce2f15526808aea37e162c253160de8ed7bf70b406/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b0135bcdcaa0f23573f286e4cb5e0fd2962700964ed13df085b85f2b97aeab9e", size = 2388704, upload-time = "2026-10-11T18:33:43.167Z" }, - { url = "https://files.pythonhosted.org/packages/b6/bc/2e24c8415eae1a25ee5a5484946a917123bad2e9d01689a759236928175a/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0b3a6f334c6a2345ca15318ff894502a90012536404b37c844a976c76c846e0b", size = 2464118, upload-time = "2026-10-11T18:33:44.856Z" }, - { url = "https://files.pythonhosted.org/packages/bd/1f/945b8053cb061c64e102bcaf7bfb9ed740c0bd4349f9bb978a7d4ddff4ab/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06e01fbbfdb9be777b316a71b6c49efaf4a08b615d0a98d678cda3023f79d019", size = 2150142, upload-time = "2026-10-11T18:33:46.661Z" }, - { url = "https://files.pythonhosted.org/packages/2b/78/96a3e50bf0d64aaae781107eb9335b7529d05a85793ed6e7241c4cd1d931/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:a29a061fec0b4e2d714f277e70a3a18125ecff803f2fea6eade2f2e53711d112", size = 2245577, upload-time = "2026-10-11T18:33:48.574Z" }, - { url = "https://files.pythonhosted.org/packages/7a/5d/a6038a0322232758a6ebfa709f4ca14a60bf5b93940cd0b345056a557da4/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f5187624823423e1d1b82b1072ac41dc837389e18d3d0572cc19bbee46cd550a", size = 2263728, upload-time = "2026-10-11T18:33:50.527Z" }, - { url = "https://files.pythonhosted.org/packages/0d/4b/76ded3333a457a9344c4f2d63f2d82d0101654b05178fa4ddfe7d3627674/pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:3e46a9eb0a0901dd6275e6b06ac3a464885ef350ec4121fe486869de8053e4bb", size = 2293630, upload-time = "2026-10-11T18:33:52.362Z" }, - { url = "https://files.pythonhosted.org/packages/a9/00/9eca378335c9c1b72bc779bf6e4c2a82ce784f14ec48a0e87102c9870e05/pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:756d669f04e62ec4148ecfe22be6a4484d9b1181a6ef32e205ebfd200540858b", size = 2468048, upload-time = "2026-10-11T18:33:54.118Z" }, - { url = "https://files.pythonhosted.org/packages/35/ca/e3832e9cf93651251de43c8c5c029ed680a3c1a0a1b17ee26c81bed08cbd/pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:c516cc5367ca3448995d42cb994bf3f4c9002d2a7c22eac9622551269ad1b807", size = 2512159, upload-time = "2026-10-11T18:33:55.99Z" }, - { url = "https://files.pythonhosted.org/packages/4b/f2/773469b5a10a39116a2cb17edaf6d722f017dd8da07161b371465311c542/pydantic_core-2.50.1-cp314-cp314t-win32.whl", hash = "sha256:9d1bed94af6a63835461f3cf7502058eb166c58c4778e11d0f433cfb1bd69e19", size = 2098406, upload-time = "2026-10-11T18:33:58.043Z" }, - { url = "https://files.pythonhosted.org/packages/ee/42/0bb74f8f25204b259b11ab7c12dc7f180893b6bd706118b385147fb6efd5/pydantic_core-2.50.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c8dce1f1e0e5358b682a6ad3fa5e31b31d4560997b8e61417e9217c8d60f8a0c", size = 2148481, upload-time = "2026-10-11T18:33:59.913Z" }, - { url = "https://files.pythonhosted.org/packages/47/0d/d801646c9679a4e630e15cf521d4108b93854b42a6e6e02391bd4c6b1095/pydantic_core-2.50.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ceff0acc940be2715bd6ad17b24c0e5304abf44f6efd0f81ee8499e640f9dc86", size = 2174972, upload-time = "2026-10-11T18:34:01.875Z" }, - { url = "https://files.pythonhosted.org/packages/b2/84/23984b763d8862a02a13d27a44b6e8169428fd85ecfed88f54c29108604d/pydantic_core-2.50.1-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:8a6791afa2245e6c6b180122d105941644f5bd410bb18623b408808cc41a3102", size = 2224599, upload-time = "2026-10-11T18:34:04.016Z" }, - { url = "https://files.pythonhosted.org/packages/4d/90/a63cf8586abc1d1a3f6d9b18f0224789ebf003851f092ebda3c7c863fd32/pydantic_core-2.50.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:84f34323a61a365b4e9295de6028474754829aaddd59c7bf1a040e7487ef8f3c", size = 2024191, upload-time = "2026-10-11T18:34:05.901Z" }, - { url = "https://files.pythonhosted.org/packages/a6/6a/f34bff9808ffb4907fbf5f5040457d253cacf2da7fce9efbc99ca1b1a44d/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23edad659e8dbd8ca7e4e877fe6c81573abbdf215bd25a68b53e1272f58b80c7", size = 2048252, upload-time = "2026-10-11T18:34:07.757Z" }, - { url = "https://files.pythonhosted.org/packages/b2/54/13f419bf1eb59852003818e25935aaf175687d978f4c4bca70e08fe40a3b/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a5fce22f1e87d181e924e12da7d81cfe031fb3881a5ddf26ad28f141756ca43", size = 2173376, upload-time = "2026-10-11T18:34:09.592Z" }, - { url = "https://files.pythonhosted.org/packages/6d/6c/b5a34d24cd0c81669d8f8339d74e6815abcf2f8fb48ab4b49b84c09be1d5/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c73622ef819328873b53109ee4f77ceb598bffedd02daf916102be3228866b78", size = 2364559, upload-time = "2026-10-11T18:34:11.534Z" }, - { url = "https://files.pythonhosted.org/packages/eb/8d/d64d6216a8df365082665927ff923f183056f9049fee08e9777c9ac05296/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce8c25ca38cc0e3d7753ba180808de2c0c8cb24eae0df64491e40921454e9831", size = 2444697, upload-time = "2026-10-11T18:34:13.535Z" }, - { url = "https://files.pythonhosted.org/packages/b8/0d/1b1149f60a00ea21ba5f70e28acbd40feb4598af414f80f53c921fac07c9/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7689580e72a642ab5ec64d5f55b2e33636fa43b4ebe63c0c2c965ef307c7d1aa", size = 2159961, upload-time = "2026-10-11T18:34:15.56Z" }, - { url = "https://files.pythonhosted.org/packages/1e/35/f236549299dcc78e71e945495d7ec67e78d20844d0999c60601685003031/pydantic_core-2.50.1-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:d5c0e32fdbce7f1e8ef4d11f655694bf5f4175c757a9f1dc2be09b8864e5bcf5", size = 2234581, upload-time = "2026-10-11T18:34:17.502Z" }, - { url = "https://files.pythonhosted.org/packages/6a/85/26901a490522b7f75ef9bb9a7afb73e5bb550f0e1cb5b99a0069183e2eb9/pydantic_core-2.50.1-cp315-cp315-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40f523349960fa30f3ea51404308ff50f9997a90df639590f47a057c1f32b415", size = 2244090, upload-time = "2026-10-11T18:34:19.402Z" }, - { url = "https://files.pythonhosted.org/packages/ca/2c/481bcfc70ceeb77a778ca6e5b705fe592cb64735c108157f81b7dd9c280e/pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:d4193206b6587047437f6f11d7e776df23e1c1e23af2a54d9347275614791e10", size = 2277948, upload-time = "2026-10-11T18:34:21.317Z" }, - { url = "https://files.pythonhosted.org/packages/24/eb/f1e09333faa7ba447cde967310f758430cc7c5e987bdab5228816c70030d/pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_armv7l.whl", hash = "sha256:84bc765b282a9d5b7fe0348b8648904f25a6a04b2139da52b1dd30c8ac3a2c8f", size = 2449688, upload-time = "2026-10-11T18:34:23.321Z" }, - { url = "https://files.pythonhosted.org/packages/d1/b3/036bde636db8f76d92996e81aefc75678ab5cec4a07eea1ad0c72a893fc3/pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:ed1e728b39a383c81035b2459cfcb35d99dfb01f7d6ebe3a913bc1cc5b81e459", size = 2479286, upload-time = "2026-10-11T18:34:25.214Z" }, - { url = "https://files.pythonhosted.org/packages/d0/a3/07f018294ee18d144afeb6df1a47d9e92960f014be45c5ed13519fa5af95/pydantic_core-2.50.1-cp315-cp315-win32.whl", hash = "sha256:bc94f474417604bd383d2cd445d071b07dd55fedceed3ce33407bf1fcc107290", size = 2103683, upload-time = "2026-10-11T18:34:27.42Z" }, - { url = "https://files.pythonhosted.org/packages/5f/98/f9bd7e1f9b6709f155acb9ef826d9c3884fe925f811fd8e55b9b52280bad/pydantic_core-2.50.1-cp315-cp315-win_amd64.whl", hash = "sha256:983a662de2571cb2502fc8ff47b6770b03d025d2eb314c92f77b3f07c74720ed", size = 2171681, upload-time = "2026-10-11T18:34:29.508Z" }, - { url = "https://files.pythonhosted.org/packages/10/87/4bb3e1e7f385c076ab5af4d6dd0571b22042cd8207eb810d5b9fef15ae31/pydantic_core-2.50.1-cp315-cp315-win_arm64.whl", hash = "sha256:94845ff54dc5193f228cab81b2662a04bfbb892e95bdc15edf7399000ce57d54", size = 2156251, upload-time = "2026-10-11T18:34:31.455Z" }, - { url = "https://files.pythonhosted.org/packages/47/47/83643225b08f2aef6c8cc4bbe6e3f79c5e139c4364a6e450d0f399d87774/pydantic_core-2.50.1-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:4a53d13cdfbedbfa87f08b83c1a0a5efcc767d785a4b41934fa9cb672670493a", size = 2234363, upload-time = "2026-10-11T18:34:33.65Z" }, - { url = "https://files.pythonhosted.org/packages/5e/66/127ca649ba2f2462039dc1e694c6c01e00a3689f023a617364d3507e6d97/pydantic_core-2.50.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:efbecf43d321f7b9281441f1f213f7c21c66988b0e06c2730ba13ed47a46bb08", size = 2000972, upload-time = "2026-10-11T18:34:36.037Z" }, - { url = "https://files.pythonhosted.org/packages/5e/4f/e421e0a5d653b1203b090b2e48745976988d7338a647940704b5b9c2b399/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc1f08f68dac9f9e83845a8039880aba2ab553eb9b2259c3243a313182c253fe", size = 2022925, upload-time = "2026-10-11T18:34:37.972Z" }, - { url = "https://files.pythonhosted.org/packages/d5/4e/ea5568e2491e1a71100f15ae8c2d01ef52db42a184a2d4e716bc79e5eb8f/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5dfe41f232befddb9c4377f6cfc702b51595e2d78ed082672adf8758d2c4619f", size = 2192867, upload-time = "2026-10-11T18:34:39.921Z" }, - { url = "https://files.pythonhosted.org/packages/ae/5e/3b8c3a35acbe219909ada5defad5d7d9fed845fb2b37bd5ec518f453c119/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adc06d218a1cadfd2ec4628424d7d79ce4eba69c2965e7e7b55106f0da5208c8", size = 2388687, upload-time = "2026-10-11T18:34:42.184Z" }, - { url = "https://files.pythonhosted.org/packages/b6/aa/7889b4e515f91a2e8c0ae6b5081fec0feb30c4398d1434e14793c60f173a/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cf91809d0721ab81592ba67bea7694821679c10b1a2e3c3460082b286c1918a", size = 2464415, upload-time = "2026-10-11T18:34:44.384Z" }, - { url = "https://files.pythonhosted.org/packages/08/78/93449e628eb8a6fdcce3eff9043081179d1bc7ce6f1bff32dc5006f41e00/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23923ab9292c40da026330b1ecf4dc2618c8e86e0422e5d1fbf50d94d64ca4f8", size = 2150823, upload-time = "2026-10-11T18:34:46.392Z" }, - { url = "https://files.pythonhosted.org/packages/f4/f1/72c5bc129fceb0d00f05dc1e67f518c1728de1928c55f81fc13d7690de39/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:f3377c8c2b3ce898423c5e5dd94c7982e30aa7717a7e6ab2470b9de364963709", size = 2245806, upload-time = "2026-10-11T18:34:48.805Z" }, - { url = "https://files.pythonhosted.org/packages/28/2a/922a0e78f3aa6ab837b59f88190233fb8dad546c17995fde9bb3ed3b9b49/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:455a773617b5913bf5c20d0692e5787b119e52c4d40ea644ca31f5758fd31be2", size = 2264160, upload-time = "2026-10-11T18:34:50.876Z" }, - { url = "https://files.pythonhosted.org/packages/52/a8/0f1449e3e1b20941c9372faa18e7b6a092e30cdfa841902473f7989532ac/pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_aarch64.whl", hash = "sha256:1a9006395dece0e32e704c315eff8a00bede494f6108546cfc5539c89fef4f9a", size = 2294031, upload-time = "2026-10-11T18:34:52.876Z" }, - { url = "https://files.pythonhosted.org/packages/d1/d0/1031f492857de70355fb16524bbb03efce5fd34c93ed4a1ec60be07e0d4b/pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_armv7l.whl", hash = "sha256:d2d82aa62521c55ddfb000ae70f88cdd8de974078f6024e821dfe5addd0c818f", size = 2468423, upload-time = "2026-10-11T18:34:54.995Z" }, - { url = "https://files.pythonhosted.org/packages/46/52/269ffffa645b8e47906395a39cf9db1151ae9fa4bcd7f47b960bc31baf37/pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_x86_64.whl", hash = "sha256:009634b83993777ddcd69cad0ffcace43dabde692109528e35f0fde91e386a8b", size = 2512598, upload-time = "2026-10-11T18:34:57.149Z" }, - { url = "https://files.pythonhosted.org/packages/31/5c/e47e28281f20326ff6f3c31d626f0a83e615d2d94ba41bb0ad6ec237184a/pydantic_core-2.50.1-cp315-cp315t-win32.whl", hash = "sha256:3fde4fdc6487a58d944ca87cf5adc95d5f266e872c19599f5f4c0a8a1b1f9f9f", size = 2098535, upload-time = "2026-10-11T18:34:59.313Z" }, - { url = "https://files.pythonhosted.org/packages/03/ad/759e181e69c1b472c60b2049e5f61d5da1deefdd5ce1df4bb2ebcf771f25/pydantic_core-2.50.1-cp315-cp315t-win_amd64.whl", hash = "sha256:1c8632d4ac04e6f91128fca584b3a8a507d81604c24eeaaad00d4be42765c32b", size = 2148645, upload-time = "2026-10-11T18:35:01.571Z" }, - { url = "https://files.pythonhosted.org/packages/6d/56/8a702c27e5be9f47e5f19d8669227424290e4c024e7c370279cbaf244b4e/pydantic_core-2.50.1-cp315-cp315t-win_arm64.whl", hash = "sha256:c3ede305158e75510be50869b319550ab072008c13d64d4ab1e094fb286b6f44", size = 2175297, upload-time = "2026-10-11T18:35:04.079Z" }, - { url = "https://files.pythonhosted.org/packages/e7/73/a23a327237d9bb985298ce47702e196f995ce850224c12c70886bd66bb5c/pydantic_core-2.50.1-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:062e891facce5ca296a1c37098e5e466780457f86413894b399f0cf22934f769", size = 2162560, upload-time = "2026-10-11T18:35:06.274Z" }, - { url = "https://files.pythonhosted.org/packages/df/b2/33b37b5e82408f402a5e82649a43e7c95cd5dab7beaeef2c35cedbfd18f2/pydantic_core-2.50.1-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:49c2cbb2397fe4d0987e84606e691af6cb87bc0ee1bd3e7b737f7e10b4c142f9", size = 2075250, upload-time = "2026-10-11T18:35:08.455Z" }, - { url = "https://files.pythonhosted.org/packages/04/62/c7d5b9249466ccab90f3ce4790c2399dbfb8172ae9e74a7753dd295fe65a/pydantic_core-2.50.1-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e4472072de0137ee0d8e72d6620e85939c271d2f90f6bbb4b15c24638b79f92", size = 2107891, upload-time = "2026-10-11T18:35:10.918Z" }, - { url = "https://files.pythonhosted.org/packages/d4/7e/28d29bc1657195933147f772dee0558d9e0f045bbc11db7f992f40c37bb5/pydantic_core-2.50.1-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ed4f3cef55164b026fefb41341b7754cc6b624c75dfe7142d2ecceb5ad21c87", size = 2268026, upload-time = "2026-10-11T18:35:13.336Z" }, - { url = "https://files.pythonhosted.org/packages/a5/09/1bcf160f3cd6333e2a76982fae5963e5032de0bcaaba38464223dc266bfe/pydantic_core-2.50.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:76e2e83fa6ec8cdc972d438dafc2522b3a47bee4ec0ae668b29cfb1977ab5242", size = 2217070, upload-time = "2026-10-11T18:35:15.688Z" }, - { url = "https://files.pythonhosted.org/packages/3d/81/f02de95eec7794dfc7a5bc69a834f0e834b31b3009014ce6de903855f775/pydantic_core-2.50.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:a51eee75939cf811ac09b278745a6cee7dc873ccfbc8b9af3cc88fe4b7ce25b5", size = 2039027, upload-time = "2026-10-11T18:35:18.07Z" }, - { url = "https://files.pythonhosted.org/packages/4d/16/227746ed3771d9bf2304568b55134849ece34e13b38b1d76de763015c77f/pydantic_core-2.50.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae28183297fb0d2b8dc46a1f01d51f5e45825fc5afe76a835a6cb7fb34821295", size = 2109009, upload-time = "2026-10-11T18:35:20.218Z" }, - { url = "https://files.pythonhosted.org/packages/e5/b9/7664d1592a0e5a74903f357cd5b28ceb7336f3473256c5a4e8c8432f1881/pydantic_core-2.50.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88e492e8b9d0312e7dc13667c30222abf284dc3b79b5302b3607b41a5784ce61", size = 2269883, upload-time = "2026-10-11T18:35:22.48Z" }, - { url = "https://files.pythonhosted.org/packages/bd/35/002a378302ff91d2a7f149bc8d22363faf581ba40ac39d0123444315a32d/pydantic_core-2.50.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7456d699b13954e9c0164dcb267250a10ae0dfb03e6e26d6796ab0d46e189c84", size = 2154076, upload-time = "2026-10-11T18:35:24.743Z" }, - { url = "https://files.pythonhosted.org/packages/4b/5c/7a034330082c00f3c9795052bd9b161aaaf6e1951e897ac00a094823ef7e/pydantic_core-2.50.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0d955195bbbe489ad343fcc956eacea9357b79cb22192c66cacdefcbc14b32f", size = 2085850, upload-time = "2026-10-11T18:35:27.009Z" }, - { url = "https://files.pythonhosted.org/packages/57/fa/d5b44a7d3d4eceed6ef8713a0003af56fefde6ec75915513bcdd5d730cd9/pydantic_core-2.50.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2c634642694e6a0dad2ab1d375589fa671fd442edd5caf7d9737b8f6ca22906", size = 2259754, upload-time = "2026-10-11T18:35:29.763Z" }, - { url = "https://files.pythonhosted.org/packages/b6/88/e01dd37301710bd8b3b2daf34ec9e2a6e83a333130831c0d468b0292a48c/pydantic_core-2.50.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ee6db2fbed51a7991302e8fac498cd67e336246026d0dfa84cf5166ce1412760", size = 2268712, upload-time = "2026-10-11T18:35:32.654Z" }, - { url = "https://files.pythonhosted.org/packages/3e/43/5bb80d4a4d2b2d84612a30205662cc521a20d209c94abc079ea48b4e0df2/pydantic_core-2.50.1-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:79490e33c4c0fcb933bbbcfc3a62184d8803b99f535863dfbb925e1bcb6945ad", size = 2305049, upload-time = "2026-10-11T18:35:35.392Z" }, - { url = "https://files.pythonhosted.org/packages/e8/7b/e3ef76b269cfe4a5bd3bdcf5d7124cf05e5a8909d443b91639307116bdae/pydantic_core-2.50.1-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:48569b0ade9edfbe065cad1d700175546592aebbb42f02adcebcc26e75b896fe", size = 2466001, upload-time = "2026-10-11T18:35:37.791Z" }, - { url = "https://files.pythonhosted.org/packages/8f/7a/ea0947aadc1d9f72d4be00d2e19939611ec17363bcb5e6eb9ec7d8221c34/pydantic_core-2.50.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:5f3cae32fc46121f787cb2486de9cf95a8bf72aec5cc78f64c606fa1735a6ef5", size = 2481777, upload-time = "2026-10-11T18:35:40.287Z" }, - { url = "https://files.pythonhosted.org/packages/24/f3/d15bc0b1fb0c4f1e07b3326ffb7489f7ae70da2b56a0884d22641b0eb47c/pydantic_core-2.50.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:7f476456ac2bb0d937f75191494a09c83a30765fea4f70f3b404942fe25f6cdf", size = 2336787, upload-time = "2026-10-11T18:35:42.558Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/af/8e/23ec1021834e35041fbb2f10946141e6acdfd39379c45cc4d65a4e8a1d98/pydantic_core-2.50.2.tar.gz", hash = "sha256:1b0e8dc3932cf4e9ed5727570325cacc716b9409ffc794a221c0ccc72e8eb775", size = 518711, upload-time = "2026-10-29T16:34:57.465Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/0f/1043d3840b7859cc19abede795e058a785ebc1fa011b022b0a69514dd5c5/pydantic_core-2.50.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2115d7ca6d58554af8a14da3dd32d361a4fe999fae52f115a6155679b5b00e72", size = 2160886, upload-time = "2026-10-29T16:31:48.009Z" }, + { url = "https://files.pythonhosted.org/packages/d8/95/6211dfe1794bde5ce14f3de2212551196784c67411ac5249d8aa627e3e23/pydantic_core-2.50.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b2dd65864aad38dbcc57c3d0e2c978d4286e063378137d8fc0c9fcd558943285", size = 2115730, upload-time = "2026-10-29T16:31:49.449Z" }, + { url = "https://files.pythonhosted.org/packages/67/42/50a1a9721cfc21d360916754096c90467fa21386ef16875445ea06a4cf6e/pydantic_core-2.50.2-cp311-cp311-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:26b778d4ebb75f181d36220ff0f54a513fc46f053d9b09ce79993c2f00bc45cc", size = 2274234, upload-time = "2026-10-29T16:31:50.668Z" }, + { url = "https://files.pythonhosted.org/packages/69/0b/22349c3114a3b3c400333ba6ec1d2e127fc9a4e4682440d8e23d954df0d1/pydantic_core-2.50.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e80c47314c7233e7105a7efcfffd89d56e479e558189d1959eeeaf2639a27680", size = 2116001, upload-time = "2026-10-29T16:31:51.887Z" }, + { url = "https://files.pythonhosted.org/packages/d8/2e/3b88612239e87cfddd370362e93b18a50d5075883817d6b35e8e3871af75/pydantic_core-2.50.2-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:3bfe12243b3ded517c6734d91f127489e2f51bf95cb533b53130fe360333db80", size = 2204318, upload-time = "2026-10-29T16:31:53.342Z" }, + { url = "https://files.pythonhosted.org/packages/3b/3b/a735bf3967d0fd73b512705d6f80fbe179d3b6208779721e86613cdf736d/pydantic_core-2.50.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:01eb0282d0b3a065d55956d1be9ce398c46db3dd6d277a6cb2358c8aa8c53179", size = 2392365, upload-time = "2026-10-29T16:31:54.721Z" }, + { url = "https://files.pythonhosted.org/packages/9d/16/0a0febc06b311d6ca43dd7fa068273d2c4d3c4ad86ac4a6c2f2cbe924c23/pydantic_core-2.50.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:196b87b48b2695426920e8470d20f9e99f019ebd86f15808aa018b68086840cd", size = 2443963, upload-time = "2026-10-29T16:31:56.455Z" }, + { url = "https://files.pythonhosted.org/packages/70/7d/22bd04c22adae266ae5e99e4c34bd882daf6c93c35bda2f9674421c1e7c3/pydantic_core-2.50.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:86e7abd24a67f61a4bfe8df059b67a2bdd8bf33705178e98463195d140bd3780", size = 2236349, upload-time = "2026-10-29T16:31:57.837Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c4/77b12031179047a292128eee12cd7aad899d82391157356a581117e232e7/pydantic_core-2.50.2-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:aff31602e8518594e6f6bc670cdb27e37cb7dbeb2d5d0b76a7707b70fe951ddf", size = 2272702, upload-time = "2026-10-29T16:31:59.287Z" }, + { url = "https://files.pythonhosted.org/packages/98/58/41f674077b08b79bf2f2ae3c777a5b7b8758647433c6c621580b612e8c1e/pydantic_core-2.50.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a88851e8e332588cb8cced8b5318d1163c7d0bb87830aa8dcafbc4ae9602b73c", size = 2311296, upload-time = "2026-10-29T16:32:00.722Z" }, + { url = "https://files.pythonhosted.org/packages/61/af/527d1d29cfb8efc7c7f9ed9f35ab5b16a33b1837b186c6e42ecbca699817/pydantic_core-2.50.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3b1bb3950e0794a795c9344d818d5b476189b0c9c9755e8eb8fde87c3acee17a", size = 2481042, upload-time = "2026-10-29T16:32:02.423Z" }, + { url = "https://files.pythonhosted.org/packages/57/35/79877aaf083424e67c870ba07c0b5ed36a2096a0cfc8b058c1d921797723/pydantic_core-2.50.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:928a44ad1e21a7e923eb924d601605f0694cd187d2ce5d40bf7ad76650f4627d", size = 2488007, upload-time = "2026-10-29T16:32:03.819Z" }, + { url = "https://files.pythonhosted.org/packages/aa/45/5a627e40690c21be388c4abfddaefbf589e359614456156c90432ac0a76a/pydantic_core-2.50.2-cp311-cp311-win32.whl", hash = "sha256:9a87744e683d9a13f60b7fa5242c17f8d283ffa94ad727cb19063b48c3d34960", size = 2121376, upload-time = "2026-10-29T16:32:05.053Z" }, + { url = "https://files.pythonhosted.org/packages/1f/9b/d21478003682505aad9619ff9e086bd29aced2615b23d5315cb37de14cad/pydantic_core-2.50.2-cp311-cp311-win_amd64.whl", hash = "sha256:b958c217c6e56bef261f516e4caf5d490b079ad6a428752afada5a764cca6c71", size = 2238388, upload-time = "2026-10-29T16:32:06.811Z" }, + { url = "https://files.pythonhosted.org/packages/e7/26/670a52ea740fd60f5e0a873b74505714c4bfd04c4344f789310005c4cbbd/pydantic_core-2.50.2-cp311-cp311-win_arm64.whl", hash = "sha256:b0e6a2152706d84f7da8b9d34dcecc7e9bde678af32c40bd5b405f427ae0fbdb", size = 2185763, upload-time = "2026-10-29T16:32:08.441Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/6609a66cda909d414c58438f9bd70b1e947fe12c25f6bd40c93121afd7ef/pydantic_core-2.50.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:e3d824b6152e1c0fd58dc6266f2de470eb7b2286135294f5f7cd26a0f0693738", size = 2220341, upload-time = "2026-10-29T16:32:10.193Z" }, + { url = "https://files.pythonhosted.org/packages/f9/0b/92463ae7be78d73885487f72c4599902c2cc190378bccaad5718b7495250/pydantic_core-2.50.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:596921489390a002d6a5e303384a0f1f98384f8bb550fbf38a1aafa6093da0f9", size = 2093701, upload-time = "2026-10-29T16:32:11.502Z" }, + { url = "https://files.pythonhosted.org/packages/62/d3/24147a1aa22f7eade546172750e1110fd7b2793998057809800d3ebeae4e/pydantic_core-2.50.2-cp312-cp312-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:36d8b9725684ca3bf658b90a101d335fc8cae405bb22196b7b5ef41344913756", size = 2253622, upload-time = "2026-10-29T16:32:13.051Z" }, + { url = "https://files.pythonhosted.org/packages/f6/50/2628ca3c83a0d9a6fda3305fe59b1b28e40c0221e8f234cd1ef86fb64745/pydantic_core-2.50.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:43a8fd56f3c681f3cda2d5c842ad28e88241df742dfcbe8fd1dd437a3056e1f6", size = 2114101, upload-time = "2026-10-29T16:32:14.702Z" }, + { url = "https://files.pythonhosted.org/packages/21/c8/cc6d7304a93f91f5e06260ccad71cc7d882489663a37dec009532379fc46/pydantic_core-2.50.2-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:6f5a432c6c1ef18a1a02a04b3616b8d3f2f88b13faa46caae1ac6559ab202234", size = 2199541, upload-time = "2026-10-29T16:32:16.153Z" }, + { url = "https://files.pythonhosted.org/packages/65/d9/18f44ac5696b3e2b2384cb89c9fbe6ed69860f528e232b9fb46cc5b45a17/pydantic_core-2.50.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5d3cd8be71c4da3c9b42cc92f17e5e3036bdca98bf18555a0e072c3fe87abbb4", size = 2368597, upload-time = "2026-10-29T16:32:17.544Z" }, + { url = "https://files.pythonhosted.org/packages/1d/22/5f2a48ef819a7e1b74fb003a85d27576ad2f9ddf3901b88998ac63ce1e00/pydantic_core-2.50.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6a438cb8a3f87f2c49e82e43fb19511d4d5043f53e0787dc4df937ccb904373a", size = 2451701, upload-time = "2026-10-29T16:32:18.956Z" }, + { url = "https://files.pythonhosted.org/packages/08/93/2a6556bbdb8e918175af9d849a5d0b367b5644e41939d040f3a7215b1339/pydantic_core-2.50.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9667637665acba166a7dbbc786f14c50512d3a01f7199e0e1a13b929e92d7c7a", size = 2242782, upload-time = "2026-10-29T16:32:20.381Z" }, + { url = "https://files.pythonhosted.org/packages/90/ed/dd9f29a92257f32eb5b99d5120826186ee0632ecc3aaf6c23e2fab89ed6d/pydantic_core-2.50.2-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:b3e681208e2d39fde13fbea449ef2736a85ec1ea2afa41e9193a8c536e71dafe", size = 2253706, upload-time = "2026-10-29T16:32:22.293Z" }, + { url = "https://files.pythonhosted.org/packages/11/19/1ccf3bf38eb4ed97d8aeefc558458834ae0ad53fdbb1edf61af7228ea500/pydantic_core-2.50.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:6eb6ff07964f39e33c6f57fefe939514e76b8c0d4a694e5663e2e04e80cc1798", size = 2288603, upload-time = "2026-10-29T16:32:23.465Z" }, + { url = "https://files.pythonhosted.org/packages/ea/cd/bae2320fc89a65bcd87bf66ec83aac51b3b43b970a2edece15feb8af64dd/pydantic_core-2.50.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:4eb54c25e3463d73e1e4ed439ffc45d1d7e590df40bc7bb06f11a906afd996c3", size = 2476597, upload-time = "2026-10-29T16:32:24.824Z" }, + { url = "https://files.pythonhosted.org/packages/db/35/1bdb8d52c8e562e95c5e6ebb5784792af568ac6a81470dd546d95f392b60/pydantic_core-2.50.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:91238117cd296352f54f24117ff5a227bdea428865dba1244aa0cdd1424c0bc2", size = 2478664, upload-time = "2026-10-29T16:32:26.197Z" }, + { url = "https://files.pythonhosted.org/packages/12/72/0179b40ac6a6b0899c61826f2e3e80f88063f6d821e0dd9641927de46700/pydantic_core-2.50.2-cp312-cp312-win32.whl", hash = "sha256:98722314e12a8e4fa346e0afd3fff2098b5732875ff45592b450a7b589b43c4f", size = 2108820, upload-time = "2026-10-29T16:32:27.736Z" }, + { url = "https://files.pythonhosted.org/packages/b4/fb/679144362d7e5162519d9f6631ec982521417de3196351c6c56485f5b29f/pydantic_core-2.50.2-cp312-cp312-win_amd64.whl", hash = "sha256:b381574614245f18fdb2d6d1aa8f149e225869c47b5ee7f81812de8977817314", size = 2252238, upload-time = "2026-10-29T16:32:29.572Z" }, + { url = "https://files.pythonhosted.org/packages/0f/68/e3ccc885c3e2086ff84d7ca496f45b974a9f0a49ce2da8973aaa3a369a4b/pydantic_core-2.50.2-cp312-cp312-win_arm64.whl", hash = "sha256:f07c965a8aa6d62145f122641f292129984f39a3e3697585b19298a1488287db", size = 2162565, upload-time = "2026-10-29T16:32:30.853Z" }, + { url = "https://files.pythonhosted.org/packages/c2/fc/ac3ae9d934932ce3c380e7fe53e01372b49ef5dcb49db56f1a1f005b4d8c/pydantic_core-2.50.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:93eb41d626d9a2749a678823c70bba8c25033cef474ae8001fd7621adbbd8437", size = 2222463, upload-time = "2026-10-29T16:32:32.125Z" }, + { url = "https://files.pythonhosted.org/packages/f7/0b/7605223654ed4e777d05668e914d32b476b1fa2bb756bff9820fe270456b/pydantic_core-2.50.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7c539d452cba22f250103c7d1c00cbe9038eb705e657476e701c43374efd9f2e", size = 2093995, upload-time = "2026-10-29T16:32:33.496Z" }, + { url = "https://files.pythonhosted.org/packages/b4/29/4a1a653cfedd3f5e1ccd3b1e919fe324fb45607d12c30fdd7ca5af16ba8d/pydantic_core-2.50.2-cp313-cp313-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:53bd25e8ab54c02bb4c55d4848c1d36f75f3b9a7356e83179fe27794d9e9e6c4", size = 2253178, upload-time = "2026-10-29T16:32:34.77Z" }, + { url = "https://files.pythonhosted.org/packages/6c/f5/03ce5ed01c98b60272cdee8ac1abb819b64ef347717c11d96215e32d9952/pydantic_core-2.50.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f142cd663d1148ed32993ed9a58e5c67ea312f446a01a6c13a956945aafc9f23", size = 2113894, upload-time = "2026-10-29T16:32:39.241Z" }, + { url = "https://files.pythonhosted.org/packages/d3/bc/f7644474ac0faad9a7fdf5179239893b21339169b8b4f89e3075c4be16b2/pydantic_core-2.50.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:126f158474346f457c0759c29c1a6334acd5f7f99dd272bb27d19314f3d81b4d", size = 2198248, upload-time = "2026-10-29T16:32:42.357Z" }, + { url = "https://files.pythonhosted.org/packages/c2/8f/3d3a1c1d313e02774f6c034eb1910eb6e795922e66e81f0f053f98afe866/pydantic_core-2.50.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:0b94a515f44f1ebcb25395bcdba506c4cdaf6d3fcb0466b9658521b41e5ff057", size = 2368505, upload-time = "2026-10-29T16:32:43.755Z" }, + { url = "https://files.pythonhosted.org/packages/03/33/38fb4545c00ce2bfebc2a0ffd99f7f580f1e1efb8db3b2faf88def640435/pydantic_core-2.50.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:a55c1163e829a08707b4a92c8ee02a5a3a3847ced74aa4da94e3e975ffe1ec63", size = 2451704, upload-time = "2026-10-29T16:32:45.075Z" }, + { url = "https://files.pythonhosted.org/packages/79/be/b559a1ceaff8b1d4581733d47d2ffa785635ac05716eae4c964466aac6e8/pydantic_core-2.50.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:31a1fb3ffbd1195b24490f671d12623dd4c9bfa56d6af0a299fa43b516134f5b", size = 2241760, upload-time = "2026-10-29T16:32:46.382Z" }, + { url = "https://files.pythonhosted.org/packages/2d/7c/3c8ab7cb45e4dc7687a4f16a953fee14d2eca18dd90d6be8bd470ef06962/pydantic_core-2.50.2-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:83d6f42ae6eba44548a1a3d4f900a5b1500fdd14f09f04754a8800ab0d544432", size = 2254115, upload-time = "2026-10-29T16:32:47.818Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ad/3f3471206224cdac2af3492a3f7c724c47a82f5f8850ff364c2e36023497/pydantic_core-2.50.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:9fcde11462e0faab4c2a2ae8cd4516f7dd8239eec583bd88c5524d8064ad2d0c", size = 2288598, upload-time = "2026-10-29T16:32:49.404Z" }, + { url = "https://files.pythonhosted.org/packages/a9/1e/2070b388b1d8633cfb72e3964ac3c95aaeb195c240209894ff386847b494/pydantic_core-2.50.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:848984e231190ae49bc8b5229e64d2a6fba4231dc6046e1b6b28ddc060bc7601", size = 2475116, upload-time = "2026-10-29T16:32:51.414Z" }, + { url = "https://files.pythonhosted.org/packages/3d/96/e96ff19527c73b9aaddce2a4424006dc15439fd89ef2d39641048c5ee85a/pydantic_core-2.50.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:8772c2c0091e6fc2d0499151793d31bf811826986b0727052935a95104845544", size = 2478926, upload-time = "2026-10-29T16:32:52.856Z" }, + { url = "https://files.pythonhosted.org/packages/35/10/2fefc082eb46f959e80735e859161305c0c2fbb3d5d20ac5547c49a84a3b/pydantic_core-2.50.2-cp313-cp313-win32.whl", hash = "sha256:bd6ecae08c0d871cf93b6f0d4ee76b06c65be44ea22311981a022b2f1948cf9d", size = 2108354, upload-time = "2026-10-29T16:32:54.276Z" }, + { url = "https://files.pythonhosted.org/packages/6f/dd/14eeec394ec1422f9c4e9743cd746f4502232a7c65eb235d1a03729d94ab/pydantic_core-2.50.2-cp313-cp313-win_amd64.whl", hash = "sha256:e5c801bdf3cc92274b8fc2c7023c8751e5ae81260c009ac558ff55ce712a2d45", size = 2250556, upload-time = "2026-10-29T16:32:55.396Z" }, + { url = "https://files.pythonhosted.org/packages/75/b7/a014acf1ae4b4aa7d32ff957e2250698637daa3a29448444180360b92284/pydantic_core-2.50.2-cp313-cp313-win_arm64.whl", hash = "sha256:fd9aa71a800c87c0f7ab53fa38009169a23a82c685989626ca74a4bd483e1b67", size = 2162633, upload-time = "2026-10-29T16:32:56.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/64/fc525bb981a9f287cfa34346e7ed1d5ef7c043c2b9b517f54c6136032d10/pydantic_core-2.50.2-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:efad0bdc67d3b119c3bab6b94d341a27333c2bb89ed75dfa182a4a06cd0ea329", size = 2226414, upload-time = "2026-10-29T16:32:58.559Z" }, + { url = "https://files.pythonhosted.org/packages/db/68/315701095f25687938ab79d263a6d939337456c2840fe69038fd38000338/pydantic_core-2.50.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6ffb4dce3ecb2cd563aa30f9eb5088a1cf1f4f688b90cbb374fa96e49fc50b02", size = 2095041, upload-time = "2026-10-29T16:32:59.873Z" }, + { url = "https://files.pythonhosted.org/packages/b8/4b/efd3abf31aa24bc97b311735f418886f947b4f193df02a1977643963b03e/pydantic_core-2.50.2-cp314-cp314-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:150f6e101f575c21a4ecfed1be1c05bb89a0ad49cb9c846ed377583bd71b32c2", size = 2257635, upload-time = "2026-10-29T16:33:01.096Z" }, + { url = "https://files.pythonhosted.org/packages/2d/6c/146b36eed4de8115a0fda76840703e75f5f8b36aeb3af86976bf094d1a17/pydantic_core-2.50.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1db9cab6197e797824f0479dd2ae5fd2e272aa61c61b7faa5a6e450ca7a0d3b7", size = 2116807, upload-time = "2026-10-29T16:33:02.692Z" }, + { url = "https://files.pythonhosted.org/packages/fb/94/db006ea79bbe405cc38b25899319c7d461ff1813cbdfe6aa90a65ed1dfff/pydantic_core-2.50.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:1b9f652e17a13bbc09b45f74c3c326cca72059ce4dcdef687fcb04389db413a9", size = 2201037, upload-time = "2026-10-29T16:33:03.942Z" }, + { url = "https://files.pythonhosted.org/packages/41/f9/ea2bc1ec13a67af4a63c9a887fa0aa6ef4ade9018e2bb412d4fc80110e19/pydantic_core-2.50.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:823b222c4fc861a82c650998a6117ecbd150cc71bf8b78f9a31bf3f48c456108", size = 2374904, upload-time = "2026-10-29T16:33:05.458Z" }, + { url = "https://files.pythonhosted.org/packages/44/8e/26a6a075301f0e563646037ea69bef8c63911d38fbd257f94cec69cdf985/pydantic_core-2.50.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:783abdfac21247d33bec40aa683d26bba30d61655c40de38b2decc4797aabf92", size = 2457626, upload-time = "2026-10-29T16:33:07.271Z" }, + { url = "https://files.pythonhosted.org/packages/9d/a2/8eeabaf1d394f0d3b9a27129ac21556eabee6f2ddcb418069ef4037e00b0/pydantic_core-2.50.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b29b7c5adf4b2be7c941f7f76432aa3269cd5052ff8610376b8ece24d7b02c51", size = 2245505, upload-time = "2026-10-29T16:33:08.824Z" }, + { url = "https://files.pythonhosted.org/packages/bd/54/449778cd397e2682b30d1bcfab0872f6ac36702b59cc326296b7f4f14928/pydantic_core-2.50.2-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:4ac996e42a93d80122a23edce44e02c6b9c4913f5c6198a077da31475341a39a", size = 2259563, upload-time = "2026-10-29T16:33:10.107Z" }, + { url = "https://files.pythonhosted.org/packages/26/c2/2f65691d25488ee0f3c17861d079e8ccb7817955522d07cd3c3970d30af5/pydantic_core-2.50.2-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:99e1d482138a71902415ba375bb4627679a5fefd3bd07803c3a8f37632f4981d", size = 2290470, upload-time = "2026-10-29T16:33:11.273Z" }, + { url = "https://files.pythonhosted.org/packages/9f/32/aa7c40234cd24536afa0895ff1d26f9f15638004e25242c5193ce053b96b/pydantic_core-2.50.2-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:a53d5f11cd6d15569ba3e53f3498077f0d5e633f6ec604d2ea613e895017ebee", size = 2477272, upload-time = "2026-10-29T16:33:12.771Z" }, + { url = "https://files.pythonhosted.org/packages/c4/43/c347c68e040cf93d8487a8f4fc28f2768312834c7d21c301538f416f9955/pydantic_core-2.50.2-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:23385c4626f8b5a7792aa381ea573d9432cfbf4c21375a0a5eed2a4fb64e0e58", size = 2484352, upload-time = "2026-10-29T16:33:14.485Z" }, + { url = "https://files.pythonhosted.org/packages/b8/8e/72556126c8b6154fe7acaf757b96b2daa37aeffc3a517deb76e272f5ad09/pydantic_core-2.50.2-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:9a8a62281fd9c6a373b3fd3d473685e6838d43341eecde5f47729748e2c11ee3", size = 1491226, upload-time = "2026-10-29T16:33:15.603Z" }, + { url = "https://files.pythonhosted.org/packages/5b/66/004c85511812964a36b3535af022c5c0dfcb760a31e4905b96310e8dd6c8/pydantic_core-2.50.2-cp314-cp314-win32.whl", hash = "sha256:18f008ef58cd30782f81b6e0119e20b7e884edcefbc2d370162ebe033f6e5c99", size = 2113134, upload-time = "2026-10-29T16:33:16.87Z" }, + { url = "https://files.pythonhosted.org/packages/a3/5f/dcd3df20ab2a7279d42a8415fc184e8e77bcf9aa3c9ac3e938c1300a242c/pydantic_core-2.50.2-cp314-cp314-win_amd64.whl", hash = "sha256:b62c89545d21d930c333208fd548e7b4f262228ba3a322fd75c987a75ab11f31", size = 2253407, upload-time = "2026-10-29T16:33:18.47Z" }, + { url = "https://files.pythonhosted.org/packages/4e/fb/0685895f5d199b215011dc4eb8ccea032a64ec23dfa88eeb5acca939c2d2/pydantic_core-2.50.2-cp314-cp314-win_arm64.whl", hash = "sha256:6e731bf5a5e8e25398544d7709e39068ec4230b0177e4db7fa955692fd415ba3", size = 2160456, upload-time = "2026-10-29T16:33:19.782Z" }, + { url = "https://files.pythonhosted.org/packages/84/2f/4c8f67efe62837a508b74cf910904f73029cb211371351c5ceb36d56e85e/pydantic_core-2.50.2-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:33c6800ab9563adaa0d7893e9cd8f5b972ef1e6a23df70498e05c24f3fcec5e1", size = 2217558, upload-time = "2026-10-29T16:33:21.323Z" }, + { url = "https://files.pythonhosted.org/packages/ce/73/e0ef88cfbcca5409f57751289bc20be63a58af596a36e94b8cd795e59747/pydantic_core-2.50.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f81df206b937d0dca5efb38c25fc99037d82dbcd3740e34c3f81997d2322ac1c", size = 2074335, upload-time = "2026-10-29T16:33:22.658Z" }, + { url = "https://files.pythonhosted.org/packages/7b/cc/47844a3179ebce27064e13619594b3fc1a9b4509d8dec1e3960c5f87f5bb/pydantic_core-2.50.2-cp314-cp314t-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:21ea3b00f1e87c66f3f9e92f9f6fec20495ac0e60d7d2e68ba1fc49739d7cf40", size = 2264201, upload-time = "2026-10-29T16:33:24.953Z" }, + { url = "https://files.pythonhosted.org/packages/bc/d1/30e9d3c86d81884ee3199560ddfa2c1a66a8dc0736441748eae43064abbc/pydantic_core-2.50.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9eff570402175c7d5fff8497d5a9c05580664a79bb66c07b8f205d17f69e580b", size = 2094353, upload-time = "2026-10-29T16:33:26.739Z" }, + { url = "https://files.pythonhosted.org/packages/d4/8f/392a5999480d0bcab4539db0dafa93265152396fd63e87be4d24e13d6d82/pydantic_core-2.50.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:240fec32a74af0979f7253532859b3fd209ad5eea822416bb010929dba445c3d", size = 2203119, upload-time = "2026-10-29T16:33:28.154Z" }, + { url = "https://files.pythonhosted.org/packages/cb/80/6e4e276a3fde5500224a39150e06a4f134f136165908be69402720718a36/pydantic_core-2.50.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92acf02c770b9d5c4e9a3e8d64e9d95ae26456a86ebb7b7cf64a97f899e5871b", size = 2392881, upload-time = "2026-10-29T16:33:29.305Z" }, + { url = "https://files.pythonhosted.org/packages/70/d5/5eb56c6317ab4abf33ef9519a50bfac0c96f7f408bad1bc36da6f27d43e4/pydantic_core-2.50.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:1ac5b99bc7b0a68ec64f5f75a6828a7bab5535c8df0cdc07901deb50e0815910", size = 2457290, upload-time = "2026-10-29T16:33:30.587Z" }, + { url = "https://files.pythonhosted.org/packages/7b/9e/f1fe9384bb37e4e728c51c79151808deacf7b2502e245f50b57c85eeb199/pydantic_core-2.50.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:713d7c33c0e231e3786eb0ec95885814dd65d5f3a09754399b6acbf5e9365f11", size = 2241568, upload-time = "2026-10-29T16:33:32.04Z" }, + { url = "https://files.pythonhosted.org/packages/9d/f1/cffc4f8456c35690bcb65a8f2304afbf2f519766345a28aba553d5a55cc8/pydantic_core-2.50.2-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:61e13100b30d8d25fc0d1f0297014b32941bf0975a3584bd08f3adebb68d1ead", size = 2257185, upload-time = "2026-10-29T16:33:33.36Z" }, + { url = "https://files.pythonhosted.org/packages/84/34/ccd4df1cc39cb1e42fb7ec86a0dc0a23e8479de04d3012ca6b0bf2279a03/pydantic_core-2.50.2-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:523fe6574aea50f456cbc301c1cdddcbf237939f7657f9af99b4f0f71942b59c", size = 2299384, upload-time = "2026-10-29T16:33:34.799Z" }, + { url = "https://files.pythonhosted.org/packages/83/60/404b4b0c416a61867ee642cdc1450bca4d8a9a10e5f5f21e1ecaad05fdc8/pydantic_core-2.50.2-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:6c25b8826be85714b27dafe908d3461e1b09e3e31c0279a7029040c832c781ef", size = 2479384, upload-time = "2026-10-29T16:33:36.106Z" }, + { url = "https://files.pythonhosted.org/packages/ca/0d/57c81418a2fdfde0578c71396df773965adebd4421d9985a0f8dcbe9ec4d/pydantic_core-2.50.2-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:a59db03b80a156a6fbeae41096866d1cb89cdf31031ba44c768a804538880636", size = 2504616, upload-time = "2026-10-29T16:33:37.423Z" }, + { url = "https://files.pythonhosted.org/packages/08/66/dec78e28a604f3f4985f5a795d4da3e5fef78b0921aeb7f614ed7c780a32/pydantic_core-2.50.2-cp314-cp314t-win32.whl", hash = "sha256:0d090ae76d5b09c003600c7779b3adcf3d1b49268f616c5c51d844e54c8e318d", size = 2093179, upload-time = "2026-10-29T16:33:38.705Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ea/79d9ee60648463804145d44b08f1e7e2474427d9704e3331d814483908b3/pydantic_core-2.50.2-cp314-cp314t-win_amd64.whl", hash = "sha256:9b01a092955c1c7530196ad526755cff4f2d11f37ca9a6fc9ebe37ca49a48977", size = 2220575, upload-time = "2026-10-29T16:33:39.929Z" }, + { url = "https://files.pythonhosted.org/packages/eb/01/aa6a7bd017c3228a41942da4fd788b86fb4aad9677212a4737a0c157fe74/pydantic_core-2.50.2-cp314-cp314t-win_arm64.whl", hash = "sha256:4ea01f30e119f1ec7a2034e85c40f491d469896aef02cd6436fd9292fe1be3fb", size = 2160866, upload-time = "2026-10-29T16:33:41.237Z" }, + { url = "https://files.pythonhosted.org/packages/4b/7f/ec2974015b4be5e50266ce732b8942d3d0b3bff751ace8900999c6577bce/pydantic_core-2.50.2-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:a3317630e2791f56071b82f89bb71624146125e4311e6643f708c6ba744b5ac5", size = 2230936, upload-time = "2026-10-29T16:33:43.656Z" }, + { url = "https://files.pythonhosted.org/packages/ae/ff/af99a09eddc348c1d0744c0df28dfcd4839ca497067f0fa2168208b41b1b/pydantic_core-2.50.2-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:f73930dacad5e611fe019e18df6f53c30629b1843d038d303b8dec86a32493bd", size = 2100409, upload-time = "2026-10-29T16:33:44.946Z" }, + { url = "https://files.pythonhosted.org/packages/84/75/8db3c46f02d6005277e5c2ff5933c85e7e1eb8798aa334c676c828650c3f/pydantic_core-2.50.2-cp315-cp315-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:e2e6240a0a5ad847017b3d65187877fdb7a11d5a58d43c30736f9f523478913b", size = 2259728, upload-time = "2026-10-29T16:33:46.461Z" }, + { url = "https://files.pythonhosted.org/packages/ee/9d/98c8d524921ca24e5c8a81a4b8f12209ac6ab05d0dd58b374e357da0ffc5/pydantic_core-2.50.2-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1fdf5b52ed22f1404c2433d0b46df2d86d9befb742d0b9b4042a2325c43cdb97", size = 2121771, upload-time = "2026-10-29T16:33:47.952Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ea/68c3b1fa919946012c940dea88e94e33e7dde46abe3e3d57053793c9bab8/pydantic_core-2.50.2-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:4e9392ddf67fe97ab9889f796d468c9908a8754b8b6c7520eb03a65012b9a1e7", size = 2196328, upload-time = "2026-10-29T16:33:49.131Z" }, + { url = "https://files.pythonhosted.org/packages/eb/9b/cfb6312a5b65b02eab6bc00fb0d258d0e2e49468dab29b430e7cb49b2ceb/pydantic_core-2.50.2-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:48e944091b7bff233920bed8a60b0ed6c96c73d3c5836bf51c4b9a4bfb58e4ca", size = 2380152, upload-time = "2026-10-29T16:33:50.503Z" }, + { url = "https://files.pythonhosted.org/packages/41/5a/7fcced1d84ea294200abfa93e488f36d00732101d17bf5e1f1389e66de26/pydantic_core-2.50.2-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:91c92856b846aa690ea6239ffd6c5003c5e3e296a69095570bf4efee5bfa0bdc", size = 2462299, upload-time = "2026-10-29T16:33:51.884Z" }, + { url = "https://files.pythonhosted.org/packages/e6/d0/dd0e355694094f0045922f4da60ac9bc7a314babc494e46089fb00640fd3/pydantic_core-2.50.2-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5299296ff5cafcb69851fd652de8f9268a0bb036bcbedbfcaa94cf743baf3986", size = 2249999, upload-time = "2026-10-29T16:33:53.333Z" }, + { url = "https://files.pythonhosted.org/packages/3a/79/f5f4b36434604d22aacb7152667f87a470e68847c89b136c68a278cf409d/pydantic_core-2.50.2-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:d3d049b557875f9d15230eec8a731749a7a873d8ed6a051903b05bdf46e0e65f", size = 2262745, upload-time = "2026-10-29T16:33:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/14/21/a4c47a286745857758a4bb8d4d5e260c736a7bd6fab5da618f5711d1a3f1/pydantic_core-2.50.2-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:b0b25d647036972c2951059046cb498f72b7af5a2def27bf8e5f44c3067ab7dd", size = 2293663, upload-time = "2026-10-29T16:33:56.132Z" }, + { url = "https://files.pythonhosted.org/packages/0d/db/25330e609fd219ce16d0a089af1b4b62095f01595dbe6972f7a7dfc313b9/pydantic_core-2.50.2-cp315-cp315-musllinux_1_1_armv7l.whl", hash = "sha256:8835566b3e94026da3ce2249f9ee35c9d2ebe4cd131f6a39bfc82708d3010a46", size = 2473247, upload-time = "2026-10-29T16:33:57.607Z" }, + { url = "https://files.pythonhosted.org/packages/53/16/704ca88b82156dc485da2dfb11d5d52a10b9ef15a294639c0aa5ebd1643e/pydantic_core-2.50.2-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:3fbcd402e4b607d4b8de5d4591215f31f042af03f9d09e58f693a6221e32833f", size = 2490536, upload-time = "2026-10-29T16:33:59.297Z" }, + { url = "https://files.pythonhosted.org/packages/50/34/1fdd0eebee9f8b6c4ec3c2490f49dc59a652c8c5a7fa0cbcaada0d91cda9/pydantic_core-2.50.2-cp315-cp315-win32.whl", hash = "sha256:8431ecb131489cbdaf6f51f7ade47475f73aff4f1912552f75ba19a6cfe233a8", size = 2117204, upload-time = "2026-10-29T16:34:00.514Z" }, + { url = "https://files.pythonhosted.org/packages/24/6b/702adc91486fb96ba55675d58ee15ddc38fb48553fb35e26fd005e303206/pydantic_core-2.50.2-cp315-cp315-win_amd64.whl", hash = "sha256:04cf672960b8c4fc28bb159c8cdd101fbd311c520237a5c0360448b851adfb41", size = 2261064, upload-time = "2026-10-29T16:34:01.773Z" }, + { url = "https://files.pythonhosted.org/packages/36/0d/7f117432b8614526aa0d96fadd2b7fb7393156ddf2caf26a6fe606e6cfb6/pydantic_core-2.50.2-cp315-cp315-win_arm64.whl", hash = "sha256:36917e29c0b815d6b940bc91560fcf453b5b85d55c579796373f0ea11d1c111a", size = 2161783, upload-time = "2026-10-29T16:34:02.966Z" }, + { url = "https://files.pythonhosted.org/packages/45/1c/2ba7a34fe8da4c83ec200fb9f85ab4d54b961be08367922743623f987849/pydantic_core-2.50.2-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:bd1fe69056a19c377a6c6de2c1240fb8676ba0512a969965efb486510c5e0f1f", size = 2223184, upload-time = "2026-10-29T16:34:04.214Z" }, + { url = "https://files.pythonhosted.org/packages/47/01/f71a8da1f53a5be1787d2a97ba6fd9adba115305c7f15ea0bf733ed8336c/pydantic_core-2.50.2-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:9b2383933b1dd7a8c93e02f99ebfd305f1286057172483b8e6898bed3fef69d3", size = 2078174, upload-time = "2026-10-29T16:34:05.426Z" }, + { url = "https://files.pythonhosted.org/packages/f6/0a/847e1f5427372692f6eb5c38261fed6b8cedf379e37d9f6134d48b9c8ee9/pydantic_core-2.50.2-cp315-cp315t-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:a1b4d60bad57d6e0e7cd30cc4d1dc646d258dd6dfb7935ce76c7dd72dd1e98b0", size = 2268813, upload-time = "2026-10-29T16:34:06.733Z" }, + { url = "https://files.pythonhosted.org/packages/f5/bb/12966dc82b5e9c347981658b52e24349b6242902b644725c00ee7bdf4267/pydantic_core-2.50.2-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:93bedc68c4138088ea3c042189c01d2945f530f0dcc36e1ea02df8418bd4f1cd", size = 2098331, upload-time = "2026-10-29T16:34:08.69Z" }, + { url = "https://files.pythonhosted.org/packages/d9/fe/340416b7ebe664524e7ada16ad2e3e069888b168010d75bda6a502bf2bf8/pydantic_core-2.50.2-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:d684ff87d00de2f6abcbbfa9b0fdce8b513dd799a900809dcfa7eb62ad69832a", size = 2197432, upload-time = "2026-10-29T16:34:10.091Z" }, + { url = "https://files.pythonhosted.org/packages/c9/4d/425162c3d88af0d190c4dc4f940402cc6dd44d934359a37f50da6b7e4672/pydantic_core-2.50.2-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:bb6d49f00e2babd40af4889d6b9f4bf50879f522dd4e2e22cb705cac5e0c5e8e", size = 2399300, upload-time = "2026-10-29T16:34:11.462Z" }, + { url = "https://files.pythonhosted.org/packages/2b/fe/2882bddf2e2038c8f41fa69f16ddeb6eeb1c002cc0cc0eb2157f73bb34e9/pydantic_core-2.50.2-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6d47b2d0e00e030e0ebdb08115a37da7294e7a6d196d134a77ed7ee6c142284b", size = 2462672, upload-time = "2026-10-29T16:34:12.79Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ac/d7e6bfc6a95573647d1a699e19228dd99914ae6aab79a2bec293a038e980/pydantic_core-2.50.2-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:95838be125133fa314753f8cc5168f7c41e3a9dd5eef5383dbbbeed511bd4853", size = 2246293, upload-time = "2026-10-29T16:34:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/74/64/97473ccaeb4ae5eb338162bd8479af121484e67f7078499730e3ee0a5592/pydantic_core-2.50.2-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:2d4a043c820363359e40ac96270e1915e5376e116be1f59cee0701775de3e376", size = 2259507, upload-time = "2026-10-29T16:34:15.391Z" }, + { url = "https://files.pythonhosted.org/packages/48/15/78a9b7a6a0d0679ce1e46cdd38ff95afd18dd2d6a01ed87c80a01bc003f7/pydantic_core-2.50.2-cp315-cp315t-musllinux_1_1_aarch64.whl", hash = "sha256:57bccd3e1128736c792094da1feac6da46ec3feb1957ef649a9b3e4f8de6fa04", size = 2303550, upload-time = "2026-10-29T16:34:17.162Z" }, + { url = "https://files.pythonhosted.org/packages/39/ba/b697173f82e99cdcf5ec6654b2edb66a00f2f92ef9d9a168861fca3fcded/pydantic_core-2.50.2-cp315-cp315t-musllinux_1_1_armv7l.whl", hash = "sha256:24120c644322a35b5eb765416ac8442214c45689e255f5fc6e761e7e7c743c8b", size = 2474919, upload-time = "2026-10-29T16:34:18.841Z" }, + { url = "https://files.pythonhosted.org/packages/71/10/986be76723784ae87f9664658fae39df340eaa21681cea95b6339d2e1b3e/pydantic_core-2.50.2-cp315-cp315t-musllinux_1_1_x86_64.whl", hash = "sha256:b1adf2f37521b578c438f6ec61d1c1d0c20b076863ddd5d8b6f3ab658857db3f", size = 2509095, upload-time = "2026-10-29T16:34:20.16Z" }, + { url = "https://files.pythonhosted.org/packages/5f/0b/38dbd38c67de7642f87348da70122b89ca4c5fe8227cfdd5cc00c1cdb454/pydantic_core-2.50.2-cp315-cp315t-win32.whl", hash = "sha256:d79aaa468193c1bed6b0560d3c5c9f9e369e3efb0b128b38a2537e2d51d42773", size = 2096972, upload-time = "2026-10-29T16:34:21.715Z" }, + { url = "https://files.pythonhosted.org/packages/7a/df/154baf8413b08d6daf2f5dec211c303ec6bed50c032717f354f8dd85c994/pydantic_core-2.50.2-cp315-cp315t-win_amd64.whl", hash = "sha256:cc488daac19e6f5292180fac5e0ef7efffabeef4e096af9a17a75a7d3d6781f6", size = 2226659, upload-time = "2026-10-29T16:34:23.177Z" }, + { url = "https://files.pythonhosted.org/packages/b5/17/eea7a1e7d98a79ef11b6d31748b70c58f8723f87d7ee42edbb6a101f6245/pydantic_core-2.50.2-cp315-cp315t-win_arm64.whl", hash = "sha256:91315aea7adb51821d4a3378ede953bfdd76e3bf71551de4a82d7638cef7dc02", size = 2166387, upload-time = "2026-10-29T16:34:24.433Z" }, + { url = "https://files.pythonhosted.org/packages/f6/82/ec0384d2a74415aeef7fcd032d29af84a98da0ca25cfb4937b10a2ac78eb/pydantic_core-2.50.2-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:adec010c824290d4ca87047e8d8bfa4f85ac29f545f326cd5321696805d311ed", size = 2154528, upload-time = "2026-10-29T16:34:28.022Z" }, + { url = "https://files.pythonhosted.org/packages/8c/b4/46483477921934aa31eec9cb86ba95d2f620f4c71da749024c2e3b6e8203/pydantic_core-2.50.2-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:f47c1349c3b4274aeb18459d54244881a5c0dee0fdccedffca45704ba5c9e0a0", size = 2072173, upload-time = "2026-10-29T16:34:29.771Z" }, + { url = "https://files.pythonhosted.org/packages/4a/16/c1eb6bdd67c9d5f42b290abb86948d8de288bdf4aeca06c588c3cfe6100b/pydantic_core-2.50.2-graalpy311-graalpy242_311_native-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4ee64baeab403b9de9c92846c5c1abec28ffb046cbc023bfae059897841f88af", size = 2116695, upload-time = "2026-10-29T16:34:31.103Z" }, + { url = "https://files.pythonhosted.org/packages/ae/67/ccd8294730d9335c687facbdfd77515fa3b323e9bbb042c5d63addc6f5f8/pydantic_core-2.50.2-graalpy311-graalpy242_311_native-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:16ec8e07c37f02dcf68939cc7f202ba9a148cc155ee2acf22d337e10b24c2cb7", size = 2263561, upload-time = "2026-10-29T16:34:32.901Z" }, + { url = "https://files.pythonhosted.org/packages/64/4d/23560b11366b547e3e68a3b8f9c02557cee707effa54fd39dbb3c4fff1fa/pydantic_core-2.50.2-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:d18d56c1ec63b304f4bb3c7db7e0d311e61cca1b1c944590a4b13ac39b2ca92b", size = 2204868, upload-time = "2026-10-29T16:34:34.745Z" }, + { url = "https://files.pythonhosted.org/packages/06/58/b9ddfaad189143d6568627166a730b6624ca90bd9a9a4af4854df88d444b/pydantic_core-2.50.2-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:41ed8abeffda6a880207fdc0cd1343a448cec3cc6b38b53f730c0745f745292d", size = 2049162, upload-time = "2026-10-29T16:34:36.186Z" }, + { url = "https://files.pythonhosted.org/packages/8b/20/99d259bf7835b2f13c6d0b3eb7bcf669fb6349986736fa7a8308a9e620b0/pydantic_core-2.50.2-graalpy312-graalpy250_312_native-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b7abcfaf66c1dc14c5ed928c349614f223c972a8b021b4be9548dbea6c817371", size = 2112135, upload-time = "2026-10-29T16:34:37.777Z" }, + { url = "https://files.pythonhosted.org/packages/9b/ca/652c8fe599abacafd852479059d209e608596ad3de82f1bff22e9f0f02fe/pydantic_core-2.50.2-graalpy312-graalpy250_312_native-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9e7460abce637f90e37f8c443559fbd687c38884d05cb69ef265e634945f4324", size = 2270339, upload-time = "2026-10-29T16:34:39.039Z" }, + { url = "https://files.pythonhosted.org/packages/18/9b/d240307fd6882a93a88bf038ff07e1a6dcac0e88f41951fe92c9b614f0b6/pydantic_core-2.50.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b583ddeee6a6bb5bbc04462167c68034913221139d52d9f155ca6d1637a2fdcf", size = 2157909, upload-time = "2026-10-29T16:34:40.355Z" }, + { url = "https://files.pythonhosted.org/packages/30/e5/d336fb654f8f1584b4a20d71f92c2a966419bc5eafffd36848d8cb1a916d/pydantic_core-2.50.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:5ab5738c39b25b5dc5a721270e2269a2f5e86e614375e6c07ee6caab8cbc0f2f", size = 2075773, upload-time = "2026-10-29T16:34:41.761Z" }, + { url = "https://files.pythonhosted.org/packages/38/08/18203f64a405f11c3e4d569c9f49ad7a0b5901cd5fa2dff2436d28531c60/pydantic_core-2.50.2-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:21a902e546032c82b7275552345a2342d862e0541aea7226c91067c396e68b3f", size = 2277290, upload-time = "2026-10-29T16:34:42.952Z" }, + { url = "https://files.pythonhosted.org/packages/9e/c4/a4e0ae45ad1554c38caa93e200fdd08e74d2c0149b4242c78b2475903379/pydantic_core-2.50.2-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:92ada606285dab054e40848a951f583c537cde1e54701ea1305ec0096877012d", size = 2265597, upload-time = "2026-10-29T16:34:44.244Z" }, + { url = "https://files.pythonhosted.org/packages/99/20/304baf7724ac137b921ce793e4b686cf4cddc431da4888e5419e7bc7374f/pydantic_core-2.50.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c1b65a42afc73b39e6ae908ec7b9c3b9898676a7b15ce4c66d4965f7071007c8", size = 2289092, upload-time = "2026-10-29T16:34:45.55Z" }, + { url = "https://files.pythonhosted.org/packages/77/6f/0fe5ac160718d75f2f9729bb31aa9a349dadd0d32886b8c0ecc253629c46/pydantic_core-2.50.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c324a7e0c0012e3974053f81a270d8f1aa23227571f4ddd3254c911bb356459b", size = 2458417, upload-time = "2026-10-29T16:34:46.827Z" }, + { url = "https://files.pythonhosted.org/packages/43/44/042cbd7e46f00f45aea36496ca8bdb6b1136c2ec4063875a25286c2ba8fc/pydantic_core-2.50.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:cb8d2d7b07cbe2d7488de7e53671f836c4f4a8032dcda079df33dc1b7e2397c0", size = 2492296, upload-time = "2026-10-29T16:34:48.374Z" }, + { url = "https://files.pythonhosted.org/packages/cb/8e/e8aef16e587215a1795dbe991e41006003aef1f1b6f554361f3a6edd585a/pydantic_core-2.50.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:7c6e1bd6cadae13958e52897ef020e85c9916a95917149fca463bb0c0421a7c6", size = 2323090, upload-time = "2026-10-29T16:34:50.008Z" }, + { url = "https://files.pythonhosted.org/packages/21/36/d083f973e28c5718f9d9d819c0b8171df1526124e8c3709bd55ddf1d4244/pydantic_core-2.50.2-pp311-pypy311_pp80-macosx_10_12_x86_64.whl", hash = "sha256:f078e276848bc23d1f92f46fc88d5b9cbb824b9acc60d9e07116620e502e16a9", size = 2157909, upload-time = "2026-10-29T16:34:51.579Z" }, + { url = "https://files.pythonhosted.org/packages/0c/4b/e2eb5b51f46411ceb80451a7bf4aee215fd84012eeba22a183b4699006b5/pydantic_core-2.50.2-pp311-pypy311_pp80-macosx_11_0_arm64.whl", hash = "sha256:3435c443da7510a6de1a30c68beae338852a11f0440cc8320ea756a162f38dbe", size = 2075771, upload-time = "2026-10-29T16:34:53.469Z" }, + { url = "https://files.pythonhosted.org/packages/d5/99/e9703785468d1e644f19d602985b722ff97cc8ca67389e2d79f8fb562cfa/pydantic_core-2.50.2-pp311-pypy311_pp80-manylinux_2_28_x86_64.whl", hash = "sha256:b5675a12a7b67063fe3ca187e735b0463cf13fabc10166ae4d4b2f775fd0632d", size = 2265708, upload-time = "2026-10-29T16:34:54.662Z" }, + { url = "https://files.pythonhosted.org/packages/bd/d7/079d3d36aa6ee0333847d968d91ff185837541741d3c58ed0316103309bf/pydantic_core-2.50.2-pp311-pypy311_pp80-win_amd64.whl", hash = "sha256:f5ba7ef10ce82737e173fa95cafa1c8210918f7e653715b2c7a7a31877a74848", size = 2323087, upload-time = "2026-10-29T16:34:56.176Z" }, ] [[package]] @@ -853,19 +857,19 @@ wheels = [ [[package]] name = "pyproject-api" -version = "1.12.0" +version = "1.12.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9a/c6/04bb77bccfa36aabc783a31e335b5441829f5ec9ff16e313b5b7022d81a8/pyproject_api-1.12.0.tar.gz", hash = "sha256:2e83226079dc446a8e2357def7622c01c733284e39afc8e332d9f722fe0c2beb", size = 28058, upload-time = "2026-10-18T07:00:59.632Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/af/5ac3c74655469fd52c6d496d728a85e5db454abb15682be5e620735a2349/pyproject_api-1.12.2.tar.gz", hash = "sha256:ad2a72516abcc950877222e9eff760c9120d2086f0d9fce6aef4f16985a3e946", size = 64095, upload-time = "2026-10-28T01:32:31.862Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/b6/ce66a85089985da9b15b0e0e0d668c4b26c994f619e28a11d609454f3d70/pyproject_api-1.12.0-py3-none-any.whl", hash = "sha256:1d3cbf37ac4c3a40940e09cbd4374608d25cdd89e6019f7e06fc285afd3ab467", size = 14055, upload-time = "2026-10-18T07:00:58.102Z" }, + { url = "https://files.pythonhosted.org/packages/e6/21/fffda71ec623408a54db66e1892bb2e76de729f9170f157c47ed9d677299/pyproject_api-1.12.2-py3-none-any.whl", hash = "sha256:b832f139e5b5e6a01a67e55e38603e8a99cd43556fc2f6fc5659946da25c5f54", size = 14230, upload-time = "2026-10-28T01:32:30.488Z" }, ] [[package]] name = "pytest" -version = "9.1.1" +version = "9.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -874,9 +878,9 @@ dependencies = [ { name = "pluggy" }, { name = "pygments" }, ] -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" } +sdist = { url = "https://files.pythonhosted.org/packages/79/42/bb4641652e58dedeac2ec51abc1f8cae4fee4ec63899a0999016229a0f2a/pytest-9.2.0.tar.gz", hash = "sha256:97c4f3b1f3c7414aa36465e09b8220f1d03627993bd51b1282e193753c80557b", size = 1797555, upload-time = "2026-10-27T21:30:20.728Z" } 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" }, + { url = "https://files.pythonhosted.org/packages/51/39/1f5d8c8877a0fa327db959c19341d4be61660de1ab6b7391f9eb805bcd67/pytest-9.2.0-py3-none-any.whl", hash = "sha256:07acdcf88ec174f907dc01af70bf52d49b014bbab03faeeade31c96b18c2e588", size = 411776, upload-time = "2026-10-27T21:30:19.131Z" }, ] [[package]] @@ -915,14 +919,14 @@ dev = [ [[package]] name = "python-discovery" -version = "1.6.4" +version = "1.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/ee/cf608372c88ce2c136ee13c69ab6f667dbc0d0c1176af188b4ddc8853e66/python_discovery-1.6.4.tar.gz", hash = "sha256:bc70d31f0ec5de11eda13d4d64c16e24b3506a65984684f2b6c98cb83b2ea9df", size = 89883, upload-time = "2026-10-19T01:45:14.855Z" } +sdist = { url = "https://files.pythonhosted.org/packages/86/15/0405206e0cfe0c14b91ac038d31f30d1dd78139b3b2a285e6be41bf6e5af/python_discovery-1.9.0.tar.gz", hash = "sha256:88beb57e51b919c30f303b053ec41359298ca349192035b0a802c76347ae96d7", size = 125151, upload-time = "2026-10-30T23:24:24.91Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/60/91/1aa70d3dfcab0dbcf88a2cbc3bce7f7c69562287a90216e617eaa4937e25/python_discovery-1.6.4-py3-none-any.whl", hash = "sha256:530179cc51a1816d512b15635b3dc931295ae12efb183783ad31190a5d425d2b", size = 39385, upload-time = "2026-10-19T01:45:13.668Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3c/da1cae963a076132dbc4d3c1f0292dd2f373b9d3e072d42f4620801159c1/python_discovery-1.9.0-py3-none-any.whl", hash = "sha256:fb65edfff3541b7ceb3a39be334a0f69f4cb5148287a053e1874748742fda93b", size = 39841, upload-time = "2026-10-30T23:24:23.452Z" }, ] [[package]] @@ -1018,27 +1022,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.17.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ae/58/690cf56da80c8f2c8bf12042b6017beac2c34fe961f65420bcb3fb7fac38/ruff-0.17.2.tar.gz", hash = "sha256:84d632402d14c23b488f941db23712d6736a013225162062d34558c3f3c780eb", size = 5333400, upload-time = "2026-10-22T18:38:00.181Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/98/b8/8b6d69c57e8fe1cc6af1aa7493b72a1a5b5a8afe34694e302025441729d4/ruff-0.17.2-py3-none-linux_armv6l.whl", hash = "sha256:96a65e755d8dba094707fb23ab602111d9a31ec2835b3a6992a1914a8fcb211e", size = 10183857, upload-time = "2026-10-22T18:37:14.956Z" }, - { url = "https://files.pythonhosted.org/packages/e8/61/12cc2ff7b2fa90a268ce1e2162c23aaf76e601d22623f6a31b0eeaa764b0/ruff-0.17.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:39c5b55c960515cdb32be16e69efb5734c589c06a0eb38a22694524a336b889d", size = 10210904, upload-time = "2026-10-22T18:37:17.985Z" }, - { url = "https://files.pythonhosted.org/packages/e8/7c/b8850a8e4ad29f64a827dd6c6902db4a9aa538fb2b9eef4e26084001a3bb/ruff-0.17.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:92a80d2f44584dabb0189b3a6c393e37e525e04942838482010575cb81945be7", size = 9408439, upload-time = "2026-10-22T18:37:20.964Z" }, - { url = "https://files.pythonhosted.org/packages/b7/b6/6a64fae86ca5e5e29d5adc311e5481de726cedf9aee607435a16c31c442a/ruff-0.17.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7d0906677d89bbf3cf73cde64b5bbe2ab35df3ae43e49ee2627301e91265bac", size = 10047078, upload-time = "2026-10-22T18:37:23.717Z" }, - { url = "https://files.pythonhosted.org/packages/10/19/23d376547715175aa1bd46df48df6aacc7c6439d9daf19cac15975180aa5/ruff-0.17.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cfd783590edf2b77317882631900f6a13ea2e8eacefe6ebf2370d2715299160", size = 9990478, upload-time = "2026-10-22T18:37:26.584Z" }, - { url = "https://files.pythonhosted.org/packages/93/6c/34cda32cbe13adac5c6b291a307a5570d8ebd37c0c86339f0fe628e55632/ruff-0.17.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122258f6ecde0e0dd1bb60b24263c3edde4338caf723fca711cc729f9bfd414a", size = 10673624, upload-time = "2026-10-22T18:37:29.767Z" }, - { url = "https://files.pythonhosted.org/packages/bf/10/5d762a4dbc851d8bb47863cf3a28a61bf31c804d393b70d891fac899f5d1/ruff-0.17.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f8fba429d6ac4128ab29cfb8fa6240d2fa671d04adf7f84d3b22fc7b6b6bea4", size = 11351797, upload-time = "2026-10-22T18:37:32.535Z" }, - { url = "https://files.pythonhosted.org/packages/3f/04/a0e92a81faf5c81c1c98d4374c8401734ccf2b8cca7d0170cb0fec08c6e2/ruff-0.17.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:583bd67bb9e7061dd09bc46a0a884bae2bbd214dbcd48e509813612619683869", size = 10949414, upload-time = "2026-10-22T18:37:35.501Z" }, - { url = "https://files.pythonhosted.org/packages/c3/d8/59894cf630d2d86882457a2a6a0a1533410c5c805bfbac6f6eb4b5aef69d/ruff-0.17.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c60f93fec7142dba5b8f487f94bf2f6231dae24dc11e4c48648347c8b0720004", size = 10528000, upload-time = "2026-10-22T18:37:37.88Z" }, - { url = "https://files.pythonhosted.org/packages/ab/95/d6e30c51e851d37e10762ad91fa1e76ddaad998589b5667962a3cfbc9edd/ruff-0.17.2-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:c555a877f8f41447e318101cfefea9bf12dfa9f82eedf90c376e57e069f917d0", size = 10571779, upload-time = "2026-10-22T18:37:40.444Z" }, - { url = "https://files.pythonhosted.org/packages/f4/5a/a7e1d74fb464250137d3d4eca645d323536533b672004d04ee0e46e0caf3/ruff-0.17.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ba405cbd5ec7bda1f555d5e52be1fd68d02608d4d95d24591bdac92cfacb579f", size = 10051707, upload-time = "2026-10-22T18:37:42.812Z" }, - { url = "https://files.pythonhosted.org/packages/6e/f2/02fca29ca7999380f0350a7212fe755c11ab9c22d61327356cce8decdbc6/ruff-0.17.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8c21b4ab24485358f17291a4f8dc5399b834e963b8efedd920fe4fdb02081bb4", size = 9998227, upload-time = "2026-10-22T18:37:45.224Z" }, - { url = "https://files.pythonhosted.org/packages/d1/00/55aa604a093dfdc1526e570fae0bb7d37a2221c7b4728d5f080b2add16ba/ruff-0.17.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5875a16b0de70b43cb81eabea5ae5e8f5d1b2fd1b5e6ed07f80cfe5019d0bd5a", size = 10377692, upload-time = "2026-10-22T18:37:47.704Z" }, - { url = "https://files.pythonhosted.org/packages/e4/5a/a7a640f47bb906ec8fa233ea84319d503e6dee02b59e3901bd312ebd1f9b/ruff-0.17.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:2d086be452eed686aa51271ecf2cbe5037956517cc6ee39a17b4489ac12f8bbe", size = 10790587, upload-time = "2026-10-22T18:37:50.191Z" }, - { url = "https://files.pythonhosted.org/packages/2c/d4/c3b74e1b4808438ea7f14bb914478025e2d51261f60774a54a0fa222ec46/ruff-0.17.2-py3-none-win32.whl", hash = "sha256:6bce7d1f5165701ae18f5df85c65afe78cddfa6c5fb4b9bdb0014d60388f3edd", size = 9870537, upload-time = "2026-10-22T18:37:52.486Z" }, - { url = "https://files.pythonhosted.org/packages/1c/9a/c7da96c2c96d20704cf9027f7a5121da272a8c05f1d1531ba949e3b3df04/ruff-0.17.2-py3-none-win_amd64.whl", hash = "sha256:1b59d447f197bef9ef48a22ba1a6016137753c6099e9bac9c36eb566e422424c", size = 10282826, upload-time = "2026-10-22T18:37:55.2Z" }, - { url = "https://files.pythonhosted.org/packages/81/60/a3604c79cb02777b6cb84da894104021986f06c4bc41375102cc95049a32/ruff-0.17.2-py3-none-win_arm64.whl", hash = "sha256:195ad918027f817c119310ca89a42d347887dfc28934aaa869325e9c5dc9d962", size = 9827036, upload-time = "2026-10-22T18:37:58.031Z" }, +version = "0.17.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/59/73/81f140c4edd9cc323de5478e6bbd3bbcfae9a82692df1a258de8cec6a6d2/ruff-0.17.3.tar.gz", hash = "sha256:a57049c8addb3662073859bb55a7ad35aa54f8a7c9ed268911d1333c5aadaaa9", size = 5339444, upload-time = "2026-10-27T00:34:05.914Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/8c/083365310c4e79c842f25bf5a842facbd9b0c0ec336f96dffa5074fe723d/ruff-0.17.3-py3-none-linux_armv6l.whl", hash = "sha256:ab86b84cd9d05e56d329742c0cabdcbe2d1d56c98f4a04aab9b5b66196febfb4", size = 10216522, upload-time = "2026-10-27T00:33:29.822Z" }, + { url = "https://files.pythonhosted.org/packages/72/26/4b2edf31cfebe9605d8f6ed8f1d6f376d3a53d4c9a123e62661c64c440f0/ruff-0.17.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e407b4a6852853a9a2cdce96963e94ad9775578bb44e7561a0f2829f3cc04b11", size = 10217786, upload-time = "2026-10-27T00:33:33.949Z" }, + { url = "https://files.pythonhosted.org/packages/a2/7e/537aba4b7f54397a374d2f6a6fc93e9c8015e18553f31a4a7b7dbced48b5/ruff-0.17.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:b75cc113b3aca388933d8296b667b1ac401a80317ea3074c9b0a66541199da29", size = 9440362, upload-time = "2026-10-27T00:33:35.784Z" }, + { url = "https://files.pythonhosted.org/packages/3d/66/283e39734f66c8a5ebaa93c22eb7b7515779a0b1d5a5c0ad20e05c0edb41/ruff-0.17.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab5fa7ed5ce18554ea69d850ad162cbaa0c85fc47c08d83a569f806681c9a6ad", size = 10094281, upload-time = "2026-10-27T00:33:38.216Z" }, + { url = "https://files.pythonhosted.org/packages/21/4c/1ffc768497bd025a32c72152771e40c0b99bddc5cc6e4f50c7949a395346/ruff-0.17.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c673c170e27834d1262e3a9c1e97bdc9b9c3b180c63d89173ce69747232474c1", size = 10022543, upload-time = "2026-10-27T00:33:40.181Z" }, + { url = "https://files.pythonhosted.org/packages/73/c3/f90db547301080fcb82c92abf914c8bd57b89911d9b65a6c4cc6b52d0635/ruff-0.17.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a754c0341bc9ca151b7b335988b3263921c08859f84ca219b70cee825571b6f", size = 10683921, upload-time = "2026-10-27T00:33:42.182Z" }, + { url = "https://files.pythonhosted.org/packages/e5/98/92d4a8a26c6c96cf1a5b34dd59036d8a71e52d650aab065c58867e964e63/ruff-0.17.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4590b9d86c0b1543ebb09094254e191cd43fe8edaf330baa035aab03da251532", size = 11373408, upload-time = "2026-10-27T00:33:44.19Z" }, + { url = "https://files.pythonhosted.org/packages/43/02/1f24d2e3064c9753926deeb901afa57777b37ee46799b09ddd7aee6e5145/ruff-0.17.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bbde18beccd98c29a227c63c99022e3443b99258e08326df6425dfe0443705ef", size = 10977469, upload-time = "2026-10-27T00:33:46.179Z" }, + { url = "https://files.pythonhosted.org/packages/f0/20/fecedea2209f574ab92033b344e01a7f0c2dc76c6d6d19a14c9f8141173f/ruff-0.17.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fa4b0f931cdbcb8a52044f370a3eb429fb42eb88807b0e800fcaa98dd42b24e", size = 10577491, upload-time = "2026-10-27T00:33:48.233Z" }, + { url = "https://files.pythonhosted.org/packages/33/36/b93fdf0bc6f84f0cd487aadfb0354deb40013669ea35ac3d26855de1e959/ruff-0.17.3-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:39405f341deec934b4289634324ad695f72df2970f9121582872eaf5b722f0f5", size = 10608748, upload-time = "2026-10-27T00:33:50.284Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b7/7d3f5f14145daead1efb0b9a8289ed1daa100f419d60774375951723ce00/ruff-0.17.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:68074094f55ca3d29ab19491f640282f7a84061c4c7977aa5094b968ca457e9a", size = 10075057, upload-time = "2026-10-27T00:33:52.074Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ed/93ff7a5909ee56e2bd4b982deae9e0efb2724417874a90c9e41ad66c6dd7/ruff-0.17.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:27bb571ac78fef178fe5118d2827df95c2aae74a48fff2b15f6acd03af5ff5bb", size = 10022431, upload-time = "2026-10-27T00:33:54.061Z" }, + { url = "https://files.pythonhosted.org/packages/9b/07/a83b9eeec8c1c3c0e4eda15f06c3a91001bfd2687ea2f07b750719bf9712/ruff-0.17.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:029c37cbd3de48ca37aa12117bead2d065f15da17d66bf84e0d4274013705db2", size = 10394903, upload-time = "2026-10-27T00:33:56.158Z" }, + { url = "https://files.pythonhosted.org/packages/af/b2/05c39857c2526fcbebe46ad93a8dc97424656dfef14d3ef933abe1ffd331/ruff-0.17.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:692fdb46d0fd9c71e380947dc5fc72f2c3f881073bc1f739e4579376231affbe", size = 10799780, upload-time = "2026-10-27T00:33:58.204Z" }, + { url = "https://files.pythonhosted.org/packages/ec/d9/47171a16739eb7a353936b31c20cf54340531e68c9af7d72fd7a784e235d/ruff-0.17.3-py3-none-win32.whl", hash = "sha256:46539cb031b01fd29ae0a02142483c46640b233ee12bb1c1b690bffa1555d5ca", size = 9908481, upload-time = "2026-10-27T00:34:00.087Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a0/f08c1631bfd81faa6a90eaf70c37c786c11bed2046302b56bb506c25e1a0/ruff-0.17.3-py3-none-win_amd64.whl", hash = "sha256:56b8ffb3f3b3cbccb8b76b71b38261b7ed982ef5d20f5b447b1b61a7f4949b24", size = 10341333, upload-time = "2026-10-27T00:34:02.099Z" }, + { url = "https://files.pythonhosted.org/packages/99/d5/4ad4ed31413c301430918e70d3d38ae6f097af0766cb9ab8c9d502b2a4d6/ruff-0.17.3-py3-none-win_arm64.whl", hash = "sha256:81fce74bcd6be0e9da7c67c7553fd0f1f12964a2052cd728ef917b937a5ca1d9", size = 9854332, upload-time = "2026-10-27T00:34:03.847Z" }, ] [[package]] @@ -1295,7 +1299,7 @@ wheels = [ [[package]] name = "tox" -version = "4.67.1" +version = "4.67.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cachetools" }, @@ -1310,34 +1314,34 @@ dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.13'" }, { name = "virtualenv" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/63/6e/677274ae411fa13f5c2ea5c633a6abfa0886e949bd2ef53c7e564a0b0b2e/tox-4.67.1.tar.gz", hash = "sha256:a68602f64421b199016127364ee47347b958391d19c2b2e53fe95673a8fe98e9", size = 347211, upload-time = "2026-10-18T07:34:04.348Z" } +sdist = { url = "https://files.pythonhosted.org/packages/33/d4/58a31918cbae4aea4a3c0f320fe94e616f0c0ca53c0d2fc87b578a8e1dc7/tox-4.67.5.tar.gz", hash = "sha256:f1872e30d89c8d18cbdf3b93c4c7dc04d4f3928c0af413e9ae5b71ba3f1c438d", size = 416551, upload-time = "2026-10-31T04:31:01.987Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/ac/cfba9de0f43b58d199f47c441efd1b670b55c480f3ec18bc1345f752c3d8/tox-4.67.1-py3-none-any.whl", hash = "sha256:23d614cb703e1f7bd39e00c046d4c261b63fb9986e185134c6be2f93531d9726", size = 238078, upload-time = "2026-10-18T07:34:02.728Z" }, + { url = "https://files.pythonhosted.org/packages/35/ee/331b99edc9a23c4b9af08f8a0f4d6925e78255fac9a3398e46b1af6a05fd/tox-4.67.5-py3-none-any.whl", hash = "sha256:2ce2844114ff4c50024d9bbdea19a2f3cabe66736d8cf6a3398ad9a3b3ce60fd", size = 259515, upload-time = "2026-10-31T04:31:00.214Z" }, ] [[package]] name = "tox-uv" -version = "1.37.0" +version = "1.37.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "tox-uv-bare" }, { name = "uv" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/65/7cf72148bff33fd0a572e620c7b1573d6a5e4812e9207878d4e29e4a938a/tox_uv-1.37.0-py3-none-any.whl", hash = "sha256:f2e7de8f12d7ffd850d2a3dcebf278cf72a8952a9abe75d84cfb54a76ee17ae4", size = 6564, upload-time = "2026-10-11T00:33:49.804Z" }, + { url = "https://files.pythonhosted.org/packages/2b/69/a678d2cea9c765c1b89a3c6d2b530d396e5bc59d1869f49030a43f952290/tox_uv-1.37.3-py3-none-any.whl", hash = "sha256:efe907955b53c8a48faf4543e645cdd6296e42f7a39b55d26fbf0e8e46c987fc", size = 7741, upload-time = "2026-10-31T15:11:08.424Z" }, ] [[package]] name = "tox-uv-bare" -version = "1.37.0" +version = "1.37.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, { name = "tox" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/31/27/203b4dbe73cc6dadc2480e319631310981540dabe95893de983106d7b103/tox_uv_bare-1.37.0.tar.gz", hash = "sha256:97418f2febec7da57d010ca6ffed8c7d56be9d425f381b74c7fe8d0213fccad9", size = 32961, upload-time = "2026-10-11T00:33:52.786Z" } +sdist = { url = "https://files.pythonhosted.org/packages/95/a5/23841dce225732c58a2094da5e0a8cf268680bb1ea8b0a7387257fd76df9/tox_uv_bare-1.37.3.tar.gz", hash = "sha256:33bbbea7fc3a23d136f81638d87c320822796f6a76dd61b526ee7c2a1585a948", size = 34202, upload-time = "2026-10-31T15:11:11.207Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/52/4c/9596668bb448b868c684a3df9190103e9bc2f7de13e646628ac914f928be/tox_uv_bare-1.37.0-py3-none-any.whl", hash = "sha256:a596c0726690e2182cc85dfbc2f39e6fddacb8f7ea08bf8bace122a17397cd13", size = 22322, upload-time = "2026-10-11T00:33:51.338Z" }, + { url = "https://files.pythonhosted.org/packages/5b/aa/606c4c5d7357b7a141a636224265148f2bf1991e09274ecd51e965d86b98/tox_uv_bare-1.37.3-py3-none-any.whl", hash = "sha256:1b999ed029feda594e0b6e391a7915a2c24ab5f91c16194926a18bec0285cdb8", size = 22682, upload-time = "2026-10-31T15:11:09.911Z" }, ] [[package]] @@ -1372,28 +1376,28 @@ wheels = [ [[package]] name = "uv" -version = "0.13.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/de/f0/7565e80415f841c3500ed69d86516c7676e3b24470a218ab61b1f43071a2/uv-0.13.5.tar.gz", hash = "sha256:979409b8c9a78df140ffb19c53f511b7a73526da8d1d5e36558833055e371c6c", size = 7513309, upload-time = "2026-10-22T01:32:33.909Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/24/ff/e30478710f53cf388c892e27e90662aa2acac7a7998bdb18023c595213c1/uv-0.13.5-py3-none-linux_armv6l.whl", hash = "sha256:8d092d07d2389909027c2ed4965ade1bd46bbcecceb26686ff40927684f8c457", size = 18325046, upload-time = "2026-10-22T01:31:37.115Z" }, - { url = "https://files.pythonhosted.org/packages/e3/2a/dcae794203261e49564bb9ff7c4b64a093f69ac73476cc8ce54c1deed3a1/uv-0.13.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:337a14829bb499e114989df4f908f134ff37f1fb6c33497541cfb05b28080e39", size = 17335724, upload-time = "2026-10-22T01:31:40.889Z" }, - { url = "https://files.pythonhosted.org/packages/d2/26/9ac45211123244ea68be852775093af487a64debc13621a2de239f8ebe73/uv-0.13.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a42c85fa8156e1e5e2cecdbc77bb818ea1dcf5f78b8e2a8f84c7fe4f16f0702e", size = 14470685, upload-time = "2026-10-22T01:31:43.897Z" }, - { url = "https://files.pythonhosted.org/packages/e8/2e/5bf9acf9d11fb790420e258a875e13bba36bc890858350642aca185efe0e/uv-0.13.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:2386c2dc9b59fc1d39b1c500e4319d71d3268232eb3b38e29cd6775d6269e8d4", size = 17784583, upload-time = "2026-10-22T01:31:46.95Z" }, - { url = "https://files.pythonhosted.org/packages/f3/70/b02fdcbae77346e3ec1310e7de9dde541252e709f6641db3fbd32cd4da79/uv-0.13.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:4f62680fe58c5a83fd539e38f1956c2b577b1f5939c9020aa4c7f0addda2f4ad", size = 17866408, upload-time = "2026-10-22T01:31:50.352Z" }, - { url = "https://files.pythonhosted.org/packages/fd/b9/6663095851e0943e05e47318d7600e567bc172a1e7a26b21b8e6608e8491/uv-0.13.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e03f5717bdaaf5ab4e2df361d2395e36b515946f56ef4bed88801aeb9959fb0", size = 17753574, upload-time = "2026-10-22T01:31:53.502Z" }, - { url = "https://files.pythonhosted.org/packages/e5/84/1bb89a94486b813bbeaa1b8b491e69a25fa864626711944127b186f903de/uv-0.13.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f867c5ec24c563afaae730a13e46cdf74a1a0b64c134286ff99762a96e2abf40", size = 18502087, upload-time = "2026-10-22T01:31:56.748Z" }, - { url = "https://files.pythonhosted.org/packages/a4/a1/b0b0c7247f3bb0f307eae8a28679ecd0d4b0e2757fcf6c87dea6f679a099/uv-0.13.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d3fd5db55c20feb672ea457361aba29ab68b9ae69a14d98ad6c138b5f86dcca4", size = 19927049, upload-time = "2026-10-22T01:31:59.831Z" }, - { url = "https://files.pythonhosted.org/packages/b4/44/6bf11de78ce18869849a14178534b900dbe4e310270b2f60df6503c03137/uv-0.13.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e01481ae5212e45ee7c85fad5fc67f06b0ee0329a7c3c289dc529da884b03881", size = 19662743, upload-time = "2026-10-22T01:32:03.258Z" }, - { url = "https://files.pythonhosted.org/packages/3a/ad/3c2a81d66d1839063662e5b6c0002ec31f8ee987dbc5295747627ca6160a/uv-0.13.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa8d26e08e34c29c0c4e820cf3181757086d547240b4f4d31ff1d8bd810ca946", size = 17211825, upload-time = "2026-10-22T01:32:06.393Z" }, - { url = "https://files.pythonhosted.org/packages/4c/92/d83d019c63c1ccc6ff17df2bfe76270412f9766e7e71aa4d4ccbf018683f/uv-0.13.5-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:91e58e304b63b6c91bac5561459ab0c3ea24f17bc01ea9359d69fed72142978f", size = 16654136, upload-time = "2026-10-22T01:32:10.086Z" }, - { url = "https://files.pythonhosted.org/packages/b8/5a/d42f9d93b322ad36647eb3bf516cc528847c240f630f6df213b6221c5262/uv-0.13.5-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:309a74d3c488bfaa3ba7bff759da73193d8781729c0a01274f4940fd32bb5712", size = 17921105, upload-time = "2026-10-22T01:32:13.174Z" }, - { url = "https://files.pythonhosted.org/packages/97/79/c5c2c39c78cf7a1dd6e041b3f7aa2cc4258d351d42dea06f6fee0bde5daa/uv-0.13.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:469cca66de1b17c75b9b9de806a64cffb57cba5e42b1e30d0bba6fa72a146f58", size = 18103266, upload-time = "2026-10-22T01:32:16.302Z" }, - { url = "https://files.pythonhosted.org/packages/01/2f/e5c70a05013077e5ecadb804418ddbab33f7279f96d052f79f565369b2a7/uv-0.13.5-py3-none-musllinux_1_1_i686.whl", hash = "sha256:2386e8dbfe110ff2f8ec8bd344dd18bf39eb9eb54e1edeeb87c3b85c34229cd3", size = 17842061, upload-time = "2026-10-22T01:32:19.208Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b0/7dba2cb636d7f58e0d74e948ad1afc6b7923e84e82de025e9951a68055db/uv-0.13.5-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:d162669e3a7811c584b03690eaa11e796ad1d309aa8229d5dfe3cbcd68a90400", size = 18963145, upload-time = "2026-10-22T01:32:22.362Z" }, - { url = "https://files.pythonhosted.org/packages/00/7c/e38b312abaae1bd59ff5886126f48e9e223fbb9a8edf9e236ede976f67cb/uv-0.13.5-py3-none-win32.whl", hash = "sha256:f4e55a6e2a1089fe74ed50fbdf2df0f6f336ee148ad232b05932db5deee8007e", size = 16240919, upload-time = "2026-10-22T01:32:25.329Z" }, - { url = "https://files.pythonhosted.org/packages/32/ea/771744a784b16aa21d195cb5d5d5a2878d72fa00fc26f11ea3f9646994fe/uv-0.13.5-py3-none-win_amd64.whl", hash = "sha256:1fb29fc46ba12033e2ef95a95ac79d649e71bbb1358419bbbcbd19d86026ef2f", size = 15358650, upload-time = "2026-10-22T01:32:28.22Z" }, - { url = "https://files.pythonhosted.org/packages/52/67/1f31243f75ece410f2db1afdfc9a9f9722fdee2385e4a347c3ca1dee6d13/uv-0.13.5-py3-none-win_arm64.whl", hash = "sha256:0548460d46c8667488b1f089e936f29f0edfb1cc753f9152ffbd8bc84a46aa20", size = 15533668, upload-time = "2026-10-22T01:32:31.335Z" }, +version = "0.13.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/08/d5/88d43310d425f6e3a43997ad771658ded3237d0ed78c16a89b2353eddf56/uv-0.13.6.tar.gz", hash = "sha256:d762215478854f6cf20c3faed8f1eb30c8101d568e7bc32a3abafc063929d5c5", size = 7545242, upload-time = "2026-10-27T00:45:57.605Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/05/74c9ae1b59e0aa49f1fa84f31ea4ee0ec930825681d3af8430c017faa848/uv-0.13.6-py3-none-linux_armv6l.whl", hash = "sha256:4d20de8a3ed6c3d39b4e2f8f7d0411cd13a3959f5191b2b5d0209344034ed056", size = 18118786, upload-time = "2026-10-27T00:45:02.635Z" }, + { url = "https://files.pythonhosted.org/packages/33/55/ff10d3f756c39a239e492e57262bd22fcda412a9f85a268175447cf33b09/uv-0.13.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:95f042b95e67ef8c3d3569bb6e9d895e592002c5e871cf3f1afe407c9d77a294", size = 17172613, upload-time = "2026-10-27T00:45:06.331Z" }, + { url = "https://files.pythonhosted.org/packages/f4/14/77230cc4f6a73a31578cb8070a5f67f58a76946ead643ae8a4155620d6da/uv-0.13.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:51361029b7cf91185d0092c4b356d110b4ad629e9cb11593f1e006ac72a72ca9", size = 14344205, upload-time = "2026-10-27T00:45:09.125Z" }, + { url = "https://files.pythonhosted.org/packages/05/3b/f78583af6504f1270da95fd0d0935e381f58330c007260f450e81a1e5e1b/uv-0.13.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:7ec5486476d67a4214c460b5492393ee2300d84e1de17b293100a019b413568b", size = 17764510, upload-time = "2026-10-27T00:45:12.133Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c3/ee263d5c8e0f0bbd553b19692b1de2ce5860baf0f9653c6217535ff27833/uv-0.13.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:710c68ea4853aaf70ab2d0ccf2e147dee59449f035a1f8fe7759f087a31cdbf5", size = 17679194, upload-time = "2026-10-27T00:45:15.052Z" }, + { url = "https://files.pythonhosted.org/packages/27/33/172e323f6e424f7bf4aef0480b514132dce6350b2acf14235d9b0671fa82/uv-0.13.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d4d7026c7327dd11fc2c0d4bae4735ff6944293d370644f35d2e6e917cdcae04", size = 17699951, upload-time = "2026-10-27T00:45:18.118Z" }, + { url = "https://files.pythonhosted.org/packages/96/e6/29fa137fe3699a9f61f0e05640caff4713ac485cdf09b005f99f9bd595d4/uv-0.13.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:46c2ef1f744f20007be0cdd66db3022bb1ddcac477c754efda875e401a48d810", size = 18467553, upload-time = "2026-10-27T00:45:21.104Z" }, + { url = "https://files.pythonhosted.org/packages/2f/8c/bf3672027b68bd930e6764122147fcbd1f2dd9d76fc8e02707916c3e0727/uv-0.13.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2d25a49d135a441f688a6869d6d8062fb6f0a2e3e32e18b72c9de1d0eb9521e", size = 19763440, upload-time = "2026-10-27T00:45:25.536Z" }, + { url = "https://files.pythonhosted.org/packages/a3/c0/77c56a78a94b488cf0b54e505df5ecfae65b90b08cddb8e018bb2ae66268/uv-0.13.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9f57153fc98b7aa41dd6720e3de7578747f60b7bff22f50b76dcc47205bdde3", size = 19616511, upload-time = "2026-10-27T00:45:28.505Z" }, + { url = "https://files.pythonhosted.org/packages/5c/43/0688ff5142934238f2812e348f4a24e09b57d48bfb38dd8f850325a0d9de/uv-0.13.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22759b8895e1103578de6fb4cd27e94b4399d021023378d29f01333717751fba", size = 17333810, upload-time = "2026-10-27T00:45:31.291Z" }, + { url = "https://files.pythonhosted.org/packages/99/3a/451b544e105b3595b27f74535c0d6b1105b1b2dcb9b49ca5282dd27bcbc3/uv-0.13.6-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:2e9a99100abe4f99605366974c4f9fe27f236615e05de8e78c0f357e38f09f97", size = 16527707, upload-time = "2026-10-27T00:45:34.282Z" }, + { url = "https://files.pythonhosted.org/packages/ab/59/9483985fadf5b2e60e64ca89e215f9e2da45a54d7323b9765ba03a5ebd80/uv-0.13.6-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:1cd4b0a35fa599b83da5437748150319ae0917c522da60898327645382942faa", size = 18014028, upload-time = "2026-10-27T00:45:37.33Z" }, + { url = "https://files.pythonhosted.org/packages/8d/c9/a412c2aa0494b307fce8c9c8234827f2fedb888954d3b3c8930a32a047c9/uv-0.13.6-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:8542dcf118ce8a7cf2e4ba1fea7f5cc1638bc02b5b30dab1ead7e9034dc62fd3", size = 17906467, upload-time = "2026-10-27T00:45:40.424Z" }, + { url = "https://files.pythonhosted.org/packages/28/51/4fecb1d7a32ebf5c444643a4da9d1ae0878de0c71284792dbcdaaf61a5b8/uv-0.13.6-py3-none-musllinux_1_1_i686.whl", hash = "sha256:feb0f1d555798f68f28719cab437ab1dfb5d918db86ab4554215cbf9d940f63b", size = 17822518, upload-time = "2026-10-27T00:45:43.335Z" }, + { url = "https://files.pythonhosted.org/packages/3a/10/7a4c287b1d377353c939f451881529528c78815d57f36097a6607187ab1a/uv-0.13.6-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:d1efed1d15102ffdbf5e0fd49a440643dda2d921a2ad856792ae42ccd43c253f", size = 18932884, upload-time = "2026-10-27T00:45:46.227Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b3/288467a6d1fdd99aca73dec3d4a919b80c201ec0d680093cd494d5b8efc7/uv-0.13.6-py3-none-win32.whl", hash = "sha256:29135609166960c74539abdaf4264f9819a0381be18b224125418356d67dd208", size = 16215356, upload-time = "2026-10-27T00:45:49.078Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9d/714523188aea3054644d8e69ae8089aac70325a3cee2d3d05509d4f23398/uv-0.13.6-py3-none-win_amd64.whl", hash = "sha256:7c9bc35ccb65932d8dc10a0669f9c805eaa3c9827ce18ecbecb1bd67944b2cdf", size = 15334118, upload-time = "2026-10-27T00:45:52.086Z" }, + { url = "https://files.pythonhosted.org/packages/6a/7d/5ebb4cccbb11ae9e10f6cda704ce382722ab9dc68c9280a5b810378aee3e/uv-0.13.6-py3-none-win_arm64.whl", hash = "sha256:722c7f96803f115e53918b8ee8858d1680ea6077c614b6db750747d709ab8d9a", size = 15533875, upload-time = "2026-10-27T00:45:55.013Z" }, ] [[package]] @@ -1411,7 +1415,7 @@ wheels = [ [[package]] name = "virtualenv" -version = "21.14.13" +version = "21.15.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "distlib" }, @@ -1420,9 +1424,9 @@ dependencies = [ { name = "platformdirs" }, { name = "python-discovery" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/70/aa/bff50daee0488e16d611258a9b6c5a1d0c9e128f8ca424e9f4e1c0444ef2/virtualenv-21.14.13.tar.gz", hash = "sha256:de5307ba4b9a0001d9c8ea02832d38f63ca432880f416c1bface61c4323fd905", size = 5570301, upload-time = "2026-10-22T20:10:16.952Z" } +sdist = { url = "https://files.pythonhosted.org/packages/38/9e/40c7098240cedd3a2f32e42a74b35c4563c617fdd7e41ae6268d4fdd8915/virtualenv-21.15.2.tar.gz", hash = "sha256:dbd886e6e5689eb4dde6a9bbc478ad14b4fc8ed0852690d8273ccfb8c467f635", size = 5520597, upload-time = "2026-10-30T19:18:04.759Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/a9/c10d8a44a29fb94a18b43fdf11f38caca53ae7c9406f11a72b1cb8f624f1/virtualenv-21.14.13-py3-none-any.whl", hash = "sha256:5fbb04138a4861580b78ba9110d529a26bc48fcc93c8ec36bc0202eeed96a788", size = 5557094, upload-time = "2026-10-22T20:10:15.096Z" }, + { url = "https://files.pythonhosted.org/packages/f7/d8/09c9d6df253b2016312dd5ccbb962dfa86a5202f2452604b52e0a9844661/virtualenv-21.15.2-py3-none-any.whl", hash = "sha256:fb8c62c7c328e0238061c721068f06b7bc6bd10f7a0f5987195cef1008837ee6", size = 5559530, upload-time = "2026-10-30T19:18:01.134Z" }, ] [[package]] @@ -1506,161 +1510,161 @@ wheels = [ [[package]] name = "websockets" -version = "17.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/4b/4692be6d5bf739ed049b3813901c42091f8c054df89d5c089343823dea0d/websockets-17.3.tar.gz", hash = "sha256:1c7dd93a1c9f89297471493674b1fc1d9467cafd45374f2172213046bdb3a329", size = 188878, upload-time = "2026-10-19T16:58:05.813Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/b8/282f114a67886fccde02a77ff296501ad7fea25f4d696b2b1b337cbd27da/websockets-17.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45cc1ccb12ced6d242335159e8221733c8696da5ad0b6ceef6debb0f5ce89110", size = 218223, upload-time = "2026-10-19T16:54:25.998Z" }, - { url = "https://files.pythonhosted.org/packages/8b/ba/8043c303aa60af053e092c1d667165f46d6729217ce2af795a23a3cd700a/websockets-17.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46ae05aa1aecd47d4d7de0f05ce2d1d2eb418f8de614964d754cc3b9a409c400", size = 215908, upload-time = "2026-10-19T16:54:27.785Z" }, - { url = "https://files.pythonhosted.org/packages/21/3d/5d0eaa9b29db6c999a2cf749605141796cff21a5e235b2488bd39dcdcac9/websockets-17.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:43f270a5f21e12db08c73d83849a877c02ab7b7d0fb6e2718b5101d9c810212f", size = 216181, upload-time = "2026-10-19T16:54:29.267Z" }, - { url = "https://files.pythonhosted.org/packages/43/fb/33080a7b2d8427b343056eab32ba78235a4bfbbdc79b5593688c7b7c62ef/websockets-17.3-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2d875224bac1a05a20acade268a7a0e3498e7f8cf890acb7c2b23bacd2bd3659", size = 225246, upload-time = "2026-10-19T16:54:30.807Z" }, - { url = "https://files.pythonhosted.org/packages/61/8c/d4220455cee00adb553c602ba4f1f6a47cd882d86dd9e5124679c0c95c75/websockets-17.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5ad409b7ea102339041281117cf2dadfe71edbb653dc48037cc55d516fb7f448", size = 225517, upload-time = "2026-10-19T16:54:32.182Z" }, - { url = "https://files.pythonhosted.org/packages/75/a3/0ff8e4f0195884ae446844185e81bf7619673d816424b8a58bb5812dd4b8/websockets-17.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:56d43c311f3519fb1057b6114dc24e9060bc3fb6aedf4aa11160484154b66b63", size = 226751, upload-time = "2026-10-19T16:54:33.52Z" }, - { url = "https://files.pythonhosted.org/packages/06/cf/82c88e3fbb6a75a62b2997932664bccfe68256661c69144bd48020160cf1/websockets-17.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a9eacb382f400bb5865e7e6d24bbe709a84510291e707f169dd4a24ee4a5ac6a", size = 230063, upload-time = "2026-10-19T16:54:34.855Z" }, - { url = "https://files.pythonhosted.org/packages/4a/e4/9131d3b73504902a83d10b1e1244319377ca72755351998ac9c408ba6ddb/websockets-17.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f09f145b89ea292cf6c25fd7c8c0d90207fd6a9e54c7828499669996a1e5bdcc", size = 227310, upload-time = "2026-10-19T16:54:36.248Z" }, - { url = "https://files.pythonhosted.org/packages/ca/b2/2208506afb45d181b0d6ccf377d9d79985fbcbf871af02ef4f7f3d405f5b/websockets-17.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:49fb5b4960ebe1bc557b435da8687deef1302a08f030a33c5606fa6fb11b773b", size = 226087, upload-time = "2026-10-19T16:54:37.583Z" }, - { url = "https://files.pythonhosted.org/packages/39/53/da73e3809f1d4e8c3346ca89a4bed7995de5708f2cb14c9359172a85f5a5/websockets-17.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:13cffaedde6e06183860fc92d88fe1d190abda73837fe4c14f5d4803c472f5dd", size = 223360, upload-time = "2026-10-19T16:54:38.91Z" }, - { url = "https://files.pythonhosted.org/packages/9a/7b/eaf828fd414401672e615570b9f2bfd84342b49c86ffb2ae735e4aada32f/websockets-17.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ef2950896673a9809e8e5ab857525924fbcacfc98b858b0509ccf50d341f80f4", size = 226240, upload-time = "2026-10-19T16:54:40.294Z" }, - { url = "https://files.pythonhosted.org/packages/79/bd/4b6aa6e761c8d89aa6defdd83e40a6b2d9aa21bd01520c8e8470fe8d8681/websockets-17.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:2d08ca4bf5a9cdb6fd81b86b51bd5cfb10527d3a1199888f2b02cc6c6a3d5f80", size = 224833, upload-time = "2026-10-19T16:54:41.939Z" }, - { url = "https://files.pythonhosted.org/packages/37/a8/0a6aea08cad7db2c1aa53dbd3ece3ebc09e420e8301cb02f2b812a728a5b/websockets-17.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5e0c0ed37472c4729f3001066510a656486f08f149dda1ebfd3dfe4450c9756e", size = 225599, upload-time = "2026-10-19T16:54:43.54Z" }, - { url = "https://files.pythonhosted.org/packages/1d/82/3998ea56beb079f43fc39dd5935ef8dc150f915bf2de8bd6ddcd50c0fae6/websockets-17.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:62059d739af7fc035ed6e63c5390118a60a5e9aa5a5541cd0486a83e741842c7", size = 226643, upload-time = "2026-10-19T16:54:44.914Z" }, - { url = "https://files.pythonhosted.org/packages/c1/a5/6568add8d0a2f37c5780c6de62b5b8ee191ca9d2d0b8ff2123b8277c41b7/websockets-17.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:bc6f87d03e3691154673aaa8f08991723d6e3394c83ef2875c7a9049eac9595c", size = 224223, upload-time = "2026-10-19T16:54:46.429Z" }, - { url = "https://files.pythonhosted.org/packages/72/79/b11bc05b0f64d8b14901443a4b01ea80d039cc68b260250b4cb488070aca/websockets-17.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:3d78d93846eddc990551c1c31914d90d71957ca3af468969826f7ed0d7d1d51c", size = 225255, upload-time = "2026-10-19T16:54:47.82Z" }, - { url = "https://files.pythonhosted.org/packages/71/f9/9a8902074db7044b64a05feff349e4f44144a961310d3419bab612f00dd1/websockets-17.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2a377c7132b1e69be7a50d7434d7f26f69e93c70166ebb6d8f8cabf802ac4506", size = 225494, upload-time = "2026-10-19T16:54:49.171Z" }, - { url = "https://files.pythonhosted.org/packages/99/ba/7b873060ce6764207a24c10e81294739abffe2a90dc67c7f7db5042c596c/websockets-17.3-cp311-cp311-win32.whl", hash = "sha256:29b01520c39ef2f23c88b002f11e6ef4165675f6c92f5f3578fd587d69b5a5fc", size = 218720, upload-time = "2026-10-19T16:54:50.501Z" }, - { url = "https://files.pythonhosted.org/packages/28/11/7469f3f28513ec0d43f10b1c88bf970b0b6f0aa8190c42731954297e824c/websockets-17.3-cp311-cp311-win_amd64.whl", hash = "sha256:d338813a440bf6d2f0df55140d3f3080284410b1ebfe9df50e3847bcdb1a17bb", size = 219017, upload-time = "2026-10-19T16:54:51.843Z" }, - { url = "https://files.pythonhosted.org/packages/bc/fd/4724610baabbba94a44c5d1cf1b1a33ff77031e94a51addb0387c7f56b10/websockets-17.3-cp311-cp311-win_arm64.whl", hash = "sha256:6a8248b1ba8861e48e4c7ced3895a1264d2a3b617de72ec94172ce6e64bf16c7", size = 218950, upload-time = "2026-10-19T16:54:53.37Z" }, - { url = "https://files.pythonhosted.org/packages/0d/29/902ffe19c0d35603102f31490dea342f083bc77d8f8bcdc7d8b16f5810f9/websockets-17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:41665c7ea01d3ae497a0c61fd22d3424230d18782a5fceb79f04db9ccb2042c9", size = 218250, upload-time = "2026-10-19T16:54:54.718Z" }, - { url = "https://files.pythonhosted.org/packages/f0/66/f56a2637b1aac263205b0e3cd7b2ff2e2f8b404b8118c991f4d122fd381f/websockets-17.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8f7469408740cf06a79b01605f2ae0b2acc8839c03fcbbf05da49baee12d3302", size = 215927, upload-time = "2026-10-19T16:54:56.124Z" }, - { url = "https://files.pythonhosted.org/packages/22/7d/a27f25451c4cc62141992b51005688481210f3d3e63de3dc66f9e882ba59/websockets-17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d68da281ac208b6236ffa8beef23fe7c7c956d8bf09b421d447232fd94441b35", size = 216196, upload-time = "2026-10-19T16:54:57.538Z" }, - { url = "https://files.pythonhosted.org/packages/9f/77/40bbc1a5c016cf9f598dea21d1250a93245c995eafaec6401d0e4eb4e647/websockets-17.3-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:078d1d41f45ee34eed5a4f3bbe7c588caecbdd6e12dfca73e8c1b0e803773793", size = 225516, upload-time = "2026-10-19T16:54:59.104Z" }, - { url = "https://files.pythonhosted.org/packages/3d/9c/91889c8c62fb7d16cd58e3074473a259303d6229bf0ce496aec87e66f3dc/websockets-17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a7f391838e8adcf1f2fe71561d9e5a9f74ea7ffa5052eb2db329aac677383136", size = 225795, upload-time = "2026-10-19T16:55:00.438Z" }, - { url = "https://files.pythonhosted.org/packages/b8/29/2e5e2158e9920f806cd45f3cbc81cf5f3eef2b9e5a74b9ef049e2a3578e3/websockets-17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c15a165673bb3fb57facbf040edf5c0556d20ccd2e0ccc5f23ebb69fb715fdc1", size = 227034, upload-time = "2026-10-19T16:55:02.065Z" }, - { url = "https://files.pythonhosted.org/packages/b6/af/fbab5c4098b26026b877bfc139b1ea0d7c6eaf7a86b84544933b4c445f82/websockets-17.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:28d1935c16782a1e3650c9baa79069b016fff739e292e4cb14bbb830d6930491", size = 229863, upload-time = "2026-10-19T16:55:03.415Z" }, - { url = "https://files.pythonhosted.org/packages/ac/72/d6e460a991607794072fe3fdfcb3221a0342af61586f5bd7ea40bddcfd21/websockets-17.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c534c9524a2acd0b97b7022074bec3784ac273c683cf9535087e437672ea8531", size = 227669, upload-time = "2026-10-19T16:55:04.763Z" }, - { url = "https://files.pythonhosted.org/packages/ec/8f/1c7da1cfb632e141e019cf2e0bbbd4e6dc8c198c8cc29544e4acf1a89f56/websockets-17.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b459d29c8b82a420a98fa0ce8e9cf787ce0062d98cc90604ef9574fb3cc26ff8", size = 226429, upload-time = "2026-10-19T16:55:06.112Z" }, - { url = "https://files.pythonhosted.org/packages/3e/63/c48ef8bbfbd982f2cfae1cfcf9e63f5bfbb8468fd37ca700507efc0b0007/websockets-17.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:53209dffd91b0aefed9ea630fa6ad5c2944d6210ba3a8a3a8664dc1575289b14", size = 223653, upload-time = "2026-10-19T16:55:07.473Z" }, - { url = "https://files.pythonhosted.org/packages/cb/37/7bedaad48ae8e89eaa4f3942c11be0c41de77ce2118a475f3ba05e9b5a0f/websockets-17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9662a9fe457820c60365b3209e03cbd8e4a817195d55de65a80fa680b4bea136", size = 226465, upload-time = "2026-10-19T16:55:08.791Z" }, - { url = "https://files.pythonhosted.org/packages/33/cf/ab9a8a0de4769ca1dce392021b6a922e21b4d3687fe9e1ab4db585a088f8/websockets-17.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5670a762c7ae388bf8aa04199fd436180a4d28318dca9c1eae7b38604676dbfd", size = 225071, upload-time = "2026-10-19T16:55:10.127Z" }, - { url = "https://files.pythonhosted.org/packages/89/96/64d8460cec95f873c61c6d13a09b435915150640525ae56d5871400aec09/websockets-17.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ed59cb4ee258674a6ed9b8515e42079db02cb3be94f133fdd3f200183a40c49d", size = 225841, upload-time = "2026-10-19T16:55:11.519Z" }, - { url = "https://files.pythonhosted.org/packages/a6/98/2b83211ee3087db4ae66533782664c0e283cf4a08cbb14036018d0803e09/websockets-17.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0f78bb2e82fe88912c9d7b25c98e57a9b08655579af89f164fd4c0657a075d62", size = 226945, upload-time = "2026-10-19T16:55:12.85Z" }, - { url = "https://files.pythonhosted.org/packages/9f/fe/6b2a37d422d7f4dfc0c92c95a14649d9bd662243ed8b0774523ed2703604/websockets-17.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:71250e010eede33c1d638e2c7a98288520d67f782fd5eceecaeca3129233a09a", size = 224502, upload-time = "2026-10-19T16:55:14.48Z" }, - { url = "https://files.pythonhosted.org/packages/0c/c5/364015c9311c89ea6085d54c70d654c5d27ba05014d44ef9fd9daa09462b/websockets-17.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:729989759feb81ff6493879a0d60a0bd7d2eee41001bbec0381a080318439382", size = 225483, upload-time = "2026-10-19T16:55:15.899Z" }, - { url = "https://files.pythonhosted.org/packages/c2/b3/75d0cae8398816ed34a16a78252bfc8651f2f883cc5a568e1198395f15df/websockets-17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90d8c4fa5ba293cf92de351fbc292cdaadb1a1d58d031a1a97ff9b8fb6250ec7", size = 225761, upload-time = "2026-10-19T16:55:17.28Z" }, - { url = "https://files.pythonhosted.org/packages/f0/af/9a7c4b2e87f47a2a6a066acdc2157e9b7cb6222a224b95a432f54ae786ce/websockets-17.3-cp312-cp312-win32.whl", hash = "sha256:0824e6ecee838cc28e6481062574c7fde49f9a2cedfacd36f0e91cb4b37fd6fe", size = 218722, upload-time = "2026-10-19T16:55:18.658Z" }, - { url = "https://files.pythonhosted.org/packages/f7/e8/e52953a8280a1e51cb9307218443f68c8f4dc4b9952db6021d5c12d03c0f/websockets-17.3-cp312-cp312-win_amd64.whl", hash = "sha256:6644eecd99c4e8cdf72e646e17b391bb70b054f44becde37dcdc48cbec7e1527", size = 219024, upload-time = "2026-10-19T16:55:19.987Z" }, - { url = "https://files.pythonhosted.org/packages/85/a4/005eb7c1f5c1a249c1231a6ed83a54ada0b6b8ffab33a608ca20e3034ea0/websockets-17.3-cp312-cp312-win_arm64.whl", hash = "sha256:4a9133dbaedc6f1af358127275676171d9a1bb3e61f47ee62b2ff9acb78af3d0", size = 218950, upload-time = "2026-10-19T16:55:22.161Z" }, - { url = "https://files.pythonhosted.org/packages/ee/1d/c1f4a1c45c5ca2c35ae9fd7cac0e491f8a014c9a86933a5da7b04ff825cf/websockets-17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:52a2ca6f401fb49a8d5d9e0e48ade5f58f1bdda33132907b0e4e3b702628fa4e", size = 218243, upload-time = "2026-10-19T16:55:23.851Z" }, - { url = "https://files.pythonhosted.org/packages/4e/e8/f1b47d0ced4964ae748931a54347fd27b06b62e8ea7837a9de3aee0c5999/websockets-17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:80578e91764bfca297ddca322c00a3136d993b829e9839e7fa378a19c1fcc25d", size = 215927, upload-time = "2026-10-19T16:55:25.317Z" }, - { url = "https://files.pythonhosted.org/packages/16/df/ab0ed0445d8d81a133c8fed760f3b4f743a2f563804fdbecb2c32fe05d94/websockets-17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fe7a168d805c8a7bf1c2de55b7ab2bc958586bfd88d0e87235a92cac66b590a7", size = 216185, upload-time = "2026-10-19T16:55:26.678Z" }, - { url = "https://files.pythonhosted.org/packages/9f/51/b30fd6c5a33dac76a78083be125e3f9804f3d735da494ff03a46834f31f4/websockets-17.3-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:54fcd24944e6d127d198c28dc363967b7131ff0c97833962c2ef2048018de02d", size = 225574, upload-time = "2026-10-19T16:55:28.097Z" }, - { url = "https://files.pythonhosted.org/packages/1c/8a/8ede659919c0805d1fcc79c2ed16588d3419f1687c5117ba46f0217750ec/websockets-17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:de2c12555bf05546f3ee75733f2c81de70aab7f530e86d0d2162b0ddcb3c39ae", size = 225854, upload-time = "2026-10-19T16:55:29.491Z" }, - { url = "https://files.pythonhosted.org/packages/a6/6a/e75d10e3896edc61320062890f71cdc0767dc4a54e2a26a943b703042d13/websockets-17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c95d25b5382ee0e6191ecafdeabefdc1f7bff8dfee29239b9b79e760ef3b04bd", size = 227091, upload-time = "2026-10-19T16:55:31.146Z" }, - { url = "https://files.pythonhosted.org/packages/dc/d3/658f1e153566e5edae02812122d9f020c30785d8b53c4bda61b8e976f77f/websockets-17.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8f244dfee05ea29b8064701880865eb1684f3a704a5665bd10b64694444dbbd4", size = 228526, upload-time = "2026-10-19T16:55:32.524Z" }, - { url = "https://files.pythonhosted.org/packages/28/00/002f95a02d721d8c6ec2676c5aee904a823838a9c205fc0b31eedd882a7b/websockets-17.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e99440ef446c7833690c1754e23b0188d440f3cb89812b0764c697a7880cb33", size = 227718, upload-time = "2026-10-19T16:55:34.085Z" }, - { url = "https://files.pythonhosted.org/packages/fa/9c/d36ec9499a62ec4e2a4eb570f93c6fcedd80ad5685e0f9d6866e8cfbbb84/websockets-17.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:26838e2d95d7004c52e8c7b6b51676c872093a3b55a497824f899116a15a8a55", size = 226472, upload-time = "2026-10-19T16:55:35.484Z" }, - { url = "https://files.pythonhosted.org/packages/36/5d/3a6d74e409f24ae4e8661a9d74d6645f71b3e91425a527c0e3f2e78bb15b/websockets-17.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:508775efa11d26aec186d10154359f52276e2baf9ca201b52356330883276dfd", size = 223710, upload-time = "2026-10-19T16:55:36.853Z" }, - { url = "https://files.pythonhosted.org/packages/e1/90/e08eb5d69b73cf5babf80922a8c964019b48339ce5c694a5d0c0f083c5a8/websockets-17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2789d203babb6ceb2770aadc2394c1f99263ec37fba57a93064f9a8ad899e8ff", size = 226532, upload-time = "2026-10-19T16:55:38.191Z" }, - { url = "https://files.pythonhosted.org/packages/c2/45/b1916efa1dad5af33beafe5c536810e1c80856b7e913f671c35031c57745/websockets-17.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:cfef7f7aa434a1e632e0ebda14b39f4f1d7975e0fce5c77ea7b43156fabf9bd8", size = 225129, upload-time = "2026-10-19T16:55:39.635Z" }, - { url = "https://files.pythonhosted.org/packages/04/c1/d427abb3f11e92f102f70f8e73addb767fc62c614565c0ee3f5657fa3551/websockets-17.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:39f532fa0d9026de4b9315a175998646112776baad54d55348435c11b05d034e", size = 225900, upload-time = "2026-10-19T16:55:41.033Z" }, - { url = "https://files.pythonhosted.org/packages/07/2b/462fab8e4b09eaa4eac2f40fcff8ee30f851aa40fb518efb0177262f6590/websockets-17.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:85d6daa3a7ca404570ae130babbeb347ef9d3faca5300fb13cfa4bb48c3d30d1", size = 227007, upload-time = "2026-10-19T16:55:42.314Z" }, - { url = "https://files.pythonhosted.org/packages/71/36/7404a4376021a0cc7ae9fcbdb1196c0c8aa48df4fd370c185f4f5b677bff/websockets-17.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:ce39283ef08b0f28478e920d4d89a1fc169176e568e8a6a821332673145522eb", size = 224565, upload-time = "2026-10-19T16:55:43.93Z" }, - { url = "https://files.pythonhosted.org/packages/c9/5f/b8ada5787d11e6edbf58e2d680235fb3b2fb3298991cc310566f4d6c2fbf/websockets-17.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:23046098ebf844753cfd211033624a8247520e5bf2194c24cb1a8c222917acff", size = 225516, upload-time = "2026-10-19T16:55:45.398Z" }, - { url = "https://files.pythonhosted.org/packages/23/1c/0533f760237ac6604efd0bf98c18ea4c1381f2cadd8c8d0b05faecb07a80/websockets-17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:724224d4c457207271239114bf43afafc3eca4a1b4661ccdd428d11869a03bbd", size = 225797, upload-time = "2026-10-19T16:55:46.989Z" }, - { url = "https://files.pythonhosted.org/packages/97/b4/0e580e8f96197130ebdb32b727e9c891594c930be30d8a9de9aa0bbb7e2c/websockets-17.3-cp313-cp313-win32.whl", hash = "sha256:5af7070d80d278832cbca9c3c3dd44b30a26dcfa3ae1e0f6f19ff34edc27b689", size = 218712, upload-time = "2026-10-19T16:55:48.379Z" }, - { url = "https://files.pythonhosted.org/packages/7d/6c/db5c907d1cbea84444bc759ff63db97fc586988d11a34d5565e8b50080fa/websockets-17.3-cp313-cp313-win_amd64.whl", hash = "sha256:66027e401c70d0cf55021b91b8a7ec2cd5810e20602f945b4fe6ae8b37ed232b", size = 219026, upload-time = "2026-10-19T16:55:50.688Z" }, - { url = "https://files.pythonhosted.org/packages/f1/d3/30f04bec5b9cf0c00c98c038494b210ece923a0b05b6df38a162b759e5ed/websockets-17.3-cp313-cp313-win_arm64.whl", hash = "sha256:6b14914e67044724c31a9360c7b89e9d070117c630746eefdc1620d967545acd", size = 218958, upload-time = "2026-10-19T16:55:52.085Z" }, - { url = "https://files.pythonhosted.org/packages/27/ad/f65e365bbf38d61164b0c2f64776fc7714bfa59ac51e492b038a35f4ab1b/websockets-17.3-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:bc8fd230ef013951900c1fda100eebe4a4b1b407dde2a44186995042dda2c628", size = 218288, upload-time = "2026-10-19T16:55:53.387Z" }, - { url = "https://files.pythonhosted.org/packages/48/1c/33271eba53b4927a1b91d99d838a6d7b888e6f708425262c911450d73696/websockets-17.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:cdb8e4b0f6a41b857c74c03116e8ffbef59ef8e533e934b532843178990d01d5", size = 215977, upload-time = "2026-10-19T16:55:55.063Z" }, - { url = "https://files.pythonhosted.org/packages/3d/f3/6d982c60f6c7c95e5faed53d39263df273ecfda904c7d6920c37eee58dd1/websockets-17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:018fab26140ce221c3853454a608e4e7004f4f10641cb97819dcd5b917bb2e99", size = 216193, upload-time = "2026-10-19T16:55:56.424Z" }, - { url = "https://files.pythonhosted.org/packages/ff/c6/4ff6b8d2a4b32719d4658bbd791ee9d19939a47a69b961c961fd9dc3a64c/websockets-17.3-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dd0f3037d501178a761fd2814370aca547f79e99a200a61a1f6e7b79ec3d78b9", size = 225573, upload-time = "2026-10-19T16:55:58.252Z" }, - { url = "https://files.pythonhosted.org/packages/eb/8f/46e4030947f5590cb61832901f44a3edb07ef8d1e27f6c06b42c5f1c4d33/websockets-17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8dbb3862aa649de95660b6337d97101977f160b5b354d07b82fe309874d2c8bc", size = 225927, upload-time = "2026-10-19T16:55:59.561Z" }, - { url = "https://files.pythonhosted.org/packages/f0/1b/3db30fdf4fbefa4ac463060d3f87e2d444f960aa1234028468c09b88bffc/websockets-17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af37a1e6b6bd506b597d5fb4cf111fb527d1b2223608a5d441d4738827cfd166", size = 227169, upload-time = "2026-10-19T16:56:01.029Z" }, - { url = "https://files.pythonhosted.org/packages/02/ed/849799cfc0e3e359b75ca1d50605376da52dc9ef0b2a53931e3f5991f96e/websockets-17.3-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:740bba4223fa5216d4d6c5dcd29e697f37229b8a61b69e1a50527b0ea993ab2c", size = 228542, upload-time = "2026-10-19T16:56:02.377Z" }, - { url = "https://files.pythonhosted.org/packages/19/53/dcc397e20ce792fffd9a8f79b6333275748ee7a23f807e576166a0b16edd/websockets-17.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4170556762c6fd2913d99dfdd8dbb4c927584899df7facb1034627e355263c45", size = 227772, upload-time = "2026-10-19T16:56:03.768Z" }, - { url = "https://files.pythonhosted.org/packages/c9/36/e5935782f71e9e22247b2a2e562da05e18d8945c49f2692ca1bdaceec178/websockets-17.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d355b22270be8062360b9df2ee0b10277590789a1059257916fb9e256a0cff80", size = 226518, upload-time = "2026-10-19T16:56:05.332Z" }, - { url = "https://files.pythonhosted.org/packages/27/76/bd5978a1e403fc646230cf35cf7c06b40b3a232d440881b9e89ede229b18/websockets-17.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4aa85b34c21cf97b3470793d0bf0763d32bfd1e67b83067a0a3ba8dc3474dacf", size = 223766, upload-time = "2026-10-19T16:56:06.703Z" }, - { url = "https://files.pythonhosted.org/packages/da/87/c66eb39bd851d5c14d9eb75aa64d03cfcf2ded77927ca067b5917291d19d/websockets-17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a0e2e7c2c1a4f25db7b6596738d810c10732e77f852247300a1bc49e364d6dc9", size = 226644, upload-time = "2026-10-19T16:56:08.198Z" }, - { url = "https://files.pythonhosted.org/packages/fe/ae/b9a31d5497fa0b73629a097b173a26123da2ed656b562114644bc623414b/websockets-17.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:7fa69212ea60ea24e2d8aff23fe102b1f87f1b27a320f92d2e7b3468997a496a", size = 225107, upload-time = "2026-10-19T16:56:09.627Z" }, - { url = "https://files.pythonhosted.org/packages/61/0c/b773a102f84b60b2052b2cfde773d2f3cd3e8eaa93a145f54450460549cf/websockets-17.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:80a6e37e235780f189558ab804f3cbc01c18f5c578995739b49613d544d34ebf", size = 225891, upload-time = "2026-10-19T16:56:10.973Z" }, - { url = "https://files.pythonhosted.org/packages/b2/fa/e7e538575dd4912dea9ea4c9ae86519aa1420969d9cb5cf02fd10fd20ba7/websockets-17.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:628efe13630ac3397e7d1278b6be6f22f37a86d638a324334b4cd43c1daf9928", size = 227064, upload-time = "2026-10-19T16:56:12.295Z" }, - { url = "https://files.pythonhosted.org/packages/28/87/bf2b928c156deefd0c50285a48fc985e2ca85d284e7d9981cc5b79b0e696/websockets-17.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:443fa28652682d2a3ec3eca49af1b87cb2523561257683e62e03a98967b22138", size = 224618, upload-time = "2026-10-19T16:56:13.73Z" }, - { url = "https://files.pythonhosted.org/packages/8c/9a/d59817ba3535f787c1cf8990a01b3d2896a7d9d8f3b5d55bed22fce595a6/websockets-17.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6705af9d1005127302c04d9f1533ba56e289336c465923ef878430e99295a0b9", size = 225571, upload-time = "2026-10-19T16:56:15.199Z" }, - { url = "https://files.pythonhosted.org/packages/a6/96/8210379dac889e16c75099aefffa200dc55dc8cb030010f309a7eb9c75c1/websockets-17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9bde5d82d7ac4859e0cb3a35e148f537a8d4e56aa43f42582b5f263982f095ae", size = 225869, upload-time = "2026-10-19T16:56:16.569Z" }, - { url = "https://files.pythonhosted.org/packages/97/0b/d4741c977fec9e6482beffece572d544d42d230f56fc3ef504f96521063a/websockets-17.3-cp314-cp314-win32.whl", hash = "sha256:be7be57097a65a8fab3d0f0a10d12931deb626a7d8082eb732b1ae41f3a202e3", size = 218232, upload-time = "2026-10-19T16:56:18.028Z" }, - { url = "https://files.pythonhosted.org/packages/33/69/2f9ce899776d0c522f7f44080cad4228a1c14ec13b0125a2efc12ebe41c9/websockets-17.3-cp314-cp314-win_amd64.whl", hash = "sha256:2b06213c8e1ce93b18d0476d7a5e647436c8f23d099888c9065e930e80f4bed5", size = 218582, upload-time = "2026-10-19T16:56:19.399Z" }, - { url = "https://files.pythonhosted.org/packages/4e/e9/11b885666d72add674440a3435c059bea325616959cec8be42605948714c/websockets-17.3-cp314-cp314-win_arm64.whl", hash = "sha256:6b7b540bb321f7f0a7b8f5d107f941bb361e3a154c0b594dae0394997b91b743", size = 218465, upload-time = "2026-10-19T16:56:21.005Z" }, - { url = "https://files.pythonhosted.org/packages/c4/0e/0c0f40ab8eefe9d5a6c78b4e267d8e37d70d3db8dd195574e0ab867e4f81/websockets-17.3-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:c9d06edfd974e918b40e0662a7e76dac13125529ee5ec9fbe42dc0d6faa209c3", size = 218614, upload-time = "2026-10-19T16:56:22.457Z" }, - { url = "https://files.pythonhosted.org/packages/1f/93/d22b3d63aa439bc01a9477880070d05e0b257b0548294786a33be3e842ec/websockets-17.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:0a0bcf66289b9d017c175562c35c5304b5cc3ed56aded994ae30b0a9654ba405", size = 216151, upload-time = "2026-10-19T16:56:23.95Z" }, - { url = "https://files.pythonhosted.org/packages/b9/92/f60a9672cdeb8cb4f7156e6e83c76d59fdc586737a97ac77129e9fc188a2/websockets-17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f3ed747b7651668131029c720fbc32c7ee2d129bdad200e6c8f4037b20f7913a", size = 216354, upload-time = "2026-10-19T16:56:25.251Z" }, - { url = "https://files.pythonhosted.org/packages/9d/da/2be8c5f3c6612d4523f95b074e2352bc11bd090cf121d32bc11af1d52e70/websockets-17.3-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5868a02c4f6d698ddd19b4c9742748c03dec045289915806845189d96bc3d314", size = 225937, upload-time = "2026-10-19T16:56:26.726Z" }, - { url = "https://files.pythonhosted.org/packages/85/1c/cb84aec871840acd66dfa84520bf7b8e48ce70bdb3f4baa4efd097fbe6b1/websockets-17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fa87ea2ad64e59fe5622c1dc5716106b6d6e7e4b26b848cb5f5710a75c292ef5", size = 226215, upload-time = "2026-10-19T16:56:28.1Z" }, - { url = "https://files.pythonhosted.org/packages/9b/7b/cfb65557accec2eda2c80288e13eca6f1c797c579375906eb73f4053cfd1/websockets-17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:65e937576141ac50fac32fa9736dbb3e0e4a7769f91be004011a09216c6ab05f", size = 227389, upload-time = "2026-10-19T16:56:29.518Z" }, - { url = "https://files.pythonhosted.org/packages/70/a3/7e08ec4b23e376ed228831aa44b2f2a3f2e7025cc66dda4b2e53dcc2619e/websockets-17.3-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:35381b575f70a08d4241e73c0cde4672bb9b2a9aae8767ca6b7fb61305a052c8", size = 229534, upload-time = "2026-10-19T16:56:31.072Z" }, - { url = "https://files.pythonhosted.org/packages/4b/7d/8a813e3e53956f876cfaad4f6358625bbd94168aa8046c44e2f3561f12af/websockets-17.3-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5142798871a248b422f353e0684d51dfa119de3403a6fa0904b7cb806d9790ce", size = 227959, upload-time = "2026-10-19T16:56:32.656Z" }, - { url = "https://files.pythonhosted.org/packages/41/23/5f3dab6ab44f2f30042db83a658a57129d5e3c0425c798b3c3e727bc060a/websockets-17.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e164c4a6868d11988c7f2386e3278ccff21c665cd7d08279b62709dd37a3167c", size = 226691, upload-time = "2026-10-19T16:56:34.101Z" }, - { url = "https://files.pythonhosted.org/packages/5b/49/99a3fb5a2e94d677fbd0d014a6f9a56a3d2b8e8007b7175727bc4fc4ae94/websockets-17.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:10b24e836ee0233ca078e1244f6ba40343a22127a9a736f46a7e7b18de2cc711", size = 224225, upload-time = "2026-10-19T16:56:35.452Z" }, - { url = "https://files.pythonhosted.org/packages/6f/e5/f503a4d757858d083c90ea85dd1fd636ae9eb63c9552c75a4c38514ee7ed/websockets-17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:56a76556ab04ab54a675acce2cac8b4e74ea2cec558a7c9ed37e0367b04b5d50", size = 226984, upload-time = "2026-10-19T16:56:36.887Z" }, - { url = "https://files.pythonhosted.org/packages/4a/a6/8586844ad4b21988837624e1f4b331bc71919c85a6eb1ee3c8bd29893f27/websockets-17.3-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:33221e49be79d7bfe6d12bc52ef9458b256ab74fa8ac5660acfa3065de1c7870", size = 225436, upload-time = "2026-10-19T16:56:38.213Z" }, - { url = "https://files.pythonhosted.org/packages/a7/b9/f419506494d6ffd205a9c3258f56ff5aeae6976de26361057de74f4ab659/websockets-17.3-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:2fa79b9a48ae59744316c71a34cb9f76f30c93e117338522c5135cb7eac10351", size = 226325, upload-time = "2026-10-19T16:56:39.606Z" }, - { url = "https://files.pythonhosted.org/packages/28/c5/55a58faa67149e84cb98b33f9d8fda95242677ea07b78f3ecaf2e77877d6/websockets-17.3-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:f87f02afe05c1c246012e3de100a77cfbabd17db709fe93cf074271ab239b312", size = 227342, upload-time = "2026-10-19T16:56:41.041Z" }, - { url = "https://files.pythonhosted.org/packages/35/e0/fbe561dff24b6ef1b2034877f37b56eb9b81b3c103e2a8b03819bf2b3b6d/websockets-17.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:8135a549e27e9941a70e2d2156676ef2ffeff4b06e9d564dbaaae963482afdef", size = 225036, upload-time = "2026-10-19T16:56:42.433Z" }, - { url = "https://files.pythonhosted.org/packages/0d/37/d80753064f8370a24d3bec74807c3928d7b0ebef5381956e2a0108b365c2/websockets-17.3-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:ace8dd1efa5f44c482d091aa38322e20e3ffe5adcdba6b67ad9f4e7da58f3f68", size = 225807, upload-time = "2026-10-19T16:56:43.774Z" }, - { url = "https://files.pythonhosted.org/packages/f1/9d/a11d3168522a2959c4a5661728744d62b9eee344abdba5f9fbc1d359742f/websockets-17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2129c9a5fc05a230ce088745a790af073e582b584badc7b05db067ee326f56d7", size = 226241, upload-time = "2026-10-19T16:56:45.088Z" }, - { url = "https://files.pythonhosted.org/packages/06/28/16107b3b83fd2b5024bfecf8d000140f555204a0191202f9c4c981137810/websockets-17.3-cp314-cp314t-win32.whl", hash = "sha256:af7c474f0d8f4d2a196370e85033873c7b063a0b5da9a4f143aa023e3bd25407", size = 218365, upload-time = "2026-10-19T16:56:46.41Z" }, - { url = "https://files.pythonhosted.org/packages/77/dd/8b00e1dd552788d8c7762d7ef61de8f2f238d7357b1a02d4c4650b112196/websockets-17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:0c63ad657695e8f1a48624754cb6b464118ac50d4c1d477c26461c98390f0a62", size = 218706, upload-time = "2026-10-19T16:56:47.754Z" }, - { url = "https://files.pythonhosted.org/packages/39/eb/5d90d57a5cbe614b2f13433aaf1c0b068c804589379061ba06812a185a89/websockets-17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:3c4f631dc8d00e470cde3ec0a35d4b58a817bea592411956f1cf4099dbb306b3", size = 218622, upload-time = "2026-10-19T16:56:49.07Z" }, - { url = "https://files.pythonhosted.org/packages/6e/41/1efe5ecae1f32495dc75641704f959bd2d8e56cdc825f3acc5e010a51960/websockets-17.3-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:f300f28dff74ff4148c21e6971e4de6ca0c34e0086a3d95c017c5174ebf85ca5", size = 218211, upload-time = "2026-10-19T16:56:50.423Z" }, - { url = "https://files.pythonhosted.org/packages/01/ec/4edb653533241203db3f11522e122338d4fda50a41ce2a542029086f8eda/websockets-17.3-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:32029441af953e980b9940f042b337fe4ad9a97fa8b17a4ed878ec67b5b89ef4", size = 215944, upload-time = "2026-10-19T16:56:51.766Z" }, - { url = "https://files.pythonhosted.org/packages/d5/b9/ec450b9650925dd5cf27c1f36d0464786fe3ac702ed656879c4c0dd5c4df/websockets-17.3-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:09f007b2150eff015b2109f006e2ac2012d376f41486defa88ae78a776b00cff", size = 216164, upload-time = "2026-10-19T16:56:53.125Z" }, - { url = "https://files.pythonhosted.org/packages/15/1e/63f7fbff9f0540a0331f1a62424c9ff24faa6ba8aec264f55e9e31017eea/websockets-17.3-cp315-cp315-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7bdc658c9474864893e0b6b94f1390bf6a912952df1870dd93bb7d1a902b5628", size = 225608, upload-time = "2026-10-19T16:56:54.442Z" }, - { url = "https://files.pythonhosted.org/packages/0c/1b/f6679ad61cb8c110033a1b30d561d5c1052983e202157251ff1778f27932/websockets-17.3-cp315-cp315-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:15decc0fe293d9e3f924bd483f3d76f3d0ff26845112a470e3f8842fec2c82a1", size = 226042, upload-time = "2026-10-19T16:56:55.727Z" }, - { url = "https://files.pythonhosted.org/packages/28/c6/ed993aaef8046cbbb939ae367ee3dd5383dbd055f0500a5b8aed101168b6/websockets-17.3-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:997617dd7856c5dad742bf6893b872319156dd43f47587541a59e4a852d52bbc", size = 227203, upload-time = "2026-10-19T16:56:57.076Z" }, - { url = "https://files.pythonhosted.org/packages/aa/96/7057dc71affe6c8252df8648f5a225642228a6fdd8d046a6b9aa1fb0e9eb/websockets-17.3-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a004c1fe5a72c496f28c6c1d8c2dc5cfe3278d99478e18f8b838c70a912b366f", size = 228900, upload-time = "2026-10-19T16:56:58.633Z" }, - { url = "https://files.pythonhosted.org/packages/43/e3/8b3268bb7e72b465e55172b86d55f58aa277fb6d9bac92aee615345874df/websockets-17.3-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:35fe35d20baa661cef4a12ee7bc42eaf2376d43ef9816ab29dd47ca957f7a73a", size = 227684, upload-time = "2026-10-19T16:56:59.975Z" }, - { url = "https://files.pythonhosted.org/packages/59/15/fa31c0a12240b1225c3712ff080d2f7ede4f695ca90e59fdb58e8affabba/websockets-17.3-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8b3bede7d583bc9f47d8693a29984882e59077db1a5238ad977fc70ae8169741", size = 226580, upload-time = "2026-10-19T16:57:01.371Z" }, - { url = "https://files.pythonhosted.org/packages/22/b5/75d911c206a3035e2ecfad107878e62c06e574b2437fa2cfb4ecef436fa3/websockets-17.3-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dafbb58a149d1ebd5767b3f064f911c5ee0897608005e51c3904b0ada2a8d99c", size = 223967, upload-time = "2026-10-19T16:57:02.839Z" }, - { url = "https://files.pythonhosted.org/packages/0e/f8/f98aa36f611acd5770819f6690125c20d55f221fd6db8d00d284b5f78e89/websockets-17.3-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:80326bc571164bbbb6bead2e35d0c943b23b24fde629032197c58151529d24d8", size = 226689, upload-time = "2026-10-19T16:57:04.458Z" }, - { url = "https://files.pythonhosted.org/packages/1a/36/d52f5dff7597de6fbfc26c3d126abd668137915719aebf97abcc3be77eca/websockets-17.3-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:7d53fc4b90ef6e11de639dc18744d9be8cbd70ccb5ce80027aaffe7b1ab0215a", size = 225353, upload-time = "2026-10-19T16:57:05.857Z" }, - { url = "https://files.pythonhosted.org/packages/d4/10/dcd70ad9f9cd20e8af43284ac250af610e8bf9022da25f5b409153d033b4/websockets-17.3-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:fdd00937f15f5f93c8e53d8060a8c4c010431ab595a9b5b50ddd569a04603944", size = 225879, upload-time = "2026-10-19T16:57:07.249Z" }, - { url = "https://files.pythonhosted.org/packages/70/ab/f26c6bfa99d38ca3d1bf23145306d97c5d0c75e133a8d837373e4b3d4629/websockets-17.3-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:1dae5cd6c92d4440b15f20aa2987baa73c47ea14baa0fec8536a542e82e0ab33", size = 227031, upload-time = "2026-10-19T16:57:08.817Z" }, - { url = "https://files.pythonhosted.org/packages/d7/3f/c8fd74cdb526cc65295b7468f2f84ba16678646d8174288822f99f510274/websockets-17.3-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:b225c656efa2dedecc81651d2290170af25887b7de4f38c5efc7c5ae2b9442ab", size = 224842, upload-time = "2026-10-19T16:57:10.298Z" }, - { url = "https://files.pythonhosted.org/packages/c4/c5/b3a07ce1c54fc0f5441642f5352662b90d7e658c966730eaf6d78a5f20bc/websockets-17.3-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:bd645b5d2f810a181c44f4a71135e7c365b44f4be9ed3d1892635be13a857553", size = 225744, upload-time = "2026-10-19T16:57:11.615Z" }, - { url = "https://files.pythonhosted.org/packages/66/37/8321a8a6ab0215d4df0238e49ace5f539364cf337bb122b85c788e8c93ec/websockets-17.3-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:d2605a3b2af8d66f8b75312d223642c065ec773446c04566d9030ad5e2db13c9", size = 226006, upload-time = "2026-10-19T16:57:13.049Z" }, - { url = "https://files.pythonhosted.org/packages/f8/04/8c457a7e6a260b673bf4e6f2f422eb4af5f11c48505748359706f24f1bef/websockets-17.3-cp315-cp315-win32.whl", hash = "sha256:82e60c00cfb8493a5ba27cdf9b3695fdd153f666f73e11f18968f78ead1d8705", size = 218196, upload-time = "2026-10-19T16:57:14.41Z" }, - { url = "https://files.pythonhosted.org/packages/a0/7c/c2df129d9e344b99bb388bcac54fbbdfeec29e6c716c12dc9a3398757940/websockets-17.3-cp315-cp315-win_amd64.whl", hash = "sha256:4d5f2492cb2192aab2d42e57f2caa2159b4fd20fde06f859ec13354f524b176c", size = 218490, upload-time = "2026-10-19T16:57:16.234Z" }, - { url = "https://files.pythonhosted.org/packages/e6/4f/721b778c85559b2949e46246838e31a346dd815b3cdd8460fe517235675a/websockets-17.3-cp315-cp315-win_arm64.whl", hash = "sha256:55494475206113dbaf731dc8c5ffd5e1094175b753b7bbaad09fe3d7df61165c", size = 218403, upload-time = "2026-10-19T16:57:17.631Z" }, - { url = "https://files.pythonhosted.org/packages/b3/28/241d9ebb4dad79346b5a6abf9f14d7685b12ca358d250eea4920cdb1caf3/websockets-17.3-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:23cb6f6d64e3a389bb8ba150f947f9a6c8c0aca383e814ca3c5cffab738d5646", size = 218523, upload-time = "2026-10-19T16:57:18.978Z" }, - { url = "https://files.pythonhosted.org/packages/b0/bb/559fe539992102c66cbca38b488af6c7b184ab7736d819afc0f72268a2b4/websockets-17.3-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:f27e7e8a85512b6a4b490d5756edde8e6772883a5800e1476172e44eda3f7d7c", size = 216103, upload-time = "2026-10-19T16:57:20.412Z" }, - { url = "https://files.pythonhosted.org/packages/34/ee/e8ade4f13a3d0da68636fe44bb8ac1a3e36fc57070512788320dead42067/websockets-17.3-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:6342f79d6f50e680c8aa59e0615d745e867e51ffd59c77093be60b7c433067af", size = 216316, upload-time = "2026-10-19T16:57:21.761Z" }, - { url = "https://files.pythonhosted.org/packages/4d/06/4812b2a7a5e6571d9be425e76cf54ee69aaa15720caa02307785aa5b19a7/websockets-17.3-cp315-cp315t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:fc23e72bd7f8a8e540fed2244524d0a9aeb6ae3325f3d56f04a7a3debe5b04c2", size = 226467, upload-time = "2026-10-19T16:57:23.077Z" }, - { url = "https://files.pythonhosted.org/packages/d3/e8/adfc05d7f9b6b0cce6cc554426c50b7058609119b6b84a39171fe5ed4e50/websockets-17.3-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:722ab747ff5dc28070b1a8c020dba6466f13f2ab56bc251ad301fefa2454aa1e", size = 226736, upload-time = "2026-10-19T16:57:24.419Z" }, - { url = "https://files.pythonhosted.org/packages/96/b2/d5b93dd933552554507edae9e3a4890269a8ea8b46019450ea9c8a30e7cc/websockets-17.3-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0d20d6ea5aabbeba2e054d33e405192ef75dc12947bbd00ec97d23b14969d325", size = 228065, upload-time = "2026-10-19T16:57:25.908Z" }, - { url = "https://files.pythonhosted.org/packages/10/37/642f0f1cf1c4814147a4f0586f796a0b38e42b69e5a296bfc270fb660051/websockets-17.3-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:90cc9973c51811918247a78d9ab2f54871296e4e37e69a98aba4d3c9acedbf62", size = 229692, upload-time = "2026-10-19T16:57:27.63Z" }, - { url = "https://files.pythonhosted.org/packages/5b/33/eac81cf62ac394b61db6a27ccbe8fb9ae382016ef73ede1edf9242a6a43e/websockets-17.3-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:63b87c93e28957e6dc2bb92d31727a863c9bf4a4daa080f0995fdcb0242c9166", size = 228503, upload-time = "2026-10-19T16:57:29.031Z" }, - { url = "https://files.pythonhosted.org/packages/0d/84/e057788a9bd056f4f7d3a06b59efaaf724bbc6f2d1e1d316f8a93c951abc/websockets-17.3-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4f7431e71072962d3ed1768038200aa4f1e76d9c2d7bedd554d57a55faaf6644", size = 227379, upload-time = "2026-10-19T16:57:30.571Z" }, - { url = "https://files.pythonhosted.org/packages/fa/a7/cca1f9f45b893bb5b7545f2b234f910e07fcd2f8065724ac1a62a0961be2/websockets-17.3-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:534ed583fd4323de45d196535a444cebd1af2105e6e4e0cdcbf8cea266a8747a", size = 224719, upload-time = "2026-10-19T16:57:31.895Z" }, - { url = "https://files.pythonhosted.org/packages/1f/a0/5d07451027150c802ce4c9999e86994a3f0de5f4dbe3d1cce46995999269/websockets-17.3-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:8879b6a4040ee925c638548238ab7fe612cf5fa8752fe847346da0da8be81c3f", size = 227564, upload-time = "2026-10-19T16:57:33.236Z" }, - { url = "https://files.pythonhosted.org/packages/62/90/835f37e13fac0c615a700caae0d39deff1de2d2b9b341836a786f9b359e0/websockets-17.3-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:58e5d1e935a90878a935c7d2737a25c71cf4f1c13b6e6bef454ab722c4f338bb", size = 226218, upload-time = "2026-10-19T16:57:34.876Z" }, - { url = "https://files.pythonhosted.org/packages/16/8a/718639939b947fe715501e8073350fd3f8a42f8b5eba3c0c2389c5836513/websockets-17.3-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:0a657b51e4a5f4ac577c11e706ff9a884ea5aaf3e2666bae283a251c63e66acb", size = 226712, upload-time = "2026-10-19T16:57:36.248Z" }, - { url = "https://files.pythonhosted.org/packages/e8/45/6bef8572b9b0dee51369b69776af1e4c7cc3a807f199dc3c165bbcf1199a/websockets-17.3-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:411aa0fb234f42a1444dea1e177890ddfc577b36ffdfafec25cb0d2c818e1af8", size = 227819, upload-time = "2026-10-19T16:57:37.586Z" }, - { url = "https://files.pythonhosted.org/packages/f1/3f/3b726d0b46a132e641d2d8c0243ea8a7d39464dbaf28c7a206e51fbae681/websockets-17.3-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:623d4b44f64efdf235b1e8dce266057073d93cde6197e7d7684f20c297f67f30", size = 225573, upload-time = "2026-10-19T16:57:39.285Z" }, - { url = "https://files.pythonhosted.org/packages/90/96/cd972a12e1412d9b42c42ef42efbd81aa396ca9408d982d524012f011a8d/websockets-17.3-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:5d0c871efc696ef5eb8514df64b86ab28736db753ebb42a2101f3b562f4849c0", size = 226430, upload-time = "2026-10-19T16:57:40.915Z" }, - { url = "https://files.pythonhosted.org/packages/7d/2d/e11524771588188a39f6da234779d4942496b96c5a10b92f3df30db48608/websockets-17.3-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:1db2604e6aedb7a2cb2f6e0575d6c9a852ccac8239703a930ac83b63309177a5", size = 226728, upload-time = "2026-10-19T16:57:42.245Z" }, - { url = "https://files.pythonhosted.org/packages/17/9b/63722aed973f53ea579e1ce0c4563a2b8b536629e556feff26e4c6a2a60d/websockets-17.3-cp315-cp315t-win32.whl", hash = "sha256:07246d4f0293ef0b87eff3d7dd88c1f03dd9f678fa39f6de87b2af8504e7e0de", size = 218325, upload-time = "2026-10-19T16:57:43.585Z" }, - { url = "https://files.pythonhosted.org/packages/34/07/5e0c92e225546f1789c957c0383852797be7c899b07207e9b6eb4a93473f/websockets-17.3-cp315-cp315t-win_amd64.whl", hash = "sha256:856bbb24f2ee6436af7609267e73309e4bb0a0f9982f79f1c2e01019279c6671", size = 218641, upload-time = "2026-10-19T16:57:44.918Z" }, - { url = "https://files.pythonhosted.org/packages/d4/e4/339663de65c44ab3eb5209890e86eed26e1a131d6afab3df6f1c3e5b4d8c/websockets-17.3-cp315-cp315t-win_arm64.whl", hash = "sha256:a22c4956a4d858200dba83f0691bb692d77b0eeddfca80157820d20b85dea4f1", size = 218564, upload-time = "2026-10-19T16:57:46.332Z" }, - { url = "https://files.pythonhosted.org/packages/e1/f1/b462b1518779adf0b6fce305beee07357a79cf0724bbe61113ed6521882e/websockets-17.3-pp311-pypy311_pp80-macosx_10_15_x86_64.whl", hash = "sha256:34c78052277053bcb09810ac8e9ba4029f9e3e277833fc18ec1c928a6246ac91", size = 215839, upload-time = "2026-10-19T16:57:47.742Z" }, - { url = "https://files.pythonhosted.org/packages/a9/59/7dcea408892967516cc00d491ee7bba48577059c6eb0811f436b720bcd98/websockets-17.3-pp311-pypy311_pp80-macosx_11_0_arm64.whl", hash = "sha256:ef07e0b6b879f699a16fc7a513b974246fdeaef44908a021130cf4afe6a1c89c", size = 216114, upload-time = "2026-10-19T16:57:49.111Z" }, - { url = "https://files.pythonhosted.org/packages/c6/b7/2d447e461f1160dc8dcdd8b143e2adba54d402e5f828eeb1f8469970c937/websockets-17.3-pp311-pypy311_pp80-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:99c5637b74e2805ee4de9e2a43c8b45f678e50abb1c2da9880f0372f6498ba2f", size = 217065, upload-time = "2026-10-19T16:57:50.424Z" }, - { url = "https://files.pythonhosted.org/packages/01/51/35aa5edd12b23e0001b85517ad447342c07a29fcee62009b0859825b77a7/websockets-17.3-pp311-pypy311_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c460aeb12c2bd1c204944d9e9199595bf9e505eb542018d304bf9e63cb60cad", size = 216952, upload-time = "2026-10-19T16:57:51.72Z" }, - { url = "https://files.pythonhosted.org/packages/6c/db/537306b92236d761b99dc56a7316c0ad46f2854cd0756585b3a9d3fe5639/websockets-17.3-pp311-pypy311_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e1c174b366565e101f903f9d1cc96d5508f805759dd37d012743f1c73ec0d7b", size = 217844, upload-time = "2026-10-19T16:57:53.144Z" }, - { url = "https://files.pythonhosted.org/packages/e0/c2/494bed87536f3822872e57b07ac9afa744af88ff64dda664b9caa32b1a72/websockets-17.3-pp311-pypy311_pp80-win_amd64.whl", hash = "sha256:c4b3f2c7d84f303da873b634d0beef83b5e1137294c3de4e23102841dac0cf4a", size = 306274, upload-time = "2026-10-19T16:57:54.525Z" }, - { url = "https://files.pythonhosted.org/packages/5a/1a/5582103e0362f86c4725051ded89e585ceaf750f26beace530b7e42c81c0/websockets-17.3-pp312-pypy312_pp80-macosx_10_15_x86_64.whl", hash = "sha256:0e65260a1b1d7b81651f47343d836de70b88b02358ae3658efa6382104ec37b1", size = 215872, upload-time = "2026-10-19T16:57:55.95Z" }, - { url = "https://files.pythonhosted.org/packages/ef/a7/f69d65ed3ff9ae73d428a918300c23a992e4d50683090b8dc33cc3341d5a/websockets-17.3-pp312-pypy312_pp80-macosx_11_0_arm64.whl", hash = "sha256:94c02b0702656f083c098bdbd93bce22a7aa7a2b34ba56d2472efb67dab7cf58", size = 216136, upload-time = "2026-10-19T16:57:57.251Z" }, - { url = "https://files.pythonhosted.org/packages/69/76/c64fda4ac18a3aeb32e66acec481011a766add480b6362fad80e2c3c1963/websockets-17.3-pp312-pypy312_pp80-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ade76f8c84ade325bbed96806357fffd353fcc29a5166d6dc6d39381f6d9f76c", size = 217080, upload-time = "2026-10-19T16:57:58.593Z" }, - { url = "https://files.pythonhosted.org/packages/6b/6d/085a3f0e6152bbe79917973f3d33cd008437de6c04675e2f15253b921f21/websockets-17.3-pp312-pypy312_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9a215749c9a88ef2842e880215193e56ae60b856773c99702b078236bc6d4adb", size = 216966, upload-time = "2026-10-19T16:57:59.924Z" }, - { url = "https://files.pythonhosted.org/packages/ed/b8/7eb904583ea2090b329f50487e6f8dc58eb558712b9f3c16f289f0be668e/websockets-17.3-pp312-pypy312_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e7b5d23ef144b32645d97bd99f382c4394c443395f45fe1576786838d26e308", size = 217828, upload-time = "2026-10-19T16:58:01.822Z" }, - { url = "https://files.pythonhosted.org/packages/79/36/f54b4a1cd9456ca0a65a76d77d181621433793aca633dfeed214748ff4f0/websockets-17.3-pp312-pypy312_pp80-win_amd64.whl", hash = "sha256:13eace1b315345ebac5b27821f5dcce24e5cf9976ab18f79e00a59bdd67e5d19", size = 306301, upload-time = "2026-10-19T16:58:03.161Z" }, - { url = "https://files.pythonhosted.org/packages/d7/b0/3f01fcb3406662f6deb1e3e72b34dd0979e993991c0b7435a9e12bc14f02/websockets-17.3-py3-none-any.whl", hash = "sha256:dc2b495a92b3971966bf102e73589f950db3ec1ca6713265355ce7771d97b199", size = 212375, upload-time = "2026-10-19T16:58:04.483Z" }, +version = "17.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/75/79/590c5f0cc7d1661195aeefccb0e342b79f4c77d368d526d028821a390332/websockets-17.4.tar.gz", hash = "sha256:09d3939b70df0c8ad2da145ebd50978bccaee1d565e838b0e7921a34d38571eb", size = 191391, upload-time = "2026-10-30T15:10:35.873Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/d8/2d4ec550208432538d152a41f0c36dc6728cfae0050c6b1442605456d3bd/websockets-17.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:06ea46717553cdd10f2682126cf7a66e91c8ed17b6969f4a95e94b4e01d06188", size = 218746, upload-time = "2026-10-30T15:06:39.361Z" }, + { url = "https://files.pythonhosted.org/packages/56/99/3090fc0e2e343cc7ee60d532b67a2d413830c8fbb0be9ec3bcfbe3371f2e/websockets-17.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75b32cf33ea40f945f226f97bc1d43151e1a5adff21f420b5e63c468b1a28114", size = 216437, upload-time = "2026-10-30T15:06:41.324Z" }, + { url = "https://files.pythonhosted.org/packages/3c/e9/3d4fb98e5d8aecc7bdbc59c4edf6380fdeddf935445e7f4a205466682991/websockets-17.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b8451f31ae24620cc9372acd2728d87922f2bb0cae3fa57aed68b152844cdf08", size = 216709, upload-time = "2026-10-30T15:06:42.995Z" }, + { url = "https://files.pythonhosted.org/packages/0c/4d/5c7d4f53cc0d7c6f268bbd93865b185e05f65f37f84712a41ab311118f8f/websockets-17.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3b76837cd051d8875913f3934b27205f7a592f78b8a4f4a1f3abc36a2420c5bc", size = 225773, upload-time = "2026-10-30T15:06:44.607Z" }, + { url = "https://files.pythonhosted.org/packages/57/70/80f870701f8610e88649d3cd173a0e7ce66433913da3683035a4370063ad/websockets-17.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cebad8f4796248b91fc2168515e507e5cb6b663a32befd09f3b1e7920acdcb1a", size = 226041, upload-time = "2026-10-30T15:06:46.224Z" }, + { url = "https://files.pythonhosted.org/packages/a2/bc/f2e84b5a933c86d52184814d38b0f9d51fc90fd3205cb7af0d9417ebbff2/websockets-17.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:954d43574f72be244b65f0fa61e2f814214b024f2ec849f487aa2f553f7c6e71", size = 227279, upload-time = "2026-10-30T15:06:47.619Z" }, + { url = "https://files.pythonhosted.org/packages/34/7e/4710475f46afbfe5390b4139556aa4fa0692d3d31878a25a1b26e8a6d78a/websockets-17.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b529ad6c81ad21db2f4e3d6e33db78ce3b9f272066b438b5d673361f9282898d", size = 230592, upload-time = "2026-10-30T15:06:49.357Z" }, + { url = "https://files.pythonhosted.org/packages/bd/10/cca6dc2316dd8c3b1a62fbf7f8986926ad8c4b2ae3d3be7888059a96b142/websockets-17.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:799c5a23126c9589cb10b6c6b54f9087246940dad20cd74bf3f06fc9ae3bbab5", size = 227837, upload-time = "2026-10-30T15:06:51.015Z" }, + { url = "https://files.pythonhosted.org/packages/68/21/ac1c3d7781d756bd40fbe501890b54a0205b1f0528a559fdcabcede0bd54/websockets-17.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f01a680d4b66fd15cc7513fae55c673cc8cc340d41340305b7f9a782abdbefed", size = 226613, upload-time = "2026-10-30T15:06:52.556Z" }, + { url = "https://files.pythonhosted.org/packages/b8/a0/bd122578f2765fb3714eeef80bd66074e355ff80e0a6de7fefa10de5f36a/websockets-17.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0e51546a3bedadd80dfa5c2efaed840ac51b8632d8db7f9f502175f5349382a9", size = 223893, upload-time = "2026-10-30T15:06:54.106Z" }, + { url = "https://files.pythonhosted.org/packages/51/50/a5214db6b778995b7fe1bfaab6228ba967cb6fd523d4b7af83154aa0ac66/websockets-17.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6686d29eaafddeeab9e48af92103dc0d26161035faa4be083b8b488f1ab47219", size = 226768, upload-time = "2026-10-30T15:06:55.889Z" }, + { url = "https://files.pythonhosted.org/packages/fb/41/5d62d4889ff8a400cf32c8ad35e58b18e92b0e936db0bae785307cd1b105/websockets-17.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:7b23db4b469d9e051ac74d96db9bf61e27c9054de64f8263fefa32bf72867ba1", size = 225358, upload-time = "2026-10-30T15:06:57.706Z" }, + { url = "https://files.pythonhosted.org/packages/b4/94/c344744fad06ae721a6ec69f728a3dd4bd1b94beb7bb64400a8cd0efc644/websockets-17.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0132e3cbd3f5cfc1ec77588961b302d72a02e2603b82c2c23fd5fb59dc4fa206", size = 226125, upload-time = "2026-10-30T15:06:59.125Z" }, + { url = "https://files.pythonhosted.org/packages/0d/00/90d66792bf1ce315fabe18f838eb2090ebad3425139047ed4c4ad354a90c/websockets-17.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:98f16db5e79f2605194c0f899d0532005bb12269e698bf96f62a5635bcf33010", size = 227169, upload-time = "2026-10-30T15:07:00.687Z" }, + { url = "https://files.pythonhosted.org/packages/24/7f/c069129b20504c35bd22abb276a6562e92dccb69c974ca93021a23fb00ce/websockets-17.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:ee48728a07566c32e097d267f4d4d01b85123c9ae748a42da02185b908cbedc4", size = 224750, upload-time = "2026-10-30T15:07:02.077Z" }, + { url = "https://files.pythonhosted.org/packages/4e/3a/0fcb37d6da690aa2512faadb0e9cb5e1043fff659fd415dc8b518883789e/websockets-17.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2103982762460a764a7ef0021443bb471f46d45ecc6858276e4fe699ebac6b94", size = 225782, upload-time = "2026-10-30T15:07:03.783Z" }, + { url = "https://files.pythonhosted.org/packages/49/61/422745448862b18b8d373347bb73debcd440330f21dd899feac5f920d531/websockets-17.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:648adde345cfd13335342e23cfe94871c7f7f55a43fb254f3b95acb071072968", size = 226021, upload-time = "2026-10-30T15:07:05.237Z" }, + { url = "https://files.pythonhosted.org/packages/96/74/3ea38c6758b497a5d1b7bd953542e9e6446b84aa075a061e9a47e24ceb75/websockets-17.4-cp311-cp311-win32.whl", hash = "sha256:679eef0123861ca381dd8fd9bdc1920e87636ac55eae6cff875c53dcb05fbcf8", size = 219255, upload-time = "2026-10-30T15:07:06.871Z" }, + { url = "https://files.pythonhosted.org/packages/55/66/00ca8b75a634c9fcf70579f9a242b96a7f7a3abeb21a02e2380fff491d2c/websockets-17.4-cp311-cp311-win_amd64.whl", hash = "sha256:e4beaef2f4796558e738e15ca0b8802e35f419a9fa374a978e41706f43c48b26", size = 219556, upload-time = "2026-10-30T15:07:08.538Z" }, + { url = "https://files.pythonhosted.org/packages/4b/7b/c8ccb313439f4803779f186b8133563e6c49c023467a265ae52da7b7e25d/websockets-17.4-cp311-cp311-win_arm64.whl", hash = "sha256:ddab54dc0ec46ed09ef9ac131252cb5740ed21fbe6fc145f3c6fed0b575a8f15", size = 219487, upload-time = "2026-10-30T15:07:09.94Z" }, + { url = "https://files.pythonhosted.org/packages/af/71/b020221345ea6c012dcf7496827a48a744b58696470b2b07fef95a32905a/websockets-17.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3d512e3a6c528c42ce220ed9c3caff83c6fdcd98a1b98249f08ccfc66ad111b1", size = 218779, upload-time = "2026-10-30T15:07:11.522Z" }, + { url = "https://files.pythonhosted.org/packages/8e/84/1c372ae7c032021a84e5c9e9b76b0dddefb354e9b4af783a97efd4d80ab3/websockets-17.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7390e060f830b3d132f484b21ac2783a2d227b682ef62bb8146e1c1b4ca0e45a", size = 216457, upload-time = "2026-10-30T15:07:13Z" }, + { url = "https://files.pythonhosted.org/packages/74/b6/cff249107473f149c6c916a49cba967379fa63b0a7d2dce6896d6848f0a3/websockets-17.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bcad49104711f88b2b7c3ba166de172857d837248205e541b044a552558fecc3", size = 216726, upload-time = "2026-10-30T15:07:14.468Z" }, + { url = "https://files.pythonhosted.org/packages/77/5d/aff8ecbf1c55c4d96f6dacc46a52102895f58b85bb284c8d325aaf31606a/websockets-17.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cf99debb17227a50620aee16647bb33a0387f5fa5418d628666c0f05745e0d2a", size = 226043, upload-time = "2026-10-30T15:07:15.937Z" }, + { url = "https://files.pythonhosted.org/packages/cb/18/6229d6583031ca81d092a0cd887a13a57b402fb555acc323d39b45967eb7/websockets-17.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9ae1429ee9e52b139167ed0169757806a27ed7307e942e8c62037a9184e9843b", size = 226321, upload-time = "2026-10-30T15:07:17.563Z" }, + { url = "https://files.pythonhosted.org/packages/b8/61/7aba018fd53873e792a25afe1f4c005518133477b727d7455f2f7550c425/websockets-17.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51adfc30f467077293a6695d8149bcef501c0728386f3a491054f835dadb60b2", size = 227559, upload-time = "2026-10-30T15:07:18.998Z" }, + { url = "https://files.pythonhosted.org/packages/fb/66/37b207df9cdacaa017aa4487f3a9f2fcd668f6f7cfbafdac5b95ea258ee0/websockets-17.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c564d1e6531611bf87078c28780456ecc75459dcca189629fff2fe7c020d8e67", size = 230386, upload-time = "2026-10-30T15:07:20.431Z" }, + { url = "https://files.pythonhosted.org/packages/ad/f6/87507e11fbae53817a435945273953b5b020589e309fac4fd60527ee5999/websockets-17.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4c792e6cce24d08f92199d907785c9e64f74c357deeed3dbaf7d699ed5930b64", size = 228193, upload-time = "2026-10-30T15:07:22.112Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3d/90a04f0aa989b68fbd2efcd38237420afe2abe5a1cab0b5d7c2aa4f0dbb6/websockets-17.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c44776f82b04e623eb9e1b81fcd17ac6e9808ae1ba5cdf8edce1f7c869a95a9b", size = 226952, upload-time = "2026-10-30T15:07:23.643Z" }, + { url = "https://files.pythonhosted.org/packages/ad/3e/50952af22b8e3e2d03f7e83f0e335851c6b484c3fd88586626fb1c2a34b3/websockets-17.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4d2636a5b61c69e32db0e74b57073dd4a66f1ad195e9398c5f01bba41090deea", size = 224183, upload-time = "2026-10-30T15:07:25.507Z" }, + { url = "https://files.pythonhosted.org/packages/c4/73/2a4a5d9c6bca1127f24af7bf08f406a69052d7f341bc81f08d9e8eb446b4/websockets-17.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cfbbba4597f19ad717f79fd3f2a67ae7efae647bd6a61e14554e1b5ad242a5bf", size = 226991, upload-time = "2026-10-30T15:07:27.355Z" }, + { url = "https://files.pythonhosted.org/packages/68/de/90d96a579839bfe541ef214315df81d2bd519d952847c303328518ffdd02/websockets-17.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c7b996c02de5e032cb63dc65482b73693b7ecaa586654126be2749ddea239c40", size = 225600, upload-time = "2026-10-30T15:07:28.973Z" }, + { url = "https://files.pythonhosted.org/packages/91/17/12c15ed446d842e40918cd16e79b56ee4422d6fbf210258cb8882f50bbd5/websockets-17.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a920e99155d75d1b1c08172da8aaa7200e7b30871fb628d1631d7891a333e30e", size = 226366, upload-time = "2026-10-30T15:07:30.472Z" }, + { url = "https://files.pythonhosted.org/packages/9d/73/cb4c927e806a73a0377696e031ef3c0db409028cdb2373f96ee863e8df8e/websockets-17.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8c00c5c49f80a588a2c4f99d519d2abed4ce26cdca11273041bc8b7e60af60de", size = 227470, upload-time = "2026-10-30T15:07:32.122Z" }, + { url = "https://files.pythonhosted.org/packages/33/b3/e682b3ea069933044f4bf4809eea0cd83e3a5bdbdff601d1777a9ae90795/websockets-17.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:52c31d123f5adf14dec694c2a4036bf42c523df7cefc641d31cd05653de56e49", size = 225026, upload-time = "2026-10-30T15:07:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/2d/e9/d039757260705e5a265a31c9fff36b0d4567b842ce2b54e5d14369f200bd/websockets-17.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d0acd8191c0e5a61d1c27bfa33b6ec8431982299f5d71c02129aa4f16f182ad0", size = 226007, upload-time = "2026-10-30T15:07:34.954Z" }, + { url = "https://files.pythonhosted.org/packages/db/e7/cb9907fac6f9b28f93beded6efda2953960cd02b633d432acf3451590859/websockets-17.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2a9cb5bbfc33b4ebd3c8d3714d6e09805437f60a14977774e4bd11b5ace46c23", size = 226286, upload-time = "2026-10-30T15:07:36.292Z" }, + { url = "https://files.pythonhosted.org/packages/39/99/85f6f4dd104a5d9a33a1ef272f501d0f2e8527ddf66be1b383d51f90ce56/websockets-17.4-cp312-cp312-win32.whl", hash = "sha256:c63c0d7832956d5f3bb77888b93c854569d13f806289ff75c43926d25c6e5fd2", size = 219256, upload-time = "2026-10-30T15:07:37.686Z" }, + { url = "https://files.pythonhosted.org/packages/59/31/d1636ba67ee9232a60033d90483e48686aa3856014e59110f29015f97bd2/websockets-17.4-cp312-cp312-win_amd64.whl", hash = "sha256:dde9cd67f18803949ebf96de8aba12b8ec5ee3115e34c75a2db85a3b0a6c20d5", size = 219561, upload-time = "2026-10-30T15:07:39.19Z" }, + { url = "https://files.pythonhosted.org/packages/23/aa/e3859d52188f041a5a05c9f3ac005a9c829723f521f0fe60e2c5f9c93bb9/websockets-17.4-cp312-cp312-win_arm64.whl", hash = "sha256:c634053459278cf31fb404ddb5ecd38124e4609e8b609166da621edc2d5796db", size = 219487, upload-time = "2026-10-30T15:07:41.161Z" }, + { url = "https://files.pythonhosted.org/packages/cd/58/eaf27fce59e3f5b9997cd7c77749ef214e077daeffac95479be6ff9f5cfa/websockets-17.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f24bed98595b9d854da8d6debaf82754abf3e8fe63ec90505ef560566814df7e", size = 218769, upload-time = "2026-10-30T15:07:42.558Z" }, + { url = "https://files.pythonhosted.org/packages/13/8e/287eca6d399a953253492189153976676994dfba1b7e82f0f992d14c1404/websockets-17.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:156221ad7638b5abccefd6f798916bf3f8ffd6ac51480eb4ba5b05df914ccbf3", size = 216454, upload-time = "2026-10-30T15:07:43.874Z" }, + { url = "https://files.pythonhosted.org/packages/b3/65/098fd4d221d691395492fcba88c895dde19a51d371b06b8d0be71d3f781b/websockets-17.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:74e46409666c358b93fce0d8c6f4cb107d8dd7cba1302a38d49adf6fa8193c7e", size = 216715, upload-time = "2026-10-30T15:07:45.409Z" }, + { url = "https://files.pythonhosted.org/packages/e9/29/9f9833bc83c1bf2e5597d1ef374d3ccd6467b9b45400cff399c85331ef6c/websockets-17.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e3e80cad85ba68c07c1e8d4ccc9cf51e63bf6a73d6bf631640be947bd72b6b63", size = 226096, upload-time = "2026-10-30T15:07:46.929Z" }, + { url = "https://files.pythonhosted.org/packages/ef/75/6a95f93661bba2f1a4ec82eb26c6d30e6ba253569ecabb7a675139db6051/websockets-17.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:25eb661d8ba7e2b85ebb4e7a1bb9f6a3280910ed10b84330a7abfb5ed32d2764", size = 226382, upload-time = "2026-10-30T15:07:48.332Z" }, + { url = "https://files.pythonhosted.org/packages/80/b0/b0d9427dde0609e2727a9a966fb5fc5c6ef6aa7eba4cfc98791f8b7f1b75/websockets-17.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c74954409ea5789f7a60daa5f94580c00ad0b60b20751c47b35c4784877b5057", size = 227617, upload-time = "2026-10-30T15:07:49.799Z" }, + { url = "https://files.pythonhosted.org/packages/3b/00/fb1016d850d61676d1732434e2361d116c1de369078e59d21f4713115a19/websockets-17.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:47beedf07a706140b50786457e082497ee6b5970c41e49bcd1572ee3f4c73f80", size = 229054, upload-time = "2026-10-30T15:07:51.258Z" }, + { url = "https://files.pythonhosted.org/packages/77/c4/bb666e196541e42237fdb625303ad099005cc835c4e2e0a5d97bb9c4185c/websockets-17.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e282f35ece8895b9fa5af406fc6a4cb42f01e1009525cf46641de584781c83b", size = 228243, upload-time = "2026-10-30T15:07:52.975Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f1/32ae0f45d8464e1606ef3f6a54318d8754b27889de18bb1b2176a19bea39/websockets-17.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:361f9a21a33191d5287e7a75f508fc3b9bf47aaffb0241198d6b7be3384f294e", size = 226995, upload-time = "2026-10-30T15:07:54.574Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9f/5680151ef10e0bfb6f3bf09a992ce6c3e93bbb84fc8ec5d03ad570ac6532/websockets-17.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4073ab7cefe5a2e7dc368c1f01eb27716dc8ea8f1c69e9b7725ebce05aa53cf7", size = 224244, upload-time = "2026-10-30T15:07:56.158Z" }, + { url = "https://files.pythonhosted.org/packages/e2/66/409117b6882b91960598d62b95fac33d70a7aa2e1e1e854c6b64e76712f6/websockets-17.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a50bd9b44dd9b7b845802030b4d88610c01c7f95571b4cbd3a1aeec17a34c9fd", size = 227058, upload-time = "2026-10-30T15:07:57.539Z" }, + { url = "https://files.pythonhosted.org/packages/35/e6/34cab5913bea9d011ae2592a7672340179ff14fb98e889e5e41b071d8134/websockets-17.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ad2e9e152bec6c4f7e4cdb4adcea6b708400090eec04bfe5ee5b30d368ffd721", size = 225654, upload-time = "2026-10-30T15:07:59.044Z" }, + { url = "https://files.pythonhosted.org/packages/a6/b0/6cfe18e12f23618a3d69723c828037c1282fee7ffce006ae7b5cc0e58ca4/websockets-17.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5830f94a7190a33e55d06d89242ea951ee2009c3a27fc31538f3ac9386b27edd", size = 226425, upload-time = "2026-10-30T15:08:00.492Z" }, + { url = "https://files.pythonhosted.org/packages/c9/71/14d31ea34bafc07c6d96b362a44b301b9a0f2fb260490a8a6cb7db682bc4/websockets-17.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c0cc2cb47face4dae64bd70a9268dbebddb3e48c1b48cf6d7b6ac1471609fd88", size = 227532, upload-time = "2026-10-30T15:08:01.932Z" }, + { url = "https://files.pythonhosted.org/packages/28/69/df3398ca1320a8b76e57ee41053d5c09955383cf60888ffa5771f51a4cc8/websockets-17.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:d0b6a9bd86f865ebc9d847a1eb0a655a0e2b447cbcde743dda97c4298415cc0b", size = 225090, upload-time = "2026-10-30T15:08:03.328Z" }, + { url = "https://files.pythonhosted.org/packages/d6/94/06afe778cf9893e9ac10209c0d4c70aaf0b72289245a8b7efb92cc80927c/websockets-17.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7a7e9321822ca59ba56fa8744c3e3f01ef74d547aafe0d383d000d7a4d11eb79", size = 226041, upload-time = "2026-10-30T15:08:04.714Z" }, + { url = "https://files.pythonhosted.org/packages/c6/7a/28e9822dbf0bc63341dc45d8d5f1f1f7f375991fc8895bc731105fbde371/websockets-17.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:de29795f23833cdfb68ba45c8a5cc0ec49778ea5deb670188f4465bba5930d25", size = 226323, upload-time = "2026-10-30T15:08:06.103Z" }, + { url = "https://files.pythonhosted.org/packages/5a/d8/606c9c404e82731e4520f6397c8c16549e9cbd39ac583e7ea7d8972a6ae7/websockets-17.4-cp313-cp313-win32.whl", hash = "sha256:37ed7782972545e67d97ef9a172e9499d25459b1e32cb99d1c2a30c572f2441b", size = 219248, upload-time = "2026-10-30T15:08:07.617Z" }, + { url = "https://files.pythonhosted.org/packages/60/a1/17e507dadbfccb755758ba977b165fec92924dfc4a8d2573b4fc1561b0cd/websockets-17.4-cp313-cp313-win_amd64.whl", hash = "sha256:203e42eb77e06f85778a908b34c5ad032f34e98a68ef33920d6685c1e65a9420", size = 219560, upload-time = "2026-10-30T15:08:09.108Z" }, + { url = "https://files.pythonhosted.org/packages/01/ba/4f51fe8db73889ea3ecfdeee283d4ac3b7ad7a609c0e4c1fc6de04078021/websockets-17.4-cp313-cp313-win_arm64.whl", hash = "sha256:d8255971f6789cf0cb365e3e22b9b166eba978548a26241eaa5b7af0440d885a", size = 219496, upload-time = "2026-10-30T15:08:10.574Z" }, + { url = "https://files.pythonhosted.org/packages/1f/5b/085530961668661300de7248f9bf3ba84e98f47875f0fcc87637d024f82b/websockets-17.4-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:d0f943b53bb1d7389d72a5380078670e5fcc34a1328142148b72d20fd82031c7", size = 218810, upload-time = "2026-10-30T15:08:12.14Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fb/5a29e9569f74988822b7bc076287dd7f9f5b68a2070cf5eb4cfada5863d8/websockets-17.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2fd562372d4afaf18d1c7f1c68e39bd32818bb16d5f57f778a4a4ed88eedcaae", size = 216506, upload-time = "2026-10-30T15:08:13.561Z" }, + { url = "https://files.pythonhosted.org/packages/df/73/eb8544367c13cd87df39d41b74853741fb7182e2a4bb659ad7d36f9066c8/websockets-17.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a0457561e8a87a6a3b509e21c35084d7d207ced262139de3f738e9676a476bbd", size = 216719, upload-time = "2026-10-30T15:08:15.08Z" }, + { url = "https://files.pythonhosted.org/packages/24/fe/c3707e426d9bd779dfad9f319b2b431e5e60d563d7547d3780cbd1646028/websockets-17.4-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7b4ee34acefa9ba1333f02b817982f1e4127f6f9b975017a707c4e738d7f9fb9", size = 226098, upload-time = "2026-10-30T15:08:16.581Z" }, + { url = "https://files.pythonhosted.org/packages/c1/24/d203439f909ffbf37260ca28a3432381412d2e79912ebf98be572e63055e/websockets-17.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ef03fb4b3685df0ed9dc6a074a090f030345cad2c23c61818da3e08e693a9caa", size = 226449, upload-time = "2026-10-30T15:08:18.29Z" }, + { url = "https://files.pythonhosted.org/packages/4b/17/3ae5d9486a170a222dd0437b4f2bc02ecf324177498a942dcac200e65d05/websockets-17.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5e970d3996c597186c9dbb6e77a8048737a834ac03cb13186a54999e0e1c31e", size = 227695, upload-time = "2026-10-30T15:08:19.692Z" }, + { url = "https://files.pythonhosted.org/packages/34/37/1307a8e30a961726f2350982fc01b0b3498db29b030c78c566e65ba64487/websockets-17.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6afc32a7a1a40b071070419537df3559d26907086556769683fa97b7b6e90fd5", size = 229069, upload-time = "2026-10-30T15:08:21.682Z" }, + { url = "https://files.pythonhosted.org/packages/9c/bd/4c6167744e202d20a3c770bcde8fae5d427317b1885712c2e02718cd8133/websockets-17.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5da7f7f1ecf866186f195f7ecc374c915e1838496b86f2f3b41da27c798a25c3", size = 228296, upload-time = "2026-10-30T15:08:23.371Z" }, + { url = "https://files.pythonhosted.org/packages/14/b3/3438eee41b39afb44c3c6e45dd686b88a7f8d742b96877b77de4fe0e0255/websockets-17.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:043945a43873c7c11a3f75238d475c95f902e967de329eb8763704546cfaa6b6", size = 227045, upload-time = "2026-10-30T15:08:24.749Z" }, + { url = "https://files.pythonhosted.org/packages/46/39/0bac9052d402efaad1b202ff2f1a57b6334aa624d20f509312765601b507/websockets-17.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:927d602fb8fb595a69e6b1ae998a6ec19851d0fb9391759456e6425090996647", size = 224297, upload-time = "2026-10-30T15:08:26.275Z" }, + { url = "https://files.pythonhosted.org/packages/a1/7f/5809f6ba5a7d1065301800daf605bdb661a9db5ef868ed189dbf691122ac/websockets-17.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:769e4f7b090e10cae4c082e3e39b9458ec2444505df84953c16c0468b16539c4", size = 227169, upload-time = "2026-10-30T15:08:27.703Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f7/c8f6771e7cc2a038cf78bb12d04d29dbbbabf2a84d76999bcc94532f3020/websockets-17.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:03ddf4eb76ced8725dcbb000ff60b0fb8d7330ed011f6dc725a1925c5fe02051", size = 225632, upload-time = "2026-10-30T15:08:29.441Z" }, + { url = "https://files.pythonhosted.org/packages/2c/2f/9104786d952978ca2d011321109e35c05be24c3937ef2a62b4d6e25f7515/websockets-17.4-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:94622cf24e80d03054ceb69a06a86c950e12fe993ed06b933f7895232cacbc3e", size = 226415, upload-time = "2026-10-30T15:08:30.962Z" }, + { url = "https://files.pythonhosted.org/packages/ae/a7/2e1606b3d616b86bb6c70a62d5f87fc9a3dbd81f0bbe24c4706ace76751d/websockets-17.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:bc581579885728bb54ef15000295c20e6a64a200b1b73d5cfca71879a3eb3e1f", size = 227594, upload-time = "2026-10-30T15:08:32.443Z" }, + { url = "https://files.pythonhosted.org/packages/67/2d/78ca44e2be6d397aee63a4e68d3a99a33bb14bb3405e94688bc5a2160db5/websockets-17.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:f42671900e0b602d05a074c52fd3d757c2f8e5c4f73f771794dae1aa4aea5f0e", size = 225146, upload-time = "2026-10-30T15:08:33.888Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b6/6dad684e54fc8e09d70c9a095506db5c836207d8e846e3cb1e79424e3492/websockets-17.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:2b23dacf7a8a88afe92f77bcdbf4cf043a84692bac2f2da02f4011c687e19b48", size = 226095, upload-time = "2026-10-30T15:08:35.285Z" }, + { url = "https://files.pythonhosted.org/packages/d9/e5/7b04bad7c11c1f92238429352defbac1406743338049afe1328c7a7f95c0/websockets-17.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d48795c7d64ca1c42e3d61fcc6478cb15a19b6ad3f9c882bc8d8dee49d4a420f", size = 226395, upload-time = "2026-10-30T15:08:36.8Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/4eb29c4b12f77b3139470063308ae1e6a0860b9073b1d27d56e8ce19c512/websockets-17.4-cp314-cp314-win32.whl", hash = "sha256:8588edf317fbe4f16a949bc5a6ccdd22b6e6fd5b4745d128bc40bccf31024ce5", size = 218784, upload-time = "2026-10-30T15:08:38.263Z" }, + { url = "https://files.pythonhosted.org/packages/6d/85/2496a24de80c215b55a15f037bc368a2ed0ce7ecb1e909039ff4e76395de/websockets-17.4-cp314-cp314-win_amd64.whl", hash = "sha256:70293c25d79d1f084fdd665894481547575e429d2a75e8d72caec2f6b6b07af8", size = 219137, upload-time = "2026-10-30T15:08:40.112Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a3/cfe95d4eb569035e5a1d2e5cbeb4ccf0eb15a19e1ef2ad819a85960bf375/websockets-17.4-cp314-cp314-win_arm64.whl", hash = "sha256:adc30e5d064c9e33049e825408fa4e952f4e8a0cf4c329dc2ded72e1bb5bae08", size = 219017, upload-time = "2026-10-30T15:08:41.778Z" }, + { url = "https://files.pythonhosted.org/packages/2b/dd/4143048a2b27303e7de8ef53d7d0ee3987734fbf93e09491d5a1b0a55187/websockets-17.4-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:bbb6bed49f083e2ec8ae0bb21c00c7c5171ab8e08a8b008c61a43fc6c944fdac", size = 219141, upload-time = "2026-10-30T15:08:43.184Z" }, + { url = "https://files.pythonhosted.org/packages/a8/3e/a63b5f3a5c24be2898eb22a3093a56d4ac4cd24ae79e7ab7a1b971ed4611/websockets-17.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c7a56140fcbf4662cb263754a754c651a16fe2196cae1fd232d18f89acd30c83", size = 216675, upload-time = "2026-10-30T15:08:44.682Z" }, + { url = "https://files.pythonhosted.org/packages/d6/80/f238a10f0b23853c665c602a42784023995ac26674e480252c21af39f4f8/websockets-17.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:18d3710becc612ec6f0229425bd6495133dfcbf30f7b6569585acc8ed2f1b452", size = 216880, upload-time = "2026-10-30T15:08:46.304Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b1/899b69aba1e8d65ac5bfe90b97ada22a815f1dcd3840bf188104738aac33/websockets-17.4-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:00ad98e4bb0df7a6711c645eec16d5a9fdf99f0692bd4f5b6cb85a68677ba8df", size = 226462, upload-time = "2026-10-30T15:08:47.723Z" }, + { url = "https://files.pythonhosted.org/packages/28/a8/598c2b2a22dfe14d352400df804db8b78a68c1498b3f775a658f07f21618/websockets-17.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7849a096d6fdba3f2bdf849eb89f2d233a24400c92faa3efb25fa8dc615b706c", size = 226741, upload-time = "2026-10-30T15:08:49.314Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ad/84a6de3cc3dd4ee336428c31f89a82e002299f83e10d967f0e9a5cbaf591/websockets-17.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e30550965c78223439815dbdf40c93eb8931dfbf12427110dcfcaeebef76feb6", size = 227914, upload-time = "2026-10-30T15:08:50.746Z" }, + { url = "https://files.pythonhosted.org/packages/69/ab/1e191b97d60a934c071b7b73c39c5db39721a925cc53acd929c615f85550/websockets-17.4-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:725be1aff55f1c873a79cea0f612df9dff21a9d2c2e05783665b824b8aa7c24e", size = 230059, upload-time = "2026-10-30T15:08:52.596Z" }, + { url = "https://files.pythonhosted.org/packages/f2/57/ef8a64732ef4367091ab05f9b22c1ee4c28657d4a0d088a644198eb5ded6/websockets-17.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b6c7f91520c29420639925fd1cecceac9ca07366b50c09ea24eac1cd116b4866", size = 228486, upload-time = "2026-10-30T15:08:53.967Z" }, + { url = "https://files.pythonhosted.org/packages/48/1f/dbad3afcacf2c52d1fdf83b611d849598f0a047d7333ff476266532877b8/websockets-17.4-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6531540aa63e6864cb0615a3a5da70ae03191334507852a5385320bb7916df3f", size = 227216, upload-time = "2026-10-30T15:08:55.687Z" }, + { url = "https://files.pythonhosted.org/packages/5b/47/59e325d6ca3e04ba5cc7a139d891ef83cad3fb460a183c8f359f378b69a9/websockets-17.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0a57b99f2e28922b5a2434317580fd23fdf118caff4c5b752f5452836426205a", size = 224755, upload-time = "2026-10-30T15:08:57.203Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b6/28a471318dfb0060b58c47d0a252cb5078528a1aa1fdf5e6e88e2a61cf18/websockets-17.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8fd30d217a4275107667fe1d4f601e2d50c797d0727148cfbb384536d65f04d3", size = 227508, upload-time = "2026-10-30T15:08:58.597Z" }, + { url = "https://files.pythonhosted.org/packages/ee/29/7485ac6fc4b342b43964811381f56276fec967cae6a851ae4b815613b10c/websockets-17.4-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cc0cd4065a65ac98f3e2742ee9f314da9d224db49b07dc17d3a20cef0d79658d", size = 225961, upload-time = "2026-10-30T15:09:00.414Z" }, + { url = "https://files.pythonhosted.org/packages/95/a6/520e1f7aa9644ddf58f5a51fc37f46e15293a68cd35b70d5b81b7331ca1e/websockets-17.4-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:71f76bb8e59be847330b8a8d3753f85397677e128f9f9692c215f8cf721cefc7", size = 226851, upload-time = "2026-10-30T15:09:01.979Z" }, + { url = "https://files.pythonhosted.org/packages/e5/0d/444799abe7418f361da8c201c6858b64b4e8d47265f90851e5cb68b4d90f/websockets-17.4-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:c2db7b9e2d726f7e051bedb67abcf460b84b11437b2f9fdacda7e6931dace85b", size = 227869, upload-time = "2026-10-30T15:09:03.405Z" }, + { url = "https://files.pythonhosted.org/packages/cb/86/6da20322a07364a0ab0787a2b0d4367770f59404fdab6e35122413a7f63e/websockets-17.4-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:332b88022d0acd47c44158bcd43f47f14eaddcd979247f242b1a33291c45cdd1", size = 225562, upload-time = "2026-10-30T15:09:04.891Z" }, + { url = "https://files.pythonhosted.org/packages/2a/da/53e44d96238dc207011ad5d93b0540c58e1c680a86f48dc3fa8e5138b343/websockets-17.4-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:5cec3e7fbc911ff4fcf43b24aaf1b96906381ad36030f42897def3ff4b78729e", size = 226334, upload-time = "2026-10-30T15:09:06.42Z" }, + { url = "https://files.pythonhosted.org/packages/18/08/82cea972a87f229ee1903e9adf74c17d1e6c4371d581ebb11ccbed4e3a7b/websockets-17.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cbdf4b42f4514422051889424fd03bc269be8c5d751bf39ec29ad761590bd10d", size = 226767, upload-time = "2026-10-30T15:09:07.837Z" }, + { url = "https://files.pythonhosted.org/packages/96/f3/ee6afff802e39e8d6ef29ee4bdc30f8272aaa38295c19a911fad91fe95fc/websockets-17.4-cp314-cp314t-win32.whl", hash = "sha256:16550e24ac22c27e0a728100d8de196b5f054bab6748ef9f0b168fb8b3c32e35", size = 218918, upload-time = "2026-10-30T15:09:09.31Z" }, + { url = "https://files.pythonhosted.org/packages/11/56/b0b07917f9c85a4d24a37300f4ae888bfa7c20f08902dd6a5c61a0d1b26f/websockets-17.4-cp314-cp314t-win_amd64.whl", hash = "sha256:5ec906bb21b35e66cfdcc2ea0133f249f52b7d89e3e45ec8d2bd2d84a0255d7d", size = 219260, upload-time = "2026-10-30T15:09:10.832Z" }, + { url = "https://files.pythonhosted.org/packages/19/a6/a63113909ea602d3d22b0f32a7a9950d8d18b725cfdce735eab9b5f5d198/websockets-17.4-cp314-cp314t-win_arm64.whl", hash = "sha256:c00f0c45851a2c61efffd03dde8fb4d594026b5cc18196c94e15460f1225f2ed", size = 219176, upload-time = "2026-10-30T15:09:12.444Z" }, + { url = "https://files.pythonhosted.org/packages/ee/be/4032fde05e62d1c52edd250fda475e910cac0cd180e377690bff24147b5e/websockets-17.4-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:8c51ac7b31578a7275650f580aac985940985b6d2e57247ac6d5e07f2c936cd6", size = 218740, upload-time = "2026-10-30T15:09:13.833Z" }, + { url = "https://files.pythonhosted.org/packages/74/1c/b47f5786eb45599072411571651606fb22f6e825d522d627daad974ea636/websockets-17.4-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:023dc13bdc42a55e152acc81c39c90ec6cc4159ed17d23c6d73460fa2a73ab16", size = 216470, upload-time = "2026-10-30T15:09:15.394Z" }, + { url = "https://files.pythonhosted.org/packages/70/98/0021f55de633617b4a8390cca17e700c9ba5d99323103128412dc2c15aca/websockets-17.4-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6fd8cac4907fec8302726d49e6969acfffaf720bc39b1cee23f473b81f4dce01", size = 216695, upload-time = "2026-10-30T15:09:17.185Z" }, + { url = "https://files.pythonhosted.org/packages/28/56/2c67389b47c4b9e9e9318d9b3e4bb52a2fef3749ff00b0b151a342c4d42d/websockets-17.4-cp315-cp315-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4441d655a53185ef1b01b1d42ad9b3a96b905110a9219043e3fdaec855ba3b6e", size = 226134, upload-time = "2026-10-30T15:09:19.156Z" }, + { url = "https://files.pythonhosted.org/packages/75/bd/ee3a679a10741a0cdd7aa8bdd6d03999069672826aa7a6495fdf589ed961/websockets-17.4-cp315-cp315-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3acc45494c08a4d27375a2c28474537f68910219f42624a08011221b04623d04", size = 226569, upload-time = "2026-10-30T15:09:20.587Z" }, + { url = "https://files.pythonhosted.org/packages/c4/42/b293a5d07099549797138d09fda5bf878d302b4980e61678981c8dfdc98f/websockets-17.4-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3b78b39377630a70aa2198e5f03be416e690364a046b1d8af80a9263733083d0", size = 227726, upload-time = "2026-10-30T15:09:22.015Z" }, + { url = "https://files.pythonhosted.org/packages/2d/81/d048ff83c4d0fc386f6008529d12690d0dcb410f73570430f13fe4d543f0/websockets-17.4-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6cf4c002268da5c11cae9083aec71ac943bce9d95e0f83c8bf9a95a3ce421fbb", size = 229426, upload-time = "2026-10-30T15:09:23.444Z" }, + { url = "https://files.pythonhosted.org/packages/e6/21/1df51f94047dfb76c32fd7508036e4b55352d0f04fd0e3bee525a2122225/websockets-17.4-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed7fe197b8bb66eef4f62c052e33752d456d2fdda74805469d4bd954950ab339", size = 228211, upload-time = "2026-10-30T15:09:24.902Z" }, + { url = "https://files.pythonhosted.org/packages/cf/13/33d6a28471da4c30a98a2313c76f984be2056a703c5c532225dc28f5dba3/websockets-17.4-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f0494d3d97502e270282cc6a1f8648cd7335b4fe8d5c452006e5b7f9d62b8892", size = 227106, upload-time = "2026-10-30T15:09:26.315Z" }, + { url = "https://files.pythonhosted.org/packages/4a/86/ff8441e56ca677e51f9c826868fccde2a82bafe0ffa337fd38823b64253a/websockets-17.4-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ab9e4bd60796866c578e3afa0a17c98636887827a39c2e238a61989c18fd8e7b", size = 224499, upload-time = "2026-10-30T15:09:28.116Z" }, + { url = "https://files.pythonhosted.org/packages/da/91/470d7a619ce4aa837ff5b6a5836227c43bdfdc42ef837cce48f508992438/websockets-17.4-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:8d148b4b295224d3a19e7bd9f02ebe7344de254b3b2c4d0628ce42ade0bca119", size = 227213, upload-time = "2026-10-30T15:09:29.847Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ba/55ed1422d6c73b5b81996ca195f2a256a339b26c553f5686afc2a926bc2b/websockets-17.4-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:6597a1f7413189b4bc58437babcdf39b79da416e5c477ae98323a88ecc108188", size = 225876, upload-time = "2026-10-30T15:09:31.249Z" }, + { url = "https://files.pythonhosted.org/packages/e9/59/f133d260e7a48d3e231c3a495eeb6114b880c1e96bfc781a949c1f73991c/websockets-17.4-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:a9b0026538719f7a532998d84640ab2e91ca1a051ce4b8d924fdcb607307e921", size = 226403, upload-time = "2026-10-30T15:09:33.199Z" }, + { url = "https://files.pythonhosted.org/packages/45/16/bb3355453ffdc31d3a14ddc0b50e058f13a97d2ed019ba6c380e03456169/websockets-17.4-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:a703f23ca15a51251fc94f1774683f5aa511588a7ad6bbb83960cdb2a4dcd978", size = 227558, upload-time = "2026-10-30T15:09:34.703Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ab/f3d55a83c2a4daa8bf62594b00a721dc8767518ccb833f932b0178eb6c19/websockets-17.4-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:6b061ea7ca94966af7cd7a87cb189ff15972c103244611a2b1e8408c04f1dbe6", size = 225369, upload-time = "2026-10-30T15:09:36.204Z" }, + { url = "https://files.pythonhosted.org/packages/88/66/3a320bfb718d9ae1eff15ba7790979c0e6fdec74e388430f426e6647d7f4/websockets-17.4-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:e6d2a185ec4ff0478089305abd833da3a9fda8803eb77325b89ebeae5585a3b7", size = 226268, upload-time = "2026-10-30T15:09:37.565Z" }, + { url = "https://files.pythonhosted.org/packages/da/ee/1f9cdeeaaa2d5e158b7a40f971e74b641b35f977674b46229a5bb14e270a/websockets-17.4-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:9a4e95d56994a45ac76541853796720436ffe462957d0b1b89e87ff3d3b1627e", size = 226530, upload-time = "2026-10-30T15:09:39.171Z" }, + { url = "https://files.pythonhosted.org/packages/da/28/506406ef09e6e168796f0187bdac0767f38a560e6785c4ee26e583aaaf76/websockets-17.4-cp315-cp315-win32.whl", hash = "sha256:b7ea61af293a153f2d67430038cf0efc10140caa623f2bdf5a9f5a457ff20f57", size = 218751, upload-time = "2026-10-30T15:09:40.748Z" }, + { url = "https://files.pythonhosted.org/packages/25/a6/818647a9a9b3ee8bf131e9ab4fa1f2db9c6539f08e7084dd57549e0bd49d/websockets-17.4-cp315-cp315-win_amd64.whl", hash = "sha256:8b45d40f07081b377f0b837ddbfba4a9ab4a89a7b569d3c095436564e767a27b", size = 219045, upload-time = "2026-10-30T15:09:42.251Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b2/0338a9abec3df8556627af987352657ce1c8456f2060b54741570b174122/websockets-17.4-cp315-cp315-win_arm64.whl", hash = "sha256:29b615c2d5dd883f89c107a782681b73a7aa8b2bd894130310e45eb09b143913", size = 218957, upload-time = "2026-10-30T15:09:43.866Z" }, + { url = "https://files.pythonhosted.org/packages/68/92/22e83d003cdbd22be5d35e28c260203e9fbb6c73b17a8e1509f4ad49e74d/websockets-17.4-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:c568e72f5425a74616daeb824afe28da460cbeea036432f41c6af5380b83300d", size = 219056, upload-time = "2026-10-30T15:09:45.528Z" }, + { url = "https://files.pythonhosted.org/packages/2f/ca/071d38e7237f6ada4f577b74f7cbf5bc2ff7e1f9360ebd2837e74a22dfd4/websockets-17.4-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:bfc86dff091104eec770c29ea1831dbe191968a70aa2d8ae8eda3240d863970a", size = 216630, upload-time = "2026-10-30T15:09:46.951Z" }, + { url = "https://files.pythonhosted.org/packages/fa/76/22d4523f92d88b8f5ebfd3df7ab5e825146af100f7e2caeae7d359ae51ea/websockets-17.4-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:f5f06f59e19aa0770aaf651ce91c196fa620b35aed49a7e6c36e7335f3f83db7", size = 216841, upload-time = "2026-10-30T15:09:48.285Z" }, + { url = "https://files.pythonhosted.org/packages/87/29/bc94be4a8bc19ef518e9efecd90a992f2991b7cfc6eb8a7430c4e2dc097c/websockets-17.4-cp315-cp315t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8f32a6cb0b101170abc2d8053af1473a2a29ef2a06d7130994ee8455a50f5dbf", size = 226992, upload-time = "2026-10-30T15:09:49.776Z" }, + { url = "https://files.pythonhosted.org/packages/fa/25/58f69b5fec064764ddf5b88045397433cdb028f5b17c82fbe047fd31fff7/websockets-17.4-cp315-cp315t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:72d0a731eccf482d5661c6711abfcd5921f3dbfbbb0789061e1918ef4bc89c70", size = 227258, upload-time = "2026-10-30T15:09:51.172Z" }, + { url = "https://files.pythonhosted.org/packages/21/7c/bc932a54c5f1bd78461574aea539fc562fd2de494738a2c0675c4de860be/websockets-17.4-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48c83103f82fce36191a9e3a8a80731d4340e2da544eae8c5aaaf6a45280e7d0", size = 228589, upload-time = "2026-10-30T15:09:52.628Z" }, + { url = "https://files.pythonhosted.org/packages/c4/92/57ec83066d0bfa8a9b9f594bc61951073c4a86e34c562a5292604118dab6/websockets-17.4-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c8052c3058c402d53602583da5ddcf1a15a63ab1efe0222f47c7be59944e6463", size = 230217, upload-time = "2026-10-30T15:09:54.058Z" }, + { url = "https://files.pythonhosted.org/packages/6e/fc/0f2fe533b5b4dc22ac704b3357f5c99fa60a3837218b3c6c6ad63a60120e/websockets-17.4-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0c22a9c6b2349204f56123dd0ca7779e989d68e336d0dc02ad823485d44925de", size = 229026, upload-time = "2026-10-30T15:09:55.727Z" }, + { url = "https://files.pythonhosted.org/packages/7c/cc/ed28307835106a9a2dbd1a5efc597e8befa3d0a5f2b46a4c1e466b2f4759/websockets-17.4-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0dcce83837328e6795225ead920d3aa8d867cc9d6922aa558b0e9111599fdbb9", size = 227904, upload-time = "2026-10-30T15:09:57.221Z" }, + { url = "https://files.pythonhosted.org/packages/39/4d/24ad7deddc7b31c3e430acc1c00c7b384ae42f1f973e9cc01aa42d19628f/websockets-17.4-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4b79ea31cf277c72d2307c6cb8bd32a2c151959e80a2f24fa85df620c5f2860c", size = 225253, upload-time = "2026-10-30T15:09:58.624Z" }, + { url = "https://files.pythonhosted.org/packages/93/f6/9c92230ebfab42fee482b236c45c32ed34b24f7360080b400cce6cfcac11/websockets-17.4-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:3d27153a0413696767b98b5d96173a2a7e27cbfca02000a6069cea7b977765a7", size = 228089, upload-time = "2026-10-30T15:10:00.308Z" }, + { url = "https://files.pythonhosted.org/packages/fe/7a/f523830e562da9b1d7a610174752753720c5e47e84b59b5fc47721d416bd/websockets-17.4-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:e0feb03a338f8f5e819ae23a73aabb7b46fd3b73f15f7df782dd12d99e2b02ad", size = 226743, upload-time = "2026-10-30T15:10:01.744Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e6/d1a56495cb7b1a0a4688145131be38cfd0c1342bde8125e136a6e6ee494e/websockets-17.4-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:9ff89e36451a19775e7556d95ebfa4a0b24b84cc87565d6b5d0ec8ea82bf3f2c", size = 227237, upload-time = "2026-10-30T15:10:03.417Z" }, + { url = "https://files.pythonhosted.org/packages/44/41/c4e53f7ad63838d7eba6e82c5d743827e91dafe5e48c88a58f7e90043945/websockets-17.4-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:ee6c4e0085bff5f6621bf9c53452584dcb91ebd993ce841e1f4061ac12b6b556", size = 228348, upload-time = "2026-10-30T15:10:05.149Z" }, + { url = "https://files.pythonhosted.org/packages/ca/01/f6f78c3edeb8ad2b3c35a8c4117ec2cf9346215afaed8155af1e7933818b/websockets-17.4-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:1962f3bfde085af18878f1bb1aafb300c9a6ac33da886d0b0d97e33c9ce7a222", size = 226099, upload-time = "2026-10-30T15:10:06.588Z" }, + { url = "https://files.pythonhosted.org/packages/8d/01/d8c11740231b63d1aba6bad6b1d4e72e8384b26c5448801da238ebe82c92/websockets-17.4-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:42d7a6e818214336cf7af9a3aae5c6923f94f09fa07ac5aab98268ba2a98a6d5", size = 226956, upload-time = "2026-10-30T15:10:08.141Z" }, + { url = "https://files.pythonhosted.org/packages/99/87/dbfd43ae01ea8fdb7478a1b3d58b32aca83bb9c4aa61ebe187d1e188ac8e/websockets-17.4-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:c9f8fdb7bbefc4907c2bb3593f810f2b67a2d5329e1d38724a1aa3d763cf63eb", size = 227253, upload-time = "2026-10-30T15:10:09.533Z" }, + { url = "https://files.pythonhosted.org/packages/bf/8e/fbd968a75428063560ada02d564de8d6c49ca34ec29dfb78e5d900f4b0ef/websockets-17.4-cp315-cp315t-win32.whl", hash = "sha256:506623128d7a55b726a5a46e4c9a8eae4c9dd0f04ff60b041fe7df85b9d034fe", size = 218877, upload-time = "2026-10-30T15:10:10.925Z" }, + { url = "https://files.pythonhosted.org/packages/f9/53/8f37a3943517bba77fc86f7c4162c455018c5b6d760c5e9c9a11de9e37f7/websockets-17.4-cp315-cp315t-win_amd64.whl", hash = "sha256:6e6558efbb256b532c9f06a21ba42bcac729718e365c505819f181f25e5c0eca", size = 219195, upload-time = "2026-10-30T15:10:12.336Z" }, + { url = "https://files.pythonhosted.org/packages/69/35/cf33cba7248fcd80cfe5911ffe67aa2637f50c2bfaada123b1e9d2aeca90/websockets-17.4-cp315-cp315t-win_arm64.whl", hash = "sha256:fcac44d917672ad6257ad64b80b5168306f168a78cab5c0612e4c699caed18cf", size = 219117, upload-time = "2026-10-30T15:10:13.771Z" }, + { url = "https://files.pythonhosted.org/packages/a0/80/78c580302991d229ac5ad0a00c361916f7f84deaf6dd76370034dd8e7383/websockets-17.4-pp311-pypy311_pp80-macosx_10_15_x86_64.whl", hash = "sha256:73b00645316121105274fd266ed54a20e6514650126d399cdea39876ab1e7b04", size = 216364, upload-time = "2026-10-30T15:10:15.472Z" }, + { url = "https://files.pythonhosted.org/packages/d9/27/7d18d381994c7c27a855131ae064ff43ec00ded636b7c6ead4abb4cec841/websockets-17.4-pp311-pypy311_pp80-macosx_11_0_arm64.whl", hash = "sha256:02f380df26de14999ecace203fe1396ac14d1c6132afc7924eb6f8c8b646c69d", size = 216642, upload-time = "2026-10-30T15:10:17.153Z" }, + { url = "https://files.pythonhosted.org/packages/fc/91/43e73997fbdc7ef3cb434148888329113a07b66d97a8ea6aa2f93e574028/websockets-17.4-pp311-pypy311_pp80-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f5b1d315a615cec81a79e2ce3a94221dc5c23e7fd4012897085d3b5e5a5638d0", size = 217587, upload-time = "2026-10-30T15:10:19.123Z" }, + { url = "https://files.pythonhosted.org/packages/a8/17/5e3e6be945512aff7351c9f60134803902ccb07cd7d6c9becdfa349a32d5/websockets-17.4-pp311-pypy311_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:046ed16d3d83d64594e4a40655fef061ccf36059d8c30a01feca8a9481fe13b8", size = 217478, upload-time = "2026-10-30T15:10:20.665Z" }, + { url = "https://files.pythonhosted.org/packages/7d/5f/0a1ee98aeff04c200492a479a386ff106d1ef6d5c9d6613959b3e3d79469/websockets-17.4-pp311-pypy311_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f772007dfba8941873dbd276b6a6845428cc740888b5c6c37bf483b1ea34b42", size = 218371, upload-time = "2026-10-30T15:10:22.35Z" }, + { url = "https://files.pythonhosted.org/packages/17/97/acb333fa9a54bb1ad616c1add65185f9ab580c3c76366a3d1abc1090979b/websockets-17.4-pp311-pypy311_pp80-win_amd64.whl", hash = "sha256:accb5e9492b9bc9c9aeec5b72ea8f2ddcbefc6143d1c626fba960ecbdc89807e", size = 306811, upload-time = "2026-10-30T15:10:23.76Z" }, + { url = "https://files.pythonhosted.org/packages/e9/a3/d8fbc72c5c0e78905caf2d6dcf806e532451e3f48e2a09a8ebe1de9ad412/websockets-17.4-pp312-pypy312_pp80-macosx_10_15_x86_64.whl", hash = "sha256:c7f66a53e9b7ec831abb15e3d9b6cee8f52d6a24cd0a374786bf46c3ec218bc6", size = 216397, upload-time = "2026-10-30T15:10:25.255Z" }, + { url = "https://files.pythonhosted.org/packages/d3/de/1bf313cd0f4662df4884a7602932cd13347090e59dd6047865eee2bb5aa5/websockets-17.4-pp312-pypy312_pp80-macosx_11_0_arm64.whl", hash = "sha256:4fb2db1f649b6464711846b5bb9c1611bd906ce939d9460cbd1fa419552cd6c3", size = 216664, upload-time = "2026-10-30T15:10:27.016Z" }, + { url = "https://files.pythonhosted.org/packages/30/e2/7912bd417511b54907853bd495aef2daee111062dbafd43d133a3f7253a7/websockets-17.4-pp312-pypy312_pp80-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:32110d954d9d0e51f36edb0396673bf4d35193a0a80ba7013bf7f7d58a33ca07", size = 217603, upload-time = "2026-10-30T15:10:28.475Z" }, + { url = "https://files.pythonhosted.org/packages/56/6f/2e8d5610f6184a2e1720bf8ce256402ed99ad30ea87c461fba5bc4d651d9/websockets-17.4-pp312-pypy312_pp80-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:88ba8a439b2bad97bb69c38db5bf0ec16a061ee834cf0f244089186ee803e899", size = 217489, upload-time = "2026-10-30T15:10:29.999Z" }, + { url = "https://files.pythonhosted.org/packages/29/3a/a05bc57eadcd7e8e072d917888128e6d22e1203984afb21a8da3198982fe/websockets-17.4-pp312-pypy312_pp80-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:868744c68e9342768888c7326604da2228c19bb6946aa46b5f9e1ac32ea8d40b", size = 218356, upload-time = "2026-10-30T15:10:31.432Z" }, + { url = "https://files.pythonhosted.org/packages/b2/49/eed86bfb8863093a82cbaa52c9159be1ce2374d5ace6fe1f8e8031567e7d/websockets-17.4-pp312-pypy312_pp80-win_amd64.whl", hash = "sha256:829bcaa90be8737c132d9515d6a466e8528e3b3d050d3f3466f36ea94d3beb48", size = 306838, upload-time = "2026-10-30T15:10:32.954Z" }, + { url = "https://files.pythonhosted.org/packages/eb/27/9db924cb0dbf22eade78d98fbae77790f9bf6bc729e6ab29aef9d68e4156/websockets-17.4-py3-none-any.whl", hash = "sha256:c6bd2c9781915592b209160d0f017d4c7c82ad53075e6b0c24d2a89299e7f9e9", size = 212900, upload-time = "2026-10-30T15:10:34.482Z" }, ] From 69b7987330aad0b7c95e56a9b57bfbe060d9016c Mon Sep 17 00:00:00 2001 From: root Date: Mon, 2 Nov 2026 10:24:07 +0000 Subject: [PATCH 36/38] remove _docs.yml --- .github/workflows/_docs.yml | 55 ------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 .github/workflows/_docs.yml diff --git a/.github/workflows/_docs.yml b/.github/workflows/_docs.yml deleted file mode 100644 index acc52652b..000000000 --- a/.github/workflows/_docs.yml +++ /dev/null @@ -1,55 +0,0 @@ -on: - workflow_call: - - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Avoid git conflicts when tag and branch pushed at same time - if: github.ref_type == 'tag' - run: sleep 60 - - - name: Checkout - uses: actions/checkout@v7 - with: - # Need this to get version number from last tag - fetch-depth: 0 - - - name: Install system packages - run: sudo apt-get install graphviz - - - name: Install uv - uses: astral-sh/setup-uv@v10.3.2 - - - name: Build docs - run: uv run --locked tox -e docs - - - name: Remove environment.pickle - run: rm build/html/.doctrees/environment.pickle - - - name: Upload built docs artifact - uses: actions/upload-artifact@v7 - with: - name: docs - path: build - - - name: Sanitize ref name for docs version - run: echo "DOCS_VERSION=${GITHUB_REF_NAME//[^A-Za-z0-9._-]/_}" >> $GITHUB_ENV - - - name: Move to versioned directory - run: mv build/html .github/pages/$DOCS_VERSION - - - name: Write switcher.json - run: python .github/pages/make_switcher.py --add $DOCS_VERSION ${{ github.repository }} .github/pages/switcher.json - - - name: Publish Docs to gh-pages - if: github.ref_type == 'tag' || github.ref_name == 'main' - # We pin to the SHA, not the tag, for security reasons. - # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions - uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: .github/pages - keep_files: true From 1e103fe83f57c1cf9e844e1b64f92338d95ef64f Mon Sep 17 00:00:00 2001 From: root Date: Tue, 3 Nov 2026 09:40:00 +0000 Subject: [PATCH 37/38] add back in code that had been incorrectly removed --- .../CONTRIBUTING.md.jinja" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" index d929faacb..fc2a1a036 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/CONTRIBUTING.md.jinja" @@ -24,4 +24,4 @@ It is recommended that developers use a [vscode devcontainer](https://code.visua This project was created using the [Diamond Light Source Copier Template](https://github.com/DiamondLightSource/python-copier-template) for Python projects. -For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/main/how-to.html). +For more information on common tasks like setting up a developer environment, running the tests, and setting a pre-commit hook, see the template's [How-to guides](https://diamondlightsource.github.io/python-copier-template/{{ _copier_answers._commit.split('-')[0] }}/how-to.html). From 7b222a6deb0d81876fb7b6cae31444da130454cd Mon Sep 17 00:00:00 2001 From: root Date: Fri, 6 Nov 2026 18:38:01 +0000 Subject: [PATCH 38/38] changes from PR review comments --- .devcontainer/devcontainer.json | 4 +- .github/pages/index.html | 11 --- .github/pages/make_switcher.py | 96 ------------------- .github/workflows/_release.yml | 32 ------- .github/workflows/ci.yml | 3 +- .github/workflows/publish.yml | 10 +- copier.yml | 3 + docs/conf.py | 8 +- docs/how-to/build-docs.md | 8 +- template/pyproject.toml.jinja | 6 +- template/renovate.json.jinja | 1 + .../pages" | 1 - .../workflows/ci.yml.jinja" | 14 +-- .../{% if sphinx %}publish.yml{% endif %}" | 10 +- .../conf.py.jinja | 18 ++-- 15 files changed, 37 insertions(+), 188 deletions(-) delete mode 100644 .github/pages/index.html delete mode 100755 .github/pages/make_switcher.py delete mode 100644 .github/workflows/_release.yml delete mode 120000 "template/{% if git_platform==\"github.com\" %}.github{% endif %}/pages" rename "template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" => "template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/{% if sphinx %}publish.yml{% endif %}" (69%) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f9e47e82c..c12cce59d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -49,9 +49,7 @@ // Allow the container to access the host X11 display and EPICS CA "--net=host", // Make sure SELinux does not disable with access to host filesystems like tmp - "--security-opt=label=disable", - // Allow the container to use the TUN device - "--device=/dev/net/tun" + "--security-opt=label=disable" ], "mounts": [ // Mount in the user terminal config folder so it can be edited diff --git a/.github/pages/index.html b/.github/pages/index.html deleted file mode 100644 index c495f39f2..000000000 --- a/.github/pages/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Redirecting to main branch - - - - - - diff --git a/.github/pages/make_switcher.py b/.github/pages/make_switcher.py deleted file mode 100755 index c06813afa..000000000 --- a/.github/pages/make_switcher.py +++ /dev/null @@ -1,96 +0,0 @@ -"""Make switcher.json to allow docs to switch between different versions.""" - -import json -import logging -from argparse import ArgumentParser -from pathlib import Path -from subprocess import CalledProcessError, check_output - - -def report_output(stdout: bytes, label: str) -> list[str]: - """Print and return something received frm stdout.""" - ret = stdout.decode().strip().split("\n") - print(f"{label}: {ret}") - return ret - - -def get_branch_contents(ref: str) -> list[str]: - """Get the list of directories in a branch.""" - stdout = check_output(["git", "ls-tree", "-d", "--name-only", ref]) - return report_output(stdout, "Branch contents") - - -def get_sorted_tags_list() -> list[str]: - """Get a list of sorted tags in descending order from the repository.""" - stdout = check_output(["git", "tag", "-l", "--sort=-v:refname"]) - return report_output(stdout, "Tags list") - - -def get_versions(ref: str, add: str | None) -> list[str]: - """Generate the file containing the list of all GitHub Pages builds.""" - # Get the directories (i.e. builds) from the GitHub Pages branch - try: - builds = set(get_branch_contents(ref)) - except CalledProcessError: - builds = set() - logging.warning(f"Cannot get {ref} contents") - - # Add and remove from the list of builds - if add: - builds.add(add) - - # Get a sorted list of tags - tags = get_sorted_tags_list() - - # Make the sorted versions list from main branches and tags - versions: list[str] = [] - for version in ["master", "main"] + tags: - if version in builds: - versions.append(version) - builds.remove(version) - - # Add in anything that is left to the bottom - versions += sorted(builds) - print(f"Sorted versions: {versions}") - return versions - - -def write_json(path: Path, repository: str, versions: list[str]): - """Write the JSON switcher to path.""" - org, repo_name = repository.split("/") - struct = [ - {"version": version, "url": f"https://{org}.github.io/{repo_name}/{version}/"} - for version in versions - ] - text = json.dumps(struct, indent=2) - print(f"JSON switcher:\n{text}") - path.write_text(text, encoding="utf-8") - - -def main(args=None): - """Parse args and write switcher.""" - parser = ArgumentParser( - description="Make a versions.json file from gh-pages directories" - ) - parser.add_argument( - "--add", - help="Add this directory to the list of existing directories", - ) - parser.add_argument( - "repository", - help="The GitHub org and repository name: ORG/REPO", - ) - parser.add_argument( - "output", - type=Path, - help="Path of write switcher.json to", - ) - args = parser.parse_args(args) - - # Write the versions file - versions = get_versions("origin/gh-pages", args.add) - write_json(args.output, args.repository, versions) - - -if __name__ == "__main__": - main() diff --git a/.github/workflows/_release.yml b/.github/workflows/_release.yml deleted file mode 100644 index 59b929293..000000000 --- a/.github/workflows/_release.yml +++ /dev/null @@ -1,32 +0,0 @@ -on: - workflow_call: - -jobs: - artifacts: - runs-on: ubuntu-latest - - steps: - - name: Download artifacts - uses: actions/download-artifact@v8 - with: - merge-multiple: true - - - name: Zip up docs - run: | - set -vxeuo pipefail - if [ -d html ]; then - mv html $GITHUB_REF_NAME - zip -r docs.zip $GITHUB_REF_NAME - rm -rf $GITHUB_REF_NAME - fi - - - name: Create GitHub Release - # We pin to the SHA, not the tag, for security reasons. - # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions - uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3 - with: - prerelease: ${{ contains(github.ref_name, 'a') || contains(github.ref_name, 'b') || contains(github.ref_name, 'rc') }} - files: "*" - generate_release_notes: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 385bf17b5..abb1178fa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,8 +20,7 @@ jobs: docs: # Call the docs building workflow directly uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.28.0 with: - # Whatever turns your sources into docs/_build/html at $BASE_URL. uv and Node - # are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs + # Some of the docs need graphviz, so install it as well as running sphinx build-command: sudo apt-get install -y graphviz && uv run --locked tox -e docs html-dir: build/html diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f56b7dafe..73645bda3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,15 +16,13 @@ on: jobs: publish: - # Both guards fail OPEN — copy them verbatim. - # conclusion == 'success' : workflow_run fires on failures too - # head_repository == this repo : workflow_run holds a WRITE token even when a - # fork's PR triggered it (the pwn-request shape) - # The repository check keeps forks of python copier template from publishing to their own Pages. + # Run if the workflow has been manually dispatched or it was a + # successful CI run that did not come from a fork. + # Skip merge queue runs as they deploy the same commit as the PR commit if: >- - github.repository == 'DiamondLightSource/python-copier-template' && (github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.event != 'merge_group' && github.event.workflow_run.head_repository.full_name == github.repository)) uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish-gh-pages.yml@v0.28.0 with: diff --git a/copier.yml b/copier.yml index 1f074dd2e..83e7f95be 100644 --- a/copier.yml +++ b/copier.yml @@ -163,3 +163,6 @@ _migrations: - echo This update will require you to login to pypi.org and make changes before you can make a new release to PyPI. If you do not have time to do this now, press CTRL+C to abort this update. after: - echo Visit https://diamondlightsource.github.io/python-copier-template/main/how-to/pypi.html to find out how to set up PyPI trusted publishing + +publish: + - echo: If your repo was using the `gh-pages` branch to publish docs, follow the [migration instructions](https://diamondlightsource.github.io/myst-version-switcher-plugin/main/how-to/migrate-from-gh-pages) to now use Github Actions. diff --git a/docs/conf.py b/docs/conf.py index d50ff7e7d..832dab5aa 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -101,9 +101,9 @@ if not switcher_exists: print( "*** Can't read version switcher, is GitHub pages enabled? \n" - " Once Docs CI job has successfully run once, set the " - "Github pages source branch to be 'gh-pages' at:\n" - f" https://github.com/{github_user}/{github_repo}/settings/pages", + " Set the Github pages source to 'GitHub Actions' at:\n" + f" https://github.com/{github_user}/{github_repo}/settings/pages\n" + " then CI will publish the docs on its next successful run.", file=sys.stderr, ) @@ -134,7 +134,7 @@ html_context = { "github_user": github_user, "github_repo": github_repo, - "github_version": version, + "github_version": "main", "doc_path": "docs", } diff --git a/docs/how-to/build-docs.md b/docs/how-to/build-docs.md index ceda35213..47b886154 100644 --- a/docs/how-to/build-docs.md +++ b/docs/how-to/build-docs.md @@ -41,12 +41,12 @@ $ tox -e docs-autobuild -- --watch tests (building-docs-in-ci)= ## Building docs in CI -Docs are built using the [myst-version-switcher-plugin](https://github.com/DiamondLightSource/myst-version-switcher-plugin). - -After a successful run of CI +For a successful docs build, the source for the 'Build and Deployment' of the Github Pages should be set to GitHub Actions (Not 'Deploy from a branch'). This should be changes first and then the CI will publish. Settings > Pages ![Setup GitHub Pages](../images/github-pages-actions-setup.png) -If your repo was using the ```gh-pages``` branch to publish docs, follow the [migration instructions](https://diamondlightsource.github.io/myst-version-switcher-plugin/main/how-to/) to now use Github Actions. +If your repo was using the `gh-pages` branch to publish docs, follow the [migration instructions](https://diamondlightsource.github.io/myst-version-switcher-plugin/main/how-to/migrate-from-gh-pages) to now use Github Actions. + +Docs are built using the [myst-version-switcher-plugin](https://github.com/DiamondLightSource/myst-version-switcher-plugin). diff --git a/template/pyproject.toml.jinja b/template/pyproject.toml.jinja index ea14d52d0..418e8100b 100644 --- a/template/pyproject.toml.jinja +++ b/template/pyproject.toml.jinja @@ -59,10 +59,8 @@ version_file = "src/{{ package_name }}/_version.py" typeCheckingMode = "strict" {% else %} typeCheckingMode = "standard" -{% endif %} -reportMissingImports = false # Ignore missing stubs in imported modules -{% endif %} -{% if type_checker=="mypy" %} +{% endif %}reportMissingImports = false # Ignore missing stubs in imported modules +{% endif %}{% if type_checker=="mypy" %} [tool.mypy] ignore_missing_imports = true # Ignore missing stubs in imported modules {% endif %} diff --git a/template/renovate.json.jinja b/template/renovate.json.jinja index 2d461a922..34d9457a3 100644 --- a/template/renovate.json.jinja +++ b/template/renovate.json.jinja @@ -22,6 +22,7 @@ "actions/checkout", "astral-sh/setup-uv", "actions/upload-artifact", + "DiamondLightSource/myst-version-switcher-plugin", "codecov/codecov-action"{% if docker %}, "docker/setup-buildx-action", "docker/login-action", diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/pages" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/pages" deleted file mode 120000 index 765622ebd..000000000 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/pages" +++ /dev/null @@ -1 +0,0 @@ -../../.github/pages \ No newline at end of file diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" index 1d6ba2ef0..9232618f0 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/ci.yml.jinja" @@ -1,10 +1,13 @@ name: CI on: - pull_request: push: - branches:[main] - tags:['*'] + branches: + - main + tags: + - '*' + pull_request: + merge_group: jobs: @@ -37,10 +40,7 @@ jobs: docs: uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/docs.yml@v0.28.0 with: - # Whatever turns your sources into docs/_build/html at $BASE_URL. - # uv and Node are preinstalled; so: make docs · tox -e docs · npm ci && npm run docs - build-command: sudo apt-get install -y graphviz && uv run --locked tox -e docs - html-dir: build/html + # Some of the docs need graphviz, so install it as well as running sphinx {% endif %} dist: uses: ./.github/workflows/_dist.yml diff --git "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/{% if sphinx %}publish.yml{% endif %}" similarity index 69% rename from "template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" rename to "template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/{% if sphinx %}publish.yml{% endif %}" index 653138996..73645bda3 100644 --- "a/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/publish.yml" +++ "b/template/{% if git_platform==\"github.com\" %}.github{% endif %}/workflows/{% if sphinx %}publish.yml{% endif %}" @@ -16,15 +16,13 @@ on: jobs: publish: - # Both guards fail OPEN — copy them verbatim. - # conclusion == 'success' : workflow_run fires on failures too - # head_repository == this repo : workflow_run holds a WRITE token even when a - # fork's PR triggered it (the pwn-request shape) - # The repository check keeps forks of blueapi from publishing to their own Pages. + # Run if the workflow has been manually dispatched or it was a + # successful CI run that did not come from a fork. + # Skip merge queue runs as they deploy the same commit as the PR commit if: >- - github.repository == {{ package_name}}/{{repo_name }} && (github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.event != 'merge_group' && github.event.workflow_run.head_repository.full_name == github.repository)) uses: DiamondLightSource/myst-version-switcher-plugin/.github/workflows/publish-gh-pages.yml@v0.28.0 with: diff --git a/template/{% if sphinx %}docs{% endif %}/conf.py.jinja b/template/{% if sphinx %}docs{% endif %}/conf.py.jinja index 03eb63735..9967f8606 100644 --- a/template/{% if sphinx %}docs{% endif %}/conf.py.jinja +++ b/template/{% if sphinx %}docs{% endif %}/conf.py.jinja @@ -5,6 +5,7 @@ list see the documentation: https://www.sphinx-doc.org/en/master/usage/configuration.html """ +import os import sys from pathlib import Path from subprocess import check_output @@ -21,14 +22,7 @@ project = "{{ repo_name }}" # The full version, including alpha/beta/rc tags. release = {{ package_name }}.__version__ -# The short X.Y version. -if "+" in release: - # Not on a tag, use branch name - root = Path(__file__).absolute().parent.parent - git_branch = check_output("git branch --show-current".split(), cwd=root) - version = git_branch.decode().strip() -else: - version = release +version = os.environ.get("VERSION_NAME", "local") extensions = [ # Use this for generating API docs @@ -135,9 +129,9 @@ switcher_exists = requests.get(switcher_json).ok if not switcher_exists: print( "*** Can't read version switcher, is GitHub pages enabled? \n" - " Once Docs CI job has successfully run once, set the " - "Github pages source branch to be 'gh-pages' at:\n" - f" https://github.com/{github_user}/{github_repo}/settings/pages", + " Set the GitHub Pages source to 'GitHub Actions' at:\n" + f" https://github.com/{github_user}/{github_repo}/settings/pages\n" + " then CI will publish the docs on its next successful run.", file=sys.stderr, ) @@ -176,7 +170,7 @@ html_theme_options = { html_context = { "github_user": github_user, "github_repo": github_repo, - "github_version": version, + "github_version": "main", "doc_path": "docs", }