From cbcad54f7405f01d4abd769cc1bdcd38c758faaf Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Fri, 13 Feb 2026 14:44:16 -0800 Subject: [PATCH 01/18] Upgrade Python base images to 3.13.11 to fix CVE-2025-13836 (#751) --- Dockerfile | 2 +- demos/use_cases/http_filter/Dockerfile | 2 +- demos/use_cases/mcp_filter/Dockerfile | 2 +- demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2bd15377..038286dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,7 +42,7 @@ RUN cargo build --release -p brightstaff FROM docker.io/envoyproxy/envoy:v1.37.0 AS envoy -FROM python:3.13.6-slim AS arch +FROM python:3.13.11-slim AS arch RUN set -eux; \ apt-get update; \ diff --git a/demos/use_cases/http_filter/Dockerfile b/demos/use_cases/http_filter/Dockerfile index 5882714a..3c0a3b52 100644 --- a/demos/use_cases/http_filter/Dockerfile +++ b/demos/use_cases/http_filter/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.13-slim +FROM python:3.13.11-slim WORKDIR /app diff --git a/demos/use_cases/mcp_filter/Dockerfile b/demos/use_cases/mcp_filter/Dockerfile index 5882714a..3c0a3b52 100644 --- a/demos/use_cases/mcp_filter/Dockerfile +++ b/demos/use_cases/mcp_filter/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.13-slim +FROM python:3.13.11-slim WORKDIR /app diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile b/demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile index 65337efc..b5598a04 100644 --- a/demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile +++ b/demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.13-slim +FROM python:3.13.11-slim WORKDIR /app From 0557f7ff98793aa03711c39685071f554d86257b Mon Sep 17 00:00:00 2001 From: Salman Paracha Date: Fri, 13 Feb 2026 15:08:11 -0800 Subject: [PATCH 02/18] updated the models list to include models like Opus 4.6 (#753) Co-authored-by: Salman Paracha --- crates/hermesllm/src/bin/provider_models.yaml | 439 +++++++++--------- 1 file changed, 215 insertions(+), 224 deletions(-) diff --git a/crates/hermesllm/src/bin/provider_models.yaml b/crates/hermesllm/src/bin/provider_models.yaml index c9d1ab86..a748e7a7 100644 --- a/crates/hermesllm/src/bin/provider_models.yaml +++ b/crates/hermesllm/src/bin/provider_models.yaml @@ -1,7 +1,219 @@ version: '1.0' source: canonical-apis providers: + mistralai: + - mistralai/mistral-medium-2505 + - mistralai/mistral-medium-2508 + - mistralai/mistral-medium-latest + - mistralai/mistral-medium + - mistralai/mistral-vibe-cli-with-tools + - mistralai/open-mistral-nemo + - mistralai/open-mistral-nemo-2407 + - mistralai/mistral-tiny-2407 + - mistralai/mistral-tiny-latest + - mistralai/mistral-large-2411 + - mistralai/pixtral-large-2411 + - mistralai/pixtral-large-latest + - mistralai/mistral-large-pixtral-2411 + - mistralai/codestral-2508 + - mistralai/codestral-latest + - mistralai/devstral-small-2507 + - mistralai/devstral-medium-2507 + - mistralai/devstral-2512 + - mistralai/mistral-vibe-cli-latest + - mistralai/devstral-medium-latest + - mistralai/devstral-latest + - mistralai/labs-devstral-small-2512 + - mistralai/devstral-small-latest + - mistralai/mistral-small-2506 + - mistralai/mistral-small-latest + - mistralai/labs-mistral-small-creative + - mistralai/magistral-medium-2509 + - mistralai/magistral-medium-latest + - mistralai/magistral-small-2509 + - mistralai/magistral-small-latest + - mistralai/mistral-large-2512 + - mistralai/mistral-large-latest + - mistralai/ministral-3b-2512 + - mistralai/ministral-3b-latest + - mistralai/ministral-8b-2512 + - mistralai/ministral-8b-latest + - mistralai/ministral-14b-2512 + - mistralai/ministral-14b-latest + - mistralai/mistral-small-2501 + - mistralai/mistral-embed-2312 + - mistralai/mistral-embed + - mistralai/codestral-embed + - mistralai/codestral-embed-2505 + openai: + - openai/gpt-4-0613 + - openai/gpt-4 + - openai/gpt-3.5-turbo + - openai/gpt-5.2-codex + - openai/gpt-3.5-turbo-instruct + - openai/gpt-3.5-turbo-instruct-0914 + - openai/gpt-4-1106-preview + - openai/gpt-3.5-turbo-1106 + - openai/gpt-4-0125-preview + - openai/gpt-4-turbo-preview + - openai/gpt-3.5-turbo-0125 + - openai/gpt-4-turbo + - openai/gpt-4-turbo-2024-04-09 + - openai/gpt-4o + - openai/gpt-4o-2024-05-13 + - openai/gpt-4o-mini-2024-07-18 + - openai/gpt-4o-mini + - openai/gpt-4o-2024-08-06 + - openai/chatgpt-4o-latest + - openai/o1-2024-12-17 + - openai/o1 + - openai/computer-use-preview + - openai/o3-mini + - openai/o3-mini-2025-01-31 + - openai/gpt-4o-2024-11-20 + - openai/computer-use-preview-2025-03-11 + - openai/gpt-4o-search-preview-2025-03-11 + - openai/gpt-4o-search-preview + - openai/gpt-4o-mini-search-preview-2025-03-11 + - openai/gpt-4o-mini-search-preview + - openai/o1-pro-2025-03-19 + - openai/o1-pro + - openai/o3-2025-04-16 + - openai/o4-mini-2025-04-16 + - openai/o3 + - openai/o4-mini + - openai/gpt-4.1-2025-04-14 + - openai/gpt-4.1 + - openai/gpt-4.1-mini-2025-04-14 + - openai/gpt-4.1-mini + - openai/gpt-4.1-nano-2025-04-14 + - openai/gpt-4.1-nano + - openai/o3-pro + - openai/o3-pro-2025-06-10 + - openai/o4-mini-deep-research + - openai/o3-deep-research + - openai/o3-deep-research-2025-06-26 + - openai/o4-mini-deep-research-2025-06-26 + - openai/gpt-5-chat-latest + - openai/gpt-5-2025-08-07 + - openai/gpt-5 + - openai/gpt-5-mini-2025-08-07 + - openai/gpt-5-mini + - openai/gpt-5-nano-2025-08-07 + - openai/gpt-5-nano + - openai/gpt-5-codex + - openai/gpt-5-pro-2025-10-06 + - openai/gpt-5-pro + - openai/gpt-5-search-api + - openai/gpt-5-search-api-2025-10-14 + - openai/gpt-5.1-chat-latest + - openai/gpt-5.1-2025-11-13 + - openai/gpt-5.1 + - openai/gpt-5.1-codex + - openai/gpt-5.1-codex-mini + - openai/gpt-5.1-codex-max + - openai/gpt-5.2-2025-12-11 + - openai/gpt-5.2 + - openai/gpt-5.2-pro-2025-12-11 + - openai/gpt-5.2-pro + - openai/gpt-5.2-chat-latest + - openai/gpt-3.5-turbo-16k + - openai/ft:gpt-3.5-turbo-0613:katanemo::8CMZbm0P + deepseek: + - deepseek/deepseek-chat + - deepseek/deepseek-reasoner + x-ai: + - x-ai/grok-2-vision-1212 + - x-ai/grok-3 + - x-ai/grok-3-mini + - x-ai/grok-4-0709 + - x-ai/grok-4-1-fast-non-reasoning + - x-ai/grok-4-1-fast-reasoning + - x-ai/grok-4-fast-non-reasoning + - x-ai/grok-4-fast-reasoning + - x-ai/grok-code-fast-1 + - x-ai/grok-imagine-image + - x-ai/grok-imagine-video + moonshotai: + - moonshotai/kimi-k2-thinking + - moonshotai/kimi-k2.5 + - moonshotai/moonshot-v1-128k-vision-preview + - moonshotai/moonshot-v1-8k + - moonshotai/kimi-k2-turbo-preview + - moonshotai/moonshot-v1-128k + - moonshotai/moonshot-v1-32k-vision-preview + - moonshotai/kimi-k2-thinking-turbo + - moonshotai/kimi-latest + - moonshotai/moonshot-v1-32k + - moonshotai/moonshot-v1-auto + - moonshotai/kimi-k2-0711-preview + - moonshotai/kimi-k2-0905-preview + - moonshotai/moonshot-v1-8k-vision-preview + anthropic: + - anthropic/claude-opus-4-6 + - anthropic/claude-opus-4-5-20251101 + - anthropic/claude-opus-4-5 + - anthropic/claude-haiku-4-5-20251001 + - anthropic/claude-haiku-4-5 + - anthropic/claude-sonnet-4-5-20250929 + - anthropic/claude-sonnet-4-5 + - anthropic/claude-opus-4-1-20250805 + - anthropic/claude-opus-4-1 + - anthropic/claude-opus-4-20250514 + - anthropic/claude-opus-4 + - anthropic/claude-sonnet-4-20250514 + - anthropic/claude-sonnet-4 + - anthropic/claude-3-7-sonnet-20250219 + - anthropic/claude-3-7-sonnet + - anthropic/claude-3-5-haiku-20241022 + - anthropic/claude-3-5-haiku + - anthropic/claude-3-haiku-20240307 + - anthropic/claude-3-haiku + google: + - google/gemini-2.5-flash + - google/gemini-2.5-pro + - google/gemini-2.0-flash + - google/gemini-2.0-flash-001 + - google/gemini-2.0-flash-exp-image-generation + - google/gemini-2.0-flash-lite-001 + - google/gemini-2.0-flash-lite + - google/gemini-exp-1206 + - google/gemini-2.5-flash-preview-tts + - google/gemini-2.5-pro-preview-tts + - google/gemma-3-1b-it + - google/gemma-3-4b-it + - google/gemma-3-12b-it + - google/gemma-3-27b-it + - google/gemma-3n-e4b-it + - google/gemma-3n-e2b-it + - google/gemini-flash-latest + - google/gemini-flash-lite-latest + - google/gemini-pro-latest + - google/gemini-2.5-flash-lite + - google/gemini-2.5-flash-image + - google/gemini-2.5-flash-preview-09-2025 + - google/gemini-2.5-flash-lite-preview-09-2025 + - google/gemini-3-pro-preview + - google/gemini-3-flash-preview + - google/gemini-3-pro-image-preview + - google/nano-banana-pro-preview + - google/gemini-robotics-er-1.5-preview + - google/gemini-2.5-computer-use-preview-10-2025 + - google/deep-research-pro-preview-12-2025 + amazon: + - amazon/amazon.nova-pro-v1:0 + - amazon/amazon.nova-2-lite-v1:0 + - amazon/amazon.nova-2-sonic-v1:0 + - amazon/amazon.titan-tg1-large + - amazon/amazon.nova-premier-v1:0:8k + - amazon/amazon.nova-premier-v1:0:20k + - amazon/amazon.nova-premier-v1:0:1000k + - amazon/amazon.nova-premier-v1:0:mm + - amazon/amazon.nova-premier-v1:0 + - amazon/amazon.nova-lite-v1:0 + - amazon/amazon.nova-micro-v1:0 qwen: + - qwen/qwen3-vl-flash-2026-01-22 - qwen/qwen3-max-2026-01-23 - qwen/qwen-plus-character - qwen/qwen-flash-character @@ -82,234 +294,13 @@ providers: - qwen/qwen-max - qwen/qwen-plus - qwen/qwen-turbo - openai: - - openai/gpt-4-0613 - - openai/gpt-4 - - openai/gpt-3.5-turbo - - openai/gpt-5.2-codex - - openai/gpt-3.5-turbo-instruct - - openai/gpt-3.5-turbo-instruct-0914 - - openai/gpt-4-1106-preview - - openai/gpt-3.5-turbo-1106 - - openai/gpt-4-0125-preview - - openai/gpt-4-turbo-preview - - openai/gpt-3.5-turbo-0125 - - openai/gpt-4-turbo - - openai/gpt-4-turbo-2024-04-09 - - openai/gpt-4o - - openai/gpt-4o-2024-05-13 - - openai/gpt-4o-mini-2024-07-18 - - openai/gpt-4o-mini - - openai/gpt-4o-2024-08-06 - - openai/chatgpt-4o-latest - - openai/o1-2024-12-17 - - openai/o1 - - openai/computer-use-preview - - openai/o3-mini - - openai/o3-mini-2025-01-31 - - openai/gpt-4o-2024-11-20 - - openai/computer-use-preview-2025-03-11 - - openai/gpt-4o-search-preview-2025-03-11 - - openai/gpt-4o-search-preview - - openai/gpt-4o-mini-search-preview-2025-03-11 - - openai/gpt-4o-mini-search-preview - - openai/o1-pro-2025-03-19 - - openai/o1-pro - - openai/o3-2025-04-16 - - openai/o4-mini-2025-04-16 - - openai/o3 - - openai/o4-mini - - openai/gpt-4.1-2025-04-14 - - openai/gpt-4.1 - - openai/gpt-4.1-mini-2025-04-14 - - openai/gpt-4.1-mini - - openai/gpt-4.1-nano-2025-04-14 - - openai/gpt-4.1-nano - - openai/codex-mini-latest - - openai/o3-pro - - openai/o3-pro-2025-06-10 - - openai/o4-mini-deep-research - - openai/o3-deep-research - - openai/o3-deep-research-2025-06-26 - - openai/o4-mini-deep-research-2025-06-26 - - openai/gpt-5-chat-latest - - openai/gpt-5-2025-08-07 - - openai/gpt-5 - - openai/gpt-5-mini-2025-08-07 - - openai/gpt-5-mini - - openai/gpt-5-nano-2025-08-07 - - openai/gpt-5-nano - - openai/gpt-5-codex - - openai/gpt-5-pro-2025-10-06 - - openai/gpt-5-pro - - openai/gpt-5-search-api - - openai/gpt-5-search-api-2025-10-14 - - openai/gpt-5.1-chat-latest - - openai/gpt-5.1-2025-11-13 - - openai/gpt-5.1 - - openai/gpt-5.1-codex - - openai/gpt-5.1-codex-mini - - openai/gpt-5.1-codex-max - - openai/gpt-5.2-2025-12-11 - - openai/gpt-5.2 - - openai/gpt-5.2-pro-2025-12-11 - - openai/gpt-5.2-pro - - openai/gpt-5.2-chat-latest - - openai/gpt-3.5-turbo-16k - - openai/ft:gpt-3.5-turbo-0613:katanemo::8CMZbm0P - google: - - google/gemini-2.5-flash - - google/gemini-2.5-pro - - google/gemini-2.0-flash-exp - - google/gemini-2.0-flash - - google/gemini-2.0-flash-001 - - google/gemini-2.0-flash-exp-image-generation - - google/gemini-2.0-flash-lite-001 - - google/gemini-2.0-flash-lite - - google/gemini-2.0-flash-lite-preview-02-05 - - google/gemini-2.0-flash-lite-preview - - google/gemini-exp-1206 - - google/gemini-2.5-flash-preview-tts - - google/gemini-2.5-pro-preview-tts - - google/gemma-3-1b-it - - google/gemma-3-4b-it - - google/gemma-3-12b-it - - google/gemma-3-27b-it - - google/gemma-3n-e4b-it - - google/gemma-3n-e2b-it - - google/gemini-flash-latest - - google/gemini-flash-lite-latest - - google/gemini-pro-latest - - google/gemini-2.5-flash-lite - - google/gemini-2.5-flash-image - - google/gemini-2.5-flash-preview-09-2025 - - google/gemini-2.5-flash-lite-preview-09-2025 - - google/gemini-3-pro-preview - - google/gemini-3-flash-preview - - google/gemini-3-pro-image-preview - - google/nano-banana-pro-preview - - google/gemini-robotics-er-1.5-preview - - google/gemini-2.5-computer-use-preview-10-2025 - - google/deep-research-pro-preview-12-2025 - mistralai: - - mistralai/mistral-medium-2505 - - mistralai/mistral-medium-2508 - - mistralai/mistral-medium-latest - - mistralai/mistral-medium - - mistralai/open-mistral-nemo - - mistralai/open-mistral-nemo-2407 - - mistralai/mistral-tiny-2407 - - mistralai/mistral-tiny-latest - - mistralai/mistral-large-2411 - - mistralai/pixtral-large-2411 - - mistralai/pixtral-large-latest - - mistralai/mistral-large-pixtral-2411 - - mistralai/codestral-2508 - - mistralai/codestral-latest - - mistralai/devstral-small-2507 - - mistralai/devstral-medium-2507 - - mistralai/devstral-2512 - - mistralai/mistral-vibe-cli-latest - - mistralai/devstral-medium-latest - - mistralai/devstral-latest - - mistralai/labs-devstral-small-2512 - - mistralai/devstral-small-latest - - mistralai/mistral-small-2506 - - mistralai/mistral-small-latest - - mistralai/labs-mistral-small-creative - - mistralai/magistral-medium-2509 - - mistralai/magistral-medium-latest - - mistralai/magistral-small-2509 - - mistralai/magistral-small-latest - - mistralai/mistral-large-2512 - - mistralai/mistral-large-latest - - mistralai/ministral-3b-2512 - - mistralai/ministral-3b-latest - - mistralai/ministral-8b-2512 - - mistralai/ministral-8b-latest - - mistralai/ministral-14b-2512 - - mistralai/ministral-14b-latest - - mistralai/open-mistral-7b - - mistralai/mistral-tiny - - mistralai/mistral-tiny-2312 - - mistralai/pixtral-12b-2409 - - mistralai/pixtral-12b - - mistralai/pixtral-12b-latest - - mistralai/ministral-3b-2410 - - mistralai/ministral-8b-2410 - - mistralai/codestral-2501 - - mistralai/codestral-2412 - - mistralai/codestral-2411-rc5 - - mistralai/mistral-small-2501 - - mistralai/mistral-embed-2312 - - mistralai/mistral-embed - - mistralai/codestral-embed - - mistralai/codestral-embed-2505 z-ai: - z-ai/glm-4.5 - z-ai/glm-4.5-air - z-ai/glm-4.6 - z-ai/glm-4.7 - amazon: - - amazon/amazon.nova-pro-v1:0 - - amazon/amazon.nova-2-lite-v1:0 - - amazon/amazon.nova-2-sonic-v1:0 - - amazon/amazon.titan-tg1-large - - amazon/amazon.nova-premier-v1:0:8k - - amazon/amazon.nova-premier-v1:0:20k - - amazon/amazon.nova-premier-v1:0:1000k - - amazon/amazon.nova-premier-v1:0:mm - - amazon/amazon.nova-premier-v1:0 - - amazon/amazon.nova-lite-v1:0 - - amazon/amazon.nova-micro-v1:0 - deepseek: - - deepseek/deepseek-chat - - deepseek/deepseek-reasoner - x-ai: - - x-ai/grok-2-vision-1212 - - x-ai/grok-3 - - x-ai/grok-3-mini - - x-ai/grok-4-0709 - - x-ai/grok-4-1-fast-non-reasoning - - x-ai/grok-4-1-fast-reasoning - - x-ai/grok-4-fast-non-reasoning - - x-ai/grok-4-fast-reasoning - - x-ai/grok-code-fast-1 - moonshotai: - - moonshotai/kimi-latest - - moonshotai/kimi-k2.5 - - moonshotai/moonshot-v1-8k-vision-preview - - moonshotai/kimi-k2-thinking - - moonshotai/moonshot-v1-auto - - moonshotai/kimi-k2-0711-preview - - moonshotai/moonshot-v1-32k - - moonshotai/kimi-k2-thinking-turbo - - moonshotai/kimi-k2-0905-preview - - moonshotai/moonshot-v1-128k - - moonshotai/moonshot-v1-32k-vision-preview - - moonshotai/moonshot-v1-128k-vision-preview - - moonshotai/kimi-k2-turbo-preview - - moonshotai/moonshot-v1-8k - anthropic: - - anthropic/claude-opus-4-5-20251101 - - anthropic/claude-opus-4-5 - - anthropic/claude-haiku-4-5-20251001 - - anthropic/claude-haiku-4-5 - - anthropic/claude-sonnet-4-5-20250929 - - anthropic/claude-sonnet-4-5 - - anthropic/claude-opus-4-1-20250805 - - anthropic/claude-opus-4-1 - - anthropic/claude-opus-4-20250514 - - anthropic/claude-opus-4 - - anthropic/claude-sonnet-4-20250514 - - anthropic/claude-sonnet-4 - - anthropic/claude-3-7-sonnet-20250219 - - anthropic/claude-3-7-sonnet - - anthropic/claude-3-5-haiku-20241022 - - anthropic/claude-3-5-haiku - - anthropic/claude-3-haiku-20240307 - - anthropic/claude-3-haiku + - z-ai/glm-5 metadata: total_providers: 10 - total_models: 298 - last_updated: 2026-01-27T22:40:53.653700+00:00 + total_models: 289 + last_updated: 2026-02-13T22:44:30.413065+00:00 From ba651aaf7129e2de977ca72dd40486d5e092a26f Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Fri, 13 Feb 2026 15:16:56 -0800 Subject: [PATCH 03/18] Rename all arch references to plano (#745) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rename all arch references to plano across the codebase Complete rebrand from "Arch"/"archgw" to "Plano" including: - Config files: arch_config_schema.yaml, workflow, demo configs - Environment variables: ARCH_CONFIG_* → PLANO_CONFIG_* - Python CLI: variables, functions, file paths, docker mounts - Rust crates: config paths, log messages, metadata keys - Docker/build: Dockerfile, supervisord, .dockerignore, .gitignore - Docker Compose: volume mounts and env vars across all demos/tests - GitHub workflows: job/step names - Shell scripts: log messages - Demos: Python code, READMEs, VS Code configs, Grafana dashboard - Docs: RST includes, code comments, config references - Package metadata: package.json, pyproject.toml, uv.lock External URLs (docs.archgw.com, github.com/katanemo/archgw) left as-is. Co-Authored-By: Claude Opus 4.6 * Update remaining arch references in docs - Rename RST cross-reference labels: arch_access_logging, arch_overview_tracing, arch_overview_threading → plano_* - Update label references in request_lifecycle.rst - Rename arch_config_state_storage_example.yaml → plano_config_state_storage_example.yaml - Update config YAML comments: "Arch creates/uses" → "Plano creates/uses" - Update "the Arch gateway" → "the Plano gateway" in configuration_reference.rst - Update arch_config_schema.yaml reference in provider_models.py - Rename arch_agent_router → plano_agent_router in config example Co-Authored-By: Claude Opus 4.6 * Fix remaining arch references found in second pass - config/docker-compose.dev.yaml: ARCH_CONFIG_FILE → PLANO_CONFIG_FILE, arch_config.yaml → plano_config.yaml, archgw_logs → plano_logs - config/test_passthrough.yaml: container mount path - tests/e2e/docker-compose.yaml: source file path (was still arch_config.yaml) - cli/planoai/core.py: comment and log message - crates/brightstaff/src/tracing/constants.rs: doc comment - tests/{e2e,archgw}/common.py: get_arch_messages → get_plano_messages, arch_state/arch_messages variables renamed - tests/{e2e,archgw}/test_prompt_gateway.py: updated imports and usages - demos/shared/test_runner/{common,test_demos}.py: same renames - tests/e2e/test_model_alias_routing.py: docstring - .dockerignore: archgw_modelserver → plano_modelserver - demos/use_cases/claude_code_router/pretty_model_resolution.sh: container name Note: x-arch-* HTTP header values and Rust constant names intentionally preserved for backwards compatibility with existing deployments. Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- .dockerignore | 6 +- .github/workflows/e2e_plano_tests.yml | 2 +- .../workflows/e2e_test_currency_convert.yml | 2 +- .../e2e_test_preference_based_routing.yml | 4 +- ...h_config.yml => validate_plano_config.yml} | 8 +- .gitignore | 14 +-- CLAUDE.md | 2 +- Dockerfile | 2 +- apps/www/src/lib/metadata.ts | 3 +- cli/planoai/config_generator.py | 72 +++++------ cli/planoai/core.py | 38 +++--- cli/planoai/docker_cli.py | 8 +- cli/planoai/main.py | 56 ++++----- cli/planoai/utils.py | 46 +++---- cli/test/test_config_generator.py | 112 +++++++++--------- cli/uv.lock | 2 +- config/docker-compose.dev.yaml | 6 +- config/envoy.template.yaml | 34 +++--- ...g_schema.yaml => plano_config_schema.yaml} | 0 config/supervisord.conf | 4 +- config/test_passthrough.yaml | 2 +- config/validate_plano_config.sh | 4 +- crates/brightstaff/src/handlers/llm.rs | 4 +- .../brightstaff/src/handlers/router_chat.rs | 2 +- crates/brightstaff/src/main.rs | 38 +++--- crates/brightstaff/src/tracing/constants.rs | 10 +- crates/common/src/configuration.rs | 4 +- crates/llm_gateway/src/stream_context.rs | 2 +- crates/prompt_gateway/src/http_context.rs | 2 +- crates/prompt_gateway/src/stream_context.rs | 4 +- .../docker-compose.yaml | 2 +- .../currency_exchange/README.md | 2 +- .../currency_exchange/docker-compose.yaml | 2 +- .../multi_turn_rag_agent/README.md | 4 +- .../multi_turn_rag_agent/docker-compose.yaml | 2 +- .../multi_turn_rag_agent/run_demo.sh | 8 +- .../stock_quote/docker-compose.yaml | 2 +- demos/samples_python/stock_quote/run_demo.sh | 8 +- .../samples_python/weather_forecast/README.md | 8 +- .../docker-compose-honeycomb.yaml | 2 +- .../docker-compose-jaeger.yaml | 2 +- .../docker-compose-logfire.yaml | 2 +- .../docker-compose-signoz.yaml | 2 +- .../weather_forecast/docker-compose.yaml | 2 +- .../weather_forecast/run_demo.sh | 8 +- demos/shared/chatbot_ui/.vscode/launch.json | 4 +- demos/shared/chatbot_ui/common.py | 10 +- .../grafana/dashboards/envoy_overview.json | 2 +- demos/shared/test_runner/common.py | 22 ++-- demos/shared/test_runner/test_demos.py | 10 +- demos/use_cases/claude_code_router/README.md | 16 +-- .../pretty_model_resolution.sh | 4 +- .../use_cases/http_filter/docker-compose.yaml | 4 +- .../src/rag_agent/context_builder.py | 14 +-- .../http_filter/src/rag_agent/input_guards.py | 12 +- .../src/rag_agent/query_rewriter.py | 16 +-- .../http_filter/src/rag_agent/rag_agent.py | 14 +-- demos/use_cases/llm_routing/README.md | 12 +- .../use_cases/llm_routing/docker-compose.yaml | 4 +- demos/use_cases/llm_routing/run_demo.sh | 8 +- .../use_cases/mcp_filter/docker-compose.yaml | 4 +- .../src/rag_agent/context_builder.py | 14 +-- .../mcp_filter/src/rag_agent/input_guards.py | 12 +- .../src/rag_agent/query_rewriter.py | 22 ++-- .../mcp_filter/src/rag_agent/rag_agent.py | 14 +-- demos/use_cases/model_alias_routing/README.md | 10 +- .../use_cases/model_alias_routing/run_demo.sh | 10 +- .../model_choice_with_test_harness/README.md | 6 +- .../model_choice_with_test_harness/bench.py | 2 +- ...es.yaml => plano_config_with_aliases.yaml} | 0 .../pyproject.toml | 2 +- .../run_demo.sh | 10 +- .../docker-compose.yaml | 4 +- demos/use_cases/ollama/docker-compose.yaml | 2 +- .../ollama/docker-compose_honeycomb.yaml | 2 +- demos/use_cases/ollama/run_demo.sh | 8 +- .../preference_based_routing/README.md | 2 +- .../docker-compose.yaml | 4 +- ...fig_local.yaml => plano_config_local.yaml} | 0 demos/use_cases/spotify_bearer_auth/README.md | 4 +- .../spotify_bearer_auth/docker-compose.yaml | 2 +- .../use_cases/spotify_bearer_auth/run_demo.sh | 8 +- .../travel_agents/docker-compose.yaml | 4 +- docs/source/_ext/provider_models.py | 2 +- .../agent/function-calling-agent.yaml | 2 +- .../concepts/includes/plano_config.yaml | 4 +- .../llm_providers/client_libraries.rst | 4 +- docs/source/concepts/prompt_target.rst | 8 +- docs/source/guides/includes/config.yaml | 4 +- .../guides/observability/access_logging.rst | 2 +- docs/source/guides/observability/tracing.rst | 2 +- docs/source/guides/state.rst | 2 +- .../resources/configuration_reference.rst | 6 +- .../includes/plano_config_agents_filters.yaml | 2 +- ....yaml => plano_config_full_reference.yaml} | 2 +- ...plano_config_full_reference_rendered.yaml} | 0 ...> plano_config_state_storage_example.yaml} | 0 .../tech_overview/request_lifecycle.rst | 6 +- .../tech_overview/threading_model.rst | 2 +- package-lock.json | 4 +- package.json | 2 +- tests/archgw/common.py | 22 ++-- tests/archgw/docker-compose.yaml | 2 +- tests/archgw/pyproject.toml | 4 +- tests/archgw/test_prompt_gateway.py | 10 +- tests/archgw/uv.lock | 2 +- tests/e2e/README.md | 6 +- tests/e2e/common.py | 22 ++-- tests/e2e/docker-compose.yaml | 2 +- tests/e2e/run_e2e_tests.sh | 10 +- tests/e2e/run_model_alias_tests.sh | 2 +- tests/e2e/run_prompt_gateway_tests.sh | 2 +- tests/e2e/run_responses_state_tests.sh | 2 +- tests/e2e/test_model_alias_routing.py | 2 +- tests/e2e/test_prompt_gateway.py | 20 ++-- 115 files changed, 504 insertions(+), 505 deletions(-) rename .github/workflows/{validate_arch_config.yml => validate_plano_config.yml} (79%) rename config/{arch_config_schema.yaml => plano_config_schema.yaml} (100%) rename demos/use_cases/model_choice_with_test_harness/{arch_config_with_aliases.yaml => plano_config_with_aliases.yaml} (100%) rename demos/use_cases/preference_based_routing/{arch_config_local.yaml => plano_config_local.yaml} (100%) rename docs/source/resources/includes/{arch_config_full_reference.yaml => plano_config_full_reference.yaml} (98%) rename docs/source/resources/includes/{arch_config_full_reference_rendered.yaml => plano_config_full_reference_rendered.yaml} (100%) rename docs/source/resources/includes/{arch_config_state_storage_example.yaml => plano_config_state_storage_example.yaml} (100%) diff --git a/.dockerignore b/.dockerignore index 2b97ce1f..ad3fa1a4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -33,8 +33,8 @@ cli/__pycache__/ cli/planoai/__pycache__/ # Python model server -archgw_modelserver/ -arch_tools/ +plano_modelserver/ +plano_tools/ # Misc *.md @@ -44,4 +44,4 @@ turbo.json package.json *.sh !cli/build_cli.sh -arch_config.yaml_rendered +plano_config.yaml_rendered diff --git a/.github/workflows/e2e_plano_tests.yml b/.github/workflows/e2e_plano_tests.yml index f1ca76fc..82a52fee 100644 --- a/.github/workflows/e2e_plano_tests.yml +++ b/.github/workflows/e2e_plano_tests.yml @@ -28,7 +28,7 @@ jobs: python-version: ${{ matrix.python-version }} cache: "pip" # auto-caches based on requirements files - - name: build arch docker image + - name: build plano docker image run: | cd ../../ && docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.6 -t katanemo/plano:latest diff --git a/.github/workflows/e2e_test_currency_convert.yml b/.github/workflows/e2e_test_currency_convert.yml index 0b8dd43c..9788bc52 100644 --- a/.github/workflows/e2e_test_currency_convert.yml +++ b/.github/workflows/e2e_test_currency_convert.yml @@ -38,7 +38,7 @@ jobs: curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/4.0.0/hurl_4.0.0_amd64.deb sudo dpkg -i hurl_4.0.0_amd64.deb - - name: install arch gateway and test dependencies + - name: install plano gateway and test dependencies run: | source venv/bin/activate cd cli && echo "installing plano cli" && uv sync && uv tool install . diff --git a/.github/workflows/e2e_test_preference_based_routing.yml b/.github/workflows/e2e_test_preference_based_routing.yml index 9bb7f206..59866592 100644 --- a/.github/workflows/e2e_test_preference_based_routing.yml +++ b/.github/workflows/e2e_test_preference_based_routing.yml @@ -22,7 +22,7 @@ jobs: with: python-version: "3.12" - - name: build arch docker image + - name: build plano docker image run: | docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.6 @@ -38,7 +38,7 @@ jobs: curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/4.0.0/hurl_4.0.0_amd64.deb sudo dpkg -i hurl_4.0.0_amd64.deb - - name: install arch gateway and test dependencies + - name: install plano gateway and test dependencies run: | source venv/bin/activate cd cli && echo "installing plano cli" && uv sync && uv tool install . diff --git a/.github/workflows/validate_arch_config.yml b/.github/workflows/validate_plano_config.yml similarity index 79% rename from .github/workflows/validate_arch_config.yml rename to .github/workflows/validate_plano_config.yml index 2b8230e1..47f2499d 100644 --- a/.github/workflows/validate_arch_config.yml +++ b/.github/workflows/validate_plano_config.yml @@ -1,4 +1,4 @@ -name: arch config tests +name: plano config tests on: push: @@ -7,7 +7,7 @@ on: pull_request: jobs: - validate_arch_config: + validate_plano_config: runs-on: ubuntu-latest defaults: run: @@ -22,10 +22,10 @@ jobs: with: python-version: "3.12" - - name: build arch docker image + - name: build plano docker image run: | docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.6 - - name: validate arch config + - name: validate plano config run: | bash config/validate_plano_config.sh diff --git a/.gitignore b/.gitignore index c17af8c4..795fcad0 100644 --- a/.gitignore +++ b/.gitignore @@ -107,30 +107,30 @@ venv.bak/ # ========================================= -# Arch +# Plano cli/config cli/build -# Archgw - Docs +# Plano - Docs docs/build/ -# Archgw - Demos +# Plano - Demos demos/function_calling/ollama/models/ demos/function_calling/ollama/id_ed* demos/function_calling/open-webui/ demos/function_calling/open-webui/ demos/shared/signoz/data -# Arch - Miscellaneous +# Plano - Miscellaneous grafana-data prom_data -arch_log/ -arch_logs/ +plano_log/ +plano_logs/ crates/*/target/ crates/target/ build.log -archgw.log +plano.log # Next.js / Turborepo .next/ diff --git a/CLAUDE.md b/CLAUDE.md index 3af57409..9f431033 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -96,7 +96,7 @@ Entry point: `cli/planoai/main.py`. Container lifecycle in `core.py`. Docker ope ### Configuration System (config/) -- `arch_config_schema.yaml` — JSON Schema (draft-07) for validating user config files +- `plano_config_schema.yaml` — JSON Schema (draft-07) for validating user config files - `envoy.template.yaml` — Jinja2 template rendered into Envoy proxy config - `supervisord.conf` — Process supervisor for Envoy + brightstaff in the container diff --git a/Dockerfile b/Dockerfile index 038286dd..c6f9b7ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -69,7 +69,7 @@ RUN uv run pip install --no-cache-dir . COPY cli/planoai planoai/ COPY config/envoy.template.yaml . -COPY config/arch_config_schema.yaml . +COPY config/plano_config_schema.yaml . COPY config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY --from=wasm-builder /arch/target/wasm32-wasip1/release/prompt_gateway.wasm /etc/envoy/proxy-wasm-plugins/prompt_gateway.wasm diff --git a/apps/www/src/lib/metadata.ts b/apps/www/src/lib/metadata.ts index 7f608e00..b7653b9c 100644 --- a/apps/www/src/lib/metadata.ts +++ b/apps/www/src/lib/metadata.ts @@ -115,7 +115,6 @@ export const siteConfig = { // Brand (minimal, necessary) "Plano AI", "Plano gateway", - "Arch gateway", ], authors: [{ name: "Katanemo", url: "https://github.com/katanemo/plano" }], creator: "Katanemo", @@ -240,7 +239,7 @@ export const pageMetadata = { "agentic AI", "Plano blog", "Plano blog posts", - "Arch gateway blog", + "Plano gateway blog", ], }), diff --git a/cli/planoai/config_generator.py b/cli/planoai/config_generator.py index 27768546..8354b8dc 100644 --- a/cli/planoai/config_generator.py +++ b/cli/planoai/config_generator.py @@ -53,34 +53,34 @@ def validate_and_render_schema(): ENVOY_CONFIG_TEMPLATE_FILE = os.getenv( "ENVOY_CONFIG_TEMPLATE_FILE", "envoy.template.yaml" ) - ARCH_CONFIG_FILE = os.getenv("ARCH_CONFIG_FILE", "/app/arch_config.yaml") - ARCH_CONFIG_FILE_RENDERED = os.getenv( - "ARCH_CONFIG_FILE_RENDERED", "/app/arch_config_rendered.yaml" + PLANO_CONFIG_FILE = os.getenv("PLANO_CONFIG_FILE", "/app/plano_config.yaml") + PLANO_CONFIG_FILE_RENDERED = os.getenv( + "PLANO_CONFIG_FILE_RENDERED", "/app/plano_config_rendered.yaml" ) ENVOY_CONFIG_FILE_RENDERED = os.getenv( "ENVOY_CONFIG_FILE_RENDERED", "/etc/envoy/envoy.yaml" ) - ARCH_CONFIG_SCHEMA_FILE = os.getenv( - "ARCH_CONFIG_SCHEMA_FILE", "arch_config_schema.yaml" + PLANO_CONFIG_SCHEMA_FILE = os.getenv( + "PLANO_CONFIG_SCHEMA_FILE", "plano_config_schema.yaml" ) env = Environment(loader=FileSystemLoader(os.getenv("TEMPLATE_ROOT", "./"))) template = env.get_template(ENVOY_CONFIG_TEMPLATE_FILE) try: - validate_prompt_config(ARCH_CONFIG_FILE, ARCH_CONFIG_SCHEMA_FILE) + validate_prompt_config(PLANO_CONFIG_FILE, PLANO_CONFIG_SCHEMA_FILE) except Exception as e: print(str(e)) exit(1) # validate_prompt_config failed. Exit - with open(ARCH_CONFIG_FILE, "r") as file: - arch_config = file.read() + with open(PLANO_CONFIG_FILE, "r") as file: + plano_config = file.read() - with open(ARCH_CONFIG_SCHEMA_FILE, "r") as file: - arch_config_schema = file.read() + with open(PLANO_CONFIG_SCHEMA_FILE, "r") as file: + plano_config_schema = file.read() - config_yaml = yaml.safe_load(arch_config) - _ = yaml.safe_load(arch_config_schema) + config_yaml = yaml.safe_load(plano_config) + _ = yaml.safe_load(plano_config_schema) inferred_clusters = {} # Convert legacy llm_providers to model_providers @@ -145,7 +145,7 @@ def validate_and_render_schema(): inferred_clusters[name]["port"], ) = get_endpoint_and_port(endpoint, protocol) - print("defined clusters from arch_config.yaml: ", json.dumps(inferred_clusters)) + print("defined clusters from plano_config.yaml: ", json.dumps(inferred_clusters)) if "prompt_targets" in config_yaml: for prompt_target in config_yaml["prompt_targets"]: @@ -154,13 +154,13 @@ def validate_and_render_schema(): continue if name not in inferred_clusters: raise Exception( - f"Unknown endpoint {name}, please add it in endpoints section in your arch_config.yaml file" + f"Unknown endpoint {name}, please add it in endpoints section in your plano_config.yaml file" ) - arch_tracing = config_yaml.get("tracing", {}) + plano_tracing = config_yaml.get("tracing", {}) # Resolution order: config yaml > OTEL_TRACING_GRPC_ENDPOINT env var > hardcoded default - opentracing_grpc_endpoint = arch_tracing.get( + opentracing_grpc_endpoint = plano_tracing.get( "opentracing_grpc_endpoint", os.environ.get( "OTEL_TRACING_GRPC_ENDPOINT", DEFAULT_OTEL_TRACING_GRPC_ENDPOINT @@ -172,7 +172,7 @@ def validate_and_render_schema(): print( f"Resolved opentracing_grpc_endpoint to {opentracing_grpc_endpoint} after expanding environment variables" ) - arch_tracing["opentracing_grpc_endpoint"] = opentracing_grpc_endpoint + plano_tracing["opentracing_grpc_endpoint"] = opentracing_grpc_endpoint # ensure that opentracing_grpc_endpoint is a valid URL if present and start with http and must not have any path if opentracing_grpc_endpoint: urlparse_result = urlparse(opentracing_grpc_endpoint) @@ -436,8 +436,8 @@ def validate_and_render_schema(): f"Model alias 2 - '{alias_name}' targets '{target}' which is not defined as a model. Available models: {', '.join(sorted(model_name_keys))}" ) - arch_config_string = yaml.dump(config_yaml) - arch_llm_config_string = yaml.dump(config_yaml) + plano_config_string = yaml.dump(config_yaml) + plano_llm_config_string = yaml.dump(config_yaml) use_agent_orchestrator = config_yaml.get("overrides", {}).get( "use_agent_orchestrator", False @@ -449,11 +449,11 @@ def validate_and_render_schema(): if len(endpoints) == 0: raise Exception( - "Please provide agent orchestrator in the endpoints section in your arch_config.yaml file" + "Please provide agent orchestrator in the endpoints section in your plano_config.yaml file" ) elif len(endpoints) > 1: raise Exception( - "Please provide single agent orchestrator in the endpoints section in your arch_config.yaml file" + "Please provide single agent orchestrator in the endpoints section in your plano_config.yaml file" ) else: agent_orchestrator = list(endpoints.keys())[0] @@ -463,11 +463,11 @@ def validate_and_render_schema(): data = { "prompt_gateway_listener": prompt_gateway, "llm_gateway_listener": llm_gateway, - "arch_config": arch_config_string, - "arch_llm_config": arch_llm_config_string, - "arch_clusters": inferred_clusters, - "arch_model_providers": updated_model_providers, - "arch_tracing": arch_tracing, + "plano_config": plano_config_string, + "plano_llm_config": plano_llm_config_string, + "plano_clusters": inferred_clusters, + "plano_model_providers": updated_model_providers, + "plano_tracing": plano_tracing, "local_llms": llms_with_endpoint, "agent_orchestrator": agent_orchestrator, "listeners": listeners, @@ -479,25 +479,25 @@ def validate_and_render_schema(): with open(ENVOY_CONFIG_FILE_RENDERED, "w") as file: file.write(rendered) - with open(ARCH_CONFIG_FILE_RENDERED, "w") as file: - file.write(arch_config_string) + with open(PLANO_CONFIG_FILE_RENDERED, "w") as file: + file.write(plano_config_string) -def validate_prompt_config(arch_config_file, arch_config_schema_file): - with open(arch_config_file, "r") as file: - arch_config = file.read() +def validate_prompt_config(plano_config_file, plano_config_schema_file): + with open(plano_config_file, "r") as file: + plano_config = file.read() - with open(arch_config_schema_file, "r") as file: - arch_config_schema = file.read() + with open(plano_config_schema_file, "r") as file: + plano_config_schema = file.read() - config_yaml = yaml.safe_load(arch_config) - config_schema_yaml = yaml.safe_load(arch_config_schema) + config_yaml = yaml.safe_load(plano_config) + config_schema_yaml = yaml.safe_load(plano_config_schema) try: validate(config_yaml, config_schema_yaml) except Exception as e: print( - f"Error validating arch_config file: {arch_config_file}, schema file: {arch_config_schema_file}, error: {e}" + f"Error validating plano_config file: {plano_config_file}, schema file: {plano_config_schema_file}, error: {e}" ) raise e diff --git a/cli/planoai/core.py b/cli/planoai/core.py index 670f2e0d..b7195f46 100644 --- a/cli/planoai/core.py +++ b/cli/planoai/core.py @@ -24,17 +24,17 @@ from planoai.docker_cli import ( log = getLogger(__name__) -def _get_gateway_ports(arch_config_file: str) -> list[int]: +def _get_gateway_ports(plano_config_file: str) -> list[int]: PROMPT_GATEWAY_DEFAULT_PORT = 10000 LLM_GATEWAY_DEFAULT_PORT = 12000 - # parse arch_config_file yaml file and get prompt_gateway_port - arch_config_dict = {} - with open(arch_config_file) as f: - arch_config_dict = yaml.safe_load(f) + # parse plano_config_file yaml file and get prompt_gateway_port + plano_config_dict = {} + with open(plano_config_file) as f: + plano_config_dict = yaml.safe_load(f) listeners, _, _ = convert_legacy_listeners( - arch_config_dict.get("listeners"), arch_config_dict.get("llm_providers") + plano_config_dict.get("listeners"), plano_config_dict.get("llm_providers") ) all_ports = [listener.get("port") for listener in listeners] @@ -45,7 +45,7 @@ def _get_gateway_ports(arch_config_file: str) -> list[int]: return all_ports -def start_arch(arch_config_file, env, log_timeout=120, foreground=False): +def start_plano(plano_config_file, env, log_timeout=120, foreground=False): """ Start Docker Compose in detached mode and stream logs until services are healthy. @@ -54,7 +54,7 @@ def start_arch(arch_config_file, env, log_timeout=120, foreground=False): log_timeout (int): Time in seconds to show logs before checking for healthy state. """ log.info( - f"Starting arch gateway, image name: {PLANO_DOCKER_NAME}, tag: {PLANO_DOCKER_IMAGE}" + f"Starting plano gateway, image name: {PLANO_DOCKER_NAME}, tag: {PLANO_DOCKER_IMAGE}" ) try: @@ -64,10 +64,10 @@ def start_arch(arch_config_file, env, log_timeout=120, foreground=False): docker_stop_container(PLANO_DOCKER_NAME) docker_remove_container(PLANO_DOCKER_NAME) - gateway_ports = _get_gateway_ports(arch_config_file) + gateway_ports = _get_gateway_ports(plano_config_file) return_code, _, plano_stderr = docker_start_plano_detached( - arch_config_file, + plano_config_file, env, gateway_ports, ) @@ -117,7 +117,7 @@ def start_arch(arch_config_file, env, log_timeout=120, foreground=False): stream_gateway_logs(follow=True) except KeyboardInterrupt: - log.info("Keyboard interrupt received, stopping arch gateway service.") + log.info("Keyboard interrupt received, stopping plano gateway service.") stop_docker_container() @@ -144,15 +144,15 @@ def stop_docker_container(service=PLANO_DOCKER_NAME): log.info(f"Failed to shut down services: {str(e)}") -def start_cli_agent(arch_config_file=None, settings_json="{}"): +def start_cli_agent(plano_config_file=None, settings_json="{}"): """Start a CLI client connected to Plano.""" - with open(arch_config_file, "r") as file: - arch_config = file.read() - arch_config_yaml = yaml.safe_load(arch_config) + with open(plano_config_file, "r") as file: + plano_config = file.read() + plano_config_yaml = yaml.safe_load(plano_config) # Get egress listener configuration - egress_config = arch_config_yaml.get("listeners", {}).get("egress_traffic", {}) + egress_config = plano_config_yaml.get("listeners", {}).get("egress_traffic", {}) host = egress_config.get("host", "127.0.0.1") port = egress_config.get("port", 12000) @@ -167,7 +167,7 @@ def start_cli_agent(arch_config_file=None, settings_json="{}"): env = os.environ.copy() env.update( { - "ANTHROPIC_AUTH_TOKEN": "test", # Use test token for arch + "ANTHROPIC_AUTH_TOKEN": "test", # Use test token for plano "ANTHROPIC_API_KEY": "", "ANTHROPIC_BASE_URL": f"http://{host}:{port}", "NO_PROXY": host, @@ -184,7 +184,7 @@ def start_cli_agent(arch_config_file=None, settings_json="{}"): ] else: # Check if arch.claude.code.small.fast alias exists in model_aliases - model_aliases = arch_config_yaml.get("model_aliases", {}) + model_aliases = plano_config_yaml.get("model_aliases", {}) if "arch.claude.code.small.fast" in model_aliases: env["ANTHROPIC_SMALL_FAST_MODEL"] = "arch.claude.code.small.fast" else: @@ -220,7 +220,7 @@ def start_cli_agent(arch_config_file=None, settings_json="{}"): # Use claude from PATH claude_path = "claude" - log.info(f"Connecting Claude Code Agent to Arch at {host}:{port}") + log.info(f"Connecting Claude Code Agent to Plano at {host}:{port}") try: subprocess.run([claude_path] + claude_args, env=env, check=True) diff --git a/cli/planoai/docker_cli.py b/cli/planoai/docker_cli.py index 0e0bc2d7..f691cfb4 100644 --- a/cli/planoai/docker_cli.py +++ b/cli/planoai/docker_cli.py @@ -41,7 +41,7 @@ def docker_remove_container(container: str) -> str: def docker_start_plano_detached( - arch_config_file: str, + plano_config_file: str, env: dict, gateway_ports: list[int], ) -> str: @@ -58,7 +58,7 @@ def docker_start_plano_detached( port_mappings_args = [item for port in port_mappings for item in ("-p", port)] volume_mappings = [ - f"{arch_config_file}:/app/arch_config.yaml:ro", + f"{plano_config_file}:/app/plano_config.yaml:ro", ] volume_mappings_args = [ item for volume in volume_mappings for item in ("-v", volume) @@ -115,7 +115,7 @@ def stream_gateway_logs(follow, service="plano"): log.info(f"Failed to stream logs: {str(e)}") -def docker_validate_plano_schema(arch_config_file): +def docker_validate_plano_schema(plano_config_file): import os env = os.environ.copy() @@ -129,7 +129,7 @@ def docker_validate_plano_schema(arch_config_file): "--rm", *env_args, "-v", - f"{arch_config_file}:/app/arch_config.yaml:ro", + f"{plano_config_file}:/app/plano_config.yaml:ro", "--entrypoint", "python", PLANO_DOCKER_IMAGE, diff --git a/cli/planoai/main.py b/cli/planoai/main.py index ac0fb019..05296df2 100644 --- a/cli/planoai/main.py +++ b/cli/planoai/main.py @@ -22,7 +22,7 @@ from planoai.utils import ( find_repo_root, ) from planoai.core import ( - start_arch, + start_plano, stop_docker_container, start_cli_agent, ) @@ -200,12 +200,12 @@ def up(file, path, foreground, with_tracing, tracing_port): _print_cli_header(console) # Use the utility function to find config file - arch_config_file = find_config_file(path, file) + plano_config_file = find_config_file(path, file) # Check if the file exists - if not os.path.exists(arch_config_file): + if not os.path.exists(plano_config_file): console.print( - f"[red]✗[/red] Config file not found: [dim]{arch_config_file}[/dim]" + f"[red]✗[/red] Config file not found: [dim]{plano_config_file}[/dim]" ) sys.exit(1) @@ -216,7 +216,7 @@ def up(file, path, foreground, with_tracing, tracing_port): validation_return_code, _, validation_stderr, - ) = docker_validate_plano_schema(arch_config_file) + ) = docker_validate_plano_schema(plano_config_file) if validation_return_code != 0: console.print(f"[red]✗[/red] Validation failed") @@ -234,7 +234,7 @@ def up(file, path, foreground, with_tracing, tracing_port): env.pop("PATH", None) # Check access keys - access_keys = get_llm_provider_access_keys(arch_config_file=arch_config_file) + access_keys = get_llm_provider_access_keys(plano_config_file=plano_config_file) access_keys = set(access_keys) access_keys = [item[1:] if item.startswith("$") else item for item in access_keys] @@ -302,7 +302,7 @@ def up(file, path, foreground, with_tracing, tracing_port): env.update(env_stage) try: - start_arch(arch_config_file, env, foreground=foreground) + start_plano(plano_config_file, env, foreground=foreground) # When tracing is enabled but --foreground is not, keep the process # alive so the OTLP collector continues to receive spans. @@ -363,35 +363,35 @@ def generate_prompt_targets(file): def logs(debug, follow): """Stream logs from access logs services.""" - archgw_process = None + plano_process = None try: if debug: - archgw_process = multiprocessing.Process( + plano_process = multiprocessing.Process( target=stream_gateway_logs, args=(follow,) ) - archgw_process.start() + plano_process.start() - archgw_access_logs_process = multiprocessing.Process( + plano_access_logs_process = multiprocessing.Process( target=stream_access_logs, args=(follow,) ) - archgw_access_logs_process.start() - archgw_access_logs_process.join() + plano_access_logs_process.start() + plano_access_logs_process.join() - if archgw_process: - archgw_process.join() + if plano_process: + plano_process.join() except KeyboardInterrupt: log.info("KeyboardInterrupt detected. Exiting.") - if archgw_access_logs_process.is_alive(): - archgw_access_logs_process.terminate() - if archgw_process and archgw_process.is_alive(): - archgw_process.terminate() + if plano_access_logs_process.is_alive(): + plano_access_logs_process.terminate() + if plano_process and plano_process.is_alive(): + plano_process.terminate() @click.command() @click.argument("type", type=click.Choice(["claude"]), required=True) @click.argument("file", required=False) # Optional file argument @click.option( - "--path", default=".", help="Path to the directory containing arch_config.yaml" + "--path", default=".", help="Path to the directory containing plano_config.yaml" ) @click.option( "--settings", @@ -405,20 +405,20 @@ def cli_agent(type, file, path, settings): """ # Check if plano docker container is running - archgw_status = docker_container_status(PLANO_DOCKER_NAME) - if archgw_status != "running": - log.error(f"plano docker container is not running (status: {archgw_status})") + plano_status = docker_container_status(PLANO_DOCKER_NAME) + if plano_status != "running": + log.error(f"plano docker container is not running (status: {plano_status})") log.error("Please start plano using the 'planoai up' command.") sys.exit(1) - # Determine arch_config.yaml path - arch_config_file = find_config_file(path, file) - if not os.path.exists(arch_config_file): - log.error(f"Config file not found: {arch_config_file}") + # Determine plano_config.yaml path + plano_config_file = find_config_file(path, file) + if not os.path.exists(plano_config_file): + log.error(f"Config file not found: {plano_config_file}") sys.exit(1) try: - start_cli_agent(arch_config_file, settings) + start_cli_agent(plano_config_file, settings) except SystemExit: # Re-raise SystemExit to preserve exit codes raise diff --git a/cli/planoai/utils.py b/cli/planoai/utils.py index d55774f4..2ffe7b58 100644 --- a/cli/planoai/utils.py +++ b/cli/planoai/utils.py @@ -68,19 +68,19 @@ def find_repo_root(start_path=None): return None -def has_ingress_listener(arch_config_file): - """Check if the arch config file has ingress_traffic listener configured.""" +def has_ingress_listener(plano_config_file): + """Check if the plano config file has ingress_traffic listener configured.""" try: - with open(arch_config_file) as f: - arch_config_dict = yaml.safe_load(f) + with open(plano_config_file) as f: + plano_config_dict = yaml.safe_load(f) - ingress_traffic = arch_config_dict.get("listeners", {}).get( + ingress_traffic = plano_config_dict.get("listeners", {}).get( "ingress_traffic", {} ) return bool(ingress_traffic) except Exception as e: - log.error(f"Error reading config file {arch_config_file}: {e}") + log.error(f"Error reading config file {plano_config_file}: {e}") return False @@ -161,27 +161,27 @@ def convert_legacy_listeners( return listeners, llm_gateway_listener, prompt_gateway_listener -def get_llm_provider_access_keys(arch_config_file): - with open(arch_config_file, "r") as file: - arch_config = file.read() - arch_config_yaml = yaml.safe_load(arch_config) +def get_llm_provider_access_keys(plano_config_file): + with open(plano_config_file, "r") as file: + plano_config = file.read() + plano_config_yaml = yaml.safe_load(plano_config) access_key_list = [] # Convert legacy llm_providers to model_providers - if "llm_providers" in arch_config_yaml: - if "model_providers" in arch_config_yaml: + if "llm_providers" in plano_config_yaml: + if "model_providers" in plano_config_yaml: raise Exception( "Please provide either llm_providers or model_providers, not both. llm_providers is deprecated, please use model_providers instead" ) - arch_config_yaml["model_providers"] = arch_config_yaml["llm_providers"] - del arch_config_yaml["llm_providers"] + plano_config_yaml["model_providers"] = plano_config_yaml["llm_providers"] + del plano_config_yaml["llm_providers"] listeners, _, _ = convert_legacy_listeners( - arch_config_yaml.get("listeners"), arch_config_yaml.get("model_providers") + plano_config_yaml.get("listeners"), plano_config_yaml.get("model_providers") ) - for prompt_target in arch_config_yaml.get("prompt_targets", []): + for prompt_target in plano_config_yaml.get("prompt_targets", []): for k, v in prompt_target.get("endpoint", {}).get("http_headers", {}).items(): if k.lower() == "authorization": print( @@ -200,7 +200,7 @@ def get_llm_provider_access_keys(arch_config_file): access_key_list.append(access_key) # Extract environment variables from state_storage.connection_string - state_storage = arch_config_yaml.get("state_storage_v1_responses") + state_storage = plano_config_yaml.get("state_storage_v1_responses") if state_storage: connection_string = state_storage.get("connection_string") if connection_string and isinstance(connection_string, str): @@ -251,16 +251,16 @@ def find_config_file(path=".", file=None): # If a file is provided, process that file return os.path.abspath(file) else: - # If no file is provided, use the path and look for arch_config.yaml first, then config.yaml for convenience - arch_config_file = os.path.abspath(os.path.join(path, "config.yaml")) - if not os.path.exists(arch_config_file): - arch_config_file = os.path.abspath(os.path.join(path, "arch_config.yaml")) - return arch_config_file + # If no file is provided, use the path and look for plano_config.yaml first, then config.yaml for convenience + plano_config_file = os.path.abspath(os.path.join(path, "config.yaml")) + if not os.path.exists(plano_config_file): + plano_config_file = os.path.abspath(os.path.join(path, "plano_config.yaml")) + return plano_config_file def stream_access_logs(follow): """ - Get the archgw access logs + Get the plano access logs """ follow_arg = "-f" if follow else "" diff --git a/cli/test/test_config_generator.py b/cli/test/test_config_generator.py index 214ea06c..b3e3ab62 100644 --- a/cli/test/test_config_generator.py +++ b/cli/test/test_config_generator.py @@ -12,14 +12,14 @@ def cleanup_env(monkeypatch): def test_validate_and_render_happy_path(monkeypatch): - monkeypatch.setenv("ARCH_CONFIG_FILE", "fake_arch_config.yaml") - monkeypatch.setenv("ARCH_CONFIG_SCHEMA_FILE", "fake_arch_config_schema.yaml") + monkeypatch.setenv("PLANO_CONFIG_FILE", "fake_plano_config.yaml") + monkeypatch.setenv("PLANO_CONFIG_SCHEMA_FILE", "fake_plano_config_schema.yaml") monkeypatch.setenv("ENVOY_CONFIG_TEMPLATE_FILE", "./envoy.template.yaml") - monkeypatch.setenv("ARCH_CONFIG_FILE_RENDERED", "fake_arch_config_rendered.yaml") + monkeypatch.setenv("PLANO_CONFIG_FILE_RENDERED", "fake_plano_config_rendered.yaml") monkeypatch.setenv("ENVOY_CONFIG_FILE_RENDERED", "fake_envoy.yaml") monkeypatch.setenv("TEMPLATE_ROOT", "../") - arch_config = """ + plano_config = """ version: v0.1.0 listeners: @@ -50,24 +50,24 @@ llm_providers: tracing: random_sampling: 100 """ - arch_config_schema = "" - with open("../config/arch_config_schema.yaml", "r") as file: - arch_config_schema = file.read() + plano_config_schema = "" + with open("../config/plano_config_schema.yaml", "r") as file: + plano_config_schema = file.read() m_open = mock.mock_open() # Provide enough file handles for all open() calls in validate_and_render_schema m_open.side_effect = [ # Removed empty read - was causing validation failures - mock.mock_open(read_data=arch_config).return_value, # ARCH_CONFIG_FILE + mock.mock_open(read_data=plano_config).return_value, # PLANO_CONFIG_FILE mock.mock_open( - read_data=arch_config_schema - ).return_value, # ARCH_CONFIG_SCHEMA_FILE - mock.mock_open(read_data=arch_config).return_value, # ARCH_CONFIG_FILE + read_data=plano_config_schema + ).return_value, # PLANO_CONFIG_SCHEMA_FILE + mock.mock_open(read_data=plano_config).return_value, # PLANO_CONFIG_FILE mock.mock_open( - read_data=arch_config_schema - ).return_value, # ARCH_CONFIG_SCHEMA_FILE + read_data=plano_config_schema + ).return_value, # PLANO_CONFIG_SCHEMA_FILE mock.mock_open().return_value, # ENVOY_CONFIG_FILE_RENDERED (write) - mock.mock_open().return_value, # ARCH_CONFIG_FILE_RENDERED (write) + mock.mock_open().return_value, # PLANO_CONFIG_FILE_RENDERED (write) ] with mock.patch("builtins.open", m_open): with mock.patch("planoai.config_generator.Environment"): @@ -75,14 +75,14 @@ tracing: def test_validate_and_render_happy_path_agent_config(monkeypatch): - monkeypatch.setenv("ARCH_CONFIG_FILE", "fake_arch_config.yaml") - monkeypatch.setenv("ARCH_CONFIG_SCHEMA_FILE", "fake_arch_config_schema.yaml") + monkeypatch.setenv("PLANO_CONFIG_FILE", "fake_plano_config.yaml") + monkeypatch.setenv("PLANO_CONFIG_SCHEMA_FILE", "fake_plano_config_schema.yaml") monkeypatch.setenv("ENVOY_CONFIG_TEMPLATE_FILE", "./envoy.template.yaml") - monkeypatch.setenv("ARCH_CONFIG_FILE_RENDERED", "fake_arch_config_rendered.yaml") + monkeypatch.setenv("PLANO_CONFIG_FILE_RENDERED", "fake_plano_config_rendered.yaml") monkeypatch.setenv("ENVOY_CONFIG_FILE_RENDERED", "fake_envoy.yaml") monkeypatch.setenv("TEMPLATE_ROOT", "../") - arch_config = """ + plano_config = """ version: v0.3.0 agents: @@ -123,35 +123,35 @@ model_providers: - access_key: ${OPENAI_API_KEY} model: openai/gpt-4o """ - arch_config_schema = "" - with open("../config/arch_config_schema.yaml", "r") as file: - arch_config_schema = file.read() + plano_config_schema = "" + with open("../config/plano_config_schema.yaml", "r") as file: + plano_config_schema = file.read() m_open = mock.mock_open() # Provide enough file handles for all open() calls in validate_and_render_schema m_open.side_effect = [ # Removed empty read - was causing validation failures - mock.mock_open(read_data=arch_config).return_value, # ARCH_CONFIG_FILE + mock.mock_open(read_data=plano_config).return_value, # PLANO_CONFIG_FILE mock.mock_open( - read_data=arch_config_schema - ).return_value, # ARCH_CONFIG_SCHEMA_FILE - mock.mock_open(read_data=arch_config).return_value, # ARCH_CONFIG_FILE + read_data=plano_config_schema + ).return_value, # PLANO_CONFIG_SCHEMA_FILE + mock.mock_open(read_data=plano_config).return_value, # PLANO_CONFIG_FILE mock.mock_open( - read_data=arch_config_schema - ).return_value, # ARCH_CONFIG_SCHEMA_FILE + read_data=plano_config_schema + ).return_value, # PLANO_CONFIG_SCHEMA_FILE mock.mock_open().return_value, # ENVOY_CONFIG_FILE_RENDERED (write) - mock.mock_open().return_value, # ARCH_CONFIG_FILE_RENDERED (write) + mock.mock_open().return_value, # PLANO_CONFIG_FILE_RENDERED (write) ] with mock.patch("builtins.open", m_open): with mock.patch("planoai.config_generator.Environment"): validate_and_render_schema() -arch_config_test_cases = [ +plano_config_test_cases = [ { "id": "duplicate_provider_name", "expected_error": "Duplicate model_provider name", - "arch_config": """ + "plano_config": """ version: v0.1.0 listeners: @@ -176,7 +176,7 @@ llm_providers: { "id": "provider_interface_with_model_id", "expected_error": "Please provide provider interface as part of model name", - "arch_config": """ + "plano_config": """ version: v0.1.0 listeners: @@ -197,7 +197,7 @@ llm_providers: { "id": "duplicate_model_id", "expected_error": "Duplicate model_id", - "arch_config": """ + "plano_config": """ version: v0.1.0 listeners: @@ -219,7 +219,7 @@ llm_providers: { "id": "custom_provider_base_url", "expected_error": "Must provide base_url and provider_interface", - "arch_config": """ + "plano_config": """ version: v0.1.0 listeners: @@ -237,7 +237,7 @@ llm_providers: { "id": "base_url_with_path_prefix", "expected_error": None, - "arch_config": """ + "plano_config": """ version: v0.1.0 listeners: @@ -258,7 +258,7 @@ llm_providers: { "id": "duplicate_routeing_preference_name", "expected_error": "Duplicate routing preference name", - "arch_config": """ + "plano_config": """ version: v0.1.0 listeners: @@ -295,42 +295,42 @@ tracing: @pytest.mark.parametrize( - "arch_config_test_case", - arch_config_test_cases, - ids=[case["id"] for case in arch_config_test_cases], + "plano_config_test_case", + plano_config_test_cases, + ids=[case["id"] for case in plano_config_test_cases], ) -def test_validate_and_render_schema_tests(monkeypatch, arch_config_test_case): - monkeypatch.setenv("ARCH_CONFIG_FILE", "fake_arch_config.yaml") - monkeypatch.setenv("ARCH_CONFIG_SCHEMA_FILE", "fake_arch_config_schema.yaml") +def test_validate_and_render_schema_tests(monkeypatch, plano_config_test_case): + monkeypatch.setenv("PLANO_CONFIG_FILE", "fake_plano_config.yaml") + monkeypatch.setenv("PLANO_CONFIG_SCHEMA_FILE", "fake_plano_config_schema.yaml") monkeypatch.setenv("ENVOY_CONFIG_TEMPLATE_FILE", "./envoy.template.yaml") - monkeypatch.setenv("ARCH_CONFIG_FILE_RENDERED", "fake_arch_config_rendered.yaml") + monkeypatch.setenv("PLANO_CONFIG_FILE_RENDERED", "fake_plano_config_rendered.yaml") monkeypatch.setenv("ENVOY_CONFIG_FILE_RENDERED", "fake_envoy.yaml") monkeypatch.setenv("TEMPLATE_ROOT", "../") - arch_config = arch_config_test_case["arch_config"] - expected_error = arch_config_test_case.get("expected_error") + plano_config = plano_config_test_case["plano_config"] + expected_error = plano_config_test_case.get("expected_error") - arch_config_schema = "" - with open("../config/arch_config_schema.yaml", "r") as file: - arch_config_schema = file.read() + plano_config_schema = "" + with open("../config/plano_config_schema.yaml", "r") as file: + plano_config_schema = file.read() m_open = mock.mock_open() # Provide enough file handles for all open() calls in validate_and_render_schema m_open.side_effect = [ mock.mock_open( - read_data=arch_config - ).return_value, # validate_prompt_config: ARCH_CONFIG_FILE + read_data=plano_config + ).return_value, # validate_prompt_config: PLANO_CONFIG_FILE mock.mock_open( - read_data=arch_config_schema - ).return_value, # validate_prompt_config: ARCH_CONFIG_SCHEMA_FILE + read_data=plano_config_schema + ).return_value, # validate_prompt_config: PLANO_CONFIG_SCHEMA_FILE mock.mock_open( - read_data=arch_config - ).return_value, # validate_and_render_schema: ARCH_CONFIG_FILE + read_data=plano_config + ).return_value, # validate_and_render_schema: PLANO_CONFIG_FILE mock.mock_open( - read_data=arch_config_schema - ).return_value, # validate_and_render_schema: ARCH_CONFIG_SCHEMA_FILE + read_data=plano_config_schema + ).return_value, # validate_and_render_schema: PLANO_CONFIG_SCHEMA_FILE mock.mock_open().return_value, # ENVOY_CONFIG_FILE_RENDERED (write) - mock.mock_open().return_value, # ARCH_CONFIG_FILE_RENDERED (write) + mock.mock_open().return_value, # PLANO_CONFIG_FILE_RENDERED (write) ] with mock.patch("builtins.open", m_open): with mock.patch("planoai.config_generator.Environment"): diff --git a/cli/uv.lock b/cli/uv.lock index d7e6b3a0..f8f72721 100644 --- a/cli/uv.lock +++ b/cli/uv.lock @@ -337,7 +337,7 @@ wheels = [ [[package]] name = "planoai" -version = "0.4.4" +version = "0.4.6" source = { editable = "." } dependencies = [ { name = "click" }, diff --git a/config/docker-compose.dev.yaml b/config/docker-compose.dev.yaml index 2e061939..15d75a62 100644 --- a/config/docker-compose.dev.yaml +++ b/config/docker-compose.dev.yaml @@ -8,14 +8,14 @@ services: - "12000:12000" - "19901:9901" volumes: - - ${ARCH_CONFIG_FILE:-../demos/samples_python/weather_forecast/arch_config.yaml}:/app/arch_config.yaml + - ${PLANO_CONFIG_FILE:-../demos/samples_python/weather_forecast/plano_config.yaml}:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem - ./envoy.template.yaml:/app/envoy.template.yaml - - ./arch_config_schema.yaml:/app/arch_config_schema.yaml + - ./plano_config_schema.yaml:/app/plano_config_schema.yaml - ../cli/planoai/config_generator.py:/app/planoai/config_generator.py - ../crates/target/wasm32-wasip1/release/llm_gateway.wasm:/etc/envoy/proxy-wasm-plugins/llm_gateway.wasm - ../crates/target/wasm32-wasip1/release/prompt_gateway.wasm:/etc/envoy/proxy-wasm-plugins/prompt_gateway.wasm - - ~/archgw_logs:/var/log/ + - ~/plano_logs:/var/log/ extra_hosts: - "host.docker.internal:host-gateway" environment: diff --git a/config/envoy.template.yaml b/config/envoy.template.yaml index 6fa623ac..f514e728 100644 --- a/config/envoy.template.yaml +++ b/config/envoy.template.yaml @@ -40,7 +40,7 @@ static_resources: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager - {% if "random_sampling" in arch_tracing and arch_tracing["random_sampling"] > 0 %} + {% if "random_sampling" in plano_tracing and plano_tracing["random_sampling"] > 0 %} generate_request_id: true tracing: provider: @@ -53,7 +53,7 @@ static_resources: timeout: 0.250s service_name: plano(inbound) random_sampling: - value: {{ arch_tracing.random_sampling }} + value: {{ plano_tracing.random_sampling }} operation: "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%" {% endif %} stat_prefix: plano(inbound) @@ -114,7 +114,7 @@ static_resources: domains: - "*" routes: - {% for provider in arch_model_providers %} + {% for provider in plano_model_providers %} # if endpoint is set then use custom cluster for upstream llm {% if provider.endpoint %} {% set llm_cluster_name = provider.cluster_name %} @@ -166,7 +166,7 @@ static_resources: configuration: "@type": "type.googleapis.com/google.protobuf.StringValue" value: | - {{ arch_config | indent(32) }} + {{ plano_config | indent(32) }} vm_config: runtime: "envoy.wasm.runtime.v8" code: @@ -183,7 +183,7 @@ static_resources: configuration: "@type": "type.googleapis.com/google.protobuf.StringValue" value: | - {{ arch_llm_config | indent(32) }} + {{ plano_llm_config | indent(32) }} vm_config: runtime: "envoy.wasm.runtime.v8" code: @@ -215,7 +215,7 @@ static_resources: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager - # {% if "random_sampling" in arch_tracing and arch_tracing["random_sampling"] > 0 %} + # {% if "random_sampling" in plano_tracing and plano_tracing["random_sampling"] > 0 %} # generate_request_id: true # tracing: # provider: @@ -228,7 +228,7 @@ static_resources: # timeout: 0.250s # service_name: tools # random_sampling: - # value: {{ arch_tracing.random_sampling }} + # value: {{ plano_tracing.random_sampling }} # {% endif %} stat_prefix: outbound_api_traffic codec_type: AUTO @@ -258,7 +258,7 @@ static_resources: auto_host_rewrite: true cluster: bright_staff timeout: 300s - {% for cluster_name, cluster in arch_clusters.items() %} + {% for cluster_name, cluster in plano_clusters.items() %} - match: prefix: "/" headers: @@ -290,7 +290,7 @@ static_resources: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager - {% if "random_sampling" in arch_tracing and arch_tracing["random_sampling"] > 0 %} + {% if "random_sampling" in plano_tracing and plano_tracing["random_sampling"] > 0 %} generate_request_id: true tracing: provider: @@ -303,7 +303,7 @@ static_resources: timeout: 0.250s service_name: plano(inbound) random_sampling: - value: {{ arch_tracing.random_sampling }} + value: {{ plano_tracing.random_sampling }} operation: "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%" {% endif %} stat_prefix: {{ listener.name | replace(" ", "_") }}_traffic @@ -467,7 +467,7 @@ static_resources: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager - {% if "random_sampling" in arch_tracing and arch_tracing["random_sampling"] > 0 %} + {% if "random_sampling" in plano_tracing and plano_tracing["random_sampling"] > 0 %} generate_request_id: true tracing: provider: @@ -480,7 +480,7 @@ static_resources: timeout: 0.250s service_name: plano(outbound) random_sampling: - value: {{ arch_tracing.random_sampling }} + value: {{ plano_tracing.random_sampling }} operation: "%REQ(:METHOD)% %REQ(:AUTHORITY)%%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%" {% endif %} stat_prefix: egress_traffic @@ -501,7 +501,7 @@ static_resources: domains: - "*" routes: - {% for provider in arch_model_providers %} + {% for provider in plano_model_providers %} # if endpoint is set then use custom cluster for upstream llm {% if provider.endpoint %} {% set llm_cluster_name = provider.cluster_name %} @@ -564,7 +564,7 @@ static_resources: configuration: "@type": "type.googleapis.com/google.protobuf.StringValue" value: | - {{ arch_llm_config | indent(32) }} + {{ plano_llm_config | indent(32) }} vm_config: runtime: "envoy.wasm.runtime.v8" code: @@ -879,7 +879,7 @@ static_resources: address: mistral_7b_instruct port_value: 10001 hostname: "mistral_7b_instruct" -{% for cluster_name, cluster in arch_clusters.items() %} +{% for cluster_name, cluster in plano_clusters.items() %} - name: {{ cluster_name }} {% if cluster.connect_timeout -%} connect_timeout: {{ cluster.connect_timeout }} @@ -1013,7 +1013,7 @@ static_resources: port_value: 12001 hostname: arch_listener_llm -{% if "random_sampling" in arch_tracing and arch_tracing["random_sampling"] > 0 %} +{% if "random_sampling" in plano_tracing and plano_tracing["random_sampling"] > 0 %} - name: opentelemetry_collector type: STRICT_DNS dns_lookup_family: V4_ONLY @@ -1030,7 +1030,7 @@ static_resources: - endpoint: address: socket_address: - {% set _otel_endpoint = arch_tracing.opentracing_grpc_endpoint | default('host.docker.internal:4317') | replace("http://", "") | replace("https://", "") %} + {% set _otel_endpoint = plano_tracing.opentracing_grpc_endpoint | default('host.docker.internal:4317') | replace("http://", "") | replace("https://", "") %} address: {{ _otel_endpoint.split(":") | first }} port_value: {{ _otel_endpoint.split(":") | last }} {% endif %} diff --git a/config/arch_config_schema.yaml b/config/plano_config_schema.yaml similarity index 100% rename from config/arch_config_schema.yaml rename to config/plano_config_schema.yaml diff --git a/config/supervisord.conf b/config/supervisord.conf index a8762ef5..00c1594c 100644 --- a/config/supervisord.conf +++ b/config/supervisord.conf @@ -3,9 +3,9 @@ nodaemon=true [program:brightstaff] command=sh -c "\ - envsubst < /app/arch_config_rendered.yaml > /app/arch_config_rendered.env_sub.yaml && \ + envsubst < /app/plano_config_rendered.yaml > /app/plano_config_rendered.env_sub.yaml && \ RUST_LOG=${LOG_LEVEL:-info} \ - ARCH_CONFIG_PATH_RENDERED=/app/arch_config_rendered.env_sub.yaml \ + PLANO_CONFIG_PATH_RENDERED=/app/plano_config_rendered.env_sub.yaml \ /app/brightstaff 2>&1 | \ tee /var/log/brightstaff.log | \ while IFS= read -r line; do echo '[brightstaff]' \"$line\"; done" diff --git a/config/test_passthrough.yaml b/config/test_passthrough.yaml index 7e59370e..b9c74ae8 100644 --- a/config/test_passthrough.yaml +++ b/config/test_passthrough.yaml @@ -7,7 +7,7 @@ # # To test: # docker build -t plano-passthrough-test . -# docker run -d -p 10000:10000 -v $(pwd)/config/test_passthrough.yaml:/app/arch_config.yaml plano-passthrough-test +# docker run -d -p 10000:10000 -v $(pwd)/config/test_passthrough.yaml:/app/plano_config.yaml plano-passthrough-test # # curl http://localhost:10000/v1/chat/completions \ # -H "Authorization: Bearer sk-your-virtual-key" \ diff --git a/config/validate_plano_config.sh b/config/validate_plano_config.sh index daefe08e..0a518819 100644 --- a/config/validate_plano_config.sh +++ b/config/validate_plano_config.sh @@ -2,10 +2,10 @@ failed_files=() -for file in $(find . -name config.yaml -o -name arch_config_full_reference.yaml); do +for file in $(find . -name config.yaml -o -name plano_config_full_reference.yaml); do echo "Validating ${file}..." touch $(pwd)/${file}_rendered - if ! docker run --rm -v "$(pwd)/${file}:/app/arch_config.yaml:ro" -v "$(pwd)/${file}_rendered:/app/arch_config_rendered.yaml:rw" --entrypoint /bin/sh katanemo/plano:0.4.6 -c "python -m planoai.config_generator" 2>&1 > /dev/null ; then + if ! docker run --rm -v "$(pwd)/${file}:/app/plano_config.yaml:ro" -v "$(pwd)/${file}_rendered:/app/plano_config_rendered.yaml:rw" --entrypoint /bin/sh katanemo/plano:0.4.6 -c "python -m planoai.config_generator" 2>&1 > /dev/null ; then echo "Validation failed for $file" failed_files+=("$file") fi diff --git a/crates/brightstaff/src/handlers/llm.rs b/crates/brightstaff/src/handlers/llm.rs index 13ed8419..10a68c1a 100644 --- a/crates/brightstaff/src/handlers/llm.rs +++ b/crates/brightstaff/src/handlers/llm.rs @@ -210,8 +210,8 @@ async fn llm_chat_inner( // Set the model to just the model name (without provider prefix) // This ensures upstream receives "gpt-4" not "openai/gpt-4" client_request.set_model(model_name_only.clone()); - if client_request.remove_metadata_key("archgw_preference_config") { - debug!("removed archgw_preference_config from metadata"); + if client_request.remove_metadata_key("plano_preference_config") { + debug!("removed plano_preference_config from metadata"); } // === v1/responses state management: Determine upstream API and combine input if needed === diff --git a/crates/brightstaff/src/handlers/router_chat.rs b/crates/brightstaff/src/handlers/router_chat.rs index 01c67a94..d71734fa 100644 --- a/crates/brightstaff/src/handlers/router_chat.rs +++ b/crates/brightstaff/src/handlers/router_chat.rs @@ -78,7 +78,7 @@ pub async fn router_chat_get_upstream_model( // Extract usage preferences from metadata let usage_preferences_str: Option = routing_metadata.as_ref().and_then(|metadata| { metadata - .get("archgw_preference_config") + .get("plano_preference_config") .map(|value| value.to_string()) }); diff --git a/crates/brightstaff/src/main.rs b/crates/brightstaff/src/main.rs index 3469d8bd..fff69b00 100644 --- a/crates/brightstaff/src/main.rs +++ b/crates/brightstaff/src/main.rs @@ -52,57 +52,57 @@ fn empty() -> BoxBody { async fn main() -> Result<(), Box> { let bind_address = env::var("BIND_ADDRESS").unwrap_or_else(|_| BIND_ADDRESS.to_string()); - // loading arch_config.yaml file (before tracing init so we can read tracing config) - let arch_config_path = env::var("ARCH_CONFIG_PATH_RENDERED") - .unwrap_or_else(|_| "./arch_config_rendered.yaml".to_string()); - eprintln!("loading arch_config.yaml from {}", arch_config_path); + // loading plano_config.yaml file (before tracing init so we can read tracing config) + let plano_config_path = env::var("PLANO_CONFIG_PATH_RENDERED") + .unwrap_or_else(|_| "./plano_config_rendered.yaml".to_string()); + eprintln!("loading plano_config.yaml from {}", plano_config_path); let config_contents = - fs::read_to_string(&arch_config_path).expect("Failed to read arch_config.yaml"); + fs::read_to_string(&plano_config_path).expect("Failed to read plano_config.yaml"); let config: Configuration = - serde_yaml::from_str(&config_contents).expect("Failed to parse arch_config.yaml"); + serde_yaml::from_str(&config_contents).expect("Failed to parse plano_config.yaml"); // Initialize tracing using config.yaml tracing section let _tracer_provider = init_tracer(config.tracing.as_ref()); - info!(path = %arch_config_path, "loaded arch_config.yaml"); + info!(path = %plano_config_path, "loaded plano_config.yaml"); - let arch_config = Arc::new(config); + let plano_config = Arc::new(config); // combine agents and filters into a single list of agents - let all_agents: Vec = arch_config + let all_agents: Vec = plano_config .agents .as_deref() .unwrap_or_default() .iter() - .chain(arch_config.filters.as_deref().unwrap_or_default()) + .chain(plano_config.filters.as_deref().unwrap_or_default()) .cloned() .collect(); // Create expanded provider list for /v1/models endpoint - let llm_providers = LlmProviders::try_from(arch_config.model_providers.clone()) + let llm_providers = LlmProviders::try_from(plano_config.model_providers.clone()) .expect("Failed to create LlmProviders"); let llm_providers = Arc::new(RwLock::new(llm_providers)); let combined_agents_filters_list = Arc::new(RwLock::new(Some(all_agents))); - let listeners = Arc::new(RwLock::new(arch_config.listeners.clone())); + let listeners = Arc::new(RwLock::new(plano_config.listeners.clone())); let llm_provider_url = env::var("LLM_PROVIDER_ENDPOINT").unwrap_or_else(|_| "http://localhost:12001".to_string()); let listener = TcpListener::bind(bind_address).await?; - let routing_model_name: String = arch_config + let routing_model_name: String = plano_config .routing .as_ref() .and_then(|r| r.model.clone()) .unwrap_or_else(|| DEFAULT_ROUTING_MODEL_NAME.to_string()); - let routing_llm_provider = arch_config + let routing_llm_provider = plano_config .routing .as_ref() .and_then(|r| r.model_provider.clone()) .unwrap_or_else(|| DEFAULT_ROUTING_LLM_PROVIDER.to_string()); let router_service: Arc = Arc::new(RouterService::new( - arch_config.model_providers.clone(), + plano_config.model_providers.clone(), format!("{llm_provider_url}{CHAT_COMPLETIONS_PATH}"), routing_model_name, routing_llm_provider, @@ -113,19 +113,19 @@ async fn main() -> Result<(), Box> { PLANO_ORCHESTRATOR_MODEL_NAME.to_string(), )); - let model_aliases = Arc::new(arch_config.model_aliases.clone()); + let model_aliases = Arc::new(plano_config.model_aliases.clone()); // Initialize trace collector and start background flusher - // Tracing is enabled if the tracing config is present in arch_config.yaml + // Tracing is enabled if the tracing config is present in plano_config.yaml // Pass Some(true/false) to override, or None to use env var OTEL_TRACING_ENABLED // OpenTelemetry automatic instrumentation is configured in utils/tracing.rs // Initialize conversation state storage for v1/responses - // Configurable via arch_config.yaml state_storage section + // Configurable via plano_config.yaml state_storage section // If not configured, state management is disabled // Environment variables are substituted by envsubst before config is read let state_storage: Option> = - if let Some(storage_config) = &arch_config.state_storage { + if let Some(storage_config) = &plano_config.state_storage { let storage: Arc = match storage_config.storage_type { common::configuration::StateStorageType::Memory => { info!( diff --git a/crates/brightstaff/src/tracing/constants.rs b/crates/brightstaff/src/tracing/constants.rs index d1102531..15e3cf57 100644 --- a/crates/brightstaff/src/tracing/constants.rs +++ b/crates/brightstaff/src/tracing/constants.rs @@ -182,7 +182,7 @@ pub mod signals { // Operation Names // ============================================================================= -/// Canonical operation name components for Arch Gateway +/// Canonical operation name components for Plano Gateway pub mod operation_component { /// Inbound request handling pub const INBOUND: &str = "plano(inbound)"; @@ -210,7 +210,7 @@ pub mod operation_component { /// /// Format: `{method} {path} {target}` /// -/// The operation component (e.g., "archgw(llm)") is now part of the service name, +/// The operation component (e.g., "plano(llm)") is now part of the service name, /// so the operation name focuses on the HTTP request details and target. /// /// # Examples @@ -218,7 +218,7 @@ pub mod operation_component { /// use brightstaff::tracing::OperationNameBuilder; /// /// // LLM call operation: "POST /v1/chat/completions gpt-4" -/// // (service name will be "archgw(llm)") +/// // (service name will be "plano(llm)") /// let op = OperationNameBuilder::new() /// .with_method("POST") /// .with_path("/v1/chat/completions") @@ -226,7 +226,7 @@ pub mod operation_component { /// .build(); /// /// // Agent filter operation: "POST /agents/v1/chat/completions hallucination-detector" -/// // (service name will be "archgw(agent filter)") +/// // (service name will be "plano(agent filter)") /// let op = OperationNameBuilder::new() /// .with_method("POST") /// .with_path("/agents/v1/chat/completions") @@ -234,7 +234,7 @@ pub mod operation_component { /// .build(); /// /// // Routing operation: "POST /v1/chat/completions" -/// // (service name will be "archgw(routing)") +/// // (service name will be "plano(routing)") /// let op = OperationNameBuilder::new() /// .with_method("POST") /// .with_path("/v1/chat/completions") diff --git a/crates/common/src/configuration.rs b/crates/common/src/configuration.rs index ccca89c3..0a683b8b 100644 --- a/crates/common/src/configuration.rs +++ b/crates/common/src/configuration.rs @@ -493,7 +493,7 @@ mod test { #[test] fn test_deserialize_configuration() { let ref_config = fs::read_to_string( - "../../docs/source/resources/includes/arch_config_full_reference_rendered.yaml", + "../../docs/source/resources/includes/plano_config_full_reference_rendered.yaml", ) .expect("reference config file not found"); @@ -520,7 +520,7 @@ mod test { #[test] fn test_tool_conversion() { let ref_config = fs::read_to_string( - "../../docs/source/resources/includes/arch_config_full_reference_rendered.yaml", + "../../docs/source/resources/includes/plano_config_full_reference_rendered.yaml", ) .expect("reference config file not found"); let config: super::Configuration = serde_yaml::from_str(&ref_config).unwrap(); diff --git a/crates/llm_gateway/src/stream_context.rs b/crates/llm_gateway/src/stream_context.rs index d3116233..547ba166 100644 --- a/crates/llm_gateway/src/stream_context.rs +++ b/crates/llm_gateway/src/stream_context.rs @@ -990,7 +990,7 @@ impl HttpContext for StreamContext { self.send_server_error( ServerError::BadRequest { why: format!( - "No model specified in request and couldn't determine model name from arch_config. Model name in req: {}, arch_config, provider: {}, model: {:?}", + "No model specified in request and couldn't determine model name from plano_config. Model name in req: {}, plano_config, provider: {}, model: {:?}", model_requested, self.llm_provider().name, self.llm_provider().model diff --git a/crates/prompt_gateway/src/http_context.rs b/crates/prompt_gateway/src/http_context.rs index d3cde081..e3d00b3f 100644 --- a/crates/prompt_gateway/src/http_context.rs +++ b/crates/prompt_gateway/src/http_context.rs @@ -419,7 +419,7 @@ impl HttpContext for StreamContext { ); } let data_serialized = serde_json::to_string(&data).unwrap(); - info!("archgw <= developer: {}", data_serialized); + info!("plano <= developer: {}", data_serialized); self.set_http_response_body(0, body_size, data_serialized.as_bytes()); }; } diff --git a/crates/prompt_gateway/src/stream_context.rs b/crates/prompt_gateway/src/stream_context.rs index cebd689f..8ff44d52 100644 --- a/crates/prompt_gateway/src/stream_context.rs +++ b/crates/prompt_gateway/src/stream_context.rs @@ -246,7 +246,7 @@ impl StreamContext { let chat_completion_request_json = serde_json::to_string(&chat_completion_request).unwrap(); info!( - "archgw => upstream llm request: {}", + "plano => upstream llm request: {}", chat_completion_request_json ); self.set_http_request_body( @@ -799,7 +799,7 @@ impl StreamContext { }; let json_resp = serde_json::to_string(&chat_completion_request).unwrap(); - info!("archgw => (default target) llm request: {}", json_resp); + info!("plano => (default target) llm request: {}", json_resp); self.set_http_request_body(0, self.request_body_size, json_resp.as_bytes()); self.resume_http_request(); } diff --git a/demos/samples_java/weather_forcecast_service/docker-compose.yaml b/demos/samples_java/weather_forcecast_service/docker-compose.yaml index 6ee9233c..b3df0266 100644 --- a/demos/samples_java/weather_forcecast_service/docker-compose.yaml +++ b/demos/samples_java/weather_forcecast_service/docker-compose.yaml @@ -18,7 +18,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml jaeger: build: diff --git a/demos/samples_python/currency_exchange/README.md b/demos/samples_python/currency_exchange/README.md index 83089538..560a00f8 100644 --- a/demos/samples_python/currency_exchange/README.md +++ b/demos/samples_python/currency_exchange/README.md @@ -1 +1 @@ -This demo shows how you can use a publicly hosted rest api and interact it using arch gateway. +This demo shows how you can use a publicly hosted rest api and interact it using Plano gateway. diff --git a/demos/samples_python/currency_exchange/docker-compose.yaml b/demos/samples_python/currency_exchange/docker-compose.yaml index 527e0c1b..bde2b082 100644 --- a/demos/samples_python/currency_exchange/docker-compose.yaml +++ b/demos/samples_python/currency_exchange/docker-compose.yaml @@ -10,7 +10,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml jaeger: build: diff --git a/demos/samples_python/multi_turn_rag_agent/README.md b/demos/samples_python/multi_turn_rag_agent/README.md index b2ec539d..68034448 100644 --- a/demos/samples_python/multi_turn_rag_agent/README.md +++ b/demos/samples_python/multi_turn_rag_agent/README.md @@ -1,6 +1,6 @@ # Multi-Turn Agentic Demo (RAG) -This demo showcases how the **Arch** can be used to build accurate multi-turn RAG agent by just writing simple APIs. +This demo showcases how **Plano** can be used to build accurate multi-turn RAG agent by just writing simple APIs. ![Example of Multi-turn Interaction](mutli-turn-example.png) @@ -14,7 +14,7 @@ Provides information about various energy sources and considerations. # Starting the demo 1. Please make sure the [pre-requisites](https://github.com/katanemo/arch/?tab=readme-ov-file#prerequisites) are installed correctly -2. Start Arch +2. Start Plano ```sh sh run_demo.sh ``` diff --git a/demos/samples_python/multi_turn_rag_agent/docker-compose.yaml b/demos/samples_python/multi_turn_rag_agent/docker-compose.yaml index af1ab008..4232ff9e 100644 --- a/demos/samples_python/multi_turn_rag_agent/docker-compose.yaml +++ b/demos/samples_python/multi_turn_rag_agent/docker-compose.yaml @@ -21,4 +21,4 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml diff --git a/demos/samples_python/multi_turn_rag_agent/run_demo.sh b/demos/samples_python/multi_turn_rag_agent/run_demo.sh index 7f8f0214..f9434aa2 100644 --- a/demos/samples_python/multi_turn_rag_agent/run_demo.sh +++ b/demos/samples_python/multi_turn_rag_agent/run_demo.sh @@ -18,8 +18,8 @@ start_demo() { echo ".env file created with OPENAI_API_KEY." fi - # Step 3: Start Arch - echo "Starting Arch with config.yaml..." + # Step 3: Start Plano + echo "Starting Plano with config.yaml..." planoai up config.yaml # Step 4: Start Network Agent @@ -33,8 +33,8 @@ stop_demo() { echo "Stopping HR Agent using Docker Compose..." docker compose down -v - # Step 2: Stop Arch - echo "Stopping Arch..." + # Step 2: Stop Plano + echo "Stopping Plano..." planoai down } diff --git a/demos/samples_python/stock_quote/docker-compose.yaml b/demos/samples_python/stock_quote/docker-compose.yaml index d08a7a06..6e02922d 100644 --- a/demos/samples_python/stock_quote/docker-compose.yaml +++ b/demos/samples_python/stock_quote/docker-compose.yaml @@ -10,7 +10,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml jaeger: build: diff --git a/demos/samples_python/stock_quote/run_demo.sh b/demos/samples_python/stock_quote/run_demo.sh index 992bb260..6623dee5 100644 --- a/demos/samples_python/stock_quote/run_demo.sh +++ b/demos/samples_python/stock_quote/run_demo.sh @@ -18,8 +18,8 @@ start_demo() { echo ".env file created with OPENAI_API_KEY." fi - # Step 3: Start Arch - echo "Starting Arch with config.yaml..." + # Step 3: Start Plano + echo "Starting Plano with config.yaml..." planoai up config.yaml # Step 4: Start developer services @@ -33,8 +33,8 @@ stop_demo() { echo "Stopping Network Agent using Docker Compose..." docker compose down - # Step 2: Stop Arch - echo "Stopping Arch..." + # Step 2: Stop Plano + echo "Stopping Plano..." planoai down } diff --git a/demos/samples_python/weather_forecast/README.md b/demos/samples_python/weather_forecast/README.md index 26eea157..66109772 100644 --- a/demos/samples_python/weather_forecast/README.md +++ b/demos/samples_python/weather_forecast/README.md @@ -1,11 +1,11 @@ # Function calling -This demo shows how you can use Arch's core function calling capabilities. +This demo shows how you can use Plano's core function calling capabilities. # Starting the demo 1. Please make sure the [pre-requisites](https://github.com/katanemo/arch/?tab=readme-ov-file#prerequisites) are installed correctly -2. Start Arch +2. Start Plano 3. ```sh sh run_demo.sh @@ -15,14 +15,14 @@ This demo shows how you can use Arch's core function calling capabilities. # Observability -Arch gateway publishes stats endpoint at http://localhost:19901/stats. In this demo we are using prometheus to pull stats from arch and we are using grafana to visalize the stats in dashboard. To see grafana dashboard follow instructions below, +Plano gateway publishes stats endpoint at http://localhost:19901/stats. In this demo we are using prometheus to pull stats from Plano and we are using grafana to visalize the stats in dashboard. To see grafana dashboard follow instructions below, 1. Start grafana and prometheus using following command ```yaml docker compose --profile monitoring up ``` 2. Navigate to http://localhost:3000/ to open grafana UI (use admin/grafana as credentials) -3. From grafana left nav click on dashboards and select "Intelligent Gateway Overview" to view arch gateway stats +3. From grafana left nav click on dashboards and select "Intelligent Gateway Overview" to view Plano gateway stats Here is a sample interaction, image diff --git a/demos/samples_python/weather_forecast/docker-compose-honeycomb.yaml b/demos/samples_python/weather_forecast/docker-compose-honeycomb.yaml index 535f90cb..5d5e1786 100644 --- a/demos/samples_python/weather_forecast/docker-compose-honeycomb.yaml +++ b/demos/samples_python/weather_forecast/docker-compose-honeycomb.yaml @@ -20,7 +20,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml otel-collector: build: diff --git a/demos/samples_python/weather_forecast/docker-compose-jaeger.yaml b/demos/samples_python/weather_forecast/docker-compose-jaeger.yaml index 933d5d47..1a64e8fa 100644 --- a/demos/samples_python/weather_forecast/docker-compose-jaeger.yaml +++ b/demos/samples_python/weather_forecast/docker-compose-jaeger.yaml @@ -20,7 +20,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml jaeger: build: diff --git a/demos/samples_python/weather_forecast/docker-compose-logfire.yaml b/demos/samples_python/weather_forecast/docker-compose-logfire.yaml index 890efcda..db3363f4 100644 --- a/demos/samples_python/weather_forecast/docker-compose-logfire.yaml +++ b/demos/samples_python/weather_forecast/docker-compose-logfire.yaml @@ -20,7 +20,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml otel-collector: build: diff --git a/demos/samples_python/weather_forecast/docker-compose-signoz.yaml b/demos/samples_python/weather_forecast/docker-compose-signoz.yaml index 5625ff4e..4cfb56a9 100644 --- a/demos/samples_python/weather_forecast/docker-compose-signoz.yaml +++ b/demos/samples_python/weather_forecast/docker-compose-signoz.yaml @@ -23,7 +23,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml prometheus: build: diff --git a/demos/samples_python/weather_forecast/docker-compose.yaml b/demos/samples_python/weather_forecast/docker-compose.yaml index c8e2e425..36c2e74a 100644 --- a/demos/samples_python/weather_forecast/docker-compose.yaml +++ b/demos/samples_python/weather_forecast/docker-compose.yaml @@ -20,4 +20,4 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml diff --git a/demos/samples_python/weather_forecast/run_demo.sh b/demos/samples_python/weather_forecast/run_demo.sh index 5e955e31..c8eb96e5 100644 --- a/demos/samples_python/weather_forecast/run_demo.sh +++ b/demos/samples_python/weather_forecast/run_demo.sh @@ -72,8 +72,8 @@ start_demo() { exit 1 fi - # Step 4: Start Arch - echo "Starting Arch with config.yaml..." + # Step 4: Start Plano + echo "Starting Plano with config.yaml..." planoai up config.yaml # Step 5: Start Network Agent with the chosen Docker Compose file @@ -91,8 +91,8 @@ stop_demo() { docker compose -f "$compose_file" down done - # Stop Arch - echo "Stopping Arch..." + # Stop Plano + echo "Stopping Plano..." planoai down } diff --git a/demos/shared/chatbot_ui/.vscode/launch.json b/demos/shared/chatbot_ui/.vscode/launch.json index 6a470b7b..9586ef4c 100644 --- a/demos/shared/chatbot_ui/.vscode/launch.json +++ b/demos/shared/chatbot_ui/.vscode/launch.json @@ -15,7 +15,7 @@ "LLM": "1", "CHAT_COMPLETION_ENDPOINT": "http://localhost:10000/v1", "STREAMING": "True", - "ARCH_CONFIG": "../../samples_python/weather_forecast/arch_config.yaml" + "PLANO_CONFIG": "../../samples_python/weather_forecast/plano_config.yaml" } }, { @@ -29,7 +29,7 @@ "LLM": "1", "CHAT_COMPLETION_ENDPOINT": "http://localhost:12000/v1", "STREAMING": "True", - "ARCH_CONFIG": "../../samples_python/weather_forecast/arch_config.yaml" + "PLANO_CONFIG": "../../samples_python/weather_forecast/plano_config.yaml" } }, ] diff --git a/demos/shared/chatbot_ui/common.py b/demos/shared/chatbot_ui/common.py index ae9c12a8..278d86d1 100644 --- a/demos/shared/chatbot_ui/common.py +++ b/demos/shared/chatbot_ui/common.py @@ -37,7 +37,7 @@ def chat( try: response = client.chat.completions.create( - # we select model from arch_config file + # we select model from plano_config file model="None", messages=history, temperature=1.0, @@ -86,7 +86,7 @@ def create_gradio_app(demo_description, client): with gr.Column(scale=2): chatbot = gr.Chatbot( - label="Arch Chatbot", + label="Plano Chatbot", elem_classes="chatbot", ) textbox = gr.Textbox( @@ -110,7 +110,7 @@ def process_stream_chunk(chunk, history): delta = chunk.choices[0].delta if delta.role and delta.role != history[-1]["role"]: # create new history item if role changes - # this is likely due to arch tool call and api response + # this is likely due to Plano tool call and api response history.append({"role": delta.role}) history[-1]["model"] = chunk.model @@ -159,7 +159,7 @@ def convert_prompt_target_to_openai_format(target): def get_prompt_targets(): try: - with open(os.getenv("ARCH_CONFIG", "config.yaml"), "r") as file: + with open(os.getenv("PLANO_CONFIG", "config.yaml"), "r") as file: config = yaml.safe_load(file) available_tools = [] @@ -181,7 +181,7 @@ def get_prompt_targets(): def get_llm_models(): try: - with open(os.getenv("ARCH_CONFIG", "config.yaml"), "r") as file: + with open(os.getenv("PLANO_CONFIG", "config.yaml"), "r") as file: config = yaml.safe_load(file) available_models = [""] diff --git a/demos/shared/grafana/dashboards/envoy_overview.json b/demos/shared/grafana/dashboards/envoy_overview.json index 361e1a19..e74e1fa1 100644 --- a/demos/shared/grafana/dashboards/envoy_overview.json +++ b/demos/shared/grafana/dashboards/envoy_overview.json @@ -787,7 +787,7 @@ }, "timepicker": {}, "timezone": "browser", - "title": "Arch Gateway Dashboard", + "title": "Plano Gateway Dashboard", "uid": "adt6uhx5lk8aob", "version": 1, "weekStart": "" diff --git a/demos/shared/test_runner/common.py b/demos/shared/test_runner/common.py index 7ae6c582..ae906c82 100644 --- a/demos/shared/test_runner/common.py +++ b/demos/shared/test_runner/common.py @@ -19,17 +19,17 @@ def get_data_chunks(stream, n=1): return chunks -def get_arch_messages(response_json): - arch_messages = [] +def get_plano_messages(response_json): + plano_messages = [] if response_json and "metadata" in response_json: - # load arch_state from metadata - arch_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") - # parse arch_state into json object - arch_state = json.loads(arch_state_str) - # load messages from arch_state - arch_messages_str = arch_state.get("messages", "[]") + # load plano_state from metadata + plano_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") + # parse plano_state into json object + plano_state = json.loads(plano_state_str) + # load messages from plano_state + plano_messages_str = plano_state.get("messages", "[]") # parse messages into json object - arch_messages = json.loads(arch_messages_str) - # append messages from arch gateway to history - return arch_messages + plano_messages = json.loads(plano_messages_str) + # append messages from plano gateway to history + return plano_messages return [] diff --git a/demos/shared/test_runner/test_demos.py b/demos/shared/test_runner/test_demos.py index 1c071a51..53d612e4 100644 --- a/demos/shared/test_runner/test_demos.py +++ b/demos/shared/test_runner/test_demos.py @@ -1,6 +1,6 @@ import json import os -from common import get_arch_messages +from common import get_plano_messages import pytest import requests from deepdiff import DeepDiff @@ -46,10 +46,10 @@ def test_demos(test_data): assert choices[0]["message"]["role"] == "assistant" assert expected_output_contains.lower() in choices[0]["message"]["content"].lower() - # now verify arch_messages (tool call and api response) that are sent as response metadata - arch_messages = get_arch_messages(response_json) - assert len(arch_messages) == 2 - tool_calls_message = arch_messages[0] + # now verify plano_messages (tool call and api response) that are sent as response metadata + plano_messages = get_plano_messages(response_json) + assert len(plano_messages) == 2 + tool_calls_message = plano_messages[0] tool_calls = tool_calls_message.get("tool_calls", []) assert len(tool_calls) > 0 diff --git a/demos/use_cases/claude_code_router/README.md b/demos/use_cases/claude_code_router/README.md index 227d6723..ac7a2f7c 100644 --- a/demos/use_cases/claude_code_router/README.md +++ b/demos/use_cases/claude_code_router/README.md @@ -1,6 +1,6 @@ # Claude Code Router - Multi-Model Access with Intelligent Routing -Arch Gateway extends Claude Code to access multiple LLM providers through a single interface. Offering two key benefits: +Plano extends Claude Code to access multiple LLM providers through a single interface. Offering two key benefits: 1. **Access to Models**: Connect to Grok, Mistral, Gemini, DeepSeek, GPT models, Claude, and local models via Ollama 2. **Intelligent Routing via Preferences for Coding Tasks**: Configure which models handle specific development tasks: @@ -21,15 +21,15 @@ Uses a [1.5B preference-aligned router LLM](https://arxiv.org/abs/2506.16655) to ## How It Works -Arch Gateway sits between Claude Code and multiple LLM providers, analyzing each request to route it to the most suitable model: +Plano sits between Claude Code and multiple LLM providers, analyzing each request to route it to the most suitable model: ``` -Your Request → Arch Gateway → Suitable Model → Response +Your Request → Plano → Suitable Model → Response ↓ [Task Analysis & Model Selection] ``` -**Supported Providers**: OpenAI-compatible, Anthropic, DeepSeek, Grok, Gemini, Llama, Mistral, local models via Ollama. See [full list of supported providers](https://docs.archgw.com/concepts/llm_providers/supported_providers.html). +**Supported Providers**: OpenAI-compatible, Anthropic, DeepSeek, Grok, Gemini, Llama, Mistral, local models via Ollama. See [full list of supported providers](https://docs.planoai.dev/concepts/llm_providers/supported_providers.html). ## Quick Start (5 minutes) @@ -61,7 +61,7 @@ export ANTHROPIC_API_KEY="your-anthropic-key-here" # Add other providers as needed ``` -### Step 3: Start Arch Gateway +### Step 3: Start Plano ```bash # Install using uv (recommended) uv tool install planoai @@ -122,7 +122,7 @@ planoai cli-agent claude --settings='{"ANTHROPIC_SMALL_FAST_MODEL": "deepseek-co ### Environment Variables The system automatically configures these variables for Claude Code: ```bash -ANTHROPIC_BASE_URL=http://127.0.0.1:12000 # Routes through Arch Gateway +ANTHROPIC_BASE_URL=http://127.0.0.1:12000 # Routes through Plano ANTHROPIC_SMALL_FAST_MODEL=arch.claude.code.small.fast # Uses intelligent alias ``` @@ -147,6 +147,6 @@ llm_providers: ## Technical Details -**How routing works:** Arch intercepts Claude Code requests, analyzes the content using preference-aligned routing, and forwards to the configured model. +**How routing works:** Plano intercepts Claude Code requests, analyzes the content using preference-aligned routing, and forwards to the configured model. **Research foundation:** Built on our research in [Preference-Aligned LLM Routing](https://arxiv.org/abs/2506.16655) -**Documentation:** [docs.archgw.com](https://docs.archgw.com) for advanced configuration and API details. +**Documentation:** [docs.planoai.dev](https://docs.planoai.dev) for advanced configuration and API details. diff --git a/demos/use_cases/claude_code_router/pretty_model_resolution.sh b/demos/use_cases/claude_code_router/pretty_model_resolution.sh index 7c8aaaf7..b6187e65 100644 --- a/demos/use_cases/claude_code_router/pretty_model_resolution.sh +++ b/demos/use_cases/claude_code_router/pretty_model_resolution.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Pretty-print ArchGW MODEL_RESOLUTION lines from docker logs +# Pretty-print Plano MODEL_RESOLUTION lines from docker logs # - hides Arch-Router # - prints timestamp # - colors MODEL_RESOLUTION red @@ -7,7 +7,7 @@ # - colors resolved_model magenta # - removes provider and streaming -docker logs -f archgw 2>&1 \ +docker logs -f plano 2>&1 \ | awk ' /MODEL_RESOLUTION:/ && $0 !~ /Arch-Router/ { # extract timestamp between first [ and ] diff --git a/demos/use_cases/http_filter/docker-compose.yaml b/demos/use_cases/http_filter/docker-compose.yaml index a5832b22..4946de8c 100644 --- a/demos/use_cases/http_filter/docker-compose.yaml +++ b/demos/use_cases/http_filter/docker-compose.yaml @@ -19,10 +19,10 @@ services: - "12000:12000" - "8001:8001" environment: - - ARCH_CONFIG_PATH=/config/config.yaml + - PLANO_CONFIG_PATH=/config/config.yaml - OPENAI_API_KEY=${OPENAI_API_KEY:?OPENAI_API_KEY environment variable is required but not set} volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem jaeger: build: diff --git a/demos/use_cases/http_filter/src/rag_agent/context_builder.py b/demos/use_cases/http_filter/src/rag_agent/context_builder.py index 1f0fc748..5da1c43d 100644 --- a/demos/use_cases/http_filter/src/rag_agent/context_builder.py +++ b/demos/use_cases/http_filter/src/rag_agent/context_builder.py @@ -22,14 +22,14 @@ logger = logging.getLogger(__name__) ### add new setup app = FastAPI(title="RAG Agent Context Builder", version="1.0.0") -# Configuration for archgw LLM gateway +# Configuration for Plano LLM gateway LLM_GATEWAY_ENDPOINT = os.getenv("LLM_GATEWAY_ENDPOINT", "http://localhost:12000/v1") RAG_MODEL = "gpt-4o-mini" -# Initialize OpenAI client for archgw -archgw_client = AsyncOpenAI( +# Initialize OpenAI client for Plano +plano_client = AsyncOpenAI( base_url=LLM_GATEWAY_ENDPOINT, - api_key="EMPTY", # archgw doesn't require a real API key + api_key="EMPTY", # Plano doesn't require a real API key ) # Global variable to store the knowledge base @@ -95,15 +95,15 @@ async def find_relevant_passages( If no passages are relevant, return "NONE".""" try: - # Call archgw to select relevant passages - logger.info(f"Calling archgw to find relevant passages for query: '{query}'") + # Call Plano to select relevant passages + logger.info(f"Calling Plano to find relevant passages for query: '{query}'") # Prepare extra headers if traceparent is provided extra_headers = {"x-envoy-max-retries": "3", "x-request-id": request_id} if traceparent: extra_headers["traceparent"] = traceparent - response = await archgw_client.chat.completions.create( + response = await plano_client.chat.completions.create( model=RAG_MODEL, messages=[{"role": "system", "content": system_prompt}], temperature=0.1, diff --git a/demos/use_cases/http_filter/src/rag_agent/input_guards.py b/demos/use_cases/http_filter/src/rag_agent/input_guards.py index bdfdc09e..3b2414ad 100644 --- a/demos/use_cases/http_filter/src/rag_agent/input_guards.py +++ b/demos/use_cases/http_filter/src/rag_agent/input_guards.py @@ -22,14 +22,14 @@ logging.basicConfig( ) logger = logging.getLogger(__name__) -# Configuration for archgw LLM gateway +# Configuration for Plano LLM gateway LLM_GATEWAY_ENDPOINT = os.getenv("LLM_GATEWAY_ENDPOINT", "http://localhost:12000/v1") GUARD_MODEL = "gpt-4o-mini" -# Initialize OpenAI client for archgw -archgw_client = AsyncOpenAI( +# Initialize OpenAI client for Plano +plano_client = AsyncOpenAI( base_url=LLM_GATEWAY_ENDPOINT, - api_key="EMPTY", # archgw doesn't require a real API key + api_key="EMPTY", # Plano doesn't require a real API key ) app = FastAPI(title="RAG Agent Input Guards", version="1.0.0") @@ -93,13 +93,13 @@ Respond in JSON format: ] try: - # Call archgw using OpenAI client + # Call Plano using OpenAI client extra_headers = {"x-envoy-max-retries": "3", "x-request-id": request_id} if traceparent_header: extra_headers["traceparent"] = traceparent_header logger.info(f"Validating query scope: '{last_user_message}'") - response = await archgw_client.chat.completions.create( + response = await plano_client.chat.completions.create( model=GUARD_MODEL, messages=guard_messages, temperature=0.1, diff --git a/demos/use_cases/http_filter/src/rag_agent/query_rewriter.py b/demos/use_cases/http_filter/src/rag_agent/query_rewriter.py index debacc36..3e05836c 100644 --- a/demos/use_cases/http_filter/src/rag_agent/query_rewriter.py +++ b/demos/use_cases/http_filter/src/rag_agent/query_rewriter.py @@ -20,20 +20,20 @@ logging.basicConfig( ) logger = logging.getLogger(__name__) -# Configuration for archgw LLM gateway +# Configuration for Plano LLM gateway LLM_GATEWAY_ENDPOINT = os.getenv("LLM_GATEWAY_ENDPOINT", "http://localhost:12000/v1") QUERY_REWRITE_MODEL = "gpt-4o-mini" -# Initialize OpenAI client for archgw -archgw_client = AsyncOpenAI( +# Initialize OpenAI client for Plano +plano_client = AsyncOpenAI( base_url=LLM_GATEWAY_ENDPOINT, - api_key="EMPTY", # archgw doesn't require a real API key + api_key="EMPTY", # Plano doesn't require a real API key ) app = FastAPI(title="RAG Agent Query Rewriter", version="1.0.0") -async def rewrite_query_with_archgw( +async def rewrite_query_with_plano( messages: List[ChatMessage], traceparent_header: Optional[str] = None, request_id: Optional[str] = None, @@ -59,8 +59,8 @@ Return only the rewritten query, nothing else.""" extra_headers["traceparent"] = traceparent_header try: - logger.info(f"Calling archgw at {LLM_GATEWAY_ENDPOINT} to rewrite query") - resp = await archgw_client.chat.completions.create( + logger.info(f"Calling Plano at {LLM_GATEWAY_ENDPOINT} to rewrite query") + resp = await plano_client.chat.completions.create( model=QUERY_REWRITE_MODEL, messages=rewrite_messages, temperature=0.3, @@ -96,7 +96,7 @@ async def query_rewriter_http( else: logger.info("No traceparent header found") - rewritten_query = await rewrite_query_with_archgw( + rewritten_query = await rewrite_query_with_plano( messages, traceparent_header, request_id ) # Create updated messages with the rewritten query diff --git a/demos/use_cases/http_filter/src/rag_agent/rag_agent.py b/demos/use_cases/http_filter/src/rag_agent/rag_agent.py index 3f1c9855..3ec0cc33 100644 --- a/demos/use_cases/http_filter/src/rag_agent/rag_agent.py +++ b/demos/use_cases/http_filter/src/rag_agent/rag_agent.py @@ -22,7 +22,7 @@ logging.basicConfig( ) logger = logging.getLogger(__name__) -# Configuration for archgw LLM gateway +# Configuration for Plano LLM gateway LLM_GATEWAY_ENDPOINT = os.getenv("LLM_GATEWAY_ENDPOINT", "http://localhost:12000/v1") RESPONSE_MODEL = "gpt-4o" @@ -38,10 +38,10 @@ Your response should: Generate a complete response to assist the user.""" -# Initialize OpenAI client for archgw -archgw_client = AsyncOpenAI( +# Initialize OpenAI client for Plano +plano_client = AsyncOpenAI( base_url=LLM_GATEWAY_ENDPOINT, - api_key="EMPTY", # archgw doesn't require a real API key + api_key="EMPTY", # Plano doesn't require a real API key ) # FastAPI app for REST server @@ -95,9 +95,9 @@ async def stream_chat_completions( response_messages = prepare_response_messages(request_body) try: - # Call archgw using OpenAI client for streaming + # Call Plano using OpenAI client for streaming logger.info( - f"Calling archgw at {LLM_GATEWAY_ENDPOINT} to generate streaming response" + f"Calling Plano at {LLM_GATEWAY_ENDPOINT} to generate streaming response" ) # Prepare extra headers if traceparent is provided @@ -105,7 +105,7 @@ async def stream_chat_completions( if traceparent_header: extra_headers["traceparent"] = traceparent_header - response_stream = await archgw_client.chat.completions.create( + response_stream = await plano_client.chat.completions.create( model=RESPONSE_MODEL, messages=response_messages, temperature=request_body.temperature or 0.7, diff --git a/demos/use_cases/llm_routing/README.md b/demos/use_cases/llm_routing/README.md index 590bf027..4b431603 100644 --- a/demos/use_cases/llm_routing/README.md +++ b/demos/use_cases/llm_routing/README.md @@ -1,15 +1,15 @@ # LLM Routing -This demo shows how you can arch gateway to manage keys and route to upstream LLM. +This demo shows how you can use Plano gateway to manage keys and route to upstream LLM. # Starting the demo 1. Please make sure the [pre-requisites](https://github.com/katanemo/arch/?tab=readme-ov-file#prerequisites) are installed correctly -1. Start Arch +1. Start Plano ```sh sh run_demo.sh ``` 1. Navigate to http://localhost:18080/ -Following screen shows an example of interaction with arch gateway showing dynamic routing. You can select between different LLMs using "override model" option in the chat UI. +Following screen shows an example of interaction with Plano gateway showing dynamic routing. You can select between different LLMs using "override model" option in the chat UI. ![LLM Routing Demo](llm_routing_demo.png) @@ -47,12 +47,12 @@ $ curl --header 'Content-Type: application/json' \ ``` # Observability -Arch gateway publishes stats endpoint at http://localhost:19901/stats. In this demo we are using prometheus to pull stats from arch and we are using grafana to visualize the stats in dashboard. To see grafana dashboard follow instructions below, +Plano gateway publishes stats endpoint at http://localhost:19901/stats. In this demo we are using prometheus to pull stats from Plano and we are using grafana to visualize the stats in dashboard. To see grafana dashboard follow instructions below, 1. Navigate to http://localhost:3000/ to open grafana UI (use admin/grafana as credentials) -1. From grafana left nav click on dashboards and select "Intelligent Gateway Overview" to view arch gateway stats +1. From grafana left nav click on dashboards and select "Intelligent Gateway Overview" to view Plano gateway stats 1. For tracing you can head over to http://localhost:16686/ to view recent traces. -Following is a screenshot of tracing UI showing call received by arch gateway and making upstream call to LLM, +Following is a screenshot of tracing UI showing call received by Plano gateway and making upstream call to LLM, ![Jaeger Tracing](jaeger_tracing_llm_routing.png) diff --git a/demos/use_cases/llm_routing/docker-compose.yaml b/demos/use_cases/llm_routing/docker-compose.yaml index 8e4a88b3..784578d0 100644 --- a/demos/use_cases/llm_routing/docker-compose.yaml +++ b/demos/use_cases/llm_routing/docker-compose.yaml @@ -8,11 +8,11 @@ services: - "12000:12000" - "12001:12001" environment: - - ARCH_CONFIG_PATH=/app/arch_config.yaml + - PLANO_CONFIG_PATH=/app/plano_config.yaml - OPENAI_API_KEY=${OPENAI_API_KEY:?OPENAI_API_KEY environment variable is required but not set} - OTEL_TRACING_GRPC_ENDPOINT=http://host.docker.internal:4317 volumes: - - ./config.yaml:/app/arch_config.yaml:ro + - ./config.yaml:/app/plano_config.yaml:ro - /etc/ssl/cert.pem:/etc/ssl/cert.pem anythingllm: diff --git a/demos/use_cases/llm_routing/run_demo.sh b/demos/use_cases/llm_routing/run_demo.sh index 452a9b72..b049bf31 100644 --- a/demos/use_cases/llm_routing/run_demo.sh +++ b/demos/use_cases/llm_routing/run_demo.sh @@ -18,8 +18,8 @@ start_demo() { echo ".env file created with OPENAI_API_KEY." fi - # Step 3: Start Arch - echo "Starting Arch with config.yaml..." + # Step 3: Start Plano + echo "Starting Plano with config.yaml..." planoai up config.yaml # Step 4: Start LLM Routing @@ -33,8 +33,8 @@ stop_demo() { echo "Stopping LLM Routing using Docker Compose..." docker compose down - # Step 2: Stop Arch - echo "Stopping Arch..." + # Step 2: Stop Plano + echo "Stopping Plano..." planoai down } diff --git a/demos/use_cases/mcp_filter/docker-compose.yaml b/demos/use_cases/mcp_filter/docker-compose.yaml index 5e94f277..9ecc36e1 100644 --- a/demos/use_cases/mcp_filter/docker-compose.yaml +++ b/demos/use_cases/mcp_filter/docker-compose.yaml @@ -21,10 +21,10 @@ services: - "12000:12000" - "8001:8001" environment: - - ARCH_CONFIG_PATH=/config/config.yaml + - PLANO_CONFIG_PATH=/config/config.yaml - OPENAI_API_KEY=${OPENAI_API_KEY:?OPENAI_API_KEY environment variable is required but not set} volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem jaeger: build: diff --git a/demos/use_cases/mcp_filter/src/rag_agent/context_builder.py b/demos/use_cases/mcp_filter/src/rag_agent/context_builder.py index bc1438d2..e50bb76c 100644 --- a/demos/use_cases/mcp_filter/src/rag_agent/context_builder.py +++ b/demos/use_cases/mcp_filter/src/rag_agent/context_builder.py @@ -18,14 +18,14 @@ logging.basicConfig( logger = logging.getLogger(__name__) -# Configuration for archgw LLM gateway +# Configuration for Plano LLM gateway LLM_GATEWAY_ENDPOINT = os.getenv("LLM_GATEWAY_ENDPOINT", "http://localhost:12000/v1") RAG_MODEL = "gpt-4o-mini" -# Initialize OpenAI client for archgw -archgw_client = AsyncOpenAI( +# Initialize OpenAI client for Plano +plano_client = AsyncOpenAI( base_url=LLM_GATEWAY_ENDPOINT, - api_key="EMPTY", # archgw doesn't require a real API key + api_key="EMPTY", # Plano doesn't require a real API key ) # Global variable to store the knowledge base @@ -91,8 +91,8 @@ async def find_relevant_passages( If no passages are relevant, return "NONE".""" try: - # Call archgw to select relevant passages - logger.info(f"Calling archgw to find relevant passages for query: '{query}'") + # Call Plano to select relevant passages + logger.info(f"Calling Plano to find relevant passages for query: '{query}'") # Prepare extra headers if traceparent is provided extra_headers = { @@ -103,7 +103,7 @@ async def find_relevant_passages( if traceparent: extra_headers["traceparent"] = traceparent - response = await archgw_client.chat.completions.create( + response = await plano_client.chat.completions.create( model=RAG_MODEL, messages=[{"role": "system", "content": system_prompt}], temperature=0.1, diff --git a/demos/use_cases/mcp_filter/src/rag_agent/input_guards.py b/demos/use_cases/mcp_filter/src/rag_agent/input_guards.py index fce2c470..607ff035 100644 --- a/demos/use_cases/mcp_filter/src/rag_agent/input_guards.py +++ b/demos/use_cases/mcp_filter/src/rag_agent/input_guards.py @@ -20,14 +20,14 @@ logging.basicConfig( ) logger = logging.getLogger(__name__) -# Configuration for archgw LLM gateway +# Configuration for Plano LLM gateway LLM_GATEWAY_ENDPOINT = os.getenv("LLM_GATEWAY_ENDPOINT", "http://localhost:12000/v1") GUARD_MODEL = "gpt-4o-mini" -# Initialize OpenAI client for archgw -archgw_client = AsyncOpenAI( +# Initialize OpenAI client for Plano +plano_client = AsyncOpenAI( base_url=LLM_GATEWAY_ENDPOINT, - api_key="EMPTY", # archgw doesn't require a real API key + api_key="EMPTY", # Plano doesn't require a real API key ) app = FastAPI() @@ -91,7 +91,7 @@ Respond in JSON format: ] try: - # Call archgw using OpenAI client + # Call Plano using OpenAI client extra_headers = {"x-envoy-max-retries": "3"} if traceparent_header: extra_headers["traceparent"] = traceparent_header @@ -100,7 +100,7 @@ Respond in JSON format: extra_headers["x-request-id"] = request_id logger.info(f"Validating query scope: '{last_user_message}'") - response = await archgw_client.chat.completions.create( + response = await plano_client.chat.completions.create( model=GUARD_MODEL, messages=guard_messages, temperature=0.1, diff --git a/demos/use_cases/mcp_filter/src/rag_agent/query_rewriter.py b/demos/use_cases/mcp_filter/src/rag_agent/query_rewriter.py index 050b49de..5939170e 100644 --- a/demos/use_cases/mcp_filter/src/rag_agent/query_rewriter.py +++ b/demos/use_cases/mcp_filter/src/rag_agent/query_rewriter.py @@ -19,20 +19,20 @@ logging.basicConfig( ) logger = logging.getLogger(__name__) -# Configuration for archgw LLM gateway +# Configuration for Plano LLM gateway LLM_GATEWAY_ENDPOINT = os.getenv("LLM_GATEWAY_ENDPOINT", "http://localhost:12000/v1") QUERY_REWRITE_MODEL = "gpt-4o-mini" -# Initialize OpenAI client for archgw -archgw_client = AsyncOpenAI( +# Initialize OpenAI client for Plano +plano_client = AsyncOpenAI( base_url=LLM_GATEWAY_ENDPOINT, - api_key="EMPTY", # archgw doesn't require a real API key + api_key="EMPTY", # Plano doesn't require a real API key ) app = FastAPI() -async def rewrite_query_with_archgw( +async def rewrite_query_with_plano( messages: List[ChatMessage], traceparent_header: str, request_id: Optional[str] = None, @@ -57,14 +57,14 @@ async def rewrite_query_with_archgw( rewrite_messages.append({"role": msg.role, "content": msg.content}) try: - # Call archgw using OpenAI client + # Call Plano using OpenAI client extra_headers = {"x-envoy-max-retries": "3"} if traceparent_header: extra_headers["traceparent"] = traceparent_header if request_id: extra_headers["x-request-id"] = request_id - logger.info(f"Calling archgw at {LLM_GATEWAY_ENDPOINT} to rewrite query") - response = await archgw_client.chat.completions.create( + logger.info(f"Calling Plano at {LLM_GATEWAY_ENDPOINT} to rewrite query") + response = await plano_client.chat.completions.create( model=QUERY_REWRITE_MODEL, messages=rewrite_messages, temperature=0.3, @@ -88,7 +88,7 @@ async def rewrite_query_with_archgw( async def query_rewriter(messages: List[ChatMessage]) -> List[ChatMessage]: - """Chat completions endpoint that rewrites the last user query using archgw. + """Chat completions endpoint that rewrites the last user query using Plano. Returns a dict with a 'messages' key containing the updated message list. """ @@ -104,8 +104,8 @@ async def query_rewriter(messages: List[ChatMessage]) -> List[ChatMessage]: else: logger.info("No traceparent header found") - # Call archgw to rewrite the last user query - rewritten_query = await rewrite_query_with_archgw( + # Call Plano to rewrite the last user query + rewritten_query = await rewrite_query_with_plano( messages, traceparent_header, request_id ) diff --git a/demos/use_cases/mcp_filter/src/rag_agent/rag_agent.py b/demos/use_cases/mcp_filter/src/rag_agent/rag_agent.py index 1a387ab7..2bc159f0 100644 --- a/demos/use_cases/mcp_filter/src/rag_agent/rag_agent.py +++ b/demos/use_cases/mcp_filter/src/rag_agent/rag_agent.py @@ -22,7 +22,7 @@ logging.basicConfig( ) logger = logging.getLogger(__name__) -# Configuration for archgw LLM gateway +# Configuration for Plano LLM gateway LLM_GATEWAY_ENDPOINT = os.getenv("LLM_GATEWAY_ENDPOINT", "http://localhost:12000/v1") RESPONSE_MODEL = "gpt-4o" @@ -38,10 +38,10 @@ Your response should: Generate a complete response to assist the user.""" -# Initialize OpenAI client for archgw -archgw_client = AsyncOpenAI( +# Initialize OpenAI client for Plano +plano_client = AsyncOpenAI( base_url=LLM_GATEWAY_ENDPOINT, - api_key="EMPTY", # archgw doesn't require a real API key + api_key="EMPTY", # Plano doesn't require a real API key ) # FastAPI app for REST server @@ -94,9 +94,9 @@ async def stream_chat_completions( response_messages = prepare_response_messages(request_body) try: - # Call archgw using OpenAI client for streaming + # Call Plano using OpenAI client for streaming logger.info( - f"Calling archgw at {LLM_GATEWAY_ENDPOINT} to generate streaming response" + f"Calling Plano at {LLM_GATEWAY_ENDPOINT} to generate streaming response" ) logger.info(f"rag_agent - request_id: {request_id}") @@ -107,7 +107,7 @@ async def stream_chat_completions( if traceparent_header: extra_headers["traceparent"] = traceparent_header - response_stream = await archgw_client.chat.completions.create( + response_stream = await plano_client.chat.completions.create( model=RESPONSE_MODEL, messages=response_messages, temperature=request_body.temperature or 0.7, diff --git a/demos/use_cases/model_alias_routing/README.md b/demos/use_cases/model_alias_routing/README.md index 347a7e2b..c35ba8fe 100644 --- a/demos/use_cases/model_alias_routing/README.md +++ b/demos/use_cases/model_alias_routing/README.md @@ -1,6 +1,6 @@ # Model Alias Demo Suite -This directory contains demos for the model alias feature in archgw. +This directory contains demos for the model alias feature in Plano. ## Overview @@ -48,7 +48,7 @@ model_aliases: ``` ## Prerequisites -- Install all dependencies as described in the main Arch README ([link](https://github.com/katanemo/arch/?tab=readme-ov-file#prerequisites)) +- Install all dependencies as described in the main Plano README ([link](https://github.com/katanemo/plano/?tab=readme-ov-file#prerequisites)) - Set your API keys in your environment: - `export OPENAI_API_KEY=your-openai-key` - `export ANTHROPIC_API_KEY=your-anthropic-key` (optional, but recommended for Anthropic tests) @@ -60,13 +60,13 @@ model_aliases: sh run_demo.sh ``` - This will create a `.env` file with your API keys (if not present). - - Starts Arch Gateway with model alias config (`arch_config_with_aliases.yaml`). + - Starts Plano gateway with model alias config (`arch_config_with_aliases.yaml`). 2. To stop the demo: ```sh sh run_demo.sh down ``` - - This will stop Arch Gateway and any related services. + - This will stop Plano gateway and any related services. ## Example Requests @@ -145,4 +145,4 @@ curl -sS -X POST "http://localhost:12000/v1/messages" \ ## Troubleshooting - Ensure your API keys are set in your environment before running the demo. - If you see errors about missing keys, set them and re-run the script. -- For more details, see the main Arch documentation. +- For more details, see the main Plano documentation. diff --git a/demos/use_cases/model_alias_routing/run_demo.sh b/demos/use_cases/model_alias_routing/run_demo.sh index 5a064629..3528ee7a 100644 --- a/demos/use_cases/model_alias_routing/run_demo.sh +++ b/demos/use_cases/model_alias_routing/run_demo.sh @@ -24,11 +24,11 @@ start_demo() { echo ".env file created with API keys." fi - # Step 3: Start Arch - echo "Starting Arch with arch_config_with_aliases.yaml..." + # Step 3: Start Plano + echo "Starting Plano with arch_config_with_aliases.yaml..." planoai up arch_config_with_aliases.yaml - echo "\n\nArch started successfully." + echo "\n\nPlano started successfully." echo "Please run the following CURL command to test model alias routing. Additional instructions are in the README.md file. \n" echo "curl -sS -X POST \"http://localhost:12000/v1/chat/completions\" \ -H \"Authorization: Bearer test-key\" \ @@ -46,8 +46,8 @@ start_demo() { # Function to stop the demo stop_demo() { - # Step 2: Stop Arch - echo "Stopping Arch..." + # Step 2: Stop Plano + echo "Stopping Plano..." planoai down } diff --git a/demos/use_cases/model_choice_with_test_harness/README.md b/demos/use_cases/model_choice_with_test_harness/README.md index 3c7349aa..5fb5ac27 100644 --- a/demos/use_cases/model_choice_with_test_harness/README.md +++ b/demos/use_cases/model_choice_with_test_harness/README.md @@ -1,6 +1,6 @@ # Model Choice Newsletter Demo -This folder demonstrates a practical workflow for rapid model adoption and safe model switching using Arch Gateway (`plano`). It includes both a minimal test harness and a sample proxy configuration. +This folder demonstrates a practical workflow for rapid model adoption and safe model switching using Plano (`plano`). It includes both a minimal test harness and a sample proxy configuration. --- @@ -85,13 +85,13 @@ See `config.yaml` for a sample configuration mapping aliases to provider models. ``` 2. **Install dependencies:** - - Install all dependencies as described in the main Arch README ([link](https://github.com/katanemo/arch/?tab=readme-ov-file#prerequisites)) + - Install all dependencies as described in the main Plano README ([link](https://github.com/katanemo/plano/?tab=readme-ov-file#prerequisites)) - Then run ```sh uv sync ``` -3. **Start Arch Gateway** +3. **Start Plano** ```sh run_demo.sh ``` diff --git a/demos/use_cases/model_choice_with_test_harness/bench.py b/demos/use_cases/model_choice_with_test_harness/bench.py index 82e7d425..738cc016 100644 --- a/demos/use_cases/model_choice_with_test_harness/bench.py +++ b/demos/use_cases/model_choice_with_test_harness/bench.py @@ -3,7 +3,7 @@ import json, time, yaml, statistics as stats from pydantic import BaseModel, ValidationError from openai import OpenAI -# archgw endpoint (keys are handled by archgw) +# Plano endpoint (keys are handled by Plano) client = OpenAI(base_url="http://localhost:12000/v1", api_key="n/a") MODELS = ["arch.summarize.v1", "arch.reason.v1"] FIXTURES = "evals_summarize.yaml" diff --git a/demos/use_cases/model_choice_with_test_harness/arch_config_with_aliases.yaml b/demos/use_cases/model_choice_with_test_harness/plano_config_with_aliases.yaml similarity index 100% rename from demos/use_cases/model_choice_with_test_harness/arch_config_with_aliases.yaml rename to demos/use_cases/model_choice_with_test_harness/plano_config_with_aliases.yaml diff --git a/demos/use_cases/model_choice_with_test_harness/pyproject.toml b/demos/use_cases/model_choice_with_test_harness/pyproject.toml index b60434c2..7737db3f 100644 --- a/demos/use_cases/model_choice_with_test_harness/pyproject.toml +++ b/demos/use_cases/model_choice_with_test_harness/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "model-choice-newsletter-code-snippets" version = "0.1.0" -description = "Benchmarking model alias routing with Arch Gateway." +description = "Benchmarking model alias routing with Plano." authors = [{name = "Your Name", email = "your@email.com"}] license = {text = "Apache 2.0"} readme = "README.md" diff --git a/demos/use_cases/model_choice_with_test_harness/run_demo.sh b/demos/use_cases/model_choice_with_test_harness/run_demo.sh index 623129a2..5c0c875f 100644 --- a/demos/use_cases/model_choice_with_test_harness/run_demo.sh +++ b/demos/use_cases/model_choice_with_test_harness/run_demo.sh @@ -17,18 +17,18 @@ start_demo() { echo ".env file created with API keys." fi - # Step 3: Start Arch - echo "Starting Arch with arch_config_with_aliases.yaml..." + # Step 3: Start Plano + echo "Starting Plano with arch_config_with_aliases.yaml..." planoai up arch_config_with_aliases.yaml - echo "\n\nArch started successfully." + echo "\n\nPlano started successfully." echo "Please run the following command to test the setup: python bench.py\n" } # Function to stop the demo stop_demo() { - # Step 2: Stop Arch - echo "Stopping Arch..." + # Step 2: Stop Plano + echo "Stopping Plano..." planoai down } diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/docker-compose.yaml b/demos/use_cases/multi_agent_with_crewai_langchain/docker-compose.yaml index 8f7bdb00..a54888a6 100644 --- a/demos/use_cases/multi_agent_with_crewai_langchain/docker-compose.yaml +++ b/demos/use_cases/multi_agent_with_crewai_langchain/docker-compose.yaml @@ -8,12 +8,12 @@ services: - "8001:8001" - "12000:12000" environment: - - ARCH_CONFIG_PATH=/app/arch_config.yaml + - PLANO_CONFIG_PATH=/app/plano_config.yaml - OPENAI_API_KEY=${OPENAI_API_KEY:?OPENAI_API_KEY environment variable is required but not set} - OTEL_TRACING_GRPC_ENDPOINT=http://jaeger:4317 - LOG_LEVEL=${LOG_LEVEL:-info} volumes: - - ./config.yaml:/app/arch_config.yaml:ro + - ./config.yaml:/app/plano_config.yaml:ro - /etc/ssl/cert.pem:/etc/ssl/cert.pem crewai-flight-agent: diff --git a/demos/use_cases/ollama/docker-compose.yaml b/demos/use_cases/ollama/docker-compose.yaml index 81c4a57f..3f123d84 100644 --- a/demos/use_cases/ollama/docker-compose.yaml +++ b/demos/use_cases/ollama/docker-compose.yaml @@ -10,7 +10,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml jaeger: build: diff --git a/demos/use_cases/ollama/docker-compose_honeycomb.yaml b/demos/use_cases/ollama/docker-compose_honeycomb.yaml index 49b1589f..9b44c0c2 100644 --- a/demos/use_cases/ollama/docker-compose_honeycomb.yaml +++ b/demos/use_cases/ollama/docker-compose_honeycomb.yaml @@ -10,7 +10,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml otel-collector: build: diff --git a/demos/use_cases/ollama/run_demo.sh b/demos/use_cases/ollama/run_demo.sh index 992bb260..6623dee5 100644 --- a/demos/use_cases/ollama/run_demo.sh +++ b/demos/use_cases/ollama/run_demo.sh @@ -18,8 +18,8 @@ start_demo() { echo ".env file created with OPENAI_API_KEY." fi - # Step 3: Start Arch - echo "Starting Arch with config.yaml..." + # Step 3: Start Plano + echo "Starting Plano with config.yaml..." planoai up config.yaml # Step 4: Start developer services @@ -33,8 +33,8 @@ stop_demo() { echo "Stopping Network Agent using Docker Compose..." docker compose down - # Step 2: Stop Arch - echo "Stopping Arch..." + # Step 2: Stop Plano + echo "Stopping Plano..." planoai down } diff --git a/demos/use_cases/preference_based_routing/README.md b/demos/use_cases/preference_based_routing/README.md index 561d87a2..0f4530a1 100644 --- a/demos/use_cases/preference_based_routing/README.md +++ b/demos/use_cases/preference_based_routing/README.md @@ -17,7 +17,7 @@ Make sure your machine is up to date with [latest version of plano]([url](https: # Or if installed with uv: uvx planoai up --service plano --foreground 2025-05-30 18:00:09,953 - planoai.main - INFO - Starting plano cli version: 0.4.6 2025-05-30 18:00:09,953 - planoai.main - INFO - Validating /Users/adilhafeez/src/intelligent-prompt-gateway/demos/use_cases/preference_based_routing/config.yaml -2025-05-30 18:00:10,422 - cli.core - INFO - Starting arch gateway, image name: plano, tag: katanemo/plano:0.4.6 +2025-05-30 18:00:10,422 - cli.core - INFO - Starting plano gateway, image name: plano, tag: katanemo/plano:0.4.6 2025-05-30 18:00:10,662 - cli.core - INFO - plano status: running, health status: starting 2025-05-30 18:00:11,712 - cli.core - INFO - plano status: running, health status: starting 2025-05-30 18:00:12,761 - cli.core - INFO - plano is running and is healthy! diff --git a/demos/use_cases/preference_based_routing/docker-compose.yaml b/demos/use_cases/preference_based_routing/docker-compose.yaml index b4bc6a6b..37af57e2 100644 --- a/demos/use_cases/preference_based_routing/docker-compose.yaml +++ b/demos/use_cases/preference_based_routing/docker-compose.yaml @@ -8,14 +8,14 @@ services: - "12000:12000" - "12001:12001" environment: - - ARCH_CONFIG_PATH=/app/arch_config.yaml + - PLANO_CONFIG_PATH=/app/plano_config.yaml - OPENAI_API_KEY=${OPENAI_API_KEY:?OPENAI_API_KEY environment variable is required but not set} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:?ANTHROPIC_API_KEY environment variable is required but not set} - OTEL_TRACING_GRPC_ENDPOINT=http://host.docker.internal:4317 - OTEL_TRACING_ENABLED=true - RUST_LOG=debug volumes: - - ./config.yaml:/app/arch_config.yaml:ro + - ./config.yaml:/app/plano_config.yaml:ro - /etc/ssl/cert.pem:/etc/ssl/cert.pem anythingllm: diff --git a/demos/use_cases/preference_based_routing/arch_config_local.yaml b/demos/use_cases/preference_based_routing/plano_config_local.yaml similarity index 100% rename from demos/use_cases/preference_based_routing/arch_config_local.yaml rename to demos/use_cases/preference_based_routing/plano_config_local.yaml diff --git a/demos/use_cases/spotify_bearer_auth/README.md b/demos/use_cases/spotify_bearer_auth/README.md index 7dd3c81e..2d11700c 100644 --- a/demos/use_cases/spotify_bearer_auth/README.md +++ b/demos/use_cases/spotify_bearer_auth/README.md @@ -1,6 +1,6 @@ # Use Case Demo: Bearer Authorization with Spotify APIs -In this demo, we show how you can use Arch's bearer authorization capability to connect your agentic apps to third-party APIs. +In this demo, we show how you can use Plano's bearer authorization capability to connect your agentic apps to third-party APIs. More specifically, we demonstrate how you can connect to two Spotify APIs: - [`/v1/browse/new-releases`](https://developer.spotify.com/documentation/web-api/reference/get-new-releases) @@ -23,7 +23,7 @@ Where users can engage by asking questions like _"Show me the latest releases in SPOTIFY_CLIENT_KEY=your_spotify_api_token ``` -3. Start Arch +3. Start Plano ```sh sh run_demo.sh ``` diff --git a/demos/use_cases/spotify_bearer_auth/docker-compose.yaml b/demos/use_cases/spotify_bearer_auth/docker-compose.yaml index 527e0c1b..bde2b082 100644 --- a/demos/use_cases/spotify_bearer_auth/docker-compose.yaml +++ b/demos/use_cases/spotify_bearer_auth/docker-compose.yaml @@ -10,7 +10,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml jaeger: build: diff --git a/demos/use_cases/spotify_bearer_auth/run_demo.sh b/demos/use_cases/spotify_bearer_auth/run_demo.sh index 992bb260..6623dee5 100644 --- a/demos/use_cases/spotify_bearer_auth/run_demo.sh +++ b/demos/use_cases/spotify_bearer_auth/run_demo.sh @@ -18,8 +18,8 @@ start_demo() { echo ".env file created with OPENAI_API_KEY." fi - # Step 3: Start Arch - echo "Starting Arch with config.yaml..." + # Step 3: Start Plano + echo "Starting Plano with config.yaml..." planoai up config.yaml # Step 4: Start developer services @@ -33,8 +33,8 @@ stop_demo() { echo "Stopping Network Agent using Docker Compose..." docker compose down - # Step 2: Stop Arch - echo "Stopping Arch..." + # Step 2: Stop Plano + echo "Stopping Plano..." planoai down } diff --git a/demos/use_cases/travel_agents/docker-compose.yaml b/demos/use_cases/travel_agents/docker-compose.yaml index af5be2e1..b4e65b28 100644 --- a/demos/use_cases/travel_agents/docker-compose.yaml +++ b/demos/use_cases/travel_agents/docker-compose.yaml @@ -8,10 +8,10 @@ services: - "12000:12000" - "8001:8001" environment: - - ARCH_CONFIG_PATH=/config/config.yaml + - PLANO_CONFIG_PATH=/config/config.yaml - OPENAI_API_KEY=${OPENAI_API_KEY:?OPENAI_API_KEY environment variable is required but not set} volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem weather-agent: build: diff --git a/docs/source/_ext/provider_models.py b/docs/source/_ext/provider_models.py index 9b7451c5..96d954d9 100644 --- a/docs/source/_ext/provider_models.py +++ b/docs/source/_ext/provider_models.py @@ -19,7 +19,7 @@ def _on_build_finished(app: Sphinx, exception: Exception | None) -> None: return # Source path: provider_models.yaml is copied into the Docker image at /docs/provider_models.yaml - # This follows the pattern used for config templates like envoy.template.yaml and arch_config_schema.yaml + # This follows the pattern used for config templates like envoy.template.yaml and plano_config_schema.yaml docs_root = Path(app.srcdir).parent # Goes from source/ to docs/ source_path = docs_root / "provider_models.yaml" diff --git a/docs/source/build_with_plano/includes/agent/function-calling-agent.yaml b/docs/source/build_with_plano/includes/agent/function-calling-agent.yaml index bafd3b41..904b12ce 100644 --- a/docs/source/build_with_plano/includes/agent/function-calling-agent.yaml +++ b/docs/source/build_with_plano/includes/agent/function-calling-agent.yaml @@ -48,7 +48,7 @@ prompt_targets: description: Time range in days for which to gather device statistics. Defaults to 7. default: 7 -# Arch creates a round-robin load balancing between different endpoints, managed via the cluster subsystem. +# Plano creates a round-robin load balancing between different endpoints, managed via the cluster subsystem. endpoints: app_server: # value could be ip address or a hostname with port diff --git a/docs/source/concepts/includes/plano_config.yaml b/docs/source/concepts/includes/plano_config.yaml index e1dc0749..0b97e5b5 100644 --- a/docs/source/concepts/includes/plano_config.yaml +++ b/docs/source/concepts/includes/plano_config.yaml @@ -18,7 +18,7 @@ prompt_targets: endpoint: name: app_server path: /agent/summary - # Arch uses the default LLM and treats the response from the endpoint as the prompt to send to the LLM + # Plano uses the default LLM and treats the response from the endpoint as the prompt to send to the LLM auto_llm_dispatch_on_response: true # override system prompt for this prompt target system_prompt: You are a helpful information extraction assistant. Use the information that is provided to you. @@ -39,7 +39,7 @@ prompt_targets: default: false enum: [true, false] -# Arch creates a round-robin load balancing between different endpoints, managed via the cluster subsystem. +# Plano creates a round-robin load balancing between different endpoints, managed via the cluster subsystem. endpoints: app_server: # value could be ip address or a hostname with port diff --git a/docs/source/concepts/llm_providers/client_libraries.rst b/docs/source/concepts/llm_providers/client_libraries.rst index b9316fb6..90151f5f 100644 --- a/docs/source/concepts/llm_providers/client_libraries.rst +++ b/docs/source/concepts/llm_providers/client_libraries.rst @@ -54,7 +54,7 @@ The OpenAI SDK works with any provider through Plano's OpenAI-compatible endpoin base_url="http://127.0.0.1:12000/v1" ) - # Use any model configured in your arch_config.yaml + # Use any model configured in your plano_config.yaml completion = client.chat.completions.create( model="gpt-4o-mini", # Or use :ref:`model aliases ` like "fast-model" max_tokens=50, @@ -231,7 +231,7 @@ The Anthropic SDK works with any provider through Plano's Anthropic-compatible e base_url="http://127.0.0.1:12000" ) - # Use any model configured in your arch_config.yaml + # Use any model configured in your plano_config.yaml message = client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=50, diff --git a/docs/source/concepts/prompt_target.rst b/docs/source/concepts/prompt_target.rst index 95b5b567..98eadee4 100644 --- a/docs/source/concepts/prompt_target.rst +++ b/docs/source/concepts/prompt_target.rst @@ -114,7 +114,7 @@ Example 1: Adjusting Retrieval User: What are the benefits of renewable energy? **[Plano]**: Check if there is an available that can handle this user query. - **[Plano]**: Found "get_info_for_energy_source" prompt_target in arch_config.yaml. Forward prompt to the endpoint configured in "get_info_for_energy_source" + **[Plano]**: Found "get_info_for_energy_source" prompt_target in plano_config.yaml. Forward prompt to the endpoint configured in "get_info_for_energy_source" ... Assistant: Renewable energy reduces greenhouse gas emissions, lowers air pollution, and provides sustainable power sources like solar and wind. @@ -130,13 +130,13 @@ Example 2: Switching Intent User: What are the symptoms of diabetes? **[Plano]**: Check if there is an available that can handle this user query. - **[Plano]**: Found "diseases_symptoms" prompt_target in arch_config.yaml. Forward disease=diabeteres to "diseases_symptoms" prompt target + **[Plano]**: Found "diseases_symptoms" prompt_target in plano_config.yaml. Forward disease=diabeteres to "diseases_symptoms" prompt target ... Assistant: Common symptoms include frequent urination, excessive thirst, fatigue, and blurry vision. User: How is it diagnosed? **[Plano]**: New intent detected. - **[Plano]**: Found "disease_diagnoses" prompt_target in arch_config.yaml. Forward disease=diabeteres to "disease_diagnoses" prompt target + **[Plano]**: Found "disease_diagnoses" prompt_target in plano_config.yaml. Forward disease=diabeteres to "disease_diagnoses" prompt target ... Assistant: Diabetes is diagnosed through blood tests like fasting blood sugar, A1C, or an oral glucose tolerance test. @@ -172,7 +172,7 @@ Once the prompt targets are configured as above, handle parameters across multi- Demo App -------- -For your convenience, we've built a `demo app `_ +For your convenience, we've built a `demo app `_ that you can test and modify locally for multi-turn RAG scenarios. .. figure:: ../build_with_plano/includes/multi_turn/mutli-turn-example.png diff --git a/docs/source/guides/includes/config.yaml b/docs/source/guides/includes/config.yaml index 41c06e79..a33341b4 100644 --- a/docs/source/guides/includes/config.yaml +++ b/docs/source/guides/includes/config.yaml @@ -24,7 +24,7 @@ prompt_targets: name: app_server path: /agent/summary http_method: POST - # Arch uses the default LLM and treats the response from the endpoint as the prompt to send to the LLM + # Plano uses the default LLM and treats the response from the endpoint as the prompt to send to the LLM auto_llm_dispatch_on_response: true # override system prompt for this prompt target system_prompt: You are a helpful information extraction assistant. Use the information that is provided to you. @@ -46,7 +46,7 @@ prompt_targets: default: false enum: [true, false] -# Arch creates a round-robin load balancing between different endpoints, managed via the cluster subsystem. +# Plano creates a round-robin load balancing between different endpoints, managed via the cluster subsystem. endpoints: app_server: # value could be ip address or a hostname with port diff --git a/docs/source/guides/observability/access_logging.rst b/docs/source/guides/observability/access_logging.rst index e3c6f325..3ca007b1 100644 --- a/docs/source/guides/observability/access_logging.rst +++ b/docs/source/guides/observability/access_logging.rst @@ -1,4 +1,4 @@ -.. _arch_access_logging: +.. _plano_access_logging: Access Logging ============== diff --git a/docs/source/guides/observability/tracing.rst b/docs/source/guides/observability/tracing.rst index 4b6d8090..02723b23 100644 --- a/docs/source/guides/observability/tracing.rst +++ b/docs/source/guides/observability/tracing.rst @@ -1,4 +1,4 @@ -.. _arch_overview_tracing: +.. _plano_overview_tracing: Tracing ======= diff --git a/docs/source/guides/state.rst b/docs/source/guides/state.rst index 1d5828ca..7cc6b20a 100644 --- a/docs/source/guides/state.rst +++ b/docs/source/guides/state.rst @@ -57,7 +57,7 @@ Configuration Overview State storage is configured in the ``state_storage`` section of your ``plano_config.yaml``: -.. literalinclude:: ../resources/includes/arch_config_state_storage_example.yaml +.. literalinclude:: ../resources/includes/plano_config_state_storage_example.yaml :language: yaml :lines: 21-30 :linenos: diff --git a/docs/source/resources/configuration_reference.rst b/docs/source/resources/configuration_reference.rst index 55081347..8e040f75 100644 --- a/docs/source/resources/configuration_reference.rst +++ b/docs/source/resources/configuration_reference.rst @@ -4,10 +4,10 @@ Configuration Reference ======================= The following is a complete reference of the ``plano_config.yml`` that controls the behavior of a single instance of -the Arch gateway. This where you enable capabilities like routing to upstream LLm providers, defining prompt_targets +the Plano gateway. This where you enable capabilities like routing to upstream LLm providers, defining prompt_targets where prompts get routed to, apply guardrails, and enable critical agent observability features. -.. literalinclude:: includes/arch_config_full_reference.yaml +.. literalinclude:: includes/plano_config_full_reference.yaml :language: yaml :linenos: - :caption: :download:`Plano Configuration - Full Reference ` + :caption: :download:`Plano Configuration - Full Reference ` diff --git a/docs/source/resources/includes/plano_config_agents_filters.yaml b/docs/source/resources/includes/plano_config_agents_filters.yaml index e5aacc03..dfc8fe7b 100644 --- a/docs/source/resources/includes/plano_config_agents_filters.yaml +++ b/docs/source/resources/includes/plano_config_agents_filters.yaml @@ -30,7 +30,7 @@ listeners: - type: agent name: agent_1 port: 8001 - router: arch_agent_router + router: plano_agent_router agents: - id: rag_agent description: virtual assistant for retrieval augmented generation tasks diff --git a/docs/source/resources/includes/arch_config_full_reference.yaml b/docs/source/resources/includes/plano_config_full_reference.yaml similarity index 98% rename from docs/source/resources/includes/arch_config_full_reference.yaml rename to docs/source/resources/includes/plano_config_full_reference.yaml index be3c18a2..cc3973e0 100644 --- a/docs/source/resources/includes/arch_config_full_reference.yaml +++ b/docs/source/resources/includes/plano_config_full_reference.yaml @@ -1,4 +1,4 @@ -# Arch Gateway configuration version +# Plano Gateway configuration version version: v0.3.0 # External HTTP agents - API type is controlled by request path (/v1/responses, /v1/messages, /v1/chat/completions) diff --git a/docs/source/resources/includes/arch_config_full_reference_rendered.yaml b/docs/source/resources/includes/plano_config_full_reference_rendered.yaml similarity index 100% rename from docs/source/resources/includes/arch_config_full_reference_rendered.yaml rename to docs/source/resources/includes/plano_config_full_reference_rendered.yaml diff --git a/docs/source/resources/includes/arch_config_state_storage_example.yaml b/docs/source/resources/includes/plano_config_state_storage_example.yaml similarity index 100% rename from docs/source/resources/includes/arch_config_state_storage_example.yaml rename to docs/source/resources/includes/plano_config_state_storage_example.yaml diff --git a/docs/source/resources/tech_overview/request_lifecycle.rst b/docs/source/resources/tech_overview/request_lifecycle.rst index 349e29b8..61df546c 100644 --- a/docs/source/resources/tech_overview/request_lifecycle.rst +++ b/docs/source/resources/tech_overview/request_lifecycle.rst @@ -41,7 +41,7 @@ The request processing path in Plano has three main parts: These two subsystems are bridged with either the HTTP router filter, and the cluster manager subsystems of Envoy. -Also, Plano utilizes `Envoy event-based thread model `_. A main thread is responsible for the server lifecycle, configuration processing, stats, etc. and some number of :ref:`worker threads ` process requests. All threads operate around an event loop (`libevent `_) and any given downstream TCP connection will be handled by exactly one worker thread for its lifetime. Each worker thread maintains its own pool of TCP connections to upstream endpoints. +Also, Plano utilizes `Envoy event-based thread model `_. A main thread is responsible for the server lifecycle, configuration processing, stats, etc. and some number of :ref:`worker threads ` process requests. All threads operate around an event loop (`libevent `_) and any given downstream TCP connection will be handled by exactly one worker thread for its lifetime. Each worker thread maintains its own pool of TCP connections to upstream endpoints. Worker threads rarely share state and operate in a trivially parallel fashion. This threading model enables scaling to very high core count CPUs. @@ -130,8 +130,8 @@ Once a request completes, the stream is destroyed. The following also takes plac * The post-request :ref:`monitoring ` are updated (e.g. timing, active requests, upgrades, health checks). Some statistics are updated earlier however, during request processing. Stats are batched and written by the main thread periodically. -* :ref:`Access logs ` are written to the access log -* :ref:`Trace ` spans are finalized. If our example request was traced, a +* :ref:`Access logs ` are written to the access log +* :ref:`Trace ` spans are finalized. If our example request was traced, a trace span, describing the duration and details of the request would be created by the HCM when processing request headers and then finalized by the HCM during post-request processing. diff --git a/docs/source/resources/tech_overview/threading_model.rst b/docs/source/resources/tech_overview/threading_model.rst index 4f02ba15..4b5601c4 100644 --- a/docs/source/resources/tech_overview/threading_model.rst +++ b/docs/source/resources/tech_overview/threading_model.rst @@ -1,4 +1,4 @@ -.. _arch_overview_threading: +.. _plano_overview_threading: Threading Model =============== diff --git a/package-lock.json b/package-lock.json index 5db00626..0ca95a57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "archgw-monorepo", + "name": "plano-monorepo", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "archgw-monorepo", + "name": "plano-monorepo", "version": "0.1.0", "workspaces": [ "apps/*", diff --git a/package.json b/package.json index d1d32ded..cbc3e1f1 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "archgw-monorepo", + "name": "plano-monorepo", "version": "0.1.0", "private": true, "workspaces": [ diff --git a/tests/archgw/common.py b/tests/archgw/common.py index f87f6403..20eb0aaf 100644 --- a/tests/archgw/common.py +++ b/tests/archgw/common.py @@ -99,17 +99,17 @@ def get_data_chunks(stream, n=1): return chunks -def get_arch_messages(response_json): - arch_messages = [] +def get_plano_messages(response_json): + plano_messages = [] if response_json and "metadata" in response_json: - # load arch_state from metadata - arch_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") - # parse arch_state into json object - arch_state = json.loads(arch_state_str) - # load messages from arch_state - arch_messages_str = arch_state.get("messages", "[]") + # load plano_state from metadata + plano_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") + # parse plano_state into json object + plano_state = json.loads(plano_state_str) + # load messages from plano_state + plano_messages_str = plano_state.get("messages", "[]") # parse messages into json object - arch_messages = json.loads(arch_messages_str) - # append messages from arch gateway to history - return arch_messages + plano_messages = json.loads(plano_messages_str) + # append messages from plano gateway to history + return plano_messages return [] diff --git a/tests/archgw/docker-compose.yaml b/tests/archgw/docker-compose.yaml index 61614378..235d3246 100644 --- a/tests/archgw/docker-compose.yaml +++ b/tests/archgw/docker-compose.yaml @@ -5,7 +5,7 @@ services: - "10000:10000" - "12000:12000" volumes: - - ./config.yaml:/app/arch_config.yaml + - ./config.yaml:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem extra_hosts: - "host.docker.internal:host-gateway" diff --git a/tests/archgw/pyproject.toml b/tests/archgw/pyproject.toml index 05451bb1..429534e2 100644 --- a/tests/archgw/pyproject.toml +++ b/tests/archgw/pyproject.toml @@ -1,7 +1,7 @@ [project] -name = "archgw_mock_tests" +name = "plano_mock_tests" version = "0.0.1" -description = "archgw mock tests" +description = "plano mock tests" authors = [{name = "Katanemo Labs, Inc", email = "info@katanemo.com"}] license = {text = "Apache 2.0"} requires-python = ">=3.12" diff --git a/tests/archgw/test_prompt_gateway.py b/tests/archgw/test_prompt_gateway.py index 0e1b4317..2959abb2 100644 --- a/tests/archgw/test_prompt_gateway.py +++ b/tests/archgw/test_prompt_gateway.py @@ -18,7 +18,7 @@ def httpserver_listen_address(): from common import ( PROMPT_GATEWAY_ENDPOINT, TEST_CASE_FIXTURES, - get_arch_messages, + get_plano_messages, ) @@ -83,10 +83,10 @@ def test_prompt_gateway(httpserver: HTTPServer): assert assistant_message["role"] == "assistant" assert "content" in assistant_message assert "weather" in assistant_message["content"] - # now verify arch_messages (tool call and api response) that are sent as response metadata - arch_messages = get_arch_messages(response_json) - assert len(arch_messages) == 2 - tool_calls_message = arch_messages[0] + # now verify plano_messages (tool call and api response) that are sent as response metadata + plano_messages = get_plano_messages(response_json) + assert len(plano_messages) == 2 + tool_calls_message = plano_messages[0] tool_calls = tool_calls_message.get("tool_calls", []) assert len(tool_calls) > 0 tool_call = normalize_tool_call_arguments(tool_calls[0]["function"]) diff --git a/tests/archgw/uv.lock b/tests/archgw/uv.lock index 6e3fcf54..458f264e 100644 --- a/tests/archgw/uv.lock +++ b/tests/archgw/uv.lock @@ -2,7 +2,7 @@ version = 1 requires-python = ">=3.12" [[package]] -name = "archgw-mock-tests" +name = "plano-mock-tests" version = "0.0.1" source = { editable = "." } dependencies = [ diff --git a/tests/e2e/README.md b/tests/e2e/README.md index ca1d54e3..5b056d66 100644 --- a/tests/e2e/README.md +++ b/tests/e2e/README.md @@ -6,14 +6,14 @@ To be able to run e2e tests successfully run_e2e_script prepares environment in 1. build and start weather_forecast demo (using docker compose) 1. build, install and start model server async (using uv) -1. build and start arch gateway (using docker compose) +1. build and start Plano gateway (using docker compose) 1. wait for model server to be ready -1. wait for arch gateway to be ready +1. wait for Plano gateway to be ready 1. start e2e tests (using uv) 1. runs llm gateway tests for llm routing 2. runs prompt gateway tests to test function calling, parameter gathering and summarization 2. cleanup - 1. stops arch gateway + 1. stops Plano gateway 2. stops model server 3. stops weather_forecast demo diff --git a/tests/e2e/common.py b/tests/e2e/common.py index 404d8ef9..1c4a1b4f 100644 --- a/tests/e2e/common.py +++ b/tests/e2e/common.py @@ -98,17 +98,17 @@ def get_data_chunks(stream, n=1): return chunks -def get_arch_messages(response_json): - arch_messages = [] +def get_plano_messages(response_json): + plano_messages = [] if response_json and "metadata" in response_json: - # load arch_state from metadata - arch_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") - # parse arch_state into json object - arch_state = json.loads(arch_state_str) - # load messages from arch_state - arch_messages_str = arch_state.get("messages", "[]") + # load plano_state from metadata + plano_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") + # parse plano_state into json object + plano_state = json.loads(plano_state_str) + # load messages from plano_state + plano_messages_str = plano_state.get("messages", "[]") # parse messages into json object - arch_messages = json.loads(arch_messages_str) - # append messages from arch gateway to history - return arch_messages + plano_messages = json.loads(plano_messages_str) + # append messages from plano gateway to history + return plano_messages return [] diff --git a/tests/e2e/docker-compose.yaml b/tests/e2e/docker-compose.yaml index fa171051..79494d57 100644 --- a/tests/e2e/docker-compose.yaml +++ b/tests/e2e/docker-compose.yaml @@ -8,7 +8,7 @@ services: - "12000:12000" - "19901:9901" volumes: - - ../../demos/samples_python/weather_forecast/arch_config.yaml:/app/arch_config.yaml + - ../../demos/samples_python/weather_forecast/plano_config.yaml:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem extra_hosts: - "host.docker.internal:host-gateway" diff --git a/tests/e2e/run_e2e_tests.sh b/tests/e2e/run_e2e_tests.sh index 0278d5b3..3de12590 100644 --- a/tests/e2e/run_e2e_tests.sh +++ b/tests/e2e/run_e2e_tests.sh @@ -34,7 +34,7 @@ uv sync uv tool install . cd - -log building docker image for arch gateway +log building docker image for plano gateway log ====================================== cd ../../ planoai build @@ -43,7 +43,7 @@ cd - # Once we build plano we have to install the dependencies again to a new virtual environment. uv sync -log startup arch gateway with function calling demo +log startup plano gateway with function calling demo cd ../../ planoai down planoai up demos/samples_python/weather_forecast/config.yaml @@ -53,11 +53,11 @@ log running e2e tests for prompt gateway log ==================================== uv run pytest test_prompt_gateway.py -log shutting down the arch gateway service for prompt_gateway demo +log shutting down the plano gateway service for prompt_gateway demo log =============================================================== planoai down -log startup arch gateway with model alias routing demo +log startup plano gateway with model alias routing demo cd ../../ planoai up demos/use_cases/model_alias_routing/config_with_aliases.yaml cd - @@ -70,7 +70,7 @@ log running e2e tests for openai responses api client log ======================================== uv run pytest test_openai_responses_api_client.py -log startup arch gateway with state storage for openai responses api client demo +log startup plano gateway with state storage for openai responses api client demo planoai down planoai up config_memory_state_v1_responses.yaml diff --git a/tests/e2e/run_model_alias_tests.sh b/tests/e2e/run_model_alias_tests.sh index 80ecf0c5..c3b1031f 100755 --- a/tests/e2e/run_model_alias_tests.sh +++ b/tests/e2e/run_model_alias_tests.sh @@ -34,7 +34,7 @@ cd - uv sync # Start gateway with model alias routing config -log "startup arch gateway with model alias routing demo" +log "startup plano gateway with model alias routing demo" cd ../../ planoai down || true planoai up demos/use_cases/model_alias_routing/config_with_aliases.yaml diff --git a/tests/e2e/run_prompt_gateway_tests.sh b/tests/e2e/run_prompt_gateway_tests.sh index 08a499f3..b719c0fb 100755 --- a/tests/e2e/run_prompt_gateway_tests.sh +++ b/tests/e2e/run_prompt_gateway_tests.sh @@ -39,7 +39,7 @@ docker compose up weather_forecast_service --build -d cd - # Start gateway with prompt_gateway config -log "startup arch gateway with function calling demo" +log "startup plano gateway with function calling demo" cd ../../ planoai down || true planoai up demos/samples_python/weather_forecast/config.yaml diff --git a/tests/e2e/run_responses_state_tests.sh b/tests/e2e/run_responses_state_tests.sh index ad33a058..3c974402 100755 --- a/tests/e2e/run_responses_state_tests.sh +++ b/tests/e2e/run_responses_state_tests.sh @@ -33,7 +33,7 @@ cd - uv sync # Start gateway with state storage config -log "startup arch gateway with state storage config" +log "startup plano gateway with state storage config" cd ../../ planoai down || true planoai up tests/e2e/config_memory_state_v1_responses.yaml diff --git a/tests/e2e/test_model_alias_routing.py b/tests/e2e/test_model_alias_routing.py index 8ad71179..f9e695a5 100644 --- a/tests/e2e/test_model_alias_routing.py +++ b/tests/e2e/test_model_alias_routing.py @@ -260,7 +260,7 @@ def test_anthropic_client_with_alias_streaming(): def test_400_error_handling_with_alias(): - """Test that 400 errors from upstream are properly returned by archgw""" + """Test that 400 errors from upstream are properly returned by plano""" logger.info( "Testing 400 error handling with arch.summarize.v1 and invalid parameter" ) diff --git a/tests/e2e/test_prompt_gateway.py b/tests/e2e/test_prompt_gateway.py index 0e75c9a2..9c89059c 100644 --- a/tests/e2e/test_prompt_gateway.py +++ b/tests/e2e/test_prompt_gateway.py @@ -10,7 +10,7 @@ from common import ( PROMPT_GATEWAY_ENDPOINT, LLM_GATEWAY_ENDPOINT, PREFILL_LIST, - get_arch_messages, + get_plano_messages, get_data_chunks, ) @@ -117,11 +117,11 @@ def test_prompt_gateway(stream): assert len(choices) > 0 assert "role" in choices[0]["message"] assert choices[0]["message"]["role"] == "assistant" - # now verify arch_messages (tool call and api response) that are sent as response metadata - arch_messages = get_arch_messages(response_json) - print("arch_messages: ", json.dumps(arch_messages)) - assert len(arch_messages) == 2 - tool_calls_message = arch_messages[0] + # now verify plano_messages (tool call and api response) that are sent as response metadata + plano_messages = get_plano_messages(response_json) + print("plano_messages: ", json.dumps(plano_messages)) + assert len(plano_messages) == 2 + tool_calls_message = plano_messages[0] print("tool_calls_message: ", tool_calls_message) tool_calls = tool_calls_message.get("content", []) cleaned_tool_call_str = cleanup_tool_call(tool_calls) @@ -295,10 +295,10 @@ def test_prompt_gateway_param_tool_call(stream): assert len(choices) > 0 assert "role" in choices[0]["message"] assert choices[0]["message"]["role"] == "assistant" - # now verify arch_messages (tool call and api response) that are sent as response metadata - arch_messages = get_arch_messages(response_json) - assert len(arch_messages) == 2 - tool_calls_message = arch_messages[0] + # now verify plano_messages (tool call and api response) that are sent as response metadata + plano_messages = get_plano_messages(response_json) + assert len(plano_messages) == 2 + tool_calls_message = plano_messages[0] tool_calls = tool_calls_message.get("tool_calls", []) assert len(tool_calls) > 0 tool_call = normalize_tool_call_arguments(tool_calls[0]["function"]) From 94f804991e0272304c1cfc6b6199283fa42f096c Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Fri, 13 Feb 2026 15:51:08 -0800 Subject: [PATCH 04/18] Add .env.local to gitignore and gitleaks pre-commit hook (#754) Prevent future secret leaks by ignoring .env.local files and adding gitleaks secret scanning to the pre-commit pipeline. --- .gitignore | 2 ++ .pre-commit-config.yaml | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/.gitignore b/.gitignore index 795fcad0..af706ea4 100644 --- a/.gitignore +++ b/.gitignore @@ -80,6 +80,8 @@ celerybeat-schedule # Environments .env +.env.local +.env*.local .venv env/ venv/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 42b43943..84001c45 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -30,6 +30,11 @@ repos: entry: bash -c "cd crates && cargo test --lib" pass_filenames: false + - repo: https://github.com/gitleaks/gitleaks + rev: v8.21.2 + hooks: + - id: gitleaks + - repo: https://github.com/psf/black rev: 23.1.0 hooks: From 38646fdac2481ffc48b22c70a715c793fba19c33 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Fri, 13 Feb 2026 19:53:49 -0800 Subject: [PATCH 05/18] Add Trivy Docker security scan to CI (#755) * Add Trivy Docker image security scan workflow Scans the Docker image for CRITICAL and HIGH vulnerabilities using Trivy. Blocks PRs on failures; runs non-blocking on main for visibility. Results are uploaded to the GitHub Security tab via SARIF. * Add explicit permissions to Docker security scan workflow Set minimal permissions: contents read for checkout, security-events write for SARIF upload to the GitHub Security tab. Co-Authored-By: Claude Opus 4.6 * Fix 27 HIGH vulnerabilities found by Trivy Docker scan - Install supervisor via pip instead of apt to eliminate 22 Debian python3.13 package vulnerabilities - Pin urllib3>=2.6.3 to fix CVE-2025-66418, CVE-2025-66471, CVE-2026-21441 - Add ignore-unfixed to Trivy scan to suppress unfixable glibc CVE-2026-0861 Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- .github/workflows/docker-security-scan.yml | 56 ++++++++++++++++++++++ Dockerfile | 7 ++- cli/pyproject.toml | 1 + cli/uv.lock | 8 ++-- 4 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/docker-security-scan.yml diff --git a/.github/workflows/docker-security-scan.yml b/.github/workflows/docker-security-scan.yml new file mode 100644 index 00000000..03150064 --- /dev/null +++ b/.github/workflows/docker-security-scan.yml @@ -0,0 +1,56 @@ +name: Docker Security Scan + +env: + DOCKER_IMAGE: katanemo/plano + +on: + push: + branches: + - main + pull_request: + +permissions: + contents: read + security-events: write + +jobs: + scan: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Build Docker Image + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + platforms: linux/amd64 + push: false + tags: ${{ env.DOCKER_IMAGE }}:scan + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: ${{ env.DOCKER_IMAGE }}:scan + format: table + # Fail on PRs so vulnerabilities block merge; on main just report + exit-code: ${{ github.event_name == 'pull_request' && '1' || '0' }} + ignore-unfixed: true + severity: CRITICAL,HIGH + + - name: Run Trivy scanner (SARIF for GitHub Security tab) + if: always() + uses: aquasecurity/trivy-action@master + with: + image-ref: ${{ env.DOCKER_IMAGE }}:scan + format: sarif + output: trivy-results.sarif + ignore-unfixed: true + severity: CRITICAL,HIGH + + - name: Upload Trivy results to GitHub Security tab + if: always() + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: trivy-results.sarif diff --git a/Dockerfile b/Dockerfile index c6f9b7ce..4f49f4a5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,9 +46,11 @@ FROM python:3.13.11-slim AS arch RUN set -eux; \ apt-get update; \ - apt-get install -y --no-install-recommends supervisor gettext-base curl; \ + apt-get install -y --no-install-recommends gettext-base curl; \ apt-get clean; rm -rf /var/lib/apt/lists/* +RUN pip install --no-cache-dir supervisor + # Remove PAM packages (CVE-2025-6020) RUN set -eux; \ dpkg -r --force-depends libpam-modules libpam-modules-bin libpam-runtime libpam0g || true; \ @@ -70,6 +72,7 @@ RUN uv run pip install --no-cache-dir . COPY cli/planoai planoai/ COPY config/envoy.template.yaml . COPY config/plano_config_schema.yaml . +RUN mkdir -p /etc/supervisor/conf.d COPY config/supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY --from=wasm-builder /arch/target/wasm32-wasip1/release/prompt_gateway.wasm /etc/envoy/proxy-wasm-plugins/prompt_gateway.wasm @@ -81,4 +84,4 @@ RUN mkdir -p /var/log/supervisor && \ /var/log/access_ingress.log /var/log/access_ingress_prompt.log \ /var/log/access_internal.log /var/log/access_llm.log /var/log/access_agent.log -ENTRYPOINT ["/usr/bin/supervisord"] +ENTRYPOINT ["/usr/local/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] diff --git a/cli/pyproject.toml b/cli/pyproject.toml index 85e35713..84af6ca3 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -14,6 +14,7 @@ dependencies = [ "questionary>=2.1.1,<3.0.0", "pyyaml>=6.0.2,<7.0.0", "requests>=2.31.0,<3.0.0", + "urllib3>=2.6.3", "rich>=14.2.0", "rich-click>=1.9.5", ] diff --git a/cli/uv.lock b/cli/uv.lock index f8f72721..5f18604b 100644 --- a/cli/uv.lock +++ b/cli/uv.lock @@ -350,6 +350,7 @@ dependencies = [ { name = "requests" }, { name = "rich" }, { name = "rich-click" }, + { name = "urllib3" }, ] [package.optional-dependencies] @@ -375,6 +376,7 @@ requires-dist = [ { name = "requests", specifier = ">=2.31.0,<3.0.0" }, { name = "rich", specifier = ">=14.2.0" }, { name = "rich-click", specifier = ">=1.9.5" }, + { name = "urllib3", specifier = ">=2.6.3" }, ] provides-extras = ["dev"] @@ -742,11 +744,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.5.0" +version = "2.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, ] [[package]] From 1df43872a681104bae265aa28f3beb06b7d81a97 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Sat, 14 Feb 2026 12:27:07 -0800 Subject: [PATCH 06/18] Fix code scanning and dependabot security alerts (#756) * Fix code scanning and dependabot security alerts Code scanning fixes (14 alerts): - Fix XSS in OG image route by validating request origin against allowlist - Fix incomplete URL sanitization in blog layout using exact hostname matching - Bind port-check socket to 127.0.0.1 instead of 0.0.0.0 - Add explicit permissions to 7 GitHub Actions workflows Dependabot fixes: - Update @isaacs/brace-expansion 5.0.0 -> 5.0.1 (CVE-2026-25547) - Update bytes 1.10.1 -> 1.11.1 (CVE-2026-25541) - Update time 0.3.41 -> 0.3.47 (CVE-2026-25727) - Update cryptography 45.0.7 -> 46.0.5 (CVE-2026-26007) - Update python-multipart 0.0.20 -> 0.0.22 (CVE-2026-24486) - Update urllib3 2.6.2 -> 2.6.3 in test lockfiles (CVE-2026-21441) - Update Werkzeug 3.1.4 -> 3.1.5 (CVE-2026-21860) Co-Authored-By: Claude Opus 4.6 * Address PR review feedback - Replace plano.katanemo.com with planoai.dev in allowed hosts - Add planoai.dev to OG route and blog layout allowlists - Revert socket bind to 0.0.0.0 (intentional for port-in-use check) Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- .github/workflows/docker-push-main.yml | 3 + .github/workflows/docker-push-release.yml | 3 + .github/workflows/e2e_plano_tests.yml | 3 + .github/workflows/pre-commit.yml | 3 + .github/workflows/rust_tests.yml | 3 + .github/workflows/static.yml | 3 + .github/workflows/validate_plano_config.yml | 3 + apps/www/src/app/api/og/[slug]/route.tsx | 36 +- apps/www/src/app/blog/[slug]/layout.tsx | 29 +- cli/planoai/main.py | 2 +- crates/Cargo.lock | 54 +- demos/use_cases/http_filter/uv.lock | 1757 +++---- .../multi_agent_with_crewai_langchain/uv.lock | 4469 ++++++++++++++++- package-lock.json | 42 +- tests/archgw/uv.lock | 750 ++- tests/e2e/uv.lock | 1112 ++-- 16 files changed, 6293 insertions(+), 1979 deletions(-) diff --git a/.github/workflows/docker-push-main.yml b/.github/workflows/docker-push-main.yml index e3c17972..224f2682 100644 --- a/.github/workflows/docker-push-main.yml +++ b/.github/workflows/docker-push-main.yml @@ -8,6 +8,9 @@ on: branches: - main +permissions: + contents: read + jobs: # Build ARM64 image on native ARM64 runner. build-arm64: diff --git a/.github/workflows/docker-push-release.yml b/.github/workflows/docker-push-release.yml index 252985f2..cdaf1258 100644 --- a/.github/workflows/docker-push-release.yml +++ b/.github/workflows/docker-push-release.yml @@ -7,6 +7,9 @@ on: release: types: [published] +permissions: + contents: read + jobs: # Build ARM64 image on native ARM64 runner build-arm64: diff --git a/.github/workflows/e2e_plano_tests.yml b/.github/workflows/e2e_plano_tests.yml index 82a52fee..66e879ba 100644 --- a/.github/workflows/e2e_plano_tests.yml +++ b/.github/workflows/e2e_plano_tests.yml @@ -6,6 +6,9 @@ on: - main pull_request: +permissions: + contents: read + jobs: e2e_plano_tests: runs-on: ubuntu-latest-m diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 2b11178b..b3754b72 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -5,6 +5,9 @@ on: push: branches: [main] +permissions: + contents: read + jobs: pre-commit: runs-on: ubuntu-latest diff --git a/.github/workflows/rust_tests.yml b/.github/workflows/rust_tests.yml index d72e7af4..5b1867e5 100644 --- a/.github/workflows/rust_tests.yml +++ b/.github/workflows/rust_tests.yml @@ -5,6 +5,9 @@ on: push: branches: [main] +permissions: + contents: read + jobs: test: name: Test diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 15e35e37..803f6998 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -3,6 +3,9 @@ on: push: branches: [main] +permissions: + contents: write + jobs: build: runs-on: ubuntu-latest diff --git a/.github/workflows/validate_plano_config.yml b/.github/workflows/validate_plano_config.yml index 47f2499d..9d20c98a 100644 --- a/.github/workflows/validate_plano_config.yml +++ b/.github/workflows/validate_plano_config.yml @@ -6,6 +6,9 @@ on: - main pull_request: +permissions: + contents: read + jobs: validate_plano_config: runs-on: ubuntu-latest diff --git a/apps/www/src/app/api/og/[slug]/route.tsx b/apps/www/src/app/api/og/[slug]/route.tsx index cefcbbb5..f11f804c 100644 --- a/apps/www/src/app/api/og/[slug]/route.tsx +++ b/apps/www/src/app/api/og/[slug]/route.tsx @@ -4,6 +4,28 @@ import { client, urlFor } from "@/lib/sanity"; export const runtime = "edge"; +const ALLOWED_HOSTS = new Set([ + "archgw-tau.vercel.app", + "planoai.dev", + "localhost", +]); + +function getSafeBaseUrl(requestOrigin: string): string { + if (process.env.NEXT_PUBLIC_APP_URL) { + return process.env.NEXT_PUBLIC_APP_URL; + } + if (process.env.VERCEL_URL) { + return `https://${process.env.VERCEL_URL}`; + } + try { + const parsed = new URL(requestOrigin); + if (ALLOWED_HOSTS.has(parsed.hostname)) { + return parsed.origin; + } + } catch {} + return "http://localhost:3000"; +} + // Font loading function that uses the request origin function loadFont(fileName: string, baseUrl: string) { return fetch(new URL(`/fonts/${fileName}`, baseUrl)).then((res) => { @@ -55,12 +77,8 @@ export async function GET( { params }: { params: Promise<{ slug: string }> }, ) { try { - // Get base URL for font loading - use request origin in production - const fontBaseUrl = - process.env.NEXT_PUBLIC_APP_URL || - (process.env.VERCEL_URL - ? `https://${process.env.VERCEL_URL}` - : request.nextUrl.origin); + // Get base URL for font loading - use validated origin + const fontBaseUrl = getSafeBaseUrl(request.nextUrl.origin); // Load fonts with error handling let fontData; @@ -116,11 +134,7 @@ export async function GET( } // Use logo PNG - const baseUrl = - process.env.NEXT_PUBLIC_APP_URL || - (process.env.VERCEL_URL - ? `https://${process.env.VERCEL_URL}` - : request.nextUrl.origin); + const baseUrl = getSafeBaseUrl(request.nextUrl.origin); const logoUrl = `${baseUrl}/Logomark.png`; return new ImageResponse( diff --git a/apps/www/src/app/blog/[slug]/layout.tsx b/apps/www/src/app/blog/[slug]/layout.tsx index 8d7b1ecf..942d61c6 100644 --- a/apps/www/src/app/blog/[slug]/layout.tsx +++ b/apps/www/src/app/blog/[slug]/layout.tsx @@ -47,24 +47,29 @@ export async function generateMetadata({ } // Get baseUrl - use NEXT_PUBLIC_APP_URL if set, otherwise construct from VERCEL_URL - // Restrict to allowed hosts: localhost:3000, archgw-tau.vercel.app, or plano.katanemo.com + // Restrict to allowed hosts: localhost:3000, archgw-tau.vercel.app, or planoai.dev let baseUrl = "http://localhost:3000"; if (process.env.NEXT_PUBLIC_APP_URL) { - const url = process.env.NEXT_PUBLIC_APP_URL; - if ( - url.includes("archgw-tau.vercel.app") || - url.includes("plano.katanemo.com") || - url.includes("localhost:3000") - ) { - baseUrl = url; + try { + const parsed = new URL(process.env.NEXT_PUBLIC_APP_URL); + const allowedHosts = new Set([ + "archgw-tau.vercel.app", + "planoai.dev", + "localhost", + ]); + if (allowedHosts.has(parsed.hostname)) { + baseUrl = parsed.origin; + } + } catch { + // Invalid URL, keep default } } else if (process.env.VERCEL_URL) { const hostname = process.env.VERCEL_URL; - // VERCEL_URL is just the hostname, not the full URL - if (hostname === "archgw-tau.vercel.app") { - baseUrl = `https://${hostname}`; - } else if (hostname === "plano.katanemo.com") { + if ( + hostname === "archgw-tau.vercel.app" || + hostname === "planoai.dev" + ) { baseUrl = `https://${hostname}`; } } diff --git a/cli/planoai/main.py b/cli/planoai/main.py index 05296df2..a93e4c4d 100644 --- a/cli/planoai/main.py +++ b/cli/planoai/main.py @@ -45,7 +45,7 @@ def _is_port_in_use(port: int) -> bool: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: try: - s.bind(("0.0.0.0", port)) + s.bind(("0.0.0.0", port)) # noqa: S104 return False except OSError: return True diff --git a/crates/Cargo.lock b/crates/Cargo.lock index f2744ad2..ebe5b881 100644 --- a/crates/Cargo.lock +++ b/crates/Cargo.lock @@ -372,9 +372,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "bytes-utils" @@ -428,7 +428,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -577,9 +577,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", "serde", @@ -707,7 +707,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -1720,9 +1720,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-integer" @@ -2166,7 +2166,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2410,7 +2410,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2616,18 +2616,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -2927,7 +2937,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2997,30 +3007,30 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", diff --git a/demos/use_cases/http_filter/uv.lock b/demos/use_cases/http_filter/uv.lock index 6a39c6ec..d9f5df77 100644 --- a/demos/use_cases/http_filter/uv.lock +++ b/demos/use_cases/http_filter/uv.lock @@ -1,13 +1,14 @@ version = 1 +revision = 3 requires-python = ">=3.10" [[package]] name = "annotated-types" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, ] [[package]] @@ -20,27 +21,27 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252 } +sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252, upload-time = "2025-08-04T08:54:26.451Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213 }, + { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213, upload-time = "2025-08-04T08:54:24.882Z" }, ] [[package]] name = "async-timeout" version = "5.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274 } +sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274, upload-time = "2024-11-06T16:41:39.6Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233 }, + { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233, upload-time = "2024-11-06T16:41:37.9Z" }, ] [[package]] name = "attrs" version = "25.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032 } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032, upload-time = "2025-03-13T11:10:22.779Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815 }, + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" }, ] [[package]] @@ -50,166 +51,191 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cryptography" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bb/9b/b1661026ff24bc641b76b78c5222d614776b0c085bcfdac9bd15a1cb4b35/authlib-1.6.6.tar.gz", hash = "sha256:45770e8e056d0f283451d9996fbb59b70d45722b45d854d58f32878d0a40c38e", size = 164894 } +sdist = { url = "https://files.pythonhosted.org/packages/bb/9b/b1661026ff24bc641b76b78c5222d614776b0c085bcfdac9bd15a1cb4b35/authlib-1.6.6.tar.gz", hash = "sha256:45770e8e056d0f283451d9996fbb59b70d45722b45d854d58f32878d0a40c38e", size = 164894, upload-time = "2025-12-12T08:01:41.464Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/51/321e821856452f7386c4e9df866f196720b1ad0c5ea1623ea7399969ae3b/authlib-1.6.6-py2.py3-none-any.whl", hash = "sha256:7d9e9bc535c13974313a87f53e8430eb6ea3d1cf6ae4f6efcd793f2e949143fd", size = 244005 }, + { url = "https://files.pythonhosted.org/packages/54/51/321e821856452f7386c4e9df866f196720b1ad0c5ea1623ea7399969ae3b/authlib-1.6.6-py2.py3-none-any.whl", hash = "sha256:7d9e9bc535c13974313a87f53e8430eb6ea3d1cf6ae4f6efcd793f2e949143fd", size = 244005, upload-time = "2025-12-12T08:01:40.209Z" }, ] [[package]] name = "backports-tarfile" version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", size = 86406 } +sdist = { url = "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", size = 86406, upload-time = "2024-05-28T17:01:54.731Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", size = 30181 }, + { url = "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", size = 30181, upload-time = "2024-05-28T17:01:53.112Z" }, ] [[package]] name = "beartype" version = "0.22.9" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c7/94/1009e248bbfbab11397abca7193bea6626806be9a327d399810d523a07cb/beartype-0.22.9.tar.gz", hash = "sha256:8f82b54aa723a2848a56008d18875f91c1db02c32ef6a62319a002e3e25a975f", size = 1608866 } +sdist = { url = "https://files.pythonhosted.org/packages/c7/94/1009e248bbfbab11397abca7193bea6626806be9a327d399810d523a07cb/beartype-0.22.9.tar.gz", hash = "sha256:8f82b54aa723a2848a56008d18875f91c1db02c32ef6a62319a002e3e25a975f", size = 1608866, upload-time = "2025-12-13T06:50:30.72Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/71/cc/18245721fa7747065ab478316c7fea7c74777d07f37ae60db2e84f8172e8/beartype-0.22.9-py3-none-any.whl", hash = "sha256:d16c9bbc61ea14637596c5f6fbff2ee99cbe3573e46a716401734ef50c3060c2", size = 1333658 }, + { url = "https://files.pythonhosted.org/packages/71/cc/18245721fa7747065ab478316c7fea7c74777d07f37ae60db2e84f8172e8/beartype-0.22.9-py3-none-any.whl", hash = "sha256:d16c9bbc61ea14637596c5f6fbff2ee99cbe3573e46a716401734ef50c3060c2", size = 1333658, upload-time = "2025-12-13T06:50:28.266Z" }, ] [[package]] name = "cachetools" version = "6.2.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bc/1d/ede8680603f6016887c062a2cf4fc8fdba905866a3ab8831aa8aa651320c/cachetools-6.2.4.tar.gz", hash = "sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607", size = 31731 } +sdist = { url = "https://files.pythonhosted.org/packages/bc/1d/ede8680603f6016887c062a2cf4fc8fdba905866a3ab8831aa8aa651320c/cachetools-6.2.4.tar.gz", hash = "sha256:82c5c05585e70b6ba2d3ae09ea60b79548872185d2f24ae1f2709d37299fd607", size = 31731, upload-time = "2025-12-15T18:24:53.744Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/fc/1d7b80d0eb7b714984ce40efc78859c022cd930e402f599d8ca9e39c78a4/cachetools-6.2.4-py3-none-any.whl", hash = "sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51", size = 11551 }, + { url = "https://files.pythonhosted.org/packages/2c/fc/1d7b80d0eb7b714984ce40efc78859c022cd930e402f599d8ca9e39c78a4/cachetools-6.2.4-py3-none-any.whl", hash = "sha256:69a7a52634fed8b8bf6e24a050fb60bff1c9bd8f6d24572b99c32d4e71e62a51", size = 11551, upload-time = "2025-12-15T18:24:52.332Z" }, ] [[package]] name = "certifi" version = "2025.8.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386 } +sdist = { url = "https://files.pythonhosted.org/packages/dc/67/960ebe6bf230a96cda2e0abcf73af550ec4f090005363542f0765df162e0/certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407", size = 162386, upload-time = "2025-08-03T03:07:47.08Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216 }, + { url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" }, ] [[package]] name = "cffi" -version = "1.17.1" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pycparser" }, + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 } +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/90/07/f44ca684db4e4f08a3fdc6eeb9a0d15dc6883efc7b8c90357fdbf74e186c/cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", size = 182191 }, - { url = "https://files.pythonhosted.org/packages/08/fd/cc2fedbd887223f9f5d170c96e57cbf655df9831a6546c1727ae13fa977a/cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", size = 178592 }, - { url = "https://files.pythonhosted.org/packages/de/cc/4635c320081c78d6ffc2cab0a76025b691a91204f4aa317d568ff9280a2d/cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", size = 426024 }, - { url = "https://files.pythonhosted.org/packages/b6/7b/3b2b250f3aab91abe5f8a51ada1b717935fdaec53f790ad4100fe2ec64d1/cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", size = 448188 }, - { url = "https://files.pythonhosted.org/packages/d3/48/1b9283ebbf0ec065148d8de05d647a986c5f22586b18120020452fff8f5d/cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", size = 455571 }, - { url = "https://files.pythonhosted.org/packages/40/87/3b8452525437b40f39ca7ff70276679772ee7e8b394934ff60e63b7b090c/cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", size = 436687 }, - { url = "https://files.pythonhosted.org/packages/8d/fb/4da72871d177d63649ac449aec2e8a29efe0274035880c7af59101ca2232/cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", size = 446211 }, - { url = "https://files.pythonhosted.org/packages/ab/a0/62f00bcb411332106c02b663b26f3545a9ef136f80d5df746c05878f8c4b/cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", size = 461325 }, - { url = "https://files.pythonhosted.org/packages/36/83/76127035ed2e7e27b0787604d99da630ac3123bfb02d8e80c633f218a11d/cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", size = 438784 }, - { url = "https://files.pythonhosted.org/packages/21/81/a6cd025db2f08ac88b901b745c163d884641909641f9b826e8cb87645942/cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", size = 461564 }, - { url = "https://files.pythonhosted.org/packages/f8/fe/4d41c2f200c4a457933dbd98d3cf4e911870877bd94d9656cc0fcb390681/cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", size = 171804 }, - { url = "https://files.pythonhosted.org/packages/d1/b6/0b0f5ab93b0df4acc49cae758c81fe4e5ef26c3ae2e10cc69249dfd8b3ab/cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", size = 181299 }, - { url = "https://files.pythonhosted.org/packages/6b/f4/927e3a8899e52a27fa57a48607ff7dc91a9ebe97399b357b85a0c7892e00/cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", size = 182264 }, - { url = "https://files.pythonhosted.org/packages/6c/f5/6c3a8efe5f503175aaddcbea6ad0d2c96dad6f5abb205750d1b3df44ef29/cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", size = 178651 }, - { url = "https://files.pythonhosted.org/packages/94/dd/a3f0118e688d1b1a57553da23b16bdade96d2f9bcda4d32e7d2838047ff7/cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", size = 445259 }, - { url = "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", size = 469200 }, - { url = "https://files.pythonhosted.org/packages/1c/a0/a4fa9f4f781bda074c3ddd57a572b060fa0df7655d2a4247bbe277200146/cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", size = 477235 }, - { url = "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", size = 459721 }, - { url = "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", size = 467242 }, - { url = "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", size = 477999 }, - { url = "https://files.pythonhosted.org/packages/44/74/f2a2460684a1a2d00ca799ad880d54652841a780c4c97b87754f660c7603/cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", size = 454242 }, - { url = "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", size = 478604 }, - { url = "https://files.pythonhosted.org/packages/34/33/e1b8a1ba29025adbdcda5fb3a36f94c03d771c1b7b12f726ff7fef2ebe36/cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", size = 171727 }, - { url = "https://files.pythonhosted.org/packages/3d/97/50228be003bb2802627d28ec0627837ac0bf35c90cf769812056f235b2d1/cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", size = 181400 }, - { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178 }, - { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840 }, - { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803 }, - { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850 }, - { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729 }, - { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256 }, - { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424 }, - { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568 }, - { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736 }, - { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448 }, - { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976 }, - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989 }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802 }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792 }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893 }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810 }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200 }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447 }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358 }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 }, + { url = "https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44", size = 184283, upload-time = "2025-09-08T23:22:08.01Z" }, + { url = "https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49", size = 180504, upload-time = "2025-09-08T23:22:10.637Z" }, + { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811, upload-time = "2025-09-08T23:22:12.267Z" }, + { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402, upload-time = "2025-09-08T23:22:13.455Z" }, + { url = "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", size = 203217, upload-time = "2025-09-08T23:22:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", size = 203079, upload-time = "2025-09-08T23:22:15.769Z" }, + { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475, upload-time = "2025-09-08T23:22:17.427Z" }, + { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829, upload-time = "2025-09-08T23:22:19.069Z" }, + { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211, upload-time = "2025-09-08T23:22:20.588Z" }, + { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036, upload-time = "2025-09-08T23:22:22.143Z" }, + { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184, upload-time = "2025-09-08T23:22:23.328Z" }, + { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790, upload-time = "2025-09-08T23:22:24.752Z" }, + { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload-time = "2025-09-08T23:22:26.456Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload-time = "2025-09-08T23:22:28.197Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload-time = "2025-09-08T23:22:32.507Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload-time = "2025-09-08T23:22:34.132Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, + { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, ] [[package]] name = "charset-normalizer" version = "3.4.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371 } +sdist = { url = "https://files.pythonhosted.org/packages/83/2d/5fd176ceb9b2fc619e63405525573493ca23441330fcdaee6bef9460e924/charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14", size = 122371, upload-time = "2025-08-09T07:57:28.46Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d6/98/f3b8013223728a99b908c9344da3aa04ee6e3fa235f19409033eda92fb78/charset_normalizer-3.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72", size = 207695 }, - { url = "https://files.pythonhosted.org/packages/21/40/5188be1e3118c82dcb7c2a5ba101b783822cfb413a0268ed3be0468532de/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe", size = 147153 }, - { url = "https://files.pythonhosted.org/packages/37/60/5d0d74bc1e1380f0b72c327948d9c2aca14b46a9efd87604e724260f384c/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601", size = 160428 }, - { url = "https://files.pythonhosted.org/packages/85/9a/d891f63722d9158688de58d050c59dc3da560ea7f04f4c53e769de5140f5/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c", size = 157627 }, - { url = "https://files.pythonhosted.org/packages/65/1a/7425c952944a6521a9cfa7e675343f83fd82085b8af2b1373a2409c683dc/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2", size = 152388 }, - { url = "https://files.pythonhosted.org/packages/f0/c9/a2c9c2a355a8594ce2446085e2ec97fd44d323c684ff32042e2a6b718e1d/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0", size = 150077 }, - { url = "https://files.pythonhosted.org/packages/3b/38/20a1f44e4851aa1c9105d6e7110c9d020e093dfa5836d712a5f074a12bf7/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0", size = 161631 }, - { url = "https://files.pythonhosted.org/packages/a4/fa/384d2c0f57edad03d7bec3ebefb462090d8905b4ff5a2d2525f3bb711fac/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0", size = 159210 }, - { url = "https://files.pythonhosted.org/packages/33/9e/eca49d35867ca2db336b6ca27617deed4653b97ebf45dfc21311ce473c37/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a", size = 153739 }, - { url = "https://files.pythonhosted.org/packages/2a/91/26c3036e62dfe8de8061182d33be5025e2424002125c9500faff74a6735e/charset_normalizer-3.4.3-cp310-cp310-win32.whl", hash = "sha256:d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f", size = 99825 }, - { url = "https://files.pythonhosted.org/packages/e2/c6/f05db471f81af1fa01839d44ae2a8bfeec8d2a8b4590f16c4e7393afd323/charset_normalizer-3.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669", size = 107452 }, - { url = "https://files.pythonhosted.org/packages/7f/b5/991245018615474a60965a7c9cd2b4efbaabd16d582a5547c47ee1c7730b/charset_normalizer-3.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b", size = 204483 }, - { url = "https://files.pythonhosted.org/packages/c7/2a/ae245c41c06299ec18262825c1569c5d3298fc920e4ddf56ab011b417efd/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64", size = 145520 }, - { url = "https://files.pythonhosted.org/packages/3a/a4/b3b6c76e7a635748c4421d2b92c7b8f90a432f98bda5082049af37ffc8e3/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91", size = 158876 }, - { url = "https://files.pythonhosted.org/packages/e2/e6/63bb0e10f90a8243c5def74b5b105b3bbbfb3e7bb753915fe333fb0c11ea/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f", size = 156083 }, - { url = "https://files.pythonhosted.org/packages/87/df/b7737ff046c974b183ea9aa111b74185ac8c3a326c6262d413bd5a1b8c69/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07", size = 150295 }, - { url = "https://files.pythonhosted.org/packages/61/f1/190d9977e0084d3f1dc169acd060d479bbbc71b90bf3e7bf7b9927dec3eb/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30", size = 148379 }, - { url = "https://files.pythonhosted.org/packages/4c/92/27dbe365d34c68cfe0ca76f1edd70e8705d82b378cb54ebbaeabc2e3029d/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14", size = 160018 }, - { url = "https://files.pythonhosted.org/packages/99/04/baae2a1ea1893a01635d475b9261c889a18fd48393634b6270827869fa34/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c", size = 157430 }, - { url = "https://files.pythonhosted.org/packages/2f/36/77da9c6a328c54d17b960c89eccacfab8271fdaaa228305330915b88afa9/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae", size = 151600 }, - { url = "https://files.pythonhosted.org/packages/64/d4/9eb4ff2c167edbbf08cdd28e19078bf195762e9bd63371689cab5ecd3d0d/charset_normalizer-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849", size = 99616 }, - { url = "https://files.pythonhosted.org/packages/f4/9c/996a4a028222e7761a96634d1820de8a744ff4327a00ada9c8942033089b/charset_normalizer-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c", size = 107108 }, - { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655 }, - { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223 }, - { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366 }, - { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104 }, - { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830 }, - { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854 }, - { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670 }, - { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501 }, - { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173 }, - { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822 }, - { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543 }, - { url = "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", size = 205326 }, - { url = "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", size = 146008 }, - { url = "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", size = 159196 }, - { url = "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", size = 156819 }, - { url = "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", size = 151350 }, - { url = "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", size = 148644 }, - { url = "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", size = 160468 }, - { url = "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", size = 158187 }, - { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699 }, - { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580 }, - { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366 }, - { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342 }, - { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995 }, - { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640 }, - { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636 }, - { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939 }, - { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580 }, - { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870 }, - { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797 }, - { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224 }, - { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086 }, - { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400 }, - { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175 }, + { url = "https://files.pythonhosted.org/packages/d6/98/f3b8013223728a99b908c9344da3aa04ee6e3fa235f19409033eda92fb78/charset_normalizer-3.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72", size = 207695, upload-time = "2025-08-09T07:55:36.452Z" }, + { url = "https://files.pythonhosted.org/packages/21/40/5188be1e3118c82dcb7c2a5ba101b783822cfb413a0268ed3be0468532de/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe", size = 147153, upload-time = "2025-08-09T07:55:38.467Z" }, + { url = "https://files.pythonhosted.org/packages/37/60/5d0d74bc1e1380f0b72c327948d9c2aca14b46a9efd87604e724260f384c/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601", size = 160428, upload-time = "2025-08-09T07:55:40.072Z" }, + { url = "https://files.pythonhosted.org/packages/85/9a/d891f63722d9158688de58d050c59dc3da560ea7f04f4c53e769de5140f5/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c", size = 157627, upload-time = "2025-08-09T07:55:41.706Z" }, + { url = "https://files.pythonhosted.org/packages/65/1a/7425c952944a6521a9cfa7e675343f83fd82085b8af2b1373a2409c683dc/charset_normalizer-3.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2", size = 152388, upload-time = "2025-08-09T07:55:43.262Z" }, + { url = "https://files.pythonhosted.org/packages/f0/c9/a2c9c2a355a8594ce2446085e2ec97fd44d323c684ff32042e2a6b718e1d/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0", size = 150077, upload-time = "2025-08-09T07:55:44.903Z" }, + { url = "https://files.pythonhosted.org/packages/3b/38/20a1f44e4851aa1c9105d6e7110c9d020e093dfa5836d712a5f074a12bf7/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0", size = 161631, upload-time = "2025-08-09T07:55:46.346Z" }, + { url = "https://files.pythonhosted.org/packages/a4/fa/384d2c0f57edad03d7bec3ebefb462090d8905b4ff5a2d2525f3bb711fac/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0", size = 159210, upload-time = "2025-08-09T07:55:47.539Z" }, + { url = "https://files.pythonhosted.org/packages/33/9e/eca49d35867ca2db336b6ca27617deed4653b97ebf45dfc21311ce473c37/charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a", size = 153739, upload-time = "2025-08-09T07:55:48.744Z" }, + { url = "https://files.pythonhosted.org/packages/2a/91/26c3036e62dfe8de8061182d33be5025e2424002125c9500faff74a6735e/charset_normalizer-3.4.3-cp310-cp310-win32.whl", hash = "sha256:d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f", size = 99825, upload-time = "2025-08-09T07:55:50.305Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c6/f05db471f81af1fa01839d44ae2a8bfeec8d2a8b4590f16c4e7393afd323/charset_normalizer-3.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669", size = 107452, upload-time = "2025-08-09T07:55:51.461Z" }, + { url = "https://files.pythonhosted.org/packages/7f/b5/991245018615474a60965a7c9cd2b4efbaabd16d582a5547c47ee1c7730b/charset_normalizer-3.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b", size = 204483, upload-time = "2025-08-09T07:55:53.12Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2a/ae245c41c06299ec18262825c1569c5d3298fc920e4ddf56ab011b417efd/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64", size = 145520, upload-time = "2025-08-09T07:55:54.712Z" }, + { url = "https://files.pythonhosted.org/packages/3a/a4/b3b6c76e7a635748c4421d2b92c7b8f90a432f98bda5082049af37ffc8e3/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91", size = 158876, upload-time = "2025-08-09T07:55:56.024Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e6/63bb0e10f90a8243c5def74b5b105b3bbbfb3e7bb753915fe333fb0c11ea/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f", size = 156083, upload-time = "2025-08-09T07:55:57.582Z" }, + { url = "https://files.pythonhosted.org/packages/87/df/b7737ff046c974b183ea9aa111b74185ac8c3a326c6262d413bd5a1b8c69/charset_normalizer-3.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07", size = 150295, upload-time = "2025-08-09T07:55:59.147Z" }, + { url = "https://files.pythonhosted.org/packages/61/f1/190d9977e0084d3f1dc169acd060d479bbbc71b90bf3e7bf7b9927dec3eb/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30", size = 148379, upload-time = "2025-08-09T07:56:00.364Z" }, + { url = "https://files.pythonhosted.org/packages/4c/92/27dbe365d34c68cfe0ca76f1edd70e8705d82b378cb54ebbaeabc2e3029d/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14", size = 160018, upload-time = "2025-08-09T07:56:01.678Z" }, + { url = "https://files.pythonhosted.org/packages/99/04/baae2a1ea1893a01635d475b9261c889a18fd48393634b6270827869fa34/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c", size = 157430, upload-time = "2025-08-09T07:56:02.87Z" }, + { url = "https://files.pythonhosted.org/packages/2f/36/77da9c6a328c54d17b960c89eccacfab8271fdaaa228305330915b88afa9/charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae", size = 151600, upload-time = "2025-08-09T07:56:04.089Z" }, + { url = "https://files.pythonhosted.org/packages/64/d4/9eb4ff2c167edbbf08cdd28e19078bf195762e9bd63371689cab5ecd3d0d/charset_normalizer-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849", size = 99616, upload-time = "2025-08-09T07:56:05.658Z" }, + { url = "https://files.pythonhosted.org/packages/f4/9c/996a4a028222e7761a96634d1820de8a744ff4327a00ada9c8942033089b/charset_normalizer-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c", size = 107108, upload-time = "2025-08-09T07:56:07.176Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5e/14c94999e418d9b87682734589404a25854d5f5d0408df68bc15b6ff54bb/charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1", size = 205655, upload-time = "2025-08-09T07:56:08.475Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a8/c6ec5d389672521f644505a257f50544c074cf5fc292d5390331cd6fc9c3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884", size = 146223, upload-time = "2025-08-09T07:56:09.708Z" }, + { url = "https://files.pythonhosted.org/packages/fc/eb/a2ffb08547f4e1e5415fb69eb7db25932c52a52bed371429648db4d84fb1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018", size = 159366, upload-time = "2025-08-09T07:56:11.326Z" }, + { url = "https://files.pythonhosted.org/packages/82/10/0fd19f20c624b278dddaf83b8464dcddc2456cb4b02bb902a6da126b87a1/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392", size = 157104, upload-time = "2025-08-09T07:56:13.014Z" }, + { url = "https://files.pythonhosted.org/packages/16/ab/0233c3231af734f5dfcf0844aa9582d5a1466c985bbed6cedab85af9bfe3/charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f", size = 151830, upload-time = "2025-08-09T07:56:14.428Z" }, + { url = "https://files.pythonhosted.org/packages/ae/02/e29e22b4e02839a0e4a06557b1999d0a47db3567e82989b5bb21f3fbbd9f/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154", size = 148854, upload-time = "2025-08-09T07:56:16.051Z" }, + { url = "https://files.pythonhosted.org/packages/05/6b/e2539a0a4be302b481e8cafb5af8792da8093b486885a1ae4d15d452bcec/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491", size = 160670, upload-time = "2025-08-09T07:56:17.314Z" }, + { url = "https://files.pythonhosted.org/packages/31/e7/883ee5676a2ef217a40ce0bffcc3d0dfbf9e64cbcfbdf822c52981c3304b/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93", size = 158501, upload-time = "2025-08-09T07:56:18.641Z" }, + { url = "https://files.pythonhosted.org/packages/c1/35/6525b21aa0db614cf8b5792d232021dca3df7f90a1944db934efa5d20bb1/charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f", size = 153173, upload-time = "2025-08-09T07:56:20.289Z" }, + { url = "https://files.pythonhosted.org/packages/50/ee/f4704bad8201de513fdc8aac1cabc87e38c5818c93857140e06e772b5892/charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37", size = 99822, upload-time = "2025-08-09T07:56:21.551Z" }, + { url = "https://files.pythonhosted.org/packages/39/f5/3b3836ca6064d0992c58c7561c6b6eee1b3892e9665d650c803bd5614522/charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc", size = 107543, upload-time = "2025-08-09T07:56:23.115Z" }, + { url = "https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe", size = 205326, upload-time = "2025-08-09T07:56:24.721Z" }, + { url = "https://files.pythonhosted.org/packages/71/11/98a04c3c97dd34e49c7d247083af03645ca3730809a5509443f3c37f7c99/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8", size = 146008, upload-time = "2025-08-09T07:56:26.004Z" }, + { url = "https://files.pythonhosted.org/packages/60/f5/4659a4cb3c4ec146bec80c32d8bb16033752574c20b1252ee842a95d1a1e/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9", size = 159196, upload-time = "2025-08-09T07:56:27.25Z" }, + { url = "https://files.pythonhosted.org/packages/86/9e/f552f7a00611f168b9a5865a1414179b2c6de8235a4fa40189f6f79a1753/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31", size = 156819, upload-time = "2025-08-09T07:56:28.515Z" }, + { url = "https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f", size = 151350, upload-time = "2025-08-09T07:56:29.716Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a9/3865b02c56f300a6f94fc631ef54f0a8a29da74fb45a773dfd3dcd380af7/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927", size = 148644, upload-time = "2025-08-09T07:56:30.984Z" }, + { url = "https://files.pythonhosted.org/packages/77/d9/cbcf1a2a5c7d7856f11e7ac2d782aec12bdfea60d104e60e0aa1c97849dc/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9", size = 160468, upload-time = "2025-08-09T07:56:32.252Z" }, + { url = "https://files.pythonhosted.org/packages/f6/42/6f45efee8697b89fda4d50580f292b8f7f9306cb2971d4b53f8914e4d890/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5", size = 158187, upload-time = "2025-08-09T07:56:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699, upload-time = "2025-08-09T07:56:34.739Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580, upload-time = "2025-08-09T07:56:35.981Z" }, + { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366, upload-time = "2025-08-09T07:56:37.339Z" }, + { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342, upload-time = "2025-08-09T07:56:38.687Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995, upload-time = "2025-08-09T07:56:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640, upload-time = "2025-08-09T07:56:41.311Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636, upload-time = "2025-08-09T07:56:43.195Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939, upload-time = "2025-08-09T07:56:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580, upload-time = "2025-08-09T07:56:46.684Z" }, + { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870, upload-time = "2025-08-09T07:56:47.941Z" }, + { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797, upload-time = "2025-08-09T07:56:49.756Z" }, + { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224, upload-time = "2025-08-09T07:56:51.369Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086, upload-time = "2025-08-09T07:56:52.722Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400, upload-time = "2025-08-09T07:56:55.172Z" }, + { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175, upload-time = "2025-08-09T07:57:26.864Z" }, ] [[package]] @@ -217,76 +243,89 @@ name = "click" version = "8.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342 } +sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342, upload-time = "2025-05-20T23:19:49.832Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215 }, + { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215, upload-time = "2025-05-20T23:19:47.796Z" }, ] [[package]] name = "cloudpickle" version = "3.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330 } +sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330, upload-time = "2025-11-03T09:25:26.604Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228 }, + { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" }, ] [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] name = "cryptography" -version = "45.0.7" +version = "46.0.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/35/c495bffc2056f2dadb32434f1feedd79abde2a7f8363e1974afa9c33c7e2/cryptography-45.0.7.tar.gz", hash = "sha256:4b1654dfc64ea479c242508eb8c724044f1e964a47d1d1cacc5132292d851971", size = 744980 } +sdist = { url = "https://files.pythonhosted.org/packages/60/04/ee2a9e8542e4fa2773b81771ff8349ff19cdd56b7258a0cc442639052edb/cryptography-46.0.5.tar.gz", hash = "sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d", size = 750064, upload-time = "2026-02-10T19:18:38.255Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/91/925c0ac74362172ae4516000fe877912e33b5983df735ff290c653de4913/cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:3be4f21c6245930688bd9e162829480de027f8bf962ede33d4f8ba7d67a00cee", size = 7041105 }, - { url = "https://files.pythonhosted.org/packages/fc/63/43641c5acce3a6105cf8bd5baeceeb1846bb63067d26dae3e5db59f1513a/cryptography-45.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:67285f8a611b0ebc0857ced2081e30302909f571a46bfa7a3cc0ad303fe015c6", size = 4205799 }, - { url = "https://files.pythonhosted.org/packages/bc/29/c238dd9107f10bfde09a4d1c52fd38828b1aa353ced11f358b5dd2507d24/cryptography-45.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:577470e39e60a6cd7780793202e63536026d9b8641de011ed9d8174da9ca5339", size = 4430504 }, - { url = "https://files.pythonhosted.org/packages/62/62/24203e7cbcc9bd7c94739428cd30680b18ae6b18377ae66075c8e4771b1b/cryptography-45.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:4bd3e5c4b9682bc112d634f2c6ccc6736ed3635fc3319ac2bb11d768cc5a00d8", size = 4209542 }, - { url = "https://files.pythonhosted.org/packages/cd/e3/e7de4771a08620eef2389b86cd87a2c50326827dea5528feb70595439ce4/cryptography-45.0.7-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:465ccac9d70115cd4de7186e60cfe989de73f7bb23e8a7aa45af18f7412e75bf", size = 3889244 }, - { url = "https://files.pythonhosted.org/packages/96/b8/bca71059e79a0bb2f8e4ec61d9c205fbe97876318566cde3b5092529faa9/cryptography-45.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:16ede8a4f7929b4b7ff3642eba2bf79aa1d71f24ab6ee443935c0d269b6bc513", size = 4461975 }, - { url = "https://files.pythonhosted.org/packages/58/67/3f5b26937fe1218c40e95ef4ff8d23c8dc05aa950d54200cc7ea5fb58d28/cryptography-45.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8978132287a9d3ad6b54fcd1e08548033cc09dc6aacacb6c004c73c3eb5d3ac3", size = 4209082 }, - { url = "https://files.pythonhosted.org/packages/0e/e4/b3e68a4ac363406a56cf7b741eeb80d05284d8c60ee1a55cdc7587e2a553/cryptography-45.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:b6a0e535baec27b528cb07a119f321ac024592388c5681a5ced167ae98e9fff3", size = 4460397 }, - { url = "https://files.pythonhosted.org/packages/22/49/2c93f3cd4e3efc8cb22b02678c1fad691cff9dd71bb889e030d100acbfe0/cryptography-45.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:a24ee598d10befaec178efdff6054bc4d7e883f615bfbcd08126a0f4931c83a6", size = 4337244 }, - { url = "https://files.pythonhosted.org/packages/04/19/030f400de0bccccc09aa262706d90f2ec23d56bc4eb4f4e8268d0ddf3fb8/cryptography-45.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa26fa54c0a9384c27fcdc905a2fb7d60ac6e47d14bc2692145f2b3b1e2cfdbd", size = 4568862 }, - { url = "https://files.pythonhosted.org/packages/29/56/3034a3a353efa65116fa20eb3c990a8c9f0d3db4085429040a7eef9ada5f/cryptography-45.0.7-cp311-abi3-win32.whl", hash = "sha256:bef32a5e327bd8e5af915d3416ffefdbe65ed975b646b3805be81b23580b57b8", size = 2936578 }, - { url = "https://files.pythonhosted.org/packages/b3/61/0ab90f421c6194705a99d0fa9f6ee2045d916e4455fdbb095a9c2c9a520f/cryptography-45.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:3808e6b2e5f0b46d981c24d79648e5c25c35e59902ea4391a0dcb3e667bf7443", size = 3405400 }, - { url = "https://files.pythonhosted.org/packages/63/e8/c436233ddf19c5f15b25ace33979a9dd2e7aa1a59209a0ee8554179f1cc0/cryptography-45.0.7-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bfb4c801f65dd61cedfc61a83732327fafbac55a47282e6f26f073ca7a41c3b2", size = 7021824 }, - { url = "https://files.pythonhosted.org/packages/bc/4c/8f57f2500d0ccd2675c5d0cc462095adf3faa8c52294ba085c036befb901/cryptography-45.0.7-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:81823935e2f8d476707e85a78a405953a03ef7b7b4f55f93f7c2d9680e5e0691", size = 4202233 }, - { url = "https://files.pythonhosted.org/packages/eb/ac/59b7790b4ccaed739fc44775ce4645c9b8ce54cbec53edf16c74fd80cb2b/cryptography-45.0.7-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3994c809c17fc570c2af12c9b840d7cea85a9fd3e5c0e0491f4fa3c029216d59", size = 4423075 }, - { url = "https://files.pythonhosted.org/packages/b8/56/d4f07ea21434bf891faa088a6ac15d6d98093a66e75e30ad08e88aa2b9ba/cryptography-45.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dad43797959a74103cb59c5dac71409f9c27d34c8a05921341fb64ea8ccb1dd4", size = 4204517 }, - { url = "https://files.pythonhosted.org/packages/e8/ac/924a723299848b4c741c1059752c7cfe09473b6fd77d2920398fc26bfb53/cryptography-45.0.7-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ce7a453385e4c4693985b4a4a3533e041558851eae061a58a5405363b098fcd3", size = 3882893 }, - { url = "https://files.pythonhosted.org/packages/83/dc/4dab2ff0a871cc2d81d3ae6d780991c0192b259c35e4d83fe1de18b20c70/cryptography-45.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b04f85ac3a90c227b6e5890acb0edbaf3140938dbecf07bff618bf3638578cf1", size = 4450132 }, - { url = "https://files.pythonhosted.org/packages/12/dd/b2882b65db8fc944585d7fb00d67cf84a9cef4e77d9ba8f69082e911d0de/cryptography-45.0.7-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:48c41a44ef8b8c2e80ca4527ee81daa4c527df3ecbc9423c41a420a9559d0e27", size = 4204086 }, - { url = "https://files.pythonhosted.org/packages/5d/fa/1d5745d878048699b8eb87c984d4ccc5da4f5008dfd3ad7a94040caca23a/cryptography-45.0.7-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:f3df7b3d0f91b88b2106031fd995802a2e9ae13e02c36c1fc075b43f420f3a17", size = 4449383 }, - { url = "https://files.pythonhosted.org/packages/36/8b/fc61f87931bc030598e1876c45b936867bb72777eac693e905ab89832670/cryptography-45.0.7-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:dd342f085542f6eb894ca00ef70236ea46070c8a13824c6bde0dfdcd36065b9b", size = 4332186 }, - { url = "https://files.pythonhosted.org/packages/0b/11/09700ddad7443ccb11d674efdbe9a832b4455dc1f16566d9bd3834922ce5/cryptography-45.0.7-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1993a1bb7e4eccfb922b6cd414f072e08ff5816702a0bdb8941c247a6b1b287c", size = 4561639 }, - { url = "https://files.pythonhosted.org/packages/71/ed/8f4c1337e9d3b94d8e50ae0b08ad0304a5709d483bfcadfcc77a23dbcb52/cryptography-45.0.7-cp37-abi3-win32.whl", hash = "sha256:18fcf70f243fe07252dcb1b268a687f2358025ce32f9f88028ca5c364b123ef5", size = 2926552 }, - { url = "https://files.pythonhosted.org/packages/bc/ff/026513ecad58dacd45d1d24ebe52b852165a26e287177de1d545325c0c25/cryptography-45.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:7285a89df4900ed3bfaad5679b1e668cb4b38a8de1ccbfc84b05f34512da0a90", size = 3392742 }, - { url = "https://files.pythonhosted.org/packages/13/3e/e42f1528ca1ea82256b835191eab1be014e0f9f934b60d98b0be8a38ed70/cryptography-45.0.7-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:de58755d723e86175756f463f2f0bddd45cc36fbd62601228a3f8761c9f58252", size = 3572442 }, - { url = "https://files.pythonhosted.org/packages/59/aa/e947693ab08674a2663ed2534cd8d345cf17bf6a1facf99273e8ec8986dc/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a20e442e917889d1a6b3c570c9e3fa2fdc398c20868abcea268ea33c024c4083", size = 4142233 }, - { url = "https://files.pythonhosted.org/packages/24/06/09b6f6a2fc43474a32b8fe259038eef1500ee3d3c141599b57ac6c57612c/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:258e0dff86d1d891169b5af222d362468a9570e2532923088658aa866eb11130", size = 4376202 }, - { url = "https://files.pythonhosted.org/packages/00/f2/c166af87e95ce6ae6d38471a7e039d3a0549c2d55d74e059680162052824/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d97cf502abe2ab9eff8bd5e4aca274da8d06dd3ef08b759a8d6143f4ad65d4b4", size = 4141900 }, - { url = "https://files.pythonhosted.org/packages/16/b9/e96e0b6cb86eae27ea51fa8a3151535a18e66fe7c451fa90f7f89c85f541/cryptography-45.0.7-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:c987dad82e8c65ebc985f5dae5e74a3beda9d0a2a4daf8a1115f3772b59e5141", size = 4375562 }, - { url = "https://files.pythonhosted.org/packages/36/d0/36e8ee39274e9d77baf7d0dafda680cba6e52f3936b846f0d56d64fec915/cryptography-45.0.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c13b1e3afd29a5b3b2656257f14669ca8fa8d7956d509926f0b130b600b50ab7", size = 3322781 }, - { url = "https://files.pythonhosted.org/packages/99/4e/49199a4c82946938a3e05d2e8ad9482484ba48bbc1e809e3d506c686d051/cryptography-45.0.7-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a862753b36620af6fc54209264f92c716367f2f0ff4624952276a6bbd18cbde", size = 3584634 }, - { url = "https://files.pythonhosted.org/packages/16/ce/5f6ff59ea9c7779dba51b84871c19962529bdcc12e1a6ea172664916c550/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:06ce84dc14df0bf6ea84666f958e6080cdb6fe1231be2a51f3fc1267d9f3fb34", size = 4149533 }, - { url = "https://files.pythonhosted.org/packages/ce/13/b3cfbd257ac96da4b88b46372e662009b7a16833bfc5da33bb97dd5631ae/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d0c5c6bac22b177bf8da7435d9d27a6834ee130309749d162b26c3105c0795a9", size = 4385557 }, - { url = "https://files.pythonhosted.org/packages/1c/c5/8c59d6b7c7b439ba4fc8d0cab868027fd095f215031bc123c3a070962912/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:2f641b64acc00811da98df63df7d59fd4706c0df449da71cb7ac39a0732b40ae", size = 4149023 }, - { url = "https://files.pythonhosted.org/packages/55/32/05385c86d6ca9ab0b4d5bb442d2e3d85e727939a11f3e163fc776ce5eb40/cryptography-45.0.7-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:f5414a788ecc6ee6bc58560e85ca624258a55ca434884445440a810796ea0e0b", size = 4385722 }, - { url = "https://files.pythonhosted.org/packages/23/87/7ce86f3fa14bc11a5a48c30d8103c26e09b6465f8d8e9d74cf7a0714f043/cryptography-45.0.7-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:1f3d56f73595376f4244646dd5c5870c14c196949807be39e79e7bd9bac3da63", size = 3332908 }, + { url = "https://files.pythonhosted.org/packages/f7/81/b0bb27f2ba931a65409c6b8a8b358a7f03c0e46eceacddff55f7c84b1f3b/cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad", size = 7176289, upload-time = "2026-02-10T19:17:08.274Z" }, + { url = "https://files.pythonhosted.org/packages/ff/9e/6b4397a3e3d15123de3b1806ef342522393d50736c13b20ec4c9ea6693a6/cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b", size = 4275637, upload-time = "2026-02-10T19:17:10.53Z" }, + { url = "https://files.pythonhosted.org/packages/63/e7/471ab61099a3920b0c77852ea3f0ea611c9702f651600397ac567848b897/cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b", size = 4424742, upload-time = "2026-02-10T19:17:12.388Z" }, + { url = "https://files.pythonhosted.org/packages/37/53/a18500f270342d66bf7e4d9f091114e31e5ee9e7375a5aba2e85a91e0044/cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263", size = 4277528, upload-time = "2026-02-10T19:17:13.853Z" }, + { url = "https://files.pythonhosted.org/packages/22/29/c2e812ebc38c57b40e7c583895e73c8c5adb4d1e4a0cc4c5a4fdab2b1acc/cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d", size = 4947993, upload-time = "2026-02-10T19:17:15.618Z" }, + { url = "https://files.pythonhosted.org/packages/6b/e7/237155ae19a9023de7e30ec64e5d99a9431a567407ac21170a046d22a5a3/cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed", size = 4456855, upload-time = "2026-02-10T19:17:17.221Z" }, + { url = "https://files.pythonhosted.org/packages/2d/87/fc628a7ad85b81206738abbd213b07702bcbdada1dd43f72236ef3cffbb5/cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2", size = 3984635, upload-time = "2026-02-10T19:17:18.792Z" }, + { url = "https://files.pythonhosted.org/packages/84/29/65b55622bde135aedf4565dc509d99b560ee4095e56989e815f8fd2aa910/cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2", size = 4277038, upload-time = "2026-02-10T19:17:20.256Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/45e76c68d7311432741faf1fbf7fac8a196a0a735ca21f504c75d37e2558/cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0", size = 4912181, upload-time = "2026-02-10T19:17:21.825Z" }, + { url = "https://files.pythonhosted.org/packages/6d/1a/c1ba8fead184d6e3d5afcf03d569acac5ad063f3ac9fb7258af158f7e378/cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731", size = 4456482, upload-time = "2026-02-10T19:17:25.133Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e5/3fb22e37f66827ced3b902cf895e6a6bc1d095b5b26be26bd13c441fdf19/cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82", size = 4405497, upload-time = "2026-02-10T19:17:26.66Z" }, + { url = "https://files.pythonhosted.org/packages/1a/df/9d58bb32b1121a8a2f27383fabae4d63080c7ca60b9b5c88be742be04ee7/cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1", size = 4667819, upload-time = "2026-02-10T19:17:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/ea/ed/325d2a490c5e94038cdb0117da9397ece1f11201f425c4e9c57fe5b9f08b/cryptography-46.0.5-cp311-abi3-win32.whl", hash = "sha256:60ee7e19e95104d4c03871d7d7dfb3d22ef8a9b9c6778c94e1c8fcc8365afd48", size = 3028230, upload-time = "2026-02-10T19:17:30.518Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5a/ac0f49e48063ab4255d9e3b79f5def51697fce1a95ea1370f03dc9db76f6/cryptography-46.0.5-cp311-abi3-win_amd64.whl", hash = "sha256:38946c54b16c885c72c4f59846be9743d699eee2b69b6988e0a00a01f46a61a4", size = 3480909, upload-time = "2026-02-10T19:17:32.083Z" }, + { url = "https://files.pythonhosted.org/packages/00/13/3d278bfa7a15a96b9dc22db5a12ad1e48a9eb3d40e1827ef66a5df75d0d0/cryptography-46.0.5-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:94a76daa32eb78d61339aff7952ea819b1734b46f73646a07decb40e5b3448e2", size = 7119287, upload-time = "2026-02-10T19:17:33.801Z" }, + { url = "https://files.pythonhosted.org/packages/67/c8/581a6702e14f0898a0848105cbefd20c058099e2c2d22ef4e476dfec75d7/cryptography-46.0.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5be7bf2fb40769e05739dd0046e7b26f9d4670badc7b032d6ce4db64dddc0678", size = 4265728, upload-time = "2026-02-10T19:17:35.569Z" }, + { url = "https://files.pythonhosted.org/packages/dd/4a/ba1a65ce8fc65435e5a849558379896c957870dd64fecea97b1ad5f46a37/cryptography-46.0.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe346b143ff9685e40192a4960938545c699054ba11d4f9029f94751e3f71d87", size = 4408287, upload-time = "2026-02-10T19:17:36.938Z" }, + { url = "https://files.pythonhosted.org/packages/f8/67/8ffdbf7b65ed1ac224d1c2df3943553766914a8ca718747ee3871da6107e/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:c69fd885df7d089548a42d5ec05be26050ebcd2283d89b3d30676eb32ff87dee", size = 4270291, upload-time = "2026-02-10T19:17:38.748Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/f52377ee93bc2f2bba55a41a886fd208c15276ffbd2569f2ddc89d50e2c5/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:8293f3dea7fc929ef7240796ba231413afa7b68ce38fd21da2995549f5961981", size = 4927539, upload-time = "2026-02-10T19:17:40.241Z" }, + { url = "https://files.pythonhosted.org/packages/3b/02/cfe39181b02419bbbbcf3abdd16c1c5c8541f03ca8bda240debc467d5a12/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:1abfdb89b41c3be0365328a410baa9df3ff8a9110fb75e7b52e66803ddabc9a9", size = 4442199, upload-time = "2026-02-10T19:17:41.789Z" }, + { url = "https://files.pythonhosted.org/packages/c0/96/2fcaeb4873e536cf71421a388a6c11b5bc846e986b2b069c79363dc1648e/cryptography-46.0.5-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:d66e421495fdb797610a08f43b05269e0a5ea7f5e652a89bfd5a7d3c1dee3648", size = 3960131, upload-time = "2026-02-10T19:17:43.379Z" }, + { url = "https://files.pythonhosted.org/packages/d8/d2/b27631f401ddd644e94c5cf33c9a4069f72011821cf3dc7309546b0642a0/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:4e817a8920bfbcff8940ecfd60f23d01836408242b30f1a708d93198393a80b4", size = 4270072, upload-time = "2026-02-10T19:17:45.481Z" }, + { url = "https://files.pythonhosted.org/packages/f4/a7/60d32b0370dae0b4ebe55ffa10e8599a2a59935b5ece1b9f06edb73abdeb/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:68f68d13f2e1cb95163fa3b4db4bf9a159a418f5f6e7242564fc75fcae667fd0", size = 4892170, upload-time = "2026-02-10T19:17:46.997Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b9/cf73ddf8ef1164330eb0b199a589103c363afa0cf794218c24d524a58eab/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:a3d1fae9863299076f05cb8a778c467578262fae09f9dc0ee9b12eb4268ce663", size = 4441741, upload-time = "2026-02-10T19:17:48.661Z" }, + { url = "https://files.pythonhosted.org/packages/5f/eb/eee00b28c84c726fe8fa0158c65afe312d9c3b78d9d01daf700f1f6e37ff/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4143987a42a2397f2fc3b4d7e3a7d313fbe684f67ff443999e803dd75a76826", size = 4396728, upload-time = "2026-02-10T19:17:50.058Z" }, + { url = "https://files.pythonhosted.org/packages/65/f4/6bc1a9ed5aef7145045114b75b77c2a8261b4d38717bd8dea111a63c3442/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7d731d4b107030987fd61a7f8ab512b25b53cef8f233a97379ede116f30eb67d", size = 4652001, upload-time = "2026-02-10T19:17:51.54Z" }, + { url = "https://files.pythonhosted.org/packages/86/ef/5d00ef966ddd71ac2e6951d278884a84a40ffbd88948ef0e294b214ae9e4/cryptography-46.0.5-cp314-cp314t-win32.whl", hash = "sha256:c3bcce8521d785d510b2aad26ae2c966092b7daa8f45dd8f44734a104dc0bc1a", size = 3003637, upload-time = "2026-02-10T19:17:52.997Z" }, + { url = "https://files.pythonhosted.org/packages/b7/57/f3f4160123da6d098db78350fdfd9705057aad21de7388eacb2401dceab9/cryptography-46.0.5-cp314-cp314t-win_amd64.whl", hash = "sha256:4d8ae8659ab18c65ced284993c2265910f6c9e650189d4e3f68445ef82a810e4", size = 3469487, upload-time = "2026-02-10T19:17:54.549Z" }, + { url = "https://files.pythonhosted.org/packages/e2/fa/a66aa722105ad6a458bebd64086ca2b72cdd361fed31763d20390f6f1389/cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31", size = 7170514, upload-time = "2026-02-10T19:17:56.267Z" }, + { url = "https://files.pythonhosted.org/packages/0f/04/c85bdeab78c8bc77b701bf0d9bdcf514c044e18a46dcff330df5448631b0/cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18", size = 4275349, upload-time = "2026-02-10T19:17:58.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/32/9b87132a2f91ee7f5223b091dc963055503e9b442c98fc0b8a5ca765fab0/cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235", size = 4420667, upload-time = "2026-02-10T19:18:00.619Z" }, + { url = "https://files.pythonhosted.org/packages/a1/a6/a7cb7010bec4b7c5692ca6f024150371b295ee1c108bdc1c400e4c44562b/cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a", size = 4276980, upload-time = "2026-02-10T19:18:02.379Z" }, + { url = "https://files.pythonhosted.org/packages/8e/7c/c4f45e0eeff9b91e3f12dbd0e165fcf2a38847288fcfd889deea99fb7b6d/cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76", size = 4939143, upload-time = "2026-02-10T19:18:03.964Z" }, + { url = "https://files.pythonhosted.org/packages/37/19/e1b8f964a834eddb44fa1b9a9976f4e414cbb7aa62809b6760c8803d22d1/cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614", size = 4453674, upload-time = "2026-02-10T19:18:05.588Z" }, + { url = "https://files.pythonhosted.org/packages/db/ed/db15d3956f65264ca204625597c410d420e26530c4e2943e05a0d2f24d51/cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229", size = 3978801, upload-time = "2026-02-10T19:18:07.167Z" }, + { url = "https://files.pythonhosted.org/packages/41/e2/df40a31d82df0a70a0daf69791f91dbb70e47644c58581d654879b382d11/cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1", size = 4276755, upload-time = "2026-02-10T19:18:09.813Z" }, + { url = "https://files.pythonhosted.org/packages/33/45/726809d1176959f4a896b86907b98ff4391a8aa29c0aaaf9450a8a10630e/cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d", size = 4901539, upload-time = "2026-02-10T19:18:11.263Z" }, + { url = "https://files.pythonhosted.org/packages/99/0f/a3076874e9c88ecb2ecc31382f6e7c21b428ede6f55aafa1aa272613e3cd/cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c", size = 4452794, upload-time = "2026-02-10T19:18:12.914Z" }, + { url = "https://files.pythonhosted.org/packages/02/ef/ffeb542d3683d24194a38f66ca17c0a4b8bf10631feef44a7ef64e631b1a/cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4", size = 4404160, upload-time = "2026-02-10T19:18:14.375Z" }, + { url = "https://files.pythonhosted.org/packages/96/93/682d2b43c1d5f1406ed048f377c0fc9fc8f7b0447a478d5c65ab3d3a66eb/cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9", size = 4667123, upload-time = "2026-02-10T19:18:15.886Z" }, + { url = "https://files.pythonhosted.org/packages/45/2d/9c5f2926cb5300a8eefc3f4f0b3f3df39db7f7ce40c8365444c49363cbda/cryptography-46.0.5-cp38-abi3-win32.whl", hash = "sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72", size = 3010220, upload-time = "2026-02-10T19:18:17.361Z" }, + { url = "https://files.pythonhosted.org/packages/48/ef/0c2f4a8e31018a986949d34a01115dd057bf536905dca38897bacd21fac3/cryptography-46.0.5-cp38-abi3-win_amd64.whl", hash = "sha256:556e106ee01aa13484ce9b0239bca667be5004efb0aabbed28d353df86445595", size = 3467050, upload-time = "2026-02-10T19:18:18.899Z" }, + { url = "https://files.pythonhosted.org/packages/eb/dd/2d9fdb07cebdf3d51179730afb7d5e576153c6744c3ff8fded23030c204e/cryptography-46.0.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c", size = 3476964, upload-time = "2026-02-10T19:18:20.687Z" }, + { url = "https://files.pythonhosted.org/packages/e9/6f/6cc6cc9955caa6eaf83660b0da2b077c7fe8ff9950a3c5e45d605038d439/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a", size = 4218321, upload-time = "2026-02-10T19:18:22.349Z" }, + { url = "https://files.pythonhosted.org/packages/3e/5d/c4da701939eeee699566a6c1367427ab91a8b7088cc2328c09dbee940415/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356", size = 4381786, upload-time = "2026-02-10T19:18:24.529Z" }, + { url = "https://files.pythonhosted.org/packages/ac/97/a538654732974a94ff96c1db621fa464f455c02d4bb7d2652f4edc21d600/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da", size = 4217990, upload-time = "2026-02-10T19:18:25.957Z" }, + { url = "https://files.pythonhosted.org/packages/ae/11/7e500d2dd3ba891197b9efd2da5454b74336d64a7cc419aa7327ab74e5f6/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257", size = 4381252, upload-time = "2026-02-10T19:18:27.496Z" }, + { url = "https://files.pythonhosted.org/packages/bc/58/6b3d24e6b9bc474a2dcdee65dfd1f008867015408a271562e4b690561a4d/cryptography-46.0.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8456928655f856c6e1533ff59d5be76578a7157224dbd9ce6872f25055ab9ab7", size = 3407605, upload-time = "2026-02-10T19:18:29.233Z" }, ] [[package]] @@ -301,54 +340,54 @@ dependencies = [ { name = "tomli", marker = "python_full_version < '3.11'" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1b/0f/fe026df2ab8301e30a2b0bd425ff1462ad858fd4f991c1ac0389c2059c24/cyclopts-4.3.0.tar.gz", hash = "sha256:e95179cd0a959ce250ecfb2f0262a5996a92c1f9467bccad2f3d829e6833cef5", size = 151411 } +sdist = { url = "https://files.pythonhosted.org/packages/1b/0f/fe026df2ab8301e30a2b0bd425ff1462ad858fd4f991c1ac0389c2059c24/cyclopts-4.3.0.tar.gz", hash = "sha256:e95179cd0a959ce250ecfb2f0262a5996a92c1f9467bccad2f3d829e6833cef5", size = 151411, upload-time = "2025-11-25T02:59:33.572Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7a/e8/77a231ae531cf38765b75ddf27dae28bb5f70b41d8bb4f15ce1650e93f57/cyclopts-4.3.0-py3-none-any.whl", hash = "sha256:91a30b69faf128ada7cfeaefd7d9649dc222e8b2a8697f1fc99e4ee7b7ca44f3", size = 187184 }, + { url = "https://files.pythonhosted.org/packages/7a/e8/77a231ae531cf38765b75ddf27dae28bb5f70b41d8bb4f15ce1650e93f57/cyclopts-4.3.0-py3-none-any.whl", hash = "sha256:91a30b69faf128ada7cfeaefd7d9649dc222e8b2a8697f1fc99e4ee7b7ca44f3", size = 187184, upload-time = "2025-11-25T02:59:32.21Z" }, ] [[package]] name = "diskcache" version = "5.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916 } +sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916, upload-time = "2023-08-31T06:12:00.316Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550 }, + { url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550, upload-time = "2023-08-31T06:11:58.822Z" }, ] [[package]] name = "distro" version = "1.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722 } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277 }, + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, ] [[package]] name = "dnspython" version = "2.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b5/4a/263763cb2ba3816dd94b08ad3a33d5fdae34ecb856678773cc40a3605829/dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1", size = 345197 } +sdist = { url = "https://files.pythonhosted.org/packages/b5/4a/263763cb2ba3816dd94b08ad3a33d5fdae34ecb856678773cc40a3605829/dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1", size = 345197, upload-time = "2024-10-05T20:14:59.362Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/68/1b/e0a87d256e40e8c888847551b20a017a6b98139178505dc7ffb96f04e954/dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86", size = 313632 }, + { url = "https://files.pythonhosted.org/packages/68/1b/e0a87d256e40e8c888847551b20a017a6b98139178505dc7ffb96f04e954/dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86", size = 313632, upload-time = "2024-10-05T20:14:57.687Z" }, ] [[package]] name = "docstring-parser" version = "0.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442 } +sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442, upload-time = "2025-07-21T07:35:01.868Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896 }, + { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896, upload-time = "2025-07-21T07:35:00.684Z" }, ] [[package]] name = "docutils" version = "0.22" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e9/86/5b41c32ecedcfdb4c77b28b6cb14234f252075f8cdb254531727a35547dd/docutils-0.22.tar.gz", hash = "sha256:ba9d57750e92331ebe7c08a1bbf7a7f8143b86c476acd51528b042216a6aad0f", size = 2277984 } +sdist = { url = "https://files.pythonhosted.org/packages/e9/86/5b41c32ecedcfdb4c77b28b6cb14234f252075f8cdb254531727a35547dd/docutils-0.22.tar.gz", hash = "sha256:ba9d57750e92331ebe7c08a1bbf7a7f8143b86c476acd51528b042216a6aad0f", size = 2277984, upload-time = "2025-07-29T15:20:31.06Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/44/57/8db39bc5f98f042e0153b1de9fb88e1a409a33cda4dd7f723c2ed71e01f6/docutils-0.22-py3-none-any.whl", hash = "sha256:4ed966a0e96a0477d852f7af31bdcb3adc049fbb35ccba358c2ea8a03287615e", size = 630709 }, + { url = "https://files.pythonhosted.org/packages/44/57/8db39bc5f98f042e0153b1de9fb88e1a409a33cda4dd7f723c2ed71e01f6/docutils-0.22-py3-none-any.whl", hash = "sha256:4ed966a0e96a0477d852f7af31bdcb3adc049fbb35ccba358c2ea8a03287615e", size = 630709, upload-time = "2025-07-29T15:20:28.335Z" }, ] [[package]] @@ -359,9 +398,9 @@ dependencies = [ { name = "dnspython" }, { name = "idna" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238 } +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload-time = "2025-08-26T13:09:06.831Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604 }, + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload-time = "2025-08-26T13:09:05.858Z" }, ] [[package]] @@ -371,9 +410,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749 } +sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674 }, + { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674, upload-time = "2025-05-10T17:42:49.33Z" }, ] [[package]] @@ -385,9 +424,9 @@ dependencies = [ { name = "sortedcontainers" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/56/14/b47b8471303af7deed7080290c14cff27a831fa47b38f45643e6bf889cee/fakeredis-2.32.1.tar.gz", hash = "sha256:dd8246db159f0b66a1ced7800c9d5ef07769e3d2fde44b389a57f2ce2834e444", size = 171582 } +sdist = { url = "https://files.pythonhosted.org/packages/56/14/b47b8471303af7deed7080290c14cff27a831fa47b38f45643e6bf889cee/fakeredis-2.32.1.tar.gz", hash = "sha256:dd8246db159f0b66a1ced7800c9d5ef07769e3d2fde44b389a57f2ce2834e444", size = 171582, upload-time = "2025-11-06T01:40:57.836Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/d2/c28f6909864bfdb7411bb8f39fabedb5a50da1cbd7da5a1a3a46dfea2eab/fakeredis-2.32.1-py3-none-any.whl", hash = "sha256:e80c8886db2e47ba784f7dfe66aad6cd2eab76093c6bfda50041e5bc890d46cf", size = 118964 }, + { url = "https://files.pythonhosted.org/packages/c2/d2/c28f6909864bfdb7411bb8f39fabedb5a50da1cbd7da5a1a3a46dfea2eab/fakeredis-2.32.1-py3-none-any.whl", hash = "sha256:e80c8886db2e47ba784f7dfe66aad6cd2eab76093c6bfda50041e5bc890d46cf", size = 118964, upload-time = "2025-11-06T01:40:55.885Z" }, ] [package.optional-dependencies] @@ -404,9 +443,9 @@ dependencies = [ { name = "starlette" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/78/d7/6c8b3bfe33eeffa208183ec037fee0cce9f7f024089ab1c5d12ef04bd27c/fastapi-0.116.1.tar.gz", hash = "sha256:ed52cbf946abfd70c5a0dccb24673f0670deeb517a88b3544d03c2a6bf283143", size = 296485 } +sdist = { url = "https://files.pythonhosted.org/packages/78/d7/6c8b3bfe33eeffa208183ec037fee0cce9f7f024089ab1c5d12ef04bd27c/fastapi-0.116.1.tar.gz", hash = "sha256:ed52cbf946abfd70c5a0dccb24673f0670deeb517a88b3544d03c2a6bf283143", size = 296485, upload-time = "2025-07-11T16:22:32.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl", hash = "sha256:c46ac7c312df840f0c9e220f7964bada936781bc4e2e6eb71f1c4d7553786565", size = 95631 }, + { url = "https://files.pythonhosted.org/packages/e5/47/d63c60f59a59467fda0f93f46335c9d18526d7071f025cb5b89d5353ea42/fastapi-0.116.1-py3-none-any.whl", hash = "sha256:c46ac7c312df840f0c9e220f7964bada936781bc4e2e6eb71f1c4d7553786565", size = 95631, upload-time = "2025-07-11T16:22:30.485Z" }, ] [[package]] @@ -431,18 +470,18 @@ dependencies = [ { name = "uvicorn" }, { name = "websockets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9e/50/d38e4371bdc34e709f4731b1e882cb7bc50e51c1a224859d4cd381b3a79b/fastmcp-2.14.1.tar.gz", hash = "sha256:132725cbf77b68fa3c3d165eff0cfa47e40c1479457419e6a2cfda65bd84c8d6", size = 8263331 } +sdist = { url = "https://files.pythonhosted.org/packages/9e/50/d38e4371bdc34e709f4731b1e882cb7bc50e51c1a224859d4cd381b3a79b/fastmcp-2.14.1.tar.gz", hash = "sha256:132725cbf77b68fa3c3d165eff0cfa47e40c1479457419e6a2cfda65bd84c8d6", size = 8263331, upload-time = "2025-12-15T02:26:27.102Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/82/72401d09dc27c27fdf72ad6c2fe331e553e3c3646e01b5ff16473191033d/fastmcp-2.14.1-py3-none-any.whl", hash = "sha256:fb3e365cc1d52573ab89caeba9944dd4b056149097be169bce428e011f0a57e5", size = 412176 }, + { url = "https://files.pythonhosted.org/packages/1d/82/72401d09dc27c27fdf72ad6c2fe331e553e3c3646e01b5ff16473191033d/fastmcp-2.14.1-py3-none-any.whl", hash = "sha256:fb3e365cc1d52573ab89caeba9944dd4b056149097be169bce428e011f0a57e5", size = 412176, upload-time = "2025-12-15T02:26:25.356Z" }, ] [[package]] name = "h11" version = "0.16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250 } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] [[package]] @@ -453,9 +492,9 @@ dependencies = [ { name = "certifi" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484 } +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784 }, + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, ] [[package]] @@ -468,27 +507,27 @@ dependencies = [ { name = "httpcore" }, { name = "idna" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 } +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 }, + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, ] [[package]] name = "httpx-sse" version = "0.4.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6e/fa/66bd985dd0b7c109a3bcb89272ee0bfb7e2b4d06309ad7b38ff866734b2a/httpx_sse-0.4.1.tar.gz", hash = "sha256:8f44d34414bc7b21bf3602713005c5df4917884f76072479b21f68befa4ea26e", size = 12998 } +sdist = { url = "https://files.pythonhosted.org/packages/6e/fa/66bd985dd0b7c109a3bcb89272ee0bfb7e2b4d06309ad7b38ff866734b2a/httpx_sse-0.4.1.tar.gz", hash = "sha256:8f44d34414bc7b21bf3602713005c5df4917884f76072479b21f68befa4ea26e", size = 12998, upload-time = "2025-06-24T13:21:05.71Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/25/0a/6269e3473b09aed2dab8aa1a600c70f31f00ae1349bee30658f7e358a159/httpx_sse-0.4.1-py3-none-any.whl", hash = "sha256:cba42174344c3a5b06f255ce65b350880f962d99ead85e776f23c6618a377a37", size = 8054 }, + { url = "https://files.pythonhosted.org/packages/25/0a/6269e3473b09aed2dab8aa1a600c70f31f00ae1349bee30658f7e358a159/httpx_sse-0.4.1-py3-none-any.whl", hash = "sha256:cba42174344c3a5b06f255ce65b350880f962d99ead85e776f23c6618a377a37", size = 8054, upload-time = "2025-06-24T13:21:04.772Z" }, ] [[package]] name = "idna" version = "3.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, ] [[package]] @@ -498,9 +537,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "zipp" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641 } +sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656 }, + { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656, upload-time = "2025-04-27T15:29:00.214Z" }, ] [[package]] @@ -510,9 +549,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "more-itertools" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780 } +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload-time = "2024-03-31T07:27:36.643Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777 }, + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload-time = "2024-03-31T07:27:34.792Z" }, ] [[package]] @@ -522,9 +561,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "backports-tarfile", marker = "python_full_version < '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912 } +sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912, upload-time = "2024-08-20T03:39:27.358Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825 }, + { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825, upload-time = "2024-08-20T03:39:25.966Z" }, ] [[package]] @@ -534,90 +573,90 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "more-itertools" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294", size = 19755 } +sdist = { url = "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294", size = 19755, upload-time = "2025-08-18T20:05:09.91Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", size = 10408 }, + { url = "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", size = 10408, upload-time = "2025-08-18T20:05:08.69Z" }, ] [[package]] name = "jeepney" version = "0.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758 } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload-time = "2025-02-27T18:51:01.684Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010 }, + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload-time = "2025-02-27T18:51:00.104Z" }, ] [[package]] name = "jiter" version = "0.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/9d/ae7ddb4b8ab3fb1b51faf4deb36cb48a4fbbd7cb36bad6a5fca4741306f7/jiter-0.10.0.tar.gz", hash = "sha256:07a7142c38aacc85194391108dc91b5b57093c978a9932bd86a36862759d9500", size = 162759 } +sdist = { url = "https://files.pythonhosted.org/packages/ee/9d/ae7ddb4b8ab3fb1b51faf4deb36cb48a4fbbd7cb36bad6a5fca4741306f7/jiter-0.10.0.tar.gz", hash = "sha256:07a7142c38aacc85194391108dc91b5b57093c978a9932bd86a36862759d9500", size = 162759, upload-time = "2025-05-18T19:04:59.73Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/be/7e/4011b5c77bec97cb2b572f566220364e3e21b51c48c5bd9c4a9c26b41b67/jiter-0.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cd2fb72b02478f06a900a5782de2ef47e0396b3e1f7d5aba30daeb1fce66f303", size = 317215 }, - { url = "https://files.pythonhosted.org/packages/8a/4f/144c1b57c39692efc7ea7d8e247acf28e47d0912800b34d0ad815f6b2824/jiter-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:32bb468e3af278f095d3fa5b90314728a6916d89ba3d0ffb726dd9bf7367285e", size = 322814 }, - { url = "https://files.pythonhosted.org/packages/63/1f/db977336d332a9406c0b1f0b82be6f71f72526a806cbb2281baf201d38e3/jiter-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8b3e0068c26ddedc7abc6fac37da2d0af16b921e288a5a613f4b86f050354f", size = 345237 }, - { url = "https://files.pythonhosted.org/packages/d7/1c/aa30a4a775e8a672ad7f21532bdbfb269f0706b39c6ff14e1f86bdd9e5ff/jiter-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:286299b74cc49e25cd42eea19b72aa82c515d2f2ee12d11392c56d8701f52224", size = 370999 }, - { url = "https://files.pythonhosted.org/packages/35/df/f8257abc4207830cb18880781b5f5b716bad5b2a22fb4330cfd357407c5b/jiter-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ed5649ceeaeffc28d87fb012d25a4cd356dcd53eff5acff1f0466b831dda2a7", size = 491109 }, - { url = "https://files.pythonhosted.org/packages/06/76/9e1516fd7b4278aa13a2cc7f159e56befbea9aa65c71586305e7afa8b0b3/jiter-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2ab0051160cb758a70716448908ef14ad476c3774bd03ddce075f3c1f90a3d6", size = 388608 }, - { url = "https://files.pythonhosted.org/packages/6d/64/67750672b4354ca20ca18d3d1ccf2c62a072e8a2d452ac3cf8ced73571ef/jiter-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03997d2f37f6b67d2f5c475da4412be584e1cec273c1cfc03d642c46db43f8cf", size = 352454 }, - { url = "https://files.pythonhosted.org/packages/96/4d/5c4e36d48f169a54b53a305114be3efa2bbffd33b648cd1478a688f639c1/jiter-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c404a99352d839fed80d6afd6c1d66071f3bacaaa5c4268983fc10f769112e90", size = 391833 }, - { url = "https://files.pythonhosted.org/packages/0b/de/ce4a6166a78810bd83763d2fa13f85f73cbd3743a325469a4a9289af6dae/jiter-0.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66e989410b6666d3ddb27a74c7e50d0829704ede652fd4c858e91f8d64b403d0", size = 523646 }, - { url = "https://files.pythonhosted.org/packages/a2/a6/3bc9acce53466972964cf4ad85efecb94f9244539ab6da1107f7aed82934/jiter-0.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b532d3af9ef4f6374609a3bcb5e05a1951d3bf6190dc6b176fdb277c9bbf15ee", size = 514735 }, - { url = "https://files.pythonhosted.org/packages/b4/d8/243c2ab8426a2a4dea85ba2a2ba43df379ccece2145320dfd4799b9633c5/jiter-0.10.0-cp310-cp310-win32.whl", hash = "sha256:da9be20b333970e28b72edc4dff63d4fec3398e05770fb3205f7fb460eb48dd4", size = 210747 }, - { url = "https://files.pythonhosted.org/packages/37/7a/8021bd615ef7788b98fc76ff533eaac846322c170e93cbffa01979197a45/jiter-0.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:f59e533afed0c5b0ac3eba20d2548c4a550336d8282ee69eb07b37ea526ee4e5", size = 207484 }, - { url = "https://files.pythonhosted.org/packages/1b/dd/6cefc6bd68b1c3c979cecfa7029ab582b57690a31cd2f346c4d0ce7951b6/jiter-0.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3bebe0c558e19902c96e99217e0b8e8b17d570906e72ed8a87170bc290b1e978", size = 317473 }, - { url = "https://files.pythonhosted.org/packages/be/cf/fc33f5159ce132be1d8dd57251a1ec7a631c7df4bd11e1cd198308c6ae32/jiter-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:558cc7e44fd8e507a236bee6a02fa17199ba752874400a0ca6cd6e2196cdb7dc", size = 321971 }, - { url = "https://files.pythonhosted.org/packages/68/a4/da3f150cf1d51f6c472616fb7650429c7ce053e0c962b41b68557fdf6379/jiter-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d613e4b379a07d7c8453c5712ce7014e86c6ac93d990a0b8e7377e18505e98d", size = 345574 }, - { url = "https://files.pythonhosted.org/packages/84/34/6e8d412e60ff06b186040e77da5f83bc158e9735759fcae65b37d681f28b/jiter-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f62cf8ba0618eda841b9bf61797f21c5ebd15a7a1e19daab76e4e4b498d515b2", size = 371028 }, - { url = "https://files.pythonhosted.org/packages/fb/d9/9ee86173aae4576c35a2f50ae930d2ccb4c4c236f6cb9353267aa1d626b7/jiter-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:919d139cdfa8ae8945112398511cb7fca58a77382617d279556b344867a37e61", size = 491083 }, - { url = "https://files.pythonhosted.org/packages/d9/2c/f955de55e74771493ac9e188b0f731524c6a995dffdcb8c255b89c6fb74b/jiter-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13ddbc6ae311175a3b03bd8994881bc4635c923754932918e18da841632349db", size = 388821 }, - { url = "https://files.pythonhosted.org/packages/81/5a/0e73541b6edd3f4aada586c24e50626c7815c561a7ba337d6a7eb0a915b4/jiter-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c440ea003ad10927a30521a9062ce10b5479592e8a70da27f21eeb457b4a9c5", size = 352174 }, - { url = "https://files.pythonhosted.org/packages/1c/c0/61eeec33b8c75b31cae42be14d44f9e6fe3ac15a4e58010256ac3abf3638/jiter-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dc347c87944983481e138dea467c0551080c86b9d21de6ea9306efb12ca8f606", size = 391869 }, - { url = "https://files.pythonhosted.org/packages/41/22/5beb5ee4ad4ef7d86f5ea5b4509f680a20706c4a7659e74344777efb7739/jiter-0.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:13252b58c1f4d8c5b63ab103c03d909e8e1e7842d302473f482915d95fefd605", size = 523741 }, - { url = "https://files.pythonhosted.org/packages/ea/10/768e8818538e5817c637b0df52e54366ec4cebc3346108a4457ea7a98f32/jiter-0.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7d1bbf3c465de4a24ab12fb7766a0003f6f9bce48b8b6a886158c4d569452dc5", size = 514527 }, - { url = "https://files.pythonhosted.org/packages/73/6d/29b7c2dc76ce93cbedabfd842fc9096d01a0550c52692dfc33d3cc889815/jiter-0.10.0-cp311-cp311-win32.whl", hash = "sha256:db16e4848b7e826edca4ccdd5b145939758dadf0dc06e7007ad0e9cfb5928ae7", size = 210765 }, - { url = "https://files.pythonhosted.org/packages/c2/c9/d394706deb4c660137caf13e33d05a031d734eb99c051142e039d8ceb794/jiter-0.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c9c1d5f10e18909e993f9641f12fe1c77b3e9b533ee94ffa970acc14ded3812", size = 209234 }, - { url = "https://files.pythonhosted.org/packages/6d/b5/348b3313c58f5fbfb2194eb4d07e46a35748ba6e5b3b3046143f3040bafa/jiter-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1e274728e4a5345a6dde2d343c8da018b9d4bd4350f5a472fa91f66fda44911b", size = 312262 }, - { url = "https://files.pythonhosted.org/packages/9c/4a/6a2397096162b21645162825f058d1709a02965606e537e3304b02742e9b/jiter-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7202ae396446c988cb2a5feb33a543ab2165b786ac97f53b59aafb803fef0744", size = 320124 }, - { url = "https://files.pythonhosted.org/packages/2a/85/1ce02cade7516b726dd88f59a4ee46914bf79d1676d1228ef2002ed2f1c9/jiter-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23ba7722d6748b6920ed02a8f1726fb4b33e0fd2f3f621816a8b486c66410ab2", size = 345330 }, - { url = "https://files.pythonhosted.org/packages/75/d0/bb6b4f209a77190ce10ea8d7e50bf3725fc16d3372d0a9f11985a2b23eff/jiter-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:371eab43c0a288537d30e1f0b193bc4eca90439fc08a022dd83e5e07500ed026", size = 369670 }, - { url = "https://files.pythonhosted.org/packages/a0/f5/a61787da9b8847a601e6827fbc42ecb12be2c925ced3252c8ffcb56afcaf/jiter-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c675736059020365cebc845a820214765162728b51ab1e03a1b7b3abb70f74c", size = 489057 }, - { url = "https://files.pythonhosted.org/packages/12/e4/6f906272810a7b21406c760a53aadbe52e99ee070fc5c0cb191e316de30b/jiter-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c5867d40ab716e4684858e4887489685968a47e3ba222e44cde6e4a2154f959", size = 389372 }, - { url = "https://files.pythonhosted.org/packages/e2/ba/77013b0b8ba904bf3762f11e0129b8928bff7f978a81838dfcc958ad5728/jiter-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395bb9a26111b60141757d874d27fdea01b17e8fac958b91c20128ba8f4acc8a", size = 352038 }, - { url = "https://files.pythonhosted.org/packages/67/27/c62568e3ccb03368dbcc44a1ef3a423cb86778a4389e995125d3d1aaa0a4/jiter-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6842184aed5cdb07e0c7e20e5bdcfafe33515ee1741a6835353bb45fe5d1bd95", size = 391538 }, - { url = "https://files.pythonhosted.org/packages/c0/72/0d6b7e31fc17a8fdce76164884edef0698ba556b8eb0af9546ae1a06b91d/jiter-0.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:62755d1bcea9876770d4df713d82606c8c1a3dca88ff39046b85a048566d56ea", size = 523557 }, - { url = "https://files.pythonhosted.org/packages/2f/09/bc1661fbbcbeb6244bd2904ff3a06f340aa77a2b94e5a7373fd165960ea3/jiter-0.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533efbce2cacec78d5ba73a41756beff8431dfa1694b6346ce7af3a12c42202b", size = 514202 }, - { url = "https://files.pythonhosted.org/packages/1b/84/5a5d5400e9d4d54b8004c9673bbe4403928a00d28529ff35b19e9d176b19/jiter-0.10.0-cp312-cp312-win32.whl", hash = "sha256:8be921f0cadd245e981b964dfbcd6fd4bc4e254cdc069490416dd7a2632ecc01", size = 211781 }, - { url = "https://files.pythonhosted.org/packages/9b/52/7ec47455e26f2d6e5f2ea4951a0652c06e5b995c291f723973ae9e724a65/jiter-0.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:a7c7d785ae9dda68c2678532a5a1581347e9c15362ae9f6e68f3fdbfb64f2e49", size = 206176 }, - { url = "https://files.pythonhosted.org/packages/2e/b0/279597e7a270e8d22623fea6c5d4eeac328e7d95c236ed51a2b884c54f70/jiter-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0588107ec8e11b6f5ef0e0d656fb2803ac6cf94a96b2b9fc675c0e3ab5e8644", size = 311617 }, - { url = "https://files.pythonhosted.org/packages/91/e3/0916334936f356d605f54cc164af4060e3e7094364add445a3bc79335d46/jiter-0.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cafc4628b616dc32530c20ee53d71589816cf385dd9449633e910d596b1f5c8a", size = 318947 }, - { url = "https://files.pythonhosted.org/packages/6a/8e/fd94e8c02d0e94539b7d669a7ebbd2776e51f329bb2c84d4385e8063a2ad/jiter-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520ef6d981172693786a49ff5b09eda72a42e539f14788124a07530f785c3ad6", size = 344618 }, - { url = "https://files.pythonhosted.org/packages/6f/b0/f9f0a2ec42c6e9c2e61c327824687f1e2415b767e1089c1d9135f43816bd/jiter-0.10.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:554dedfd05937f8fc45d17ebdf298fe7e0c77458232bcb73d9fbbf4c6455f5b3", size = 368829 }, - { url = "https://files.pythonhosted.org/packages/e8/57/5bbcd5331910595ad53b9fd0c610392ac68692176f05ae48d6ce5c852967/jiter-0.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc299da7789deacf95f64052d97f75c16d4fc8c4c214a22bf8d859a4288a1c2", size = 491034 }, - { url = "https://files.pythonhosted.org/packages/9b/be/c393df00e6e6e9e623a73551774449f2f23b6ec6a502a3297aeeece2c65a/jiter-0.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5161e201172de298a8a1baad95eb85db4fb90e902353b1f6a41d64ea64644e25", size = 388529 }, - { url = "https://files.pythonhosted.org/packages/42/3e/df2235c54d365434c7f150b986a6e35f41ebdc2f95acea3036d99613025d/jiter-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2227db6ba93cb3e2bf67c87e594adde0609f146344e8207e8730364db27041", size = 350671 }, - { url = "https://files.pythonhosted.org/packages/c6/77/71b0b24cbcc28f55ab4dbfe029f9a5b73aeadaba677843fc6dc9ed2b1d0a/jiter-0.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15acb267ea5e2c64515574b06a8bf393fbfee6a50eb1673614aa45f4613c0cca", size = 390864 }, - { url = "https://files.pythonhosted.org/packages/6a/d3/ef774b6969b9b6178e1d1e7a89a3bd37d241f3d3ec5f8deb37bbd203714a/jiter-0.10.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:901b92f2e2947dc6dfcb52fd624453862e16665ea909a08398dde19c0731b7f4", size = 522989 }, - { url = "https://files.pythonhosted.org/packages/0c/41/9becdb1d8dd5d854142f45a9d71949ed7e87a8e312b0bede2de849388cb9/jiter-0.10.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d0cb9a125d5a3ec971a094a845eadde2db0de85b33c9f13eb94a0c63d463879e", size = 513495 }, - { url = "https://files.pythonhosted.org/packages/9c/36/3468e5a18238bdedae7c4d19461265b5e9b8e288d3f86cd89d00cbb48686/jiter-0.10.0-cp313-cp313-win32.whl", hash = "sha256:48a403277ad1ee208fb930bdf91745e4d2d6e47253eedc96e2559d1e6527006d", size = 211289 }, - { url = "https://files.pythonhosted.org/packages/7e/07/1c96b623128bcb913706e294adb5f768fb7baf8db5e1338ce7b4ee8c78ef/jiter-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:75f9eb72ecb640619c29bf714e78c9c46c9c4eaafd644bf78577ede459f330d4", size = 205074 }, - { url = "https://files.pythonhosted.org/packages/54/46/caa2c1342655f57d8f0f2519774c6d67132205909c65e9aa8255e1d7b4f4/jiter-0.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:28ed2a4c05a1f32ef0e1d24c2611330219fed727dae01789f4a335617634b1ca", size = 318225 }, - { url = "https://files.pythonhosted.org/packages/43/84/c7d44c75767e18946219ba2d703a5a32ab37b0bc21886a97bc6062e4da42/jiter-0.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a4c418b1ec86a195f1ca69da8b23e8926c752b685af665ce30777233dfe070", size = 350235 }, - { url = "https://files.pythonhosted.org/packages/01/16/f5a0135ccd968b480daad0e6ab34b0c7c5ba3bc447e5088152696140dcb3/jiter-0.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d7bfed2fe1fe0e4dda6ef682cee888ba444b21e7a6553e03252e4feb6cf0adca", size = 207278 }, - { url = "https://files.pythonhosted.org/packages/1c/9b/1d646da42c3de6c2188fdaa15bce8ecb22b635904fc68be025e21249ba44/jiter-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:5e9251a5e83fab8d87799d3e1a46cb4b7f2919b895c6f4483629ed2446f66522", size = 310866 }, - { url = "https://files.pythonhosted.org/packages/ad/0e/26538b158e8a7c7987e94e7aeb2999e2e82b1f9d2e1f6e9874ddf71ebda0/jiter-0.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:023aa0204126fe5b87ccbcd75c8a0d0261b9abdbbf46d55e7ae9f8e22424eeb8", size = 318772 }, - { url = "https://files.pythonhosted.org/packages/7b/fb/d302893151caa1c2636d6574d213e4b34e31fd077af6050a9c5cbb42f6fb/jiter-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c189c4f1779c05f75fc17c0c1267594ed918996a231593a21a5ca5438445216", size = 344534 }, - { url = "https://files.pythonhosted.org/packages/01/d8/5780b64a149d74e347c5128d82176eb1e3241b1391ac07935693466d6219/jiter-0.10.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15720084d90d1098ca0229352607cd68256c76991f6b374af96f36920eae13c4", size = 369087 }, - { url = "https://files.pythonhosted.org/packages/e8/5b/f235a1437445160e777544f3ade57544daf96ba7e96c1a5b24a6f7ac7004/jiter-0.10.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f2fb68e5f1cfee30e2b2a09549a00683e0fde4c6a2ab88c94072fc33cb7426", size = 490694 }, - { url = "https://files.pythonhosted.org/packages/85/a9/9c3d4617caa2ff89cf61b41e83820c27ebb3f7b5fae8a72901e8cd6ff9be/jiter-0.10.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce541693355fc6da424c08b7edf39a2895f58d6ea17d92cc2b168d20907dee12", size = 388992 }, - { url = "https://files.pythonhosted.org/packages/68/b1/344fd14049ba5c94526540af7eb661871f9c54d5f5601ff41a959b9a0bbd/jiter-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31c50c40272e189d50006ad5c73883caabb73d4e9748a688b216e85a9a9ca3b9", size = 351723 }, - { url = "https://files.pythonhosted.org/packages/41/89/4c0e345041186f82a31aee7b9d4219a910df672b9fef26f129f0cda07a29/jiter-0.10.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa3402a2ff9815960e0372a47b75c76979d74402448509ccd49a275fa983ef8a", size = 392215 }, - { url = "https://files.pythonhosted.org/packages/55/58/ee607863e18d3f895feb802154a2177d7e823a7103f000df182e0f718b38/jiter-0.10.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:1956f934dca32d7bb647ea21d06d93ca40868b505c228556d3373cbd255ce853", size = 522762 }, - { url = "https://files.pythonhosted.org/packages/15/d0/9123fb41825490d16929e73c212de9a42913d68324a8ce3c8476cae7ac9d/jiter-0.10.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:fcedb049bdfc555e261d6f65a6abe1d5ad68825b7202ccb9692636c70fcced86", size = 513427 }, - { url = "https://files.pythonhosted.org/packages/d8/b3/2bd02071c5a2430d0b70403a34411fc519c2f227da7b03da9ba6a956f931/jiter-0.10.0-cp314-cp314-win32.whl", hash = "sha256:ac509f7eccca54b2a29daeb516fb95b6f0bd0d0d8084efaf8ed5dfc7b9f0b357", size = 210127 }, - { url = "https://files.pythonhosted.org/packages/03/0c/5fe86614ea050c3ecd728ab4035534387cd41e7c1855ef6c031f1ca93e3f/jiter-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5ed975b83a2b8639356151cef5c0d597c68376fc4922b45d0eb384ac058cfa00", size = 318527 }, - { url = "https://files.pythonhosted.org/packages/b3/4a/4175a563579e884192ba6e81725fc0448b042024419be8d83aa8a80a3f44/jiter-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa96f2abba33dc77f79b4cf791840230375f9534e5fac927ccceb58c5e604a5", size = 354213 }, + { url = "https://files.pythonhosted.org/packages/be/7e/4011b5c77bec97cb2b572f566220364e3e21b51c48c5bd9c4a9c26b41b67/jiter-0.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cd2fb72b02478f06a900a5782de2ef47e0396b3e1f7d5aba30daeb1fce66f303", size = 317215, upload-time = "2025-05-18T19:03:04.303Z" }, + { url = "https://files.pythonhosted.org/packages/8a/4f/144c1b57c39692efc7ea7d8e247acf28e47d0912800b34d0ad815f6b2824/jiter-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:32bb468e3af278f095d3fa5b90314728a6916d89ba3d0ffb726dd9bf7367285e", size = 322814, upload-time = "2025-05-18T19:03:06.433Z" }, + { url = "https://files.pythonhosted.org/packages/63/1f/db977336d332a9406c0b1f0b82be6f71f72526a806cbb2281baf201d38e3/jiter-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8b3e0068c26ddedc7abc6fac37da2d0af16b921e288a5a613f4b86f050354f", size = 345237, upload-time = "2025-05-18T19:03:07.833Z" }, + { url = "https://files.pythonhosted.org/packages/d7/1c/aa30a4a775e8a672ad7f21532bdbfb269f0706b39c6ff14e1f86bdd9e5ff/jiter-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:286299b74cc49e25cd42eea19b72aa82c515d2f2ee12d11392c56d8701f52224", size = 370999, upload-time = "2025-05-18T19:03:09.338Z" }, + { url = "https://files.pythonhosted.org/packages/35/df/f8257abc4207830cb18880781b5f5b716bad5b2a22fb4330cfd357407c5b/jiter-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ed5649ceeaeffc28d87fb012d25a4cd356dcd53eff5acff1f0466b831dda2a7", size = 491109, upload-time = "2025-05-18T19:03:11.13Z" }, + { url = "https://files.pythonhosted.org/packages/06/76/9e1516fd7b4278aa13a2cc7f159e56befbea9aa65c71586305e7afa8b0b3/jiter-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2ab0051160cb758a70716448908ef14ad476c3774bd03ddce075f3c1f90a3d6", size = 388608, upload-time = "2025-05-18T19:03:12.911Z" }, + { url = "https://files.pythonhosted.org/packages/6d/64/67750672b4354ca20ca18d3d1ccf2c62a072e8a2d452ac3cf8ced73571ef/jiter-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03997d2f37f6b67d2f5c475da4412be584e1cec273c1cfc03d642c46db43f8cf", size = 352454, upload-time = "2025-05-18T19:03:14.741Z" }, + { url = "https://files.pythonhosted.org/packages/96/4d/5c4e36d48f169a54b53a305114be3efa2bbffd33b648cd1478a688f639c1/jiter-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c404a99352d839fed80d6afd6c1d66071f3bacaaa5c4268983fc10f769112e90", size = 391833, upload-time = "2025-05-18T19:03:16.426Z" }, + { url = "https://files.pythonhosted.org/packages/0b/de/ce4a6166a78810bd83763d2fa13f85f73cbd3743a325469a4a9289af6dae/jiter-0.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66e989410b6666d3ddb27a74c7e50d0829704ede652fd4c858e91f8d64b403d0", size = 523646, upload-time = "2025-05-18T19:03:17.704Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a6/3bc9acce53466972964cf4ad85efecb94f9244539ab6da1107f7aed82934/jiter-0.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b532d3af9ef4f6374609a3bcb5e05a1951d3bf6190dc6b176fdb277c9bbf15ee", size = 514735, upload-time = "2025-05-18T19:03:19.44Z" }, + { url = "https://files.pythonhosted.org/packages/b4/d8/243c2ab8426a2a4dea85ba2a2ba43df379ccece2145320dfd4799b9633c5/jiter-0.10.0-cp310-cp310-win32.whl", hash = "sha256:da9be20b333970e28b72edc4dff63d4fec3398e05770fb3205f7fb460eb48dd4", size = 210747, upload-time = "2025-05-18T19:03:21.184Z" }, + { url = "https://files.pythonhosted.org/packages/37/7a/8021bd615ef7788b98fc76ff533eaac846322c170e93cbffa01979197a45/jiter-0.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:f59e533afed0c5b0ac3eba20d2548c4a550336d8282ee69eb07b37ea526ee4e5", size = 207484, upload-time = "2025-05-18T19:03:23.046Z" }, + { url = "https://files.pythonhosted.org/packages/1b/dd/6cefc6bd68b1c3c979cecfa7029ab582b57690a31cd2f346c4d0ce7951b6/jiter-0.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3bebe0c558e19902c96e99217e0b8e8b17d570906e72ed8a87170bc290b1e978", size = 317473, upload-time = "2025-05-18T19:03:25.942Z" }, + { url = "https://files.pythonhosted.org/packages/be/cf/fc33f5159ce132be1d8dd57251a1ec7a631c7df4bd11e1cd198308c6ae32/jiter-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:558cc7e44fd8e507a236bee6a02fa17199ba752874400a0ca6cd6e2196cdb7dc", size = 321971, upload-time = "2025-05-18T19:03:27.255Z" }, + { url = "https://files.pythonhosted.org/packages/68/a4/da3f150cf1d51f6c472616fb7650429c7ce053e0c962b41b68557fdf6379/jiter-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d613e4b379a07d7c8453c5712ce7014e86c6ac93d990a0b8e7377e18505e98d", size = 345574, upload-time = "2025-05-18T19:03:28.63Z" }, + { url = "https://files.pythonhosted.org/packages/84/34/6e8d412e60ff06b186040e77da5f83bc158e9735759fcae65b37d681f28b/jiter-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f62cf8ba0618eda841b9bf61797f21c5ebd15a7a1e19daab76e4e4b498d515b2", size = 371028, upload-time = "2025-05-18T19:03:30.292Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d9/9ee86173aae4576c35a2f50ae930d2ccb4c4c236f6cb9353267aa1d626b7/jiter-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:919d139cdfa8ae8945112398511cb7fca58a77382617d279556b344867a37e61", size = 491083, upload-time = "2025-05-18T19:03:31.654Z" }, + { url = "https://files.pythonhosted.org/packages/d9/2c/f955de55e74771493ac9e188b0f731524c6a995dffdcb8c255b89c6fb74b/jiter-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13ddbc6ae311175a3b03bd8994881bc4635c923754932918e18da841632349db", size = 388821, upload-time = "2025-05-18T19:03:33.184Z" }, + { url = "https://files.pythonhosted.org/packages/81/5a/0e73541b6edd3f4aada586c24e50626c7815c561a7ba337d6a7eb0a915b4/jiter-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c440ea003ad10927a30521a9062ce10b5479592e8a70da27f21eeb457b4a9c5", size = 352174, upload-time = "2025-05-18T19:03:34.965Z" }, + { url = "https://files.pythonhosted.org/packages/1c/c0/61eeec33b8c75b31cae42be14d44f9e6fe3ac15a4e58010256ac3abf3638/jiter-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dc347c87944983481e138dea467c0551080c86b9d21de6ea9306efb12ca8f606", size = 391869, upload-time = "2025-05-18T19:03:36.436Z" }, + { url = "https://files.pythonhosted.org/packages/41/22/5beb5ee4ad4ef7d86f5ea5b4509f680a20706c4a7659e74344777efb7739/jiter-0.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:13252b58c1f4d8c5b63ab103c03d909e8e1e7842d302473f482915d95fefd605", size = 523741, upload-time = "2025-05-18T19:03:38.168Z" }, + { url = "https://files.pythonhosted.org/packages/ea/10/768e8818538e5817c637b0df52e54366ec4cebc3346108a4457ea7a98f32/jiter-0.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7d1bbf3c465de4a24ab12fb7766a0003f6f9bce48b8b6a886158c4d569452dc5", size = 514527, upload-time = "2025-05-18T19:03:39.577Z" }, + { url = "https://files.pythonhosted.org/packages/73/6d/29b7c2dc76ce93cbedabfd842fc9096d01a0550c52692dfc33d3cc889815/jiter-0.10.0-cp311-cp311-win32.whl", hash = "sha256:db16e4848b7e826edca4ccdd5b145939758dadf0dc06e7007ad0e9cfb5928ae7", size = 210765, upload-time = "2025-05-18T19:03:41.271Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c9/d394706deb4c660137caf13e33d05a031d734eb99c051142e039d8ceb794/jiter-0.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c9c1d5f10e18909e993f9641f12fe1c77b3e9b533ee94ffa970acc14ded3812", size = 209234, upload-time = "2025-05-18T19:03:42.918Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b5/348b3313c58f5fbfb2194eb4d07e46a35748ba6e5b3b3046143f3040bafa/jiter-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1e274728e4a5345a6dde2d343c8da018b9d4bd4350f5a472fa91f66fda44911b", size = 312262, upload-time = "2025-05-18T19:03:44.637Z" }, + { url = "https://files.pythonhosted.org/packages/9c/4a/6a2397096162b21645162825f058d1709a02965606e537e3304b02742e9b/jiter-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7202ae396446c988cb2a5feb33a543ab2165b786ac97f53b59aafb803fef0744", size = 320124, upload-time = "2025-05-18T19:03:46.341Z" }, + { url = "https://files.pythonhosted.org/packages/2a/85/1ce02cade7516b726dd88f59a4ee46914bf79d1676d1228ef2002ed2f1c9/jiter-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23ba7722d6748b6920ed02a8f1726fb4b33e0fd2f3f621816a8b486c66410ab2", size = 345330, upload-time = "2025-05-18T19:03:47.596Z" }, + { url = "https://files.pythonhosted.org/packages/75/d0/bb6b4f209a77190ce10ea8d7e50bf3725fc16d3372d0a9f11985a2b23eff/jiter-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:371eab43c0a288537d30e1f0b193bc4eca90439fc08a022dd83e5e07500ed026", size = 369670, upload-time = "2025-05-18T19:03:49.334Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f5/a61787da9b8847a601e6827fbc42ecb12be2c925ced3252c8ffcb56afcaf/jiter-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c675736059020365cebc845a820214765162728b51ab1e03a1b7b3abb70f74c", size = 489057, upload-time = "2025-05-18T19:03:50.66Z" }, + { url = "https://files.pythonhosted.org/packages/12/e4/6f906272810a7b21406c760a53aadbe52e99ee070fc5c0cb191e316de30b/jiter-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c5867d40ab716e4684858e4887489685968a47e3ba222e44cde6e4a2154f959", size = 389372, upload-time = "2025-05-18T19:03:51.98Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ba/77013b0b8ba904bf3762f11e0129b8928bff7f978a81838dfcc958ad5728/jiter-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395bb9a26111b60141757d874d27fdea01b17e8fac958b91c20128ba8f4acc8a", size = 352038, upload-time = "2025-05-18T19:03:53.703Z" }, + { url = "https://files.pythonhosted.org/packages/67/27/c62568e3ccb03368dbcc44a1ef3a423cb86778a4389e995125d3d1aaa0a4/jiter-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6842184aed5cdb07e0c7e20e5bdcfafe33515ee1741a6835353bb45fe5d1bd95", size = 391538, upload-time = "2025-05-18T19:03:55.046Z" }, + { url = "https://files.pythonhosted.org/packages/c0/72/0d6b7e31fc17a8fdce76164884edef0698ba556b8eb0af9546ae1a06b91d/jiter-0.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:62755d1bcea9876770d4df713d82606c8c1a3dca88ff39046b85a048566d56ea", size = 523557, upload-time = "2025-05-18T19:03:56.386Z" }, + { url = "https://files.pythonhosted.org/packages/2f/09/bc1661fbbcbeb6244bd2904ff3a06f340aa77a2b94e5a7373fd165960ea3/jiter-0.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533efbce2cacec78d5ba73a41756beff8431dfa1694b6346ce7af3a12c42202b", size = 514202, upload-time = "2025-05-18T19:03:57.675Z" }, + { url = "https://files.pythonhosted.org/packages/1b/84/5a5d5400e9d4d54b8004c9673bbe4403928a00d28529ff35b19e9d176b19/jiter-0.10.0-cp312-cp312-win32.whl", hash = "sha256:8be921f0cadd245e981b964dfbcd6fd4bc4e254cdc069490416dd7a2632ecc01", size = 211781, upload-time = "2025-05-18T19:03:59.025Z" }, + { url = "https://files.pythonhosted.org/packages/9b/52/7ec47455e26f2d6e5f2ea4951a0652c06e5b995c291f723973ae9e724a65/jiter-0.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:a7c7d785ae9dda68c2678532a5a1581347e9c15362ae9f6e68f3fdbfb64f2e49", size = 206176, upload-time = "2025-05-18T19:04:00.305Z" }, + { url = "https://files.pythonhosted.org/packages/2e/b0/279597e7a270e8d22623fea6c5d4eeac328e7d95c236ed51a2b884c54f70/jiter-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0588107ec8e11b6f5ef0e0d656fb2803ac6cf94a96b2b9fc675c0e3ab5e8644", size = 311617, upload-time = "2025-05-18T19:04:02.078Z" }, + { url = "https://files.pythonhosted.org/packages/91/e3/0916334936f356d605f54cc164af4060e3e7094364add445a3bc79335d46/jiter-0.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cafc4628b616dc32530c20ee53d71589816cf385dd9449633e910d596b1f5c8a", size = 318947, upload-time = "2025-05-18T19:04:03.347Z" }, + { url = "https://files.pythonhosted.org/packages/6a/8e/fd94e8c02d0e94539b7d669a7ebbd2776e51f329bb2c84d4385e8063a2ad/jiter-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520ef6d981172693786a49ff5b09eda72a42e539f14788124a07530f785c3ad6", size = 344618, upload-time = "2025-05-18T19:04:04.709Z" }, + { url = "https://files.pythonhosted.org/packages/6f/b0/f9f0a2ec42c6e9c2e61c327824687f1e2415b767e1089c1d9135f43816bd/jiter-0.10.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:554dedfd05937f8fc45d17ebdf298fe7e0c77458232bcb73d9fbbf4c6455f5b3", size = 368829, upload-time = "2025-05-18T19:04:06.912Z" }, + { url = "https://files.pythonhosted.org/packages/e8/57/5bbcd5331910595ad53b9fd0c610392ac68692176f05ae48d6ce5c852967/jiter-0.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc299da7789deacf95f64052d97f75c16d4fc8c4c214a22bf8d859a4288a1c2", size = 491034, upload-time = "2025-05-18T19:04:08.222Z" }, + { url = "https://files.pythonhosted.org/packages/9b/be/c393df00e6e6e9e623a73551774449f2f23b6ec6a502a3297aeeece2c65a/jiter-0.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5161e201172de298a8a1baad95eb85db4fb90e902353b1f6a41d64ea64644e25", size = 388529, upload-time = "2025-05-18T19:04:09.566Z" }, + { url = "https://files.pythonhosted.org/packages/42/3e/df2235c54d365434c7f150b986a6e35f41ebdc2f95acea3036d99613025d/jiter-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2227db6ba93cb3e2bf67c87e594adde0609f146344e8207e8730364db27041", size = 350671, upload-time = "2025-05-18T19:04:10.98Z" }, + { url = "https://files.pythonhosted.org/packages/c6/77/71b0b24cbcc28f55ab4dbfe029f9a5b73aeadaba677843fc6dc9ed2b1d0a/jiter-0.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15acb267ea5e2c64515574b06a8bf393fbfee6a50eb1673614aa45f4613c0cca", size = 390864, upload-time = "2025-05-18T19:04:12.722Z" }, + { url = "https://files.pythonhosted.org/packages/6a/d3/ef774b6969b9b6178e1d1e7a89a3bd37d241f3d3ec5f8deb37bbd203714a/jiter-0.10.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:901b92f2e2947dc6dfcb52fd624453862e16665ea909a08398dde19c0731b7f4", size = 522989, upload-time = "2025-05-18T19:04:14.261Z" }, + { url = "https://files.pythonhosted.org/packages/0c/41/9becdb1d8dd5d854142f45a9d71949ed7e87a8e312b0bede2de849388cb9/jiter-0.10.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d0cb9a125d5a3ec971a094a845eadde2db0de85b33c9f13eb94a0c63d463879e", size = 513495, upload-time = "2025-05-18T19:04:15.603Z" }, + { url = "https://files.pythonhosted.org/packages/9c/36/3468e5a18238bdedae7c4d19461265b5e9b8e288d3f86cd89d00cbb48686/jiter-0.10.0-cp313-cp313-win32.whl", hash = "sha256:48a403277ad1ee208fb930bdf91745e4d2d6e47253eedc96e2559d1e6527006d", size = 211289, upload-time = "2025-05-18T19:04:17.541Z" }, + { url = "https://files.pythonhosted.org/packages/7e/07/1c96b623128bcb913706e294adb5f768fb7baf8db5e1338ce7b4ee8c78ef/jiter-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:75f9eb72ecb640619c29bf714e78c9c46c9c4eaafd644bf78577ede459f330d4", size = 205074, upload-time = "2025-05-18T19:04:19.21Z" }, + { url = "https://files.pythonhosted.org/packages/54/46/caa2c1342655f57d8f0f2519774c6d67132205909c65e9aa8255e1d7b4f4/jiter-0.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:28ed2a4c05a1f32ef0e1d24c2611330219fed727dae01789f4a335617634b1ca", size = 318225, upload-time = "2025-05-18T19:04:20.583Z" }, + { url = "https://files.pythonhosted.org/packages/43/84/c7d44c75767e18946219ba2d703a5a32ab37b0bc21886a97bc6062e4da42/jiter-0.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a4c418b1ec86a195f1ca69da8b23e8926c752b685af665ce30777233dfe070", size = 350235, upload-time = "2025-05-18T19:04:22.363Z" }, + { url = "https://files.pythonhosted.org/packages/01/16/f5a0135ccd968b480daad0e6ab34b0c7c5ba3bc447e5088152696140dcb3/jiter-0.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d7bfed2fe1fe0e4dda6ef682cee888ba444b21e7a6553e03252e4feb6cf0adca", size = 207278, upload-time = "2025-05-18T19:04:23.627Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9b/1d646da42c3de6c2188fdaa15bce8ecb22b635904fc68be025e21249ba44/jiter-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:5e9251a5e83fab8d87799d3e1a46cb4b7f2919b895c6f4483629ed2446f66522", size = 310866, upload-time = "2025-05-18T19:04:24.891Z" }, + { url = "https://files.pythonhosted.org/packages/ad/0e/26538b158e8a7c7987e94e7aeb2999e2e82b1f9d2e1f6e9874ddf71ebda0/jiter-0.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:023aa0204126fe5b87ccbcd75c8a0d0261b9abdbbf46d55e7ae9f8e22424eeb8", size = 318772, upload-time = "2025-05-18T19:04:26.161Z" }, + { url = "https://files.pythonhosted.org/packages/7b/fb/d302893151caa1c2636d6574d213e4b34e31fd077af6050a9c5cbb42f6fb/jiter-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c189c4f1779c05f75fc17c0c1267594ed918996a231593a21a5ca5438445216", size = 344534, upload-time = "2025-05-18T19:04:27.495Z" }, + { url = "https://files.pythonhosted.org/packages/01/d8/5780b64a149d74e347c5128d82176eb1e3241b1391ac07935693466d6219/jiter-0.10.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15720084d90d1098ca0229352607cd68256c76991f6b374af96f36920eae13c4", size = 369087, upload-time = "2025-05-18T19:04:28.896Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5b/f235a1437445160e777544f3ade57544daf96ba7e96c1a5b24a6f7ac7004/jiter-0.10.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f2fb68e5f1cfee30e2b2a09549a00683e0fde4c6a2ab88c94072fc33cb7426", size = 490694, upload-time = "2025-05-18T19:04:30.183Z" }, + { url = "https://files.pythonhosted.org/packages/85/a9/9c3d4617caa2ff89cf61b41e83820c27ebb3f7b5fae8a72901e8cd6ff9be/jiter-0.10.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce541693355fc6da424c08b7edf39a2895f58d6ea17d92cc2b168d20907dee12", size = 388992, upload-time = "2025-05-18T19:04:32.028Z" }, + { url = "https://files.pythonhosted.org/packages/68/b1/344fd14049ba5c94526540af7eb661871f9c54d5f5601ff41a959b9a0bbd/jiter-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31c50c40272e189d50006ad5c73883caabb73d4e9748a688b216e85a9a9ca3b9", size = 351723, upload-time = "2025-05-18T19:04:33.467Z" }, + { url = "https://files.pythonhosted.org/packages/41/89/4c0e345041186f82a31aee7b9d4219a910df672b9fef26f129f0cda07a29/jiter-0.10.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa3402a2ff9815960e0372a47b75c76979d74402448509ccd49a275fa983ef8a", size = 392215, upload-time = "2025-05-18T19:04:34.827Z" }, + { url = "https://files.pythonhosted.org/packages/55/58/ee607863e18d3f895feb802154a2177d7e823a7103f000df182e0f718b38/jiter-0.10.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:1956f934dca32d7bb647ea21d06d93ca40868b505c228556d3373cbd255ce853", size = 522762, upload-time = "2025-05-18T19:04:36.19Z" }, + { url = "https://files.pythonhosted.org/packages/15/d0/9123fb41825490d16929e73c212de9a42913d68324a8ce3c8476cae7ac9d/jiter-0.10.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:fcedb049bdfc555e261d6f65a6abe1d5ad68825b7202ccb9692636c70fcced86", size = 513427, upload-time = "2025-05-18T19:04:37.544Z" }, + { url = "https://files.pythonhosted.org/packages/d8/b3/2bd02071c5a2430d0b70403a34411fc519c2f227da7b03da9ba6a956f931/jiter-0.10.0-cp314-cp314-win32.whl", hash = "sha256:ac509f7eccca54b2a29daeb516fb95b6f0bd0d0d8084efaf8ed5dfc7b9f0b357", size = 210127, upload-time = "2025-05-18T19:04:38.837Z" }, + { url = "https://files.pythonhosted.org/packages/03/0c/5fe86614ea050c3ecd728ab4035534387cd41e7c1855ef6c031f1ca93e3f/jiter-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5ed975b83a2b8639356151cef5c0d597c68376fc4922b45d0eb384ac058cfa00", size = 318527, upload-time = "2025-05-18T19:04:40.612Z" }, + { url = "https://files.pythonhosted.org/packages/b3/4a/4175a563579e884192ba6e81725fc0448b042024419be8d83aa8a80a3f44/jiter-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa96f2abba33dc77f79b4cf791840230375f9534e5fac927ccceb58c5e604a5", size = 354213, upload-time = "2025-05-18T19:04:41.894Z" }, ] [[package]] @@ -630,9 +669,9 @@ dependencies = [ { name = "referencing" }, { name = "rpds-py" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342 } +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload-time = "2025-08-18T17:03:50.038Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040 }, + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload-time = "2025-08-18T17:03:48.373Z" }, ] [[package]] @@ -645,9 +684,9 @@ dependencies = [ { name = "referencing" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6e/45/41ebc679c2a4fced6a722f624c18d658dee42612b83ea24c1caf7c0eb3a8/jsonschema_path-0.3.4.tar.gz", hash = "sha256:8365356039f16cc65fddffafda5f58766e34bebab7d6d105616ab52bc4297001", size = 11159 } +sdist = { url = "https://files.pythonhosted.org/packages/6e/45/41ebc679c2a4fced6a722f624c18d658dee42612b83ea24c1caf7c0eb3a8/jsonschema_path-0.3.4.tar.gz", hash = "sha256:8365356039f16cc65fddffafda5f58766e34bebab7d6d105616ab52bc4297001", size = 11159, upload-time = "2025-01-24T14:33:16.547Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/58/3485da8cb93d2f393bce453adeef16896751f14ba3e2024bc21dc9597646/jsonschema_path-0.3.4-py3-none-any.whl", hash = "sha256:f502191fdc2b22050f9a81c9237be9d27145b9001c55842bece5e94e382e52f8", size = 14810 }, + { url = "https://files.pythonhosted.org/packages/cb/58/3485da8cb93d2f393bce453adeef16896751f14ba3e2024bc21dc9597646/jsonschema_path-0.3.4-py3-none-any.whl", hash = "sha256:f502191fdc2b22050f9a81c9237be9d27145b9001c55842bece5e94e382e52f8", size = 14810, upload-time = "2025-01-24T14:33:14.652Z" }, ] [[package]] @@ -657,9 +696,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "referencing" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bf/ce/46fbd9c8119cfc3581ee5643ea49464d168028cfb5caff5fc0596d0cf914/jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608", size = 15513 } +sdist = { url = "https://files.pythonhosted.org/packages/bf/ce/46fbd9c8119cfc3581ee5643ea49464d168028cfb5caff5fc0596d0cf914/jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608", size = 15513, upload-time = "2025-04-23T12:34:07.418Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/01/0e/b27cdbaccf30b890c40ed1da9fd4a3593a5cf94dae54fb34f8a4b74fcd3f/jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af", size = 18437 }, + { url = "https://files.pythonhosted.org/packages/01/0e/b27cdbaccf30b890c40ed1da9fd4a3593a5cf94dae54fb34f8a4b74fcd3f/jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af", size = 18437, upload-time = "2025-04-23T12:34:05.422Z" }, ] [[package]] @@ -675,83 +714,83 @@ dependencies = [ { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, { name = "secretstorage", marker = "sys_platform == 'linux'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516 } +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516, upload-time = "2025-11-16T16:26:09.482Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160 }, + { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160, upload-time = "2025-11-16T16:26:08.402Z" }, ] [[package]] name = "lupa" version = "2.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b8/1c/191c3e6ec6502e3dbe25a53e27f69a5daeac3e56de1f73c0138224171ead/lupa-2.6.tar.gz", hash = "sha256:9a770a6e89576be3447668d7ced312cd6fd41d3c13c2462c9dc2c2ab570e45d9", size = 7240282 } +sdist = { url = "https://files.pythonhosted.org/packages/b8/1c/191c3e6ec6502e3dbe25a53e27f69a5daeac3e56de1f73c0138224171ead/lupa-2.6.tar.gz", hash = "sha256:9a770a6e89576be3447668d7ced312cd6fd41d3c13c2462c9dc2c2ab570e45d9", size = 7240282, upload-time = "2025-10-24T07:20:29.738Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/15/713cab5d0dfa4858f83b99b3e0329072df33dc14fc3ebbaa017e0f9755c4/lupa-2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b3dabda836317e63c5ad052826e156610f356a04b3003dfa0dbe66b5d54d671", size = 954828 }, - { url = "https://files.pythonhosted.org/packages/2e/71/704740cbc6e587dd6cc8dabf2f04820ac6a671784e57cc3c29db795476db/lupa-2.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8726d1c123bbe9fbb974ce29825e94121824e66003038ff4532c14cc2ed0c51c", size = 1919259 }, - { url = "https://files.pythonhosted.org/packages/eb/18/f248341c423c5d48837e35584c6c3eb4acab7e722b6057d7b3e28e42dae8/lupa-2.6-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:f4e159e7d814171199b246f9235ca8961f6461ea8c1165ab428afa13c9289a94", size = 984998 }, - { url = "https://files.pythonhosted.org/packages/44/1e/8a4bd471e018aad76bcb9455d298c2c96d82eced20f2ae8fcec8cd800948/lupa-2.6-cp310-cp310-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:202160e80dbfddfb79316692a563d843b767e0f6787bbd1c455f9d54052efa6c", size = 1174871 }, - { url = "https://files.pythonhosted.org/packages/2a/5c/3a3f23fd6a91b0986eea1ceaf82ad3f9b958fe3515a9981fb9c4eb046c8b/lupa-2.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5deede7c5b36ab64f869dae4831720428b67955b0bb186c8349cf6ea121c852b", size = 1057471 }, - { url = "https://files.pythonhosted.org/packages/45/ac/01be1fed778fb0c8f46ee8cbe344e4d782f6806fac12717f08af87aa4355/lupa-2.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86f04901f920bbf7c0cac56807dc9597e42347123e6f1f3ca920f15f54188ce5", size = 2100592 }, - { url = "https://files.pythonhosted.org/packages/3f/6c/1a05bb873e30830f8574e10cd0b4cdbc72e9dbad2a09e25810b5e3b1f75d/lupa-2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6deef8f851d6afb965c84849aa5b8c38856942df54597a811ce0369ced678610", size = 1081396 }, - { url = "https://files.pythonhosted.org/packages/a2/c2/a19dd80d6dc98b39bbf8135b8198e38aa7ca3360b720eac68d1d7e9286b5/lupa-2.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:21f2b5549681c2a13b1170a26159d30875d367d28f0247b81ca347222c755038", size = 1192007 }, - { url = "https://files.pythonhosted.org/packages/4f/43/e1b297225c827f55752e46fdbfb021c8982081b0f24490e42776ea69ae3b/lupa-2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:66eea57630eab5e6f49fdc5d7811c0a2a41f2011be4ea56a087ea76112011eb7", size = 2196661 }, - { url = "https://files.pythonhosted.org/packages/2e/8f/2272d429a7fa9dc8dbd6e9c5c9073a03af6007eb22a4c78829fec6a34b80/lupa-2.6-cp310-cp310-win32.whl", hash = "sha256:60a403de8cab262a4fe813085dd77010effa6e2eb1886db2181df803140533b1", size = 1412738 }, - { url = "https://files.pythonhosted.org/packages/35/2a/1708911271dd49ad87b4b373b5a4b0e0a0516d3d2af7b76355946c7ee171/lupa-2.6-cp310-cp310-win_amd64.whl", hash = "sha256:e4656a39d93dfa947cf3db56dc16c7916cb0cc8024acd3a952071263f675df64", size = 1656898 }, - { url = "https://files.pythonhosted.org/packages/ca/29/1f66907c1ebf1881735afa695e646762c674f00738ebf66d795d59fc0665/lupa-2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6d988c0f9331b9f2a5a55186701a25444ab10a1432a1021ee58011499ecbbdd5", size = 962875 }, - { url = "https://files.pythonhosted.org/packages/e6/67/4a748604be360eb9c1c215f6a0da921cd1a2b44b2c5951aae6fb83019d3a/lupa-2.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ebe1bbf48259382c72a6fe363dea61a0fd6fe19eab95e2ae881e20f3654587bf", size = 1935390 }, - { url = "https://files.pythonhosted.org/packages/ac/0c/8ef9ee933a350428b7bdb8335a37ef170ab0bb008bbf9ca8f4f4310116b6/lupa-2.6-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:a8fcee258487cf77cdd41560046843bb38c2e18989cd19671dd1e2596f798306", size = 992193 }, - { url = "https://files.pythonhosted.org/packages/65/46/e6c7facebdb438db8a65ed247e56908818389c1a5abbf6a36aab14f1057d/lupa-2.6-cp311-cp311-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:561a8e3be800827884e767a694727ed8482d066e0d6edfcbf423b05e63b05535", size = 1165844 }, - { url = "https://files.pythonhosted.org/packages/1c/26/9f1154c6c95f175ccbf96aa96c8f569c87f64f463b32473e839137601a8b/lupa-2.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af880a62d47991cae78b8e9905c008cbfdc4a3a9723a66310c2634fc7644578c", size = 1048069 }, - { url = "https://files.pythonhosted.org/packages/68/67/2cc52ab73d6af81612b2ea24c870d3fa398443af8e2875e5befe142398b1/lupa-2.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80b22923aa4023c86c0097b235615f89d469a0c4eee0489699c494d3367c4c85", size = 2079079 }, - { url = "https://files.pythonhosted.org/packages/2e/dc/f843f09bbf325f6e5ee61730cf6c3409fc78c010d968c7c78acba3019ca7/lupa-2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:153d2cc6b643f7efb9cfc0c6bb55ec784d5bac1a3660cfc5b958a7b8f38f4a75", size = 1071428 }, - { url = "https://files.pythonhosted.org/packages/2e/60/37533a8d85bf004697449acb97ecdacea851acad28f2ad3803662487dd2a/lupa-2.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3fa8777e16f3ded50b72967dc17e23f5a08e4f1e2c9456aff2ebdb57f5b2869f", size = 1181756 }, - { url = "https://files.pythonhosted.org/packages/e4/f2/cf29b20dbb4927b6a3d27c339ac5d73e74306ecc28c8e2c900b2794142ba/lupa-2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8dbdcbe818c02a2f56f5ab5ce2de374dab03e84b25266cfbaef237829bc09b3f", size = 2175687 }, - { url = "https://files.pythonhosted.org/packages/94/7c/050e02f80c7131b63db1474bff511e63c545b5a8636a24cbef3fc4da20b6/lupa-2.6-cp311-cp311-win32.whl", hash = "sha256:defaf188fde8f7a1e5ce3a5e6d945e533b8b8d547c11e43b96c9b7fe527f56dc", size = 1412592 }, - { url = "https://files.pythonhosted.org/packages/6f/9a/6f2af98aa5d771cea661f66c8eb8f53772ec1ab1dfbce24126cfcd189436/lupa-2.6-cp311-cp311-win_amd64.whl", hash = "sha256:9505ae600b5c14f3e17e70f87f88d333717f60411faca1ddc6f3e61dce85fa9e", size = 1669194 }, - { url = "https://files.pythonhosted.org/packages/94/86/ce243390535c39d53ea17ccf0240815e6e457e413e40428a658ea4ee4b8d/lupa-2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:47ce718817ef1cc0c40d87c3d5ae56a800d61af00fbc0fad1ca9be12df2f3b56", size = 951707 }, - { url = "https://files.pythonhosted.org/packages/86/85/cedea5e6cbeb54396fdcc55f6b741696f3f036d23cfaf986d50d680446da/lupa-2.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7aba985b15b101495aa4b07112cdc08baa0c545390d560ad5cfde2e9e34f4d58", size = 1916703 }, - { url = "https://files.pythonhosted.org/packages/24/be/3d6b5f9a8588c01a4d88129284c726017b2089f3a3fd3ba8bd977292fea0/lupa-2.6-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:b766f62f95b2739f2248977d29b0722e589dcf4f0ccfa827ccbd29f0148bd2e5", size = 985152 }, - { url = "https://files.pythonhosted.org/packages/eb/23/9f9a05beee5d5dce9deca4cb07c91c40a90541fc0a8e09db4ee670da550f/lupa-2.6-cp312-cp312-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:00a934c23331f94cb51760097ebfab14b005d55a6b30a2b480e3c53dd2fa290d", size = 1159599 }, - { url = "https://files.pythonhosted.org/packages/40/4e/e7c0583083db9d7f1fd023800a9767d8e4391e8330d56c2373d890ac971b/lupa-2.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21de9f38bd475303e34a042b7081aabdf50bd9bafd36ce4faea2f90fd9f15c31", size = 1038686 }, - { url = "https://files.pythonhosted.org/packages/1c/9f/5a4f7d959d4feba5e203ff0c31889e74d1ca3153122be4a46dca7d92bf7c/lupa-2.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf3bda96d3fc41237e964a69c23647d50d4e28421111360274d4799832c560e9", size = 2071956 }, - { url = "https://files.pythonhosted.org/packages/92/34/2f4f13ca65d01169b1720176aedc4af17bc19ee834598c7292db232cb6dc/lupa-2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a76ead245da54801a81053794aa3975f213221f6542d14ec4b859ee2e7e0323", size = 1057199 }, - { url = "https://files.pythonhosted.org/packages/35/2a/5f7d2eebec6993b0dcd428e0184ad71afb06a45ba13e717f6501bfed1da3/lupa-2.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8dd0861741caa20886ddbda0a121d8e52fb9b5bb153d82fa9bba796962bf30e8", size = 1173693 }, - { url = "https://files.pythonhosted.org/packages/e4/29/089b4d2f8e34417349af3904bb40bec40b65c8731f45e3fd8d497ca573e5/lupa-2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:239e63948b0b23023f81d9a19a395e768ed3da6a299f84e7963b8f813f6e3f9c", size = 2164394 }, - { url = "https://files.pythonhosted.org/packages/f3/1b/79c17b23c921f81468a111cad843b076a17ef4b684c4a8dff32a7969c3f0/lupa-2.6-cp312-cp312-win32.whl", hash = "sha256:325894e1099499e7a6f9c351147661a2011887603c71086d36fe0f964d52d1ce", size = 1420647 }, - { url = "https://files.pythonhosted.org/packages/b8/15/5121e68aad3584e26e1425a5c9a79cd898f8a152292059e128c206ee817c/lupa-2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c735a1ce8ee60edb0fe71d665f1e6b7c55c6021f1d340eb8c865952c602cd36f", size = 1688529 }, - { url = "https://files.pythonhosted.org/packages/28/1d/21176b682ca5469001199d8b95fa1737e29957a3d185186e7a8b55345f2e/lupa-2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:663a6e58a0f60e7d212017d6678639ac8df0119bc13c2145029dcba084391310", size = 947232 }, - { url = "https://files.pythonhosted.org/packages/ce/4c/d327befb684660ca13cf79cd1f1d604331808f9f1b6fb6bf57832f8edf80/lupa-2.6-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:d1f5afda5c20b1f3217a80e9bc1b77037f8a6eb11612fd3ada19065303c8f380", size = 1908625 }, - { url = "https://files.pythonhosted.org/packages/66/8e/ad22b0a19454dfd08662237a84c792d6d420d36b061f239e084f29d1a4f3/lupa-2.6-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:26f2b3c085fe76e9119e48c1013c1cccdc1f51585d456858290475aa38e7089e", size = 981057 }, - { url = "https://files.pythonhosted.org/packages/5c/48/74859073ab276bd0566c719f9ca0108b0cfc1956ca0d68678d117d47d155/lupa-2.6-cp313-cp313-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:60d2f902c7b96fb8ab98493dcff315e7bb4d0b44dc9dd76eb37de575025d5685", size = 1156227 }, - { url = "https://files.pythonhosted.org/packages/09/6c/0e9ded061916877253c2266074060eb71ed99fb21d73c8c114a76725bce2/lupa-2.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a02d25dee3a3250967c36590128d9220ae02f2eda166a24279da0b481519cbff", size = 1035752 }, - { url = "https://files.pythonhosted.org/packages/dd/ef/f8c32e454ef9f3fe909f6c7d57a39f950996c37a3deb7b391fec7903dab7/lupa-2.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6eae1ee16b886b8914ff292dbefbf2f48abfbdee94b33a88d1d5475e02423203", size = 2069009 }, - { url = "https://files.pythonhosted.org/packages/53/dc/15b80c226a5225815a890ee1c11f07968e0aba7a852df41e8ae6fe285063/lupa-2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0edd5073a4ee74ab36f74fe61450148e6044f3952b8d21248581f3c5d1a58be", size = 1056301 }, - { url = "https://files.pythonhosted.org/packages/31/14/2086c1425c985acfb30997a67e90c39457122df41324d3c179d6ee2292c6/lupa-2.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0c53ee9f22a8a17e7d4266ad48e86f43771951797042dd51d1494aaa4f5f3f0a", size = 1170673 }, - { url = "https://files.pythonhosted.org/packages/10/e5/b216c054cf86576c0191bf9a9f05de6f7e8e07164897d95eea0078dca9b2/lupa-2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:de7c0f157a9064a400d828789191a96da7f4ce889969a588b87ec80de9b14772", size = 2162227 }, - { url = "https://files.pythonhosted.org/packages/59/2f/33ecb5bedf4f3bc297ceacb7f016ff951331d352f58e7e791589609ea306/lupa-2.6-cp313-cp313-win32.whl", hash = "sha256:ee9523941ae0a87b5b703417720c5d78f72d2f5bc23883a2ea80a949a3ed9e75", size = 1419558 }, - { url = "https://files.pythonhosted.org/packages/f9/b4/55e885834c847ea610e111d87b9ed4768f0afdaeebc00cd46810f25029f6/lupa-2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b1335a5835b0a25ebdbc75cf0bda195e54d133e4d994877ef025e218c2e59db9", size = 1683424 }, - { url = "https://files.pythonhosted.org/packages/66/9d/d9427394e54d22a35d1139ef12e845fd700d4872a67a34db32516170b746/lupa-2.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dcb6d0a3264873e1653bc188499f48c1fb4b41a779e315eba45256cfe7bc33c1", size = 953818 }, - { url = "https://files.pythonhosted.org/packages/10/41/27bbe81953fb2f9ecfced5d9c99f85b37964cfaf6aa8453bb11283983721/lupa-2.6-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:a37e01f2128f8c36106726cb9d360bac087d58c54b4522b033cc5691c584db18", size = 1915850 }, - { url = "https://files.pythonhosted.org/packages/a3/98/f9ff60db84a75ba8725506bbf448fb085bc77868a021998ed2a66d920568/lupa-2.6-cp314-cp314-macosx_11_0_x86_64.whl", hash = "sha256:458bd7e9ff3c150b245b0fcfbb9bd2593d1152ea7f0a7b91c1d185846da033fe", size = 982344 }, - { url = "https://files.pythonhosted.org/packages/41/f7/f39e0f1c055c3b887d86b404aaf0ca197b5edfd235a8b81b45b25bac7fc3/lupa-2.6-cp314-cp314-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:052ee82cac5206a02df77119c325339acbc09f5ce66967f66a2e12a0f3211cad", size = 1156543 }, - { url = "https://files.pythonhosted.org/packages/9e/9c/59e6cffa0d672d662ae17bd7ac8ecd2c89c9449dee499e3eb13ca9cd10d9/lupa-2.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96594eca3c87dd07938009e95e591e43d554c1dbd0385be03c100367141db5a8", size = 1047974 }, - { url = "https://files.pythonhosted.org/packages/23/c6/a04e9cef7c052717fcb28fb63b3824802488f688391895b618e39be0f684/lupa-2.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8faddd9d198688c8884091173a088a8e920ecc96cda2ffed576a23574c4b3f6", size = 2073458 }, - { url = "https://files.pythonhosted.org/packages/e6/10/824173d10f38b51fc77785228f01411b6ca28826ce27404c7c912e0e442c/lupa-2.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:daebb3a6b58095c917e76ba727ab37b27477fb926957c825205fbda431552134", size = 1067683 }, - { url = "https://files.pythonhosted.org/packages/b6/dc/9692fbcf3c924d9c4ece2d8d2f724451ac2e09af0bd2a782db1cef34e799/lupa-2.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:f3154e68972befe0f81564e37d8142b5d5d79931a18309226a04ec92487d4ea3", size = 1171892 }, - { url = "https://files.pythonhosted.org/packages/84/ff/e318b628d4643c278c96ab3ddea07fc36b075a57383c837f5b11e537ba9d/lupa-2.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e4dadf77b9fedc0bfa53417cc28dc2278a26d4cbd95c29f8927ad4d8fe0a7ef9", size = 2166641 }, - { url = "https://files.pythonhosted.org/packages/12/f7/a6f9ec2806cf2d50826980cdb4b3cffc7691dc6f95e13cc728846d5cb793/lupa-2.6-cp314-cp314-win32.whl", hash = "sha256:cb34169c6fa3bab3e8ac58ca21b8a7102f6a94b6a5d08d3636312f3f02fafd8f", size = 1456857 }, - { url = "https://files.pythonhosted.org/packages/c5/de/df71896f25bdc18360fdfa3b802cd7d57d7fede41a0e9724a4625b412c85/lupa-2.6-cp314-cp314-win_amd64.whl", hash = "sha256:b74f944fe46c421e25d0f8692aef1e842192f6f7f68034201382ac440ef9ea67", size = 1731191 }, - { url = "https://files.pythonhosted.org/packages/47/3c/a1f23b01c54669465f5f4c4083107d496fbe6fb45998771420e9aadcf145/lupa-2.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0e21b716408a21ab65723f8841cf7f2f37a844b7a965eeabb785e27fca4099cf", size = 999343 }, - { url = "https://files.pythonhosted.org/packages/c5/6d/501994291cb640bfa2ccf7f554be4e6914afa21c4026bd01bff9ca8aac57/lupa-2.6-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:589db872a141bfff828340079bbdf3e9a31f2689f4ca0d88f97d9e8c2eae6142", size = 2000730 }, - { url = "https://files.pythonhosted.org/packages/53/a5/457ffb4f3f20469956c2d4c4842a7675e884efc895b2f23d126d23e126cc/lupa-2.6-cp314-cp314t-macosx_11_0_x86_64.whl", hash = "sha256:cd852a91a4a9d4dcbb9a58100f820a75a425703ec3e3f049055f60b8533b7953", size = 1021553 }, - { url = "https://files.pythonhosted.org/packages/51/6b/36bb5a5d0960f2a5c7c700e0819abb76fd9bf9c1d8a66e5106416d6e9b14/lupa-2.6-cp314-cp314t-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:0334753be028358922415ca97a64a3048e4ed155413fc4eaf87dd0a7e2752983", size = 1133275 }, - { url = "https://files.pythonhosted.org/packages/19/86/202ff4429f663013f37d2229f6176ca9f83678a50257d70f61a0a97281bf/lupa-2.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:661d895cd38c87658a34780fac54a690ec036ead743e41b74c3fb81a9e65a6aa", size = 1038441 }, - { url = "https://files.pythonhosted.org/packages/a7/42/d8125f8e420714e5b52e9c08d88b5329dfb02dcca731b4f21faaee6cc5b5/lupa-2.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aa58454ccc13878cc177c62529a2056be734da16369e451987ff92784994ca7", size = 2058324 }, - { url = "https://files.pythonhosted.org/packages/2b/2c/47bf8b84059876e877a339717ddb595a4a7b0e8740bacae78ba527562e1c/lupa-2.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1425017264e470c98022bba8cff5bd46d054a827f5df6b80274f9cc71dafd24f", size = 1060250 }, - { url = "https://files.pythonhosted.org/packages/c2/06/d88add2b6406ca1bdec99d11a429222837ca6d03bea42ca75afa169a78cb/lupa-2.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:224af0532d216e3105f0a127410f12320f7c5f1aa0300bdf9646b8d9afb0048c", size = 1151126 }, - { url = "https://files.pythonhosted.org/packages/b4/a0/89e6a024c3b4485b89ef86881c9d55e097e7cb0bdb74efb746f2fa6a9a76/lupa-2.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9abb98d5a8fd27c8285302e82199f0e56e463066f88f619d6594a450bf269d80", size = 2153693 }, - { url = "https://files.pythonhosted.org/packages/b6/36/a0f007dc58fc1bbf51fb85dcc82fcb1f21b8c4261361de7dab0e3d8521ef/lupa-2.6-cp314-cp314t-win32.whl", hash = "sha256:1849efeba7a8f6fb8aa2c13790bee988fd242ae404bd459509640eeea3d1e291", size = 1590104 }, - { url = "https://files.pythonhosted.org/packages/7d/5e/db903ce9cf82c48d6b91bf6d63ae4c8d0d17958939a4e04ba6b9f38b8643/lupa-2.6-cp314-cp314t-win_amd64.whl", hash = "sha256:fc1498d1a4fc028bc521c26d0fad4ca00ed63b952e32fb95949bda76a04bad52", size = 1913818 }, + { url = "https://files.pythonhosted.org/packages/a1/15/713cab5d0dfa4858f83b99b3e0329072df33dc14fc3ebbaa017e0f9755c4/lupa-2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b3dabda836317e63c5ad052826e156610f356a04b3003dfa0dbe66b5d54d671", size = 954828, upload-time = "2025-10-24T07:17:15.726Z" }, + { url = "https://files.pythonhosted.org/packages/2e/71/704740cbc6e587dd6cc8dabf2f04820ac6a671784e57cc3c29db795476db/lupa-2.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8726d1c123bbe9fbb974ce29825e94121824e66003038ff4532c14cc2ed0c51c", size = 1919259, upload-time = "2025-10-24T07:17:18.586Z" }, + { url = "https://files.pythonhosted.org/packages/eb/18/f248341c423c5d48837e35584c6c3eb4acab7e722b6057d7b3e28e42dae8/lupa-2.6-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:f4e159e7d814171199b246f9235ca8961f6461ea8c1165ab428afa13c9289a94", size = 984998, upload-time = "2025-10-24T07:17:20.428Z" }, + { url = "https://files.pythonhosted.org/packages/44/1e/8a4bd471e018aad76bcb9455d298c2c96d82eced20f2ae8fcec8cd800948/lupa-2.6-cp310-cp310-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:202160e80dbfddfb79316692a563d843b767e0f6787bbd1c455f9d54052efa6c", size = 1174871, upload-time = "2025-10-24T07:17:22.755Z" }, + { url = "https://files.pythonhosted.org/packages/2a/5c/3a3f23fd6a91b0986eea1ceaf82ad3f9b958fe3515a9981fb9c4eb046c8b/lupa-2.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5deede7c5b36ab64f869dae4831720428b67955b0bb186c8349cf6ea121c852b", size = 1057471, upload-time = "2025-10-24T07:17:24.908Z" }, + { url = "https://files.pythonhosted.org/packages/45/ac/01be1fed778fb0c8f46ee8cbe344e4d782f6806fac12717f08af87aa4355/lupa-2.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86f04901f920bbf7c0cac56807dc9597e42347123e6f1f3ca920f15f54188ce5", size = 2100592, upload-time = "2025-10-24T07:17:27.089Z" }, + { url = "https://files.pythonhosted.org/packages/3f/6c/1a05bb873e30830f8574e10cd0b4cdbc72e9dbad2a09e25810b5e3b1f75d/lupa-2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6deef8f851d6afb965c84849aa5b8c38856942df54597a811ce0369ced678610", size = 1081396, upload-time = "2025-10-24T07:17:29.064Z" }, + { url = "https://files.pythonhosted.org/packages/a2/c2/a19dd80d6dc98b39bbf8135b8198e38aa7ca3360b720eac68d1d7e9286b5/lupa-2.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:21f2b5549681c2a13b1170a26159d30875d367d28f0247b81ca347222c755038", size = 1192007, upload-time = "2025-10-24T07:17:31.362Z" }, + { url = "https://files.pythonhosted.org/packages/4f/43/e1b297225c827f55752e46fdbfb021c8982081b0f24490e42776ea69ae3b/lupa-2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:66eea57630eab5e6f49fdc5d7811c0a2a41f2011be4ea56a087ea76112011eb7", size = 2196661, upload-time = "2025-10-24T07:17:33.484Z" }, + { url = "https://files.pythonhosted.org/packages/2e/8f/2272d429a7fa9dc8dbd6e9c5c9073a03af6007eb22a4c78829fec6a34b80/lupa-2.6-cp310-cp310-win32.whl", hash = "sha256:60a403de8cab262a4fe813085dd77010effa6e2eb1886db2181df803140533b1", size = 1412738, upload-time = "2025-10-24T07:17:35.11Z" }, + { url = "https://files.pythonhosted.org/packages/35/2a/1708911271dd49ad87b4b373b5a4b0e0a0516d3d2af7b76355946c7ee171/lupa-2.6-cp310-cp310-win_amd64.whl", hash = "sha256:e4656a39d93dfa947cf3db56dc16c7916cb0cc8024acd3a952071263f675df64", size = 1656898, upload-time = "2025-10-24T07:17:36.949Z" }, + { url = "https://files.pythonhosted.org/packages/ca/29/1f66907c1ebf1881735afa695e646762c674f00738ebf66d795d59fc0665/lupa-2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6d988c0f9331b9f2a5a55186701a25444ab10a1432a1021ee58011499ecbbdd5", size = 962875, upload-time = "2025-10-24T07:17:39.107Z" }, + { url = "https://files.pythonhosted.org/packages/e6/67/4a748604be360eb9c1c215f6a0da921cd1a2b44b2c5951aae6fb83019d3a/lupa-2.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ebe1bbf48259382c72a6fe363dea61a0fd6fe19eab95e2ae881e20f3654587bf", size = 1935390, upload-time = "2025-10-24T07:17:41.427Z" }, + { url = "https://files.pythonhosted.org/packages/ac/0c/8ef9ee933a350428b7bdb8335a37ef170ab0bb008bbf9ca8f4f4310116b6/lupa-2.6-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:a8fcee258487cf77cdd41560046843bb38c2e18989cd19671dd1e2596f798306", size = 992193, upload-time = "2025-10-24T07:17:43.231Z" }, + { url = "https://files.pythonhosted.org/packages/65/46/e6c7facebdb438db8a65ed247e56908818389c1a5abbf6a36aab14f1057d/lupa-2.6-cp311-cp311-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:561a8e3be800827884e767a694727ed8482d066e0d6edfcbf423b05e63b05535", size = 1165844, upload-time = "2025-10-24T07:17:45.437Z" }, + { url = "https://files.pythonhosted.org/packages/1c/26/9f1154c6c95f175ccbf96aa96c8f569c87f64f463b32473e839137601a8b/lupa-2.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af880a62d47991cae78b8e9905c008cbfdc4a3a9723a66310c2634fc7644578c", size = 1048069, upload-time = "2025-10-24T07:17:47.181Z" }, + { url = "https://files.pythonhosted.org/packages/68/67/2cc52ab73d6af81612b2ea24c870d3fa398443af8e2875e5befe142398b1/lupa-2.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80b22923aa4023c86c0097b235615f89d469a0c4eee0489699c494d3367c4c85", size = 2079079, upload-time = "2025-10-24T07:17:49.755Z" }, + { url = "https://files.pythonhosted.org/packages/2e/dc/f843f09bbf325f6e5ee61730cf6c3409fc78c010d968c7c78acba3019ca7/lupa-2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:153d2cc6b643f7efb9cfc0c6bb55ec784d5bac1a3660cfc5b958a7b8f38f4a75", size = 1071428, upload-time = "2025-10-24T07:17:51.991Z" }, + { url = "https://files.pythonhosted.org/packages/2e/60/37533a8d85bf004697449acb97ecdacea851acad28f2ad3803662487dd2a/lupa-2.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3fa8777e16f3ded50b72967dc17e23f5a08e4f1e2c9456aff2ebdb57f5b2869f", size = 1181756, upload-time = "2025-10-24T07:17:53.752Z" }, + { url = "https://files.pythonhosted.org/packages/e4/f2/cf29b20dbb4927b6a3d27c339ac5d73e74306ecc28c8e2c900b2794142ba/lupa-2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8dbdcbe818c02a2f56f5ab5ce2de374dab03e84b25266cfbaef237829bc09b3f", size = 2175687, upload-time = "2025-10-24T07:17:56.228Z" }, + { url = "https://files.pythonhosted.org/packages/94/7c/050e02f80c7131b63db1474bff511e63c545b5a8636a24cbef3fc4da20b6/lupa-2.6-cp311-cp311-win32.whl", hash = "sha256:defaf188fde8f7a1e5ce3a5e6d945e533b8b8d547c11e43b96c9b7fe527f56dc", size = 1412592, upload-time = "2025-10-24T07:17:59.062Z" }, + { url = "https://files.pythonhosted.org/packages/6f/9a/6f2af98aa5d771cea661f66c8eb8f53772ec1ab1dfbce24126cfcd189436/lupa-2.6-cp311-cp311-win_amd64.whl", hash = "sha256:9505ae600b5c14f3e17e70f87f88d333717f60411faca1ddc6f3e61dce85fa9e", size = 1669194, upload-time = "2025-10-24T07:18:01.647Z" }, + { url = "https://files.pythonhosted.org/packages/94/86/ce243390535c39d53ea17ccf0240815e6e457e413e40428a658ea4ee4b8d/lupa-2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:47ce718817ef1cc0c40d87c3d5ae56a800d61af00fbc0fad1ca9be12df2f3b56", size = 951707, upload-time = "2025-10-24T07:18:03.884Z" }, + { url = "https://files.pythonhosted.org/packages/86/85/cedea5e6cbeb54396fdcc55f6b741696f3f036d23cfaf986d50d680446da/lupa-2.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7aba985b15b101495aa4b07112cdc08baa0c545390d560ad5cfde2e9e34f4d58", size = 1916703, upload-time = "2025-10-24T07:18:05.6Z" }, + { url = "https://files.pythonhosted.org/packages/24/be/3d6b5f9a8588c01a4d88129284c726017b2089f3a3fd3ba8bd977292fea0/lupa-2.6-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:b766f62f95b2739f2248977d29b0722e589dcf4f0ccfa827ccbd29f0148bd2e5", size = 985152, upload-time = "2025-10-24T07:18:08.561Z" }, + { url = "https://files.pythonhosted.org/packages/eb/23/9f9a05beee5d5dce9deca4cb07c91c40a90541fc0a8e09db4ee670da550f/lupa-2.6-cp312-cp312-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:00a934c23331f94cb51760097ebfab14b005d55a6b30a2b480e3c53dd2fa290d", size = 1159599, upload-time = "2025-10-24T07:18:10.346Z" }, + { url = "https://files.pythonhosted.org/packages/40/4e/e7c0583083db9d7f1fd023800a9767d8e4391e8330d56c2373d890ac971b/lupa-2.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:21de9f38bd475303e34a042b7081aabdf50bd9bafd36ce4faea2f90fd9f15c31", size = 1038686, upload-time = "2025-10-24T07:18:12.112Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9f/5a4f7d959d4feba5e203ff0c31889e74d1ca3153122be4a46dca7d92bf7c/lupa-2.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf3bda96d3fc41237e964a69c23647d50d4e28421111360274d4799832c560e9", size = 2071956, upload-time = "2025-10-24T07:18:14.572Z" }, + { url = "https://files.pythonhosted.org/packages/92/34/2f4f13ca65d01169b1720176aedc4af17bc19ee834598c7292db232cb6dc/lupa-2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a76ead245da54801a81053794aa3975f213221f6542d14ec4b859ee2e7e0323", size = 1057199, upload-time = "2025-10-24T07:18:16.379Z" }, + { url = "https://files.pythonhosted.org/packages/35/2a/5f7d2eebec6993b0dcd428e0184ad71afb06a45ba13e717f6501bfed1da3/lupa-2.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8dd0861741caa20886ddbda0a121d8e52fb9b5bb153d82fa9bba796962bf30e8", size = 1173693, upload-time = "2025-10-24T07:18:18.153Z" }, + { url = "https://files.pythonhosted.org/packages/e4/29/089b4d2f8e34417349af3904bb40bec40b65c8731f45e3fd8d497ca573e5/lupa-2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:239e63948b0b23023f81d9a19a395e768ed3da6a299f84e7963b8f813f6e3f9c", size = 2164394, upload-time = "2025-10-24T07:18:20.403Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1b/79c17b23c921f81468a111cad843b076a17ef4b684c4a8dff32a7969c3f0/lupa-2.6-cp312-cp312-win32.whl", hash = "sha256:325894e1099499e7a6f9c351147661a2011887603c71086d36fe0f964d52d1ce", size = 1420647, upload-time = "2025-10-24T07:18:23.368Z" }, + { url = "https://files.pythonhosted.org/packages/b8/15/5121e68aad3584e26e1425a5c9a79cd898f8a152292059e128c206ee817c/lupa-2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c735a1ce8ee60edb0fe71d665f1e6b7c55c6021f1d340eb8c865952c602cd36f", size = 1688529, upload-time = "2025-10-24T07:18:25.523Z" }, + { url = "https://files.pythonhosted.org/packages/28/1d/21176b682ca5469001199d8b95fa1737e29957a3d185186e7a8b55345f2e/lupa-2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:663a6e58a0f60e7d212017d6678639ac8df0119bc13c2145029dcba084391310", size = 947232, upload-time = "2025-10-24T07:18:27.878Z" }, + { url = "https://files.pythonhosted.org/packages/ce/4c/d327befb684660ca13cf79cd1f1d604331808f9f1b6fb6bf57832f8edf80/lupa-2.6-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:d1f5afda5c20b1f3217a80e9bc1b77037f8a6eb11612fd3ada19065303c8f380", size = 1908625, upload-time = "2025-10-24T07:18:29.944Z" }, + { url = "https://files.pythonhosted.org/packages/66/8e/ad22b0a19454dfd08662237a84c792d6d420d36b061f239e084f29d1a4f3/lupa-2.6-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:26f2b3c085fe76e9119e48c1013c1cccdc1f51585d456858290475aa38e7089e", size = 981057, upload-time = "2025-10-24T07:18:31.553Z" }, + { url = "https://files.pythonhosted.org/packages/5c/48/74859073ab276bd0566c719f9ca0108b0cfc1956ca0d68678d117d47d155/lupa-2.6-cp313-cp313-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:60d2f902c7b96fb8ab98493dcff315e7bb4d0b44dc9dd76eb37de575025d5685", size = 1156227, upload-time = "2025-10-24T07:18:33.981Z" }, + { url = "https://files.pythonhosted.org/packages/09/6c/0e9ded061916877253c2266074060eb71ed99fb21d73c8c114a76725bce2/lupa-2.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a02d25dee3a3250967c36590128d9220ae02f2eda166a24279da0b481519cbff", size = 1035752, upload-time = "2025-10-24T07:18:36.32Z" }, + { url = "https://files.pythonhosted.org/packages/dd/ef/f8c32e454ef9f3fe909f6c7d57a39f950996c37a3deb7b391fec7903dab7/lupa-2.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6eae1ee16b886b8914ff292dbefbf2f48abfbdee94b33a88d1d5475e02423203", size = 2069009, upload-time = "2025-10-24T07:18:38.072Z" }, + { url = "https://files.pythonhosted.org/packages/53/dc/15b80c226a5225815a890ee1c11f07968e0aba7a852df41e8ae6fe285063/lupa-2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0edd5073a4ee74ab36f74fe61450148e6044f3952b8d21248581f3c5d1a58be", size = 1056301, upload-time = "2025-10-24T07:18:40.165Z" }, + { url = "https://files.pythonhosted.org/packages/31/14/2086c1425c985acfb30997a67e90c39457122df41324d3c179d6ee2292c6/lupa-2.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0c53ee9f22a8a17e7d4266ad48e86f43771951797042dd51d1494aaa4f5f3f0a", size = 1170673, upload-time = "2025-10-24T07:18:42.426Z" }, + { url = "https://files.pythonhosted.org/packages/10/e5/b216c054cf86576c0191bf9a9f05de6f7e8e07164897d95eea0078dca9b2/lupa-2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:de7c0f157a9064a400d828789191a96da7f4ce889969a588b87ec80de9b14772", size = 2162227, upload-time = "2025-10-24T07:18:46.112Z" }, + { url = "https://files.pythonhosted.org/packages/59/2f/33ecb5bedf4f3bc297ceacb7f016ff951331d352f58e7e791589609ea306/lupa-2.6-cp313-cp313-win32.whl", hash = "sha256:ee9523941ae0a87b5b703417720c5d78f72d2f5bc23883a2ea80a949a3ed9e75", size = 1419558, upload-time = "2025-10-24T07:18:48.371Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b4/55e885834c847ea610e111d87b9ed4768f0afdaeebc00cd46810f25029f6/lupa-2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b1335a5835b0a25ebdbc75cf0bda195e54d133e4d994877ef025e218c2e59db9", size = 1683424, upload-time = "2025-10-24T07:18:50.976Z" }, + { url = "https://files.pythonhosted.org/packages/66/9d/d9427394e54d22a35d1139ef12e845fd700d4872a67a34db32516170b746/lupa-2.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dcb6d0a3264873e1653bc188499f48c1fb4b41a779e315eba45256cfe7bc33c1", size = 953818, upload-time = "2025-10-24T07:18:53.378Z" }, + { url = "https://files.pythonhosted.org/packages/10/41/27bbe81953fb2f9ecfced5d9c99f85b37964cfaf6aa8453bb11283983721/lupa-2.6-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:a37e01f2128f8c36106726cb9d360bac087d58c54b4522b033cc5691c584db18", size = 1915850, upload-time = "2025-10-24T07:18:55.259Z" }, + { url = "https://files.pythonhosted.org/packages/a3/98/f9ff60db84a75ba8725506bbf448fb085bc77868a021998ed2a66d920568/lupa-2.6-cp314-cp314-macosx_11_0_x86_64.whl", hash = "sha256:458bd7e9ff3c150b245b0fcfbb9bd2593d1152ea7f0a7b91c1d185846da033fe", size = 982344, upload-time = "2025-10-24T07:18:57.05Z" }, + { url = "https://files.pythonhosted.org/packages/41/f7/f39e0f1c055c3b887d86b404aaf0ca197b5edfd235a8b81b45b25bac7fc3/lupa-2.6-cp314-cp314-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:052ee82cac5206a02df77119c325339acbc09f5ce66967f66a2e12a0f3211cad", size = 1156543, upload-time = "2025-10-24T07:18:59.251Z" }, + { url = "https://files.pythonhosted.org/packages/9e/9c/59e6cffa0d672d662ae17bd7ac8ecd2c89c9449dee499e3eb13ca9cd10d9/lupa-2.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96594eca3c87dd07938009e95e591e43d554c1dbd0385be03c100367141db5a8", size = 1047974, upload-time = "2025-10-24T07:19:01.449Z" }, + { url = "https://files.pythonhosted.org/packages/23/c6/a04e9cef7c052717fcb28fb63b3824802488f688391895b618e39be0f684/lupa-2.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8faddd9d198688c8884091173a088a8e920ecc96cda2ffed576a23574c4b3f6", size = 2073458, upload-time = "2025-10-24T07:19:03.369Z" }, + { url = "https://files.pythonhosted.org/packages/e6/10/824173d10f38b51fc77785228f01411b6ca28826ce27404c7c912e0e442c/lupa-2.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:daebb3a6b58095c917e76ba727ab37b27477fb926957c825205fbda431552134", size = 1067683, upload-time = "2025-10-24T07:19:06.2Z" }, + { url = "https://files.pythonhosted.org/packages/b6/dc/9692fbcf3c924d9c4ece2d8d2f724451ac2e09af0bd2a782db1cef34e799/lupa-2.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:f3154e68972befe0f81564e37d8142b5d5d79931a18309226a04ec92487d4ea3", size = 1171892, upload-time = "2025-10-24T07:19:08.544Z" }, + { url = "https://files.pythonhosted.org/packages/84/ff/e318b628d4643c278c96ab3ddea07fc36b075a57383c837f5b11e537ba9d/lupa-2.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e4dadf77b9fedc0bfa53417cc28dc2278a26d4cbd95c29f8927ad4d8fe0a7ef9", size = 2166641, upload-time = "2025-10-24T07:19:10.485Z" }, + { url = "https://files.pythonhosted.org/packages/12/f7/a6f9ec2806cf2d50826980cdb4b3cffc7691dc6f95e13cc728846d5cb793/lupa-2.6-cp314-cp314-win32.whl", hash = "sha256:cb34169c6fa3bab3e8ac58ca21b8a7102f6a94b6a5d08d3636312f3f02fafd8f", size = 1456857, upload-time = "2025-10-24T07:19:37.989Z" }, + { url = "https://files.pythonhosted.org/packages/c5/de/df71896f25bdc18360fdfa3b802cd7d57d7fede41a0e9724a4625b412c85/lupa-2.6-cp314-cp314-win_amd64.whl", hash = "sha256:b74f944fe46c421e25d0f8692aef1e842192f6f7f68034201382ac440ef9ea67", size = 1731191, upload-time = "2025-10-24T07:19:40.281Z" }, + { url = "https://files.pythonhosted.org/packages/47/3c/a1f23b01c54669465f5f4c4083107d496fbe6fb45998771420e9aadcf145/lupa-2.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0e21b716408a21ab65723f8841cf7f2f37a844b7a965eeabb785e27fca4099cf", size = 999343, upload-time = "2025-10-24T07:19:12.519Z" }, + { url = "https://files.pythonhosted.org/packages/c5/6d/501994291cb640bfa2ccf7f554be4e6914afa21c4026bd01bff9ca8aac57/lupa-2.6-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:589db872a141bfff828340079bbdf3e9a31f2689f4ca0d88f97d9e8c2eae6142", size = 2000730, upload-time = "2025-10-24T07:19:14.869Z" }, + { url = "https://files.pythonhosted.org/packages/53/a5/457ffb4f3f20469956c2d4c4842a7675e884efc895b2f23d126d23e126cc/lupa-2.6-cp314-cp314t-macosx_11_0_x86_64.whl", hash = "sha256:cd852a91a4a9d4dcbb9a58100f820a75a425703ec3e3f049055f60b8533b7953", size = 1021553, upload-time = "2025-10-24T07:19:17.123Z" }, + { url = "https://files.pythonhosted.org/packages/51/6b/36bb5a5d0960f2a5c7c700e0819abb76fd9bf9c1d8a66e5106416d6e9b14/lupa-2.6-cp314-cp314t-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:0334753be028358922415ca97a64a3048e4ed155413fc4eaf87dd0a7e2752983", size = 1133275, upload-time = "2025-10-24T07:19:20.51Z" }, + { url = "https://files.pythonhosted.org/packages/19/86/202ff4429f663013f37d2229f6176ca9f83678a50257d70f61a0a97281bf/lupa-2.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:661d895cd38c87658a34780fac54a690ec036ead743e41b74c3fb81a9e65a6aa", size = 1038441, upload-time = "2025-10-24T07:19:22.509Z" }, + { url = "https://files.pythonhosted.org/packages/a7/42/d8125f8e420714e5b52e9c08d88b5329dfb02dcca731b4f21faaee6cc5b5/lupa-2.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aa58454ccc13878cc177c62529a2056be734da16369e451987ff92784994ca7", size = 2058324, upload-time = "2025-10-24T07:19:24.979Z" }, + { url = "https://files.pythonhosted.org/packages/2b/2c/47bf8b84059876e877a339717ddb595a4a7b0e8740bacae78ba527562e1c/lupa-2.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1425017264e470c98022bba8cff5bd46d054a827f5df6b80274f9cc71dafd24f", size = 1060250, upload-time = "2025-10-24T07:19:27.262Z" }, + { url = "https://files.pythonhosted.org/packages/c2/06/d88add2b6406ca1bdec99d11a429222837ca6d03bea42ca75afa169a78cb/lupa-2.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:224af0532d216e3105f0a127410f12320f7c5f1aa0300bdf9646b8d9afb0048c", size = 1151126, upload-time = "2025-10-24T07:19:29.522Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a0/89e6a024c3b4485b89ef86881c9d55e097e7cb0bdb74efb746f2fa6a9a76/lupa-2.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9abb98d5a8fd27c8285302e82199f0e56e463066f88f619d6594a450bf269d80", size = 2153693, upload-time = "2025-10-24T07:19:31.379Z" }, + { url = "https://files.pythonhosted.org/packages/b6/36/a0f007dc58fc1bbf51fb85dcc82fcb1f21b8c4261361de7dab0e3d8521ef/lupa-2.6-cp314-cp314t-win32.whl", hash = "sha256:1849efeba7a8f6fb8aa2c13790bee988fd242ae404bd459509640eeea3d1e291", size = 1590104, upload-time = "2025-10-24T07:19:33.514Z" }, + { url = "https://files.pythonhosted.org/packages/7d/5e/db903ce9cf82c48d6b91bf6d63ae4c8d0d17958939a4e04ba6b9f38b8643/lupa-2.6-cp314-cp314t-win_amd64.whl", hash = "sha256:fc1498d1a4fc028bc521c26d0fad4ca00ed63b952e32fb95949bda76a04bad52", size = 1913818, upload-time = "2025-10-24T07:19:36.039Z" }, ] [[package]] @@ -761,9 +800,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mdurl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070 } +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321 }, + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, ] [[package]] @@ -786,27 +825,27 @@ dependencies = [ { name = "typing-inspection" }, { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d6/2c/db9ae5ab1fcdd9cd2bcc7ca3b7361b712e30590b64d5151a31563af8f82d/mcp-1.24.0.tar.gz", hash = "sha256:aeaad134664ce56f2721d1abf300666a1e8348563f4d3baff361c3b652448efc", size = 604375 } +sdist = { url = "https://files.pythonhosted.org/packages/d6/2c/db9ae5ab1fcdd9cd2bcc7ca3b7361b712e30590b64d5151a31563af8f82d/mcp-1.24.0.tar.gz", hash = "sha256:aeaad134664ce56f2721d1abf300666a1e8348563f4d3baff361c3b652448efc", size = 604375, upload-time = "2025-12-12T14:19:38.205Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/0d/5cf14e177c8ae655a2fd9324a6ef657ca4cafd3fc2201c87716055e29641/mcp-1.24.0-py3-none-any.whl", hash = "sha256:db130e103cc50ddc3dffc928382f33ba3eaef0b711f7a87c05e7ded65b1ca062", size = 232896 }, + { url = "https://files.pythonhosted.org/packages/61/0d/5cf14e177c8ae655a2fd9324a6ef657ca4cafd3fc2201c87716055e29641/mcp-1.24.0-py3-none-any.whl", hash = "sha256:db130e103cc50ddc3dffc928382f33ba3eaef0b711f7a87c05e7ded65b1ca062", size = 232896, upload-time = "2025-12-12T14:19:36.14Z" }, ] [[package]] name = "mdurl" version = "0.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] [[package]] name = "more-itertools" version = "10.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431 } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload-time = "2025-09-02T15:23:11.018Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667 }, + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" }, ] [[package]] @@ -823,9 +862,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0f/39/8e347e9fda125324d253084bb1b82407e5e3c7777a03dc398f79b2d95626/openai-2.13.0.tar.gz", hash = "sha256:9ff633b07a19469ec476b1e2b5b26c5ef700886524a7a72f65e6f0b5203142d5", size = 626583 } +sdist = { url = "https://files.pythonhosted.org/packages/0f/39/8e347e9fda125324d253084bb1b82407e5e3c7777a03dc398f79b2d95626/openai-2.13.0.tar.gz", hash = "sha256:9ff633b07a19469ec476b1e2b5b26c5ef700886524a7a72f65e6f0b5203142d5", size = 626583, upload-time = "2025-12-16T18:19:44.387Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/d5/eb52edff49d3d5ea116e225538c118699ddeb7c29fa17ec28af14bc10033/openai-2.13.0-py3-none-any.whl", hash = "sha256:746521065fed68df2f9c2d85613bb50844343ea81f60009b60e6a600c9352c79", size = 1066837 }, + { url = "https://files.pythonhosted.org/packages/bb/d5/eb52edff49d3d5ea116e225538c118699ddeb7c29fa17ec28af14bc10033/openai-2.13.0-py3-none-any.whl", hash = "sha256:746521065fed68df2f9c2d85613bb50844343ea81f60009b60e6a600c9352c79", size = 1066837, upload-time = "2025-12-16T18:19:43.124Z" }, ] [[package]] @@ -835,9 +874,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/02/2e/58d83848dd1a79cb92ed8e63f6ba901ca282c5f09d04af9423ec26c56fd7/openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d", size = 60892 } +sdist = { url = "https://files.pythonhosted.org/packages/02/2e/58d83848dd1a79cb92ed8e63f6ba901ca282c5f09d04af9423ec26c56fd7/openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d", size = 60892, upload-time = "2025-01-08T19:29:27.083Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381 }, + { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381, upload-time = "2025-01-08T19:29:25.275Z" }, ] [[package]] @@ -848,9 +887,9 @@ dependencies = [ { name = "importlib-metadata" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/97/b9/3161be15bb8e3ad01be8be5a968a9237c3027c5be504362ff800fca3e442/opentelemetry_api-1.39.1.tar.gz", hash = "sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c", size = 65767 } +sdist = { url = "https://files.pythonhosted.org/packages/97/b9/3161be15bb8e3ad01be8be5a968a9237c3027c5be504362ff800fca3e442/opentelemetry_api-1.39.1.tar.gz", hash = "sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c", size = 65767, upload-time = "2025-12-11T13:32:39.182Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356 }, + { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload-time = "2025-12-11T13:32:17.304Z" }, ] [[package]] @@ -862,9 +901,9 @@ dependencies = [ { name = "opentelemetry-sdk" }, { name = "prometheus-client" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/14/39/7dafa6fff210737267bed35a8855b6ac7399b9e582b8cf1f25f842517012/opentelemetry_exporter_prometheus-0.60b1.tar.gz", hash = "sha256:a4011b46906323f71724649d301b4dc188aaa068852e814f4df38cc76eac616b", size = 14976 } +sdist = { url = "https://files.pythonhosted.org/packages/14/39/7dafa6fff210737267bed35a8855b6ac7399b9e582b8cf1f25f842517012/opentelemetry_exporter_prometheus-0.60b1.tar.gz", hash = "sha256:a4011b46906323f71724649d301b4dc188aaa068852e814f4df38cc76eac616b", size = 14976, upload-time = "2025-12-11T13:32:42.944Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/0d/4be6bf5477a3eb3d917d2f17d3c0b6720cd6cb97898444a61d43cc983f5c/opentelemetry_exporter_prometheus-0.60b1-py3-none-any.whl", hash = "sha256:49f59178de4f4590e3cef0b8b95cf6e071aae70e1f060566df5546fad773b8fd", size = 13019 }, + { url = "https://files.pythonhosted.org/packages/9b/0d/4be6bf5477a3eb3d917d2f17d3c0b6720cd6cb97898444a61d43cc983f5c/opentelemetry_exporter_prometheus-0.60b1-py3-none-any.whl", hash = "sha256:49f59178de4f4590e3cef0b8b95cf6e071aae70e1f060566df5546fad773b8fd", size = 13019, upload-time = "2025-12-11T13:32:23.974Z" }, ] [[package]] @@ -877,9 +916,9 @@ dependencies = [ { name = "packaging" }, { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/41/0f/7e6b713ac117c1f5e4e3300748af699b9902a2e5e34c9cf443dde25a01fa/opentelemetry_instrumentation-0.60b1.tar.gz", hash = "sha256:57ddc7974c6eb35865af0426d1a17132b88b2ed8586897fee187fd5b8944bd6a", size = 31706 } +sdist = { url = "https://files.pythonhosted.org/packages/41/0f/7e6b713ac117c1f5e4e3300748af699b9902a2e5e34c9cf443dde25a01fa/opentelemetry_instrumentation-0.60b1.tar.gz", hash = "sha256:57ddc7974c6eb35865af0426d1a17132b88b2ed8586897fee187fd5b8944bd6a", size = 31706, upload-time = "2025-12-11T13:36:42.515Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/d2/6788e83c5c86a2690101681aeef27eeb2a6bf22df52d3f263a22cee20915/opentelemetry_instrumentation-0.60b1-py3-none-any.whl", hash = "sha256:04480db952b48fb1ed0073f822f0ee26012b7be7c3eac1a3793122737c78632d", size = 33096 }, + { url = "https://files.pythonhosted.org/packages/77/d2/6788e83c5c86a2690101681aeef27eeb2a6bf22df52d3f263a22cee20915/opentelemetry_instrumentation-0.60b1-py3-none-any.whl", hash = "sha256:04480db952b48fb1ed0073f822f0ee26012b7be7c3eac1a3793122737c78632d", size = 33096, upload-time = "2025-12-11T13:35:33.067Z" }, ] [[package]] @@ -891,9 +930,9 @@ dependencies = [ { name = "opentelemetry-semantic-conventions" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460 } +sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460, upload-time = "2025-12-11T13:32:49.369Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565 }, + { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565, upload-time = "2025-12-11T13:32:35.069Z" }, ] [[package]] @@ -904,54 +943,54 @@ dependencies = [ { name = "opentelemetry-api" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935 } +sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935, upload-time = "2025-12-11T13:32:50.487Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982 }, + { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982, upload-time = "2025-12-11T13:32:36.955Z" }, ] [[package]] name = "packaging" version = "25.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 }, + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] [[package]] name = "pathable" version = "0.4.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/67/93/8f2c2075b180c12c1e9f6a09d1a985bc2036906b13dff1d8917e395f2048/pathable-0.4.4.tar.gz", hash = "sha256:6905a3cd17804edfac7875b5f6c9142a218c7caef78693c2dbbbfbac186d88b2", size = 8124 } +sdist = { url = "https://files.pythonhosted.org/packages/67/93/8f2c2075b180c12c1e9f6a09d1a985bc2036906b13dff1d8917e395f2048/pathable-0.4.4.tar.gz", hash = "sha256:6905a3cd17804edfac7875b5f6c9142a218c7caef78693c2dbbbfbac186d88b2", size = 8124, upload-time = "2025-01-10T18:43:13.247Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7d/eb/b6260b31b1a96386c0a880edebe26f89669098acea8e0318bff6adb378fd/pathable-0.4.4-py3-none-any.whl", hash = "sha256:5ae9e94793b6ef5a4cbe0a7ce9dbbefc1eec38df253763fd0aeeacf2762dbbc2", size = 9592 }, + { url = "https://files.pythonhosted.org/packages/7d/eb/b6260b31b1a96386c0a880edebe26f89669098acea8e0318bff6adb378fd/pathable-0.4.4-py3-none-any.whl", hash = "sha256:5ae9e94793b6ef5a4cbe0a7ce9dbbefc1eec38df253763fd0aeeacf2762dbbc2", size = 9592, upload-time = "2025-01-10T18:43:11.88Z" }, ] [[package]] name = "pathvalidate" version = "3.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fa/2a/52a8da6fe965dea6192eb716b357558e103aea0a1e9a8352ad575a8406ca/pathvalidate-3.3.1.tar.gz", hash = "sha256:b18c07212bfead624345bb8e1d6141cdcf15a39736994ea0b94035ad2b1ba177", size = 63262 } +sdist = { url = "https://files.pythonhosted.org/packages/fa/2a/52a8da6fe965dea6192eb716b357558e103aea0a1e9a8352ad575a8406ca/pathvalidate-3.3.1.tar.gz", hash = "sha256:b18c07212bfead624345bb8e1d6141cdcf15a39736994ea0b94035ad2b1ba177", size = 63262, upload-time = "2025-06-15T09:07:20.736Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/70/875f4a23bfc4731703a5835487d0d2fb999031bd415e7d17c0ae615c18b7/pathvalidate-3.3.1-py3-none-any.whl", hash = "sha256:5263baab691f8e1af96092fa5137ee17df5bdfbd6cff1fcac4d6ef4bc2e1735f", size = 24305 }, + { url = "https://files.pythonhosted.org/packages/9a/70/875f4a23bfc4731703a5835487d0d2fb999031bd415e7d17c0ae615c18b7/pathvalidate-3.3.1-py3-none-any.whl", hash = "sha256:5263baab691f8e1af96092fa5137ee17df5bdfbd6cff1fcac4d6ef4bc2e1735f", size = 24305, upload-time = "2025-06-15T09:07:19.117Z" }, ] [[package]] name = "platformdirs" version = "4.5.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715 } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731 }, + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, ] [[package]] name = "prometheus-client" version = "0.23.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/23/53/3edb5d68ecf6b38fcbcc1ad28391117d2a322d9a1a3eff04bfdb184d8c3b/prometheus_client-0.23.1.tar.gz", hash = "sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce", size = 80481 } +sdist = { url = "https://files.pythonhosted.org/packages/23/53/3edb5d68ecf6b38fcbcc1ad28391117d2a322d9a1a3eff04bfdb184d8c3b/prometheus_client-0.23.1.tar.gz", hash = "sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce", size = 80481, upload-time = "2025-09-18T20:47:25.043Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b8/db/14bafcb4af2139e046d03fd00dea7873e48eafe18b7d2797e73d6681f210/prometheus_client-0.23.1-py3-none-any.whl", hash = "sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99", size = 61145 }, + { url = "https://files.pythonhosted.org/packages/b8/db/14bafcb4af2139e046d03fd00dea7873e48eafe18b7d2797e73d6681f210/prometheus_client-0.23.1-py3-none-any.whl", hash = "sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99", size = 61145, upload-time = "2025-09-18T20:47:23.875Z" }, ] [[package]] @@ -962,9 +1001,9 @@ dependencies = [ { name = "beartype" }, { name = "py-key-value-shared" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/93/ce/3136b771dddf5ac905cc193b461eb67967cf3979688c6696e1f2cdcde7ea/py_key_value_aio-0.3.0.tar.gz", hash = "sha256:858e852fcf6d696d231266da66042d3355a7f9871650415feef9fca7a6cd4155", size = 50801 } +sdist = { url = "https://files.pythonhosted.org/packages/93/ce/3136b771dddf5ac905cc193b461eb67967cf3979688c6696e1f2cdcde7ea/py_key_value_aio-0.3.0.tar.gz", hash = "sha256:858e852fcf6d696d231266da66042d3355a7f9871650415feef9fca7a6cd4155", size = 50801, upload-time = "2025-11-17T16:50:04.711Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/99/10/72f6f213b8f0bce36eff21fda0a13271834e9eeff7f9609b01afdc253c79/py_key_value_aio-0.3.0-py3-none-any.whl", hash = "sha256:1c781915766078bfd608daa769fefb97e65d1d73746a3dfb640460e322071b64", size = 96342 }, + { url = "https://files.pythonhosted.org/packages/99/10/72f6f213b8f0bce36eff21fda0a13271834e9eeff7f9609b01afdc253c79/py_key_value_aio-0.3.0-py3-none-any.whl", hash = "sha256:1c781915766078bfd608daa769fefb97e65d1d73746a3dfb640460e322071b64", size = 96342, upload-time = "2025-11-17T16:50:03.801Z" }, ] [package.optional-dependencies] @@ -990,18 +1029,18 @@ dependencies = [ { name = "beartype" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7b/e4/1971dfc4620a3a15b4579fe99e024f5edd6e0967a71154771a059daff4db/py_key_value_shared-0.3.0.tar.gz", hash = "sha256:8fdd786cf96c3e900102945f92aa1473138ebe960ef49da1c833790160c28a4b", size = 11666 } +sdist = { url = "https://files.pythonhosted.org/packages/7b/e4/1971dfc4620a3a15b4579fe99e024f5edd6e0967a71154771a059daff4db/py_key_value_shared-0.3.0.tar.gz", hash = "sha256:8fdd786cf96c3e900102945f92aa1473138ebe960ef49da1c833790160c28a4b", size = 11666, upload-time = "2025-11-17T16:50:06.849Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/e4/b8b0a03ece72f47dce2307d36e1c34725b7223d209fc679315ffe6a4e2c3/py_key_value_shared-0.3.0-py3-none-any.whl", hash = "sha256:5b0efba7ebca08bb158b1e93afc2f07d30b8f40c2fc12ce24a4c0d84f42f9298", size = 19560 }, + { url = "https://files.pythonhosted.org/packages/51/e4/b8b0a03ece72f47dce2307d36e1c34725b7223d209fc679315ffe6a4e2c3/py_key_value_shared-0.3.0-py3-none-any.whl", hash = "sha256:5b0efba7ebca08bb158b1e93afc2f07d30b8f40c2fc12ce24a4c0d84f42f9298", size = 19560, upload-time = "2025-11-17T16:50:05.954Z" }, ] [[package]] name = "pycparser" version = "2.22" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736 } +sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload-time = "2024-03-30T13:22:22.564Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 }, + { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" }, ] [[package]] @@ -1014,9 +1053,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350 } +sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350, upload-time = "2025-06-14T08:33:17.137Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = 444782 }, + { url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = 444782, upload-time = "2025-06-14T08:33:14.905Z" }, ] [package.optional-dependencies] @@ -1031,84 +1070,84 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195 } +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195, upload-time = "2025-04-23T18:33:52.104Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/92/b31726561b5dae176c2d2c2dc43a9c5bfba5d32f96f8b4c0a600dd492447/pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8", size = 2028817 }, - { url = "https://files.pythonhosted.org/packages/a3/44/3f0b95fafdaca04a483c4e685fe437c6891001bf3ce8b2fded82b9ea3aa1/pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d", size = 1861357 }, - { url = "https://files.pythonhosted.org/packages/30/97/e8f13b55766234caae05372826e8e4b3b96e7b248be3157f53237682e43c/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0069c9acc3f3981b9ff4cdfaf088e98d83440a4c7ea1bc07460af3d4dc22e72d", size = 1898011 }, - { url = "https://files.pythonhosted.org/packages/9b/a3/99c48cf7bafc991cc3ee66fd544c0aae8dc907b752f1dad2d79b1b5a471f/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d53b22f2032c42eaaf025f7c40c2e3b94568ae077a606f006d206a463bc69572", size = 1982730 }, - { url = "https://files.pythonhosted.org/packages/de/8e/a5b882ec4307010a840fb8b58bd9bf65d1840c92eae7534c7441709bf54b/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0405262705a123b7ce9f0b92f123334d67b70fd1f20a9372b907ce1080c7ba02", size = 2136178 }, - { url = "https://files.pythonhosted.org/packages/e4/bb/71e35fc3ed05af6834e890edb75968e2802fe98778971ab5cba20a162315/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b25d91e288e2c4e0662b8038a28c6a07eaac3e196cfc4ff69de4ea3db992a1b", size = 2736462 }, - { url = "https://files.pythonhosted.org/packages/31/0d/c8f7593e6bc7066289bbc366f2235701dcbebcd1ff0ef8e64f6f239fb47d/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdfe4b3789761f3bcb4b1ddf33355a71079858958e3a552f16d5af19768fef2", size = 2005652 }, - { url = "https://files.pythonhosted.org/packages/d2/7a/996d8bd75f3eda405e3dd219ff5ff0a283cd8e34add39d8ef9157e722867/pydantic_core-2.33.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:efec8db3266b76ef9607c2c4c419bdb06bf335ae433b80816089ea7585816f6a", size = 2113306 }, - { url = "https://files.pythonhosted.org/packages/ff/84/daf2a6fb2db40ffda6578a7e8c5a6e9c8affb251a05c233ae37098118788/pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:031c57d67ca86902726e0fae2214ce6770bbe2f710dc33063187a68744a5ecac", size = 2073720 }, - { url = "https://files.pythonhosted.org/packages/77/fb/2258da019f4825128445ae79456a5499c032b55849dbd5bed78c95ccf163/pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:f8de619080e944347f5f20de29a975c2d815d9ddd8be9b9b7268e2e3ef68605a", size = 2244915 }, - { url = "https://files.pythonhosted.org/packages/d8/7a/925ff73756031289468326e355b6fa8316960d0d65f8b5d6b3a3e7866de7/pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73662edf539e72a9440129f231ed3757faab89630d291b784ca99237fb94db2b", size = 2241884 }, - { url = "https://files.pythonhosted.org/packages/0b/b0/249ee6d2646f1cdadcb813805fe76265745c4010cf20a8eba7b0e639d9b2/pydantic_core-2.33.2-cp310-cp310-win32.whl", hash = "sha256:0a39979dcbb70998b0e505fb1556a1d550a0781463ce84ebf915ba293ccb7e22", size = 1910496 }, - { url = "https://files.pythonhosted.org/packages/66/ff/172ba8f12a42d4b552917aa65d1f2328990d3ccfc01d5b7c943ec084299f/pydantic_core-2.33.2-cp310-cp310-win_amd64.whl", hash = "sha256:b0379a2b24882fef529ec3b4987cb5d003b9cda32256024e6fe1586ac45fc640", size = 1955019 }, - { url = "https://files.pythonhosted.org/packages/3f/8d/71db63483d518cbbf290261a1fc2839d17ff89fce7089e08cad07ccfce67/pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7", size = 2028584 }, - { url = "https://files.pythonhosted.org/packages/24/2f/3cfa7244ae292dd850989f328722d2aef313f74ffc471184dc509e1e4e5a/pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246", size = 1855071 }, - { url = "https://files.pythonhosted.org/packages/b3/d3/4ae42d33f5e3f50dd467761304be2fa0a9417fbf09735bc2cce003480f2a/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f", size = 1897823 }, - { url = "https://files.pythonhosted.org/packages/f4/f3/aa5976e8352b7695ff808599794b1fba2a9ae2ee954a3426855935799488/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc", size = 1983792 }, - { url = "https://files.pythonhosted.org/packages/d5/7a/cda9b5a23c552037717f2b2a5257e9b2bfe45e687386df9591eff7b46d28/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de", size = 2136338 }, - { url = "https://files.pythonhosted.org/packages/2b/9f/b8f9ec8dd1417eb9da784e91e1667d58a2a4a7b7b34cf4af765ef663a7e5/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a", size = 2730998 }, - { url = "https://files.pythonhosted.org/packages/47/bc/cd720e078576bdb8255d5032c5d63ee5c0bf4b7173dd955185a1d658c456/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef", size = 2003200 }, - { url = "https://files.pythonhosted.org/packages/ca/22/3602b895ee2cd29d11a2b349372446ae9727c32e78a94b3d588a40fdf187/pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e", size = 2113890 }, - { url = "https://files.pythonhosted.org/packages/ff/e6/e3c5908c03cf00d629eb38393a98fccc38ee0ce8ecce32f69fc7d7b558a7/pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d", size = 2073359 }, - { url = "https://files.pythonhosted.org/packages/12/e7/6a36a07c59ebefc8777d1ffdaf5ae71b06b21952582e4b07eba88a421c79/pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30", size = 2245883 }, - { url = "https://files.pythonhosted.org/packages/16/3f/59b3187aaa6cc0c1e6616e8045b284de2b6a87b027cce2ffcea073adf1d2/pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf", size = 2241074 }, - { url = "https://files.pythonhosted.org/packages/e0/ed/55532bb88f674d5d8f67ab121a2a13c385df382de2a1677f30ad385f7438/pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51", size = 1910538 }, - { url = "https://files.pythonhosted.org/packages/fe/1b/25b7cccd4519c0b23c2dd636ad39d381abf113085ce4f7bec2b0dc755eb1/pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab", size = 1952909 }, - { url = "https://files.pythonhosted.org/packages/49/a9/d809358e49126438055884c4366a1f6227f0f84f635a9014e2deb9b9de54/pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65", size = 1897786 }, - { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000 }, - { url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996 }, - { url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957 }, - { url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199 }, - { url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296 }, - { url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109 }, - { url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028 }, - { url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044 }, - { url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881 }, - { url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034 }, - { url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187 }, - { url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628 }, - { url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866 }, - { url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894 }, - { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688 }, - { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808 }, - { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580 }, - { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859 }, - { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810 }, - { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498 }, - { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611 }, - { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924 }, - { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196 }, - { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389 }, - { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223 }, - { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473 }, - { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269 }, - { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921 }, - { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162 }, - { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560 }, - { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777 }, - { url = "https://files.pythonhosted.org/packages/30/68/373d55e58b7e83ce371691f6eaa7175e3a24b956c44628eb25d7da007917/pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c4aa4e82353f65e548c476b37e64189783aa5384903bfea4f41580f255fddfa", size = 2023982 }, - { url = "https://files.pythonhosted.org/packages/a4/16/145f54ac08c96a63d8ed6442f9dec17b2773d19920b627b18d4f10a061ea/pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d946c8bf0d5c24bf4fe333af284c59a19358aa3ec18cb3dc4370080da1e8ad29", size = 1858412 }, - { url = "https://files.pythonhosted.org/packages/41/b1/c6dc6c3e2de4516c0bb2c46f6a373b91b5660312342a0cf5826e38ad82fa/pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87b31b6846e361ef83fedb187bb5b4372d0da3f7e28d85415efa92d6125d6e6d", size = 1892749 }, - { url = "https://files.pythonhosted.org/packages/12/73/8cd57e20afba760b21b742106f9dbdfa6697f1570b189c7457a1af4cd8a0/pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa9d91b338f2df0508606f7009fde642391425189bba6d8c653afd80fd6bb64e", size = 2067527 }, - { url = "https://files.pythonhosted.org/packages/e3/d5/0bb5d988cc019b3cba4a78f2d4b3854427fc47ee8ec8e9eaabf787da239c/pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2058a32994f1fde4ca0480ab9d1e75a0e8c87c22b53a3ae66554f9af78f2fe8c", size = 2108225 }, - { url = "https://files.pythonhosted.org/packages/f1/c5/00c02d1571913d496aabf146106ad8239dc132485ee22efe08085084ff7c/pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0e03262ab796d986f978f79c943fc5f620381be7287148b8010b4097f79a39ec", size = 2069490 }, - { url = "https://files.pythonhosted.org/packages/22/a8/dccc38768274d3ed3a59b5d06f59ccb845778687652daa71df0cab4040d7/pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1a8695a8d00c73e50bff9dfda4d540b7dee29ff9b8053e38380426a85ef10052", size = 2237525 }, - { url = "https://files.pythonhosted.org/packages/d4/e7/4f98c0b125dda7cf7ccd14ba936218397b44f50a56dd8c16a3091df116c3/pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fa754d1850735a0b0e03bcffd9d4b4343eb417e47196e4485d9cca326073a42c", size = 2238446 }, - { url = "https://files.pythonhosted.org/packages/ce/91/2ec36480fdb0b783cd9ef6795753c1dea13882f2e68e73bce76ae8c21e6a/pydantic_core-2.33.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a11c8d26a50bfab49002947d3d237abe4d9e4b5bdc8846a63537b6488e197808", size = 2066678 }, - { url = "https://files.pythonhosted.org/packages/7b/27/d4ae6487d73948d6f20dddcd94be4ea43e74349b56eba82e9bdee2d7494c/pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8", size = 2025200 }, - { url = "https://files.pythonhosted.org/packages/f1/b8/b3cb95375f05d33801024079b9392a5ab45267a63400bf1866e7ce0f0de4/pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593", size = 1859123 }, - { url = "https://files.pythonhosted.org/packages/05/bc/0d0b5adeda59a261cd30a1235a445bf55c7e46ae44aea28f7bd6ed46e091/pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612", size = 1892852 }, - { url = "https://files.pythonhosted.org/packages/3e/11/d37bdebbda2e449cb3f519f6ce950927b56d62f0b84fd9cb9e372a26a3d5/pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7", size = 2067484 }, - { url = "https://files.pythonhosted.org/packages/8c/55/1f95f0a05ce72ecb02a8a8a1c3be0579bbc29b1d5ab68f1378b7bebc5057/pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e", size = 2108896 }, - { url = "https://files.pythonhosted.org/packages/53/89/2b2de6c81fa131f423246a9109d7b2a375e83968ad0800d6e57d0574629b/pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8", size = 2069475 }, - { url = "https://files.pythonhosted.org/packages/b8/e9/1f7efbe20d0b2b10f6718944b5d8ece9152390904f29a78e68d4e7961159/pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf", size = 2239013 }, - { url = "https://files.pythonhosted.org/packages/3c/b2/5309c905a93811524a49b4e031e9851a6b00ff0fb668794472ea7746b448/pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb", size = 2238715 }, - { url = "https://files.pythonhosted.org/packages/32/56/8a7ca5d2cd2cda1d245d34b1c9a942920a718082ae8e54e5f3e5a58b7add/pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1", size = 2066757 }, + { url = "https://files.pythonhosted.org/packages/e5/92/b31726561b5dae176c2d2c2dc43a9c5bfba5d32f96f8b4c0a600dd492447/pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8", size = 2028817, upload-time = "2025-04-23T18:30:43.919Z" }, + { url = "https://files.pythonhosted.org/packages/a3/44/3f0b95fafdaca04a483c4e685fe437c6891001bf3ce8b2fded82b9ea3aa1/pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d", size = 1861357, upload-time = "2025-04-23T18:30:46.372Z" }, + { url = "https://files.pythonhosted.org/packages/30/97/e8f13b55766234caae05372826e8e4b3b96e7b248be3157f53237682e43c/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0069c9acc3f3981b9ff4cdfaf088e98d83440a4c7ea1bc07460af3d4dc22e72d", size = 1898011, upload-time = "2025-04-23T18:30:47.591Z" }, + { url = "https://files.pythonhosted.org/packages/9b/a3/99c48cf7bafc991cc3ee66fd544c0aae8dc907b752f1dad2d79b1b5a471f/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d53b22f2032c42eaaf025f7c40c2e3b94568ae077a606f006d206a463bc69572", size = 1982730, upload-time = "2025-04-23T18:30:49.328Z" }, + { url = "https://files.pythonhosted.org/packages/de/8e/a5b882ec4307010a840fb8b58bd9bf65d1840c92eae7534c7441709bf54b/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0405262705a123b7ce9f0b92f123334d67b70fd1f20a9372b907ce1080c7ba02", size = 2136178, upload-time = "2025-04-23T18:30:50.907Z" }, + { url = "https://files.pythonhosted.org/packages/e4/bb/71e35fc3ed05af6834e890edb75968e2802fe98778971ab5cba20a162315/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b25d91e288e2c4e0662b8038a28c6a07eaac3e196cfc4ff69de4ea3db992a1b", size = 2736462, upload-time = "2025-04-23T18:30:52.083Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/c8f7593e6bc7066289bbc366f2235701dcbebcd1ff0ef8e64f6f239fb47d/pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdfe4b3789761f3bcb4b1ddf33355a71079858958e3a552f16d5af19768fef2", size = 2005652, upload-time = "2025-04-23T18:30:53.389Z" }, + { url = "https://files.pythonhosted.org/packages/d2/7a/996d8bd75f3eda405e3dd219ff5ff0a283cd8e34add39d8ef9157e722867/pydantic_core-2.33.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:efec8db3266b76ef9607c2c4c419bdb06bf335ae433b80816089ea7585816f6a", size = 2113306, upload-time = "2025-04-23T18:30:54.661Z" }, + { url = "https://files.pythonhosted.org/packages/ff/84/daf2a6fb2db40ffda6578a7e8c5a6e9c8affb251a05c233ae37098118788/pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:031c57d67ca86902726e0fae2214ce6770bbe2f710dc33063187a68744a5ecac", size = 2073720, upload-time = "2025-04-23T18:30:56.11Z" }, + { url = "https://files.pythonhosted.org/packages/77/fb/2258da019f4825128445ae79456a5499c032b55849dbd5bed78c95ccf163/pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:f8de619080e944347f5f20de29a975c2d815d9ddd8be9b9b7268e2e3ef68605a", size = 2244915, upload-time = "2025-04-23T18:30:57.501Z" }, + { url = "https://files.pythonhosted.org/packages/d8/7a/925ff73756031289468326e355b6fa8316960d0d65f8b5d6b3a3e7866de7/pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73662edf539e72a9440129f231ed3757faab89630d291b784ca99237fb94db2b", size = 2241884, upload-time = "2025-04-23T18:30:58.867Z" }, + { url = "https://files.pythonhosted.org/packages/0b/b0/249ee6d2646f1cdadcb813805fe76265745c4010cf20a8eba7b0e639d9b2/pydantic_core-2.33.2-cp310-cp310-win32.whl", hash = "sha256:0a39979dcbb70998b0e505fb1556a1d550a0781463ce84ebf915ba293ccb7e22", size = 1910496, upload-time = "2025-04-23T18:31:00.078Z" }, + { url = "https://files.pythonhosted.org/packages/66/ff/172ba8f12a42d4b552917aa65d1f2328990d3ccfc01d5b7c943ec084299f/pydantic_core-2.33.2-cp310-cp310-win_amd64.whl", hash = "sha256:b0379a2b24882fef529ec3b4987cb5d003b9cda32256024e6fe1586ac45fc640", size = 1955019, upload-time = "2025-04-23T18:31:01.335Z" }, + { url = "https://files.pythonhosted.org/packages/3f/8d/71db63483d518cbbf290261a1fc2839d17ff89fce7089e08cad07ccfce67/pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7", size = 2028584, upload-time = "2025-04-23T18:31:03.106Z" }, + { url = "https://files.pythonhosted.org/packages/24/2f/3cfa7244ae292dd850989f328722d2aef313f74ffc471184dc509e1e4e5a/pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246", size = 1855071, upload-time = "2025-04-23T18:31:04.621Z" }, + { url = "https://files.pythonhosted.org/packages/b3/d3/4ae42d33f5e3f50dd467761304be2fa0a9417fbf09735bc2cce003480f2a/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f", size = 1897823, upload-time = "2025-04-23T18:31:06.377Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f3/aa5976e8352b7695ff808599794b1fba2a9ae2ee954a3426855935799488/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc", size = 1983792, upload-time = "2025-04-23T18:31:07.93Z" }, + { url = "https://files.pythonhosted.org/packages/d5/7a/cda9b5a23c552037717f2b2a5257e9b2bfe45e687386df9591eff7b46d28/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de", size = 2136338, upload-time = "2025-04-23T18:31:09.283Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/b8f9ec8dd1417eb9da784e91e1667d58a2a4a7b7b34cf4af765ef663a7e5/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a", size = 2730998, upload-time = "2025-04-23T18:31:11.7Z" }, + { url = "https://files.pythonhosted.org/packages/47/bc/cd720e078576bdb8255d5032c5d63ee5c0bf4b7173dd955185a1d658c456/pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef", size = 2003200, upload-time = "2025-04-23T18:31:13.536Z" }, + { url = "https://files.pythonhosted.org/packages/ca/22/3602b895ee2cd29d11a2b349372446ae9727c32e78a94b3d588a40fdf187/pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e", size = 2113890, upload-time = "2025-04-23T18:31:15.011Z" }, + { url = "https://files.pythonhosted.org/packages/ff/e6/e3c5908c03cf00d629eb38393a98fccc38ee0ce8ecce32f69fc7d7b558a7/pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d", size = 2073359, upload-time = "2025-04-23T18:31:16.393Z" }, + { url = "https://files.pythonhosted.org/packages/12/e7/6a36a07c59ebefc8777d1ffdaf5ae71b06b21952582e4b07eba88a421c79/pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30", size = 2245883, upload-time = "2025-04-23T18:31:17.892Z" }, + { url = "https://files.pythonhosted.org/packages/16/3f/59b3187aaa6cc0c1e6616e8045b284de2b6a87b027cce2ffcea073adf1d2/pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf", size = 2241074, upload-time = "2025-04-23T18:31:19.205Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ed/55532bb88f674d5d8f67ab121a2a13c385df382de2a1677f30ad385f7438/pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51", size = 1910538, upload-time = "2025-04-23T18:31:20.541Z" }, + { url = "https://files.pythonhosted.org/packages/fe/1b/25b7cccd4519c0b23c2dd636ad39d381abf113085ce4f7bec2b0dc755eb1/pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab", size = 1952909, upload-time = "2025-04-23T18:31:22.371Z" }, + { url = "https://files.pythonhosted.org/packages/49/a9/d809358e49126438055884c4366a1f6227f0f84f635a9014e2deb9b9de54/pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65", size = 1897786, upload-time = "2025-04-23T18:31:24.161Z" }, + { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000, upload-time = "2025-04-23T18:31:25.863Z" }, + { url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996, upload-time = "2025-04-23T18:31:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957, upload-time = "2025-04-23T18:31:28.956Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199, upload-time = "2025-04-23T18:31:31.025Z" }, + { url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296, upload-time = "2025-04-23T18:31:32.514Z" }, + { url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109, upload-time = "2025-04-23T18:31:33.958Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028, upload-time = "2025-04-23T18:31:39.095Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044, upload-time = "2025-04-23T18:31:41.034Z" }, + { url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881, upload-time = "2025-04-23T18:31:42.757Z" }, + { url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034, upload-time = "2025-04-23T18:31:44.304Z" }, + { url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187, upload-time = "2025-04-23T18:31:45.891Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628, upload-time = "2025-04-23T18:31:47.819Z" }, + { url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866, upload-time = "2025-04-23T18:31:49.635Z" }, + { url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894, upload-time = "2025-04-23T18:31:51.609Z" }, + { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688, upload-time = "2025-04-23T18:31:53.175Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808, upload-time = "2025-04-23T18:31:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580, upload-time = "2025-04-23T18:31:57.393Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859, upload-time = "2025-04-23T18:31:59.065Z" }, + { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810, upload-time = "2025-04-23T18:32:00.78Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498, upload-time = "2025-04-23T18:32:02.418Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611, upload-time = "2025-04-23T18:32:04.152Z" }, + { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924, upload-time = "2025-04-23T18:32:06.129Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196, upload-time = "2025-04-23T18:32:08.178Z" }, + { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389, upload-time = "2025-04-23T18:32:10.242Z" }, + { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223, upload-time = "2025-04-23T18:32:12.382Z" }, + { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473, upload-time = "2025-04-23T18:32:14.034Z" }, + { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269, upload-time = "2025-04-23T18:32:15.783Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921, upload-time = "2025-04-23T18:32:18.473Z" }, + { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162, upload-time = "2025-04-23T18:32:20.188Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560, upload-time = "2025-04-23T18:32:22.354Z" }, + { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777, upload-time = "2025-04-23T18:32:25.088Z" }, + { url = "https://files.pythonhosted.org/packages/30/68/373d55e58b7e83ce371691f6eaa7175e3a24b956c44628eb25d7da007917/pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c4aa4e82353f65e548c476b37e64189783aa5384903bfea4f41580f255fddfa", size = 2023982, upload-time = "2025-04-23T18:32:53.14Z" }, + { url = "https://files.pythonhosted.org/packages/a4/16/145f54ac08c96a63d8ed6442f9dec17b2773d19920b627b18d4f10a061ea/pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d946c8bf0d5c24bf4fe333af284c59a19358aa3ec18cb3dc4370080da1e8ad29", size = 1858412, upload-time = "2025-04-23T18:32:55.52Z" }, + { url = "https://files.pythonhosted.org/packages/41/b1/c6dc6c3e2de4516c0bb2c46f6a373b91b5660312342a0cf5826e38ad82fa/pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87b31b6846e361ef83fedb187bb5b4372d0da3f7e28d85415efa92d6125d6e6d", size = 1892749, upload-time = "2025-04-23T18:32:57.546Z" }, + { url = "https://files.pythonhosted.org/packages/12/73/8cd57e20afba760b21b742106f9dbdfa6697f1570b189c7457a1af4cd8a0/pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa9d91b338f2df0508606f7009fde642391425189bba6d8c653afd80fd6bb64e", size = 2067527, upload-time = "2025-04-23T18:32:59.771Z" }, + { url = "https://files.pythonhosted.org/packages/e3/d5/0bb5d988cc019b3cba4a78f2d4b3854427fc47ee8ec8e9eaabf787da239c/pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2058a32994f1fde4ca0480ab9d1e75a0e8c87c22b53a3ae66554f9af78f2fe8c", size = 2108225, upload-time = "2025-04-23T18:33:04.51Z" }, + { url = "https://files.pythonhosted.org/packages/f1/c5/00c02d1571913d496aabf146106ad8239dc132485ee22efe08085084ff7c/pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0e03262ab796d986f978f79c943fc5f620381be7287148b8010b4097f79a39ec", size = 2069490, upload-time = "2025-04-23T18:33:06.391Z" }, + { url = "https://files.pythonhosted.org/packages/22/a8/dccc38768274d3ed3a59b5d06f59ccb845778687652daa71df0cab4040d7/pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1a8695a8d00c73e50bff9dfda4d540b7dee29ff9b8053e38380426a85ef10052", size = 2237525, upload-time = "2025-04-23T18:33:08.44Z" }, + { url = "https://files.pythonhosted.org/packages/d4/e7/4f98c0b125dda7cf7ccd14ba936218397b44f50a56dd8c16a3091df116c3/pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fa754d1850735a0b0e03bcffd9d4b4343eb417e47196e4485d9cca326073a42c", size = 2238446, upload-time = "2025-04-23T18:33:10.313Z" }, + { url = "https://files.pythonhosted.org/packages/ce/91/2ec36480fdb0b783cd9ef6795753c1dea13882f2e68e73bce76ae8c21e6a/pydantic_core-2.33.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a11c8d26a50bfab49002947d3d237abe4d9e4b5bdc8846a63537b6488e197808", size = 2066678, upload-time = "2025-04-23T18:33:12.224Z" }, + { url = "https://files.pythonhosted.org/packages/7b/27/d4ae6487d73948d6f20dddcd94be4ea43e74349b56eba82e9bdee2d7494c/pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8", size = 2025200, upload-time = "2025-04-23T18:33:14.199Z" }, + { url = "https://files.pythonhosted.org/packages/f1/b8/b3cb95375f05d33801024079b9392a5ab45267a63400bf1866e7ce0f0de4/pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593", size = 1859123, upload-time = "2025-04-23T18:33:16.555Z" }, + { url = "https://files.pythonhosted.org/packages/05/bc/0d0b5adeda59a261cd30a1235a445bf55c7e46ae44aea28f7bd6ed46e091/pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612", size = 1892852, upload-time = "2025-04-23T18:33:18.513Z" }, + { url = "https://files.pythonhosted.org/packages/3e/11/d37bdebbda2e449cb3f519f6ce950927b56d62f0b84fd9cb9e372a26a3d5/pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7", size = 2067484, upload-time = "2025-04-23T18:33:20.475Z" }, + { url = "https://files.pythonhosted.org/packages/8c/55/1f95f0a05ce72ecb02a8a8a1c3be0579bbc29b1d5ab68f1378b7bebc5057/pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e", size = 2108896, upload-time = "2025-04-23T18:33:22.501Z" }, + { url = "https://files.pythonhosted.org/packages/53/89/2b2de6c81fa131f423246a9109d7b2a375e83968ad0800d6e57d0574629b/pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8", size = 2069475, upload-time = "2025-04-23T18:33:24.528Z" }, + { url = "https://files.pythonhosted.org/packages/b8/e9/1f7efbe20d0b2b10f6718944b5d8ece9152390904f29a78e68d4e7961159/pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf", size = 2239013, upload-time = "2025-04-23T18:33:26.621Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/5309c905a93811524a49b4e031e9851a6b00ff0fb668794472ea7746b448/pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb", size = 2238715, upload-time = "2025-04-23T18:33:28.656Z" }, + { url = "https://files.pythonhosted.org/packages/32/56/8a7ca5d2cd2cda1d245d34b1c9a942920a718082ae8e54e5f3e5a58b7add/pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1", size = 2066757, upload-time = "2025-04-23T18:33:30.645Z" }, ] [[package]] @@ -1120,9 +1159,9 @@ dependencies = [ { name = "python-dotenv" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee", size = 172583 } +sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee", size = 172583, upload-time = "2025-06-24T13:26:46.841Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796", size = 45235 }, + { url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796", size = 45235, upload-time = "2025-06-24T13:26:45.485Z" }, ] [[package]] @@ -1144,27 +1183,27 @@ dependencies = [ { name = "typer" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/86/77/842e41be3cf3592b971cf42b24cae76e282294f474dc2dbf7cd6808d1b09/pydocket-0.15.5.tar.gz", hash = "sha256:b3af47702a293dd1da2e5e0f8f73f27fd3b3c95e36de72a2f71026d16908d5ba", size = 277245 } +sdist = { url = "https://files.pythonhosted.org/packages/86/77/842e41be3cf3592b971cf42b24cae76e282294f474dc2dbf7cd6808d1b09/pydocket-0.15.5.tar.gz", hash = "sha256:b3af47702a293dd1da2e5e0f8f73f27fd3b3c95e36de72a2f71026d16908d5ba", size = 277245, upload-time = "2025-12-12T22:28:47.32Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/c0/fdbc6e04e3369b90c6bf6567bc62871cf59e88550b94529821500dc807c1/pydocket-0.15.5-py3-none-any.whl", hash = "sha256:ad0d86c9a1bea394e875bcf8c793be2d0a7ebd1891bfe99e2e9eaf99ef0cb42e", size = 58517 }, + { url = "https://files.pythonhosted.org/packages/e5/c0/fdbc6e04e3369b90c6bf6567bc62871cf59e88550b94529821500dc807c1/pydocket-0.15.5-py3-none-any.whl", hash = "sha256:ad0d86c9a1bea394e875bcf8c793be2d0a7ebd1891bfe99e2e9eaf99ef0cb42e", size = 58517, upload-time = "2025-12-12T22:28:45.598Z" }, ] [[package]] name = "pygments" version = "2.19.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631 } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217 }, + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, ] [[package]] name = "pyjwt" version = "2.10.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785 } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997 }, + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, ] [package.optional-dependencies] @@ -1176,33 +1215,33 @@ crypto = [ name = "pyperclip" version = "1.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/23/2f0a3efc4d6a32f3b63cdff36cd398d9701d26cda58e3ab97ac79fb5e60d/pyperclip-1.9.0.tar.gz", hash = "sha256:b7de0142ddc81bfc5c7507eea19da920b92252b548b96186caf94a5e2527d310", size = 20961 } +sdist = { url = "https://files.pythonhosted.org/packages/30/23/2f0a3efc4d6a32f3b63cdff36cd398d9701d26cda58e3ab97ac79fb5e60d/pyperclip-1.9.0.tar.gz", hash = "sha256:b7de0142ddc81bfc5c7507eea19da920b92252b548b96186caf94a5e2527d310", size = 20961, upload-time = "2024-06-18T20:38:48.401Z" } [[package]] name = "python-dotenv" version = "1.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978 } +sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978, upload-time = "2025-06-24T04:21:07.341Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556 }, + { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556, upload-time = "2025-06-24T04:21:06.073Z" }, ] [[package]] name = "python-json-logger" version = "4.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/29/bf/eca6a3d43db1dae7070f70e160ab20b807627ba953663ba07928cdd3dc58/python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f", size = 17683 } +sdist = { url = "https://files.pythonhosted.org/packages/29/bf/eca6a3d43db1dae7070f70e160ab20b807627ba953663ba07928cdd3dc58/python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f", size = 17683, upload-time = "2025-10-06T04:15:18.984Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/e5/fecf13f06e5e5f67e8837d777d1bc43fac0ed2b77a676804df5c34744727/python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2", size = 15548 }, + { url = "https://files.pythonhosted.org/packages/51/e5/fecf13f06e5e5f67e8837d777d1bc43fac0ed2b77a676804df5c34744727/python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2", size = 15548, upload-time = "2025-10-06T04:15:17.553Z" }, ] [[package]] name = "python-multipart" -version = "0.0.20" +version = "0.0.22" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/87/f44d7c9f274c7ee665a29b885ec97089ec5dc034c7f3fafa03da9e39a09e/python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13", size = 37158 } +sdist = { url = "https://files.pythonhosted.org/packages/94/01/979e98d542a70714b0cb2b6728ed0b7c46792b695e3eaec3e20711271ca3/python_multipart-0.0.22.tar.gz", hash = "sha256:7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58", size = 37612, upload-time = "2026-01-25T10:15:56.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/45/58/38b5afbc1a800eeea951b9285d3912613f2603bdf897a4ab0f4bd7f405fc/python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104", size = 24546 }, + { url = "https://files.pythonhosted.org/packages/1b/d0/397f9626e711ff749a95d96b7af99b9c566a9bb5129b8e4c10fc4d100304/python_multipart-0.0.22-py3-none-any.whl", hash = "sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155", size = 24579, upload-time = "2026-01-25T10:15:54.811Z" }, ] [[package]] @@ -1210,74 +1249,74 @@ name = "pywin32" version = "311" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/40/44efbb0dfbd33aca6a6483191dae0716070ed99e2ecb0c53683f400a0b4f/pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3", size = 8760432 }, - { url = "https://files.pythonhosted.org/packages/5e/bf/360243b1e953bd254a82f12653974be395ba880e7ec23e3731d9f73921cc/pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b", size = 9590103 }, - { url = "https://files.pythonhosted.org/packages/57/38/d290720e6f138086fb3d5ffe0b6caa019a791dd57866940c82e4eeaf2012/pywin32-311-cp310-cp310-win_arm64.whl", hash = "sha256:0502d1facf1fed4839a9a51ccbcc63d952cf318f78ffc00a7e78528ac27d7a2b", size = 8778557 }, - { url = "https://files.pythonhosted.org/packages/7c/af/449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3/pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151", size = 8697031 }, - { url = "https://files.pythonhosted.org/packages/51/8f/9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364/pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503", size = 9508308 }, - { url = "https://files.pythonhosted.org/packages/44/7b/9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c/pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2", size = 8703930 }, - { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543 }, - { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040 }, - { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102 }, - { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700 }, - { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700 }, - { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318 }, - { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714 }, - { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800 }, - { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540 }, + { url = "https://files.pythonhosted.org/packages/7b/40/44efbb0dfbd33aca6a6483191dae0716070ed99e2ecb0c53683f400a0b4f/pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3", size = 8760432, upload-time = "2025-07-14T20:13:05.9Z" }, + { url = "https://files.pythonhosted.org/packages/5e/bf/360243b1e953bd254a82f12653974be395ba880e7ec23e3731d9f73921cc/pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b", size = 9590103, upload-time = "2025-07-14T20:13:07.698Z" }, + { url = "https://files.pythonhosted.org/packages/57/38/d290720e6f138086fb3d5ffe0b6caa019a791dd57866940c82e4eeaf2012/pywin32-311-cp310-cp310-win_arm64.whl", hash = "sha256:0502d1facf1fed4839a9a51ccbcc63d952cf318f78ffc00a7e78528ac27d7a2b", size = 8778557, upload-time = "2025-07-14T20:13:11.11Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3/pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151", size = 8697031, upload-time = "2025-07-14T20:13:13.266Z" }, + { url = "https://files.pythonhosted.org/packages/51/8f/9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364/pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503", size = 9508308, upload-time = "2025-07-14T20:13:15.147Z" }, + { url = "https://files.pythonhosted.org/packages/44/7b/9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c/pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2", size = 8703930, upload-time = "2025-07-14T20:13:16.945Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload-time = "2025-07-14T20:13:26.471Z" }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload-time = "2025-07-14T20:13:28.243Z" }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload-time = "2025-07-14T20:13:30.348Z" }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload-time = "2025-07-14T20:13:32.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload-time = "2025-07-14T20:13:34.312Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, ] [[package]] name = "pywin32-ctypes" version = "0.2.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471 } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload-time = "2024-08-14T10:15:34.626Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756 }, + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" }, ] [[package]] name = "pyyaml" version = "6.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199 }, - { url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758 }, - { url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463 }, - { url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280 }, - { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239 }, - { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802 }, - { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527 }, - { url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052 }, - { url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774 }, - { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 }, - { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 }, - { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 }, - { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167 }, - { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 }, - { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 }, - { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 }, - { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850 }, - { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980 }, - { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, - { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, - { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, - { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, - { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, - { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, - { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, - { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, - { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, - { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, - { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, - { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, - { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, - { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, - { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, - { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, - { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, - { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, + { url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199, upload-time = "2024-08-06T20:31:40.178Z" }, + { url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758, upload-time = "2024-08-06T20:31:42.173Z" }, + { url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463, upload-time = "2024-08-06T20:31:44.263Z" }, + { url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280, upload-time = "2024-08-06T20:31:50.199Z" }, + { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239, upload-time = "2024-08-06T20:31:52.292Z" }, + { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802, upload-time = "2024-08-06T20:31:53.836Z" }, + { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527, upload-time = "2024-08-06T20:31:55.565Z" }, + { url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052, upload-time = "2024-08-06T20:31:56.914Z" }, + { url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774, upload-time = "2024-08-06T20:31:58.304Z" }, + { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612, upload-time = "2024-08-06T20:32:03.408Z" }, + { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040, upload-time = "2024-08-06T20:32:04.926Z" }, + { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829, upload-time = "2024-08-06T20:32:06.459Z" }, + { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167, upload-time = "2024-08-06T20:32:08.338Z" }, + { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952, upload-time = "2024-08-06T20:32:14.124Z" }, + { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301, upload-time = "2024-08-06T20:32:16.17Z" }, + { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638, upload-time = "2024-08-06T20:32:18.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850, upload-time = "2024-08-06T20:32:19.889Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980, upload-time = "2024-08-06T20:32:21.273Z" }, + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873, upload-time = "2024-08-06T20:32:25.131Z" }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302, upload-time = "2024-08-06T20:32:26.511Z" }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154, upload-time = "2024-08-06T20:32:28.363Z" }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223, upload-time = "2024-08-06T20:32:30.058Z" }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542, upload-time = "2024-08-06T20:32:31.881Z" }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164, upload-time = "2024-08-06T20:32:37.083Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611, upload-time = "2024-08-06T20:32:38.898Z" }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591, upload-time = "2024-08-06T20:32:40.241Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338, upload-time = "2024-08-06T20:32:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309, upload-time = "2024-08-06T20:32:43.4Z" }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679, upload-time = "2024-08-06T20:32:44.801Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428, upload-time = "2024-08-06T20:32:46.432Z" }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361, upload-time = "2024-08-06T20:32:51.188Z" }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523, upload-time = "2024-08-06T20:32:53.019Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660, upload-time = "2024-08-06T20:32:54.708Z" }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597, upload-time = "2024-08-06T20:32:56.985Z" }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527, upload-time = "2024-08-06T20:33:03.001Z" }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446, upload-time = "2024-08-06T20:33:04.33Z" }, ] [[package]] @@ -1312,9 +1351,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "async-timeout", marker = "python_full_version < '3.11.3'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/43/c8/983d5c6579a411d8a99bc5823cc5712768859b5ce2c8afe1a65b37832c81/redis-7.1.0.tar.gz", hash = "sha256:b1cc3cfa5a2cb9c2ab3ba700864fb0ad75617b41f01352ce5779dabf6d5f9c3c", size = 4796669 } +sdist = { url = "https://files.pythonhosted.org/packages/43/c8/983d5c6579a411d8a99bc5823cc5712768859b5ce2c8afe1a65b37832c81/redis-7.1.0.tar.gz", hash = "sha256:b1cc3cfa5a2cb9c2ab3ba700864fb0ad75617b41f01352ce5779dabf6d5f9c3c", size = 4796669, upload-time = "2025-11-19T15:54:39.961Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/89/f0/8956f8a86b20d7bb9d6ac0187cf4cd54d8065bc9a1a09eb8011d4d326596/redis-7.1.0-py3-none-any.whl", hash = "sha256:23c52b208f92b56103e17c5d06bdc1a6c2c0b3106583985a76a18f83b265de2b", size = 354159 }, + { url = "https://files.pythonhosted.org/packages/89/f0/8956f8a86b20d7bb9d6ac0187cf4cd54d8065bc9a1a09eb8011d4d326596/redis-7.1.0-py3-none-any.whl", hash = "sha256:23c52b208f92b56103e17c5d06bdc1a6c2c0b3106583985a76a18f83b265de2b", size = 354159, upload-time = "2025-11-19T15:54:38.064Z" }, ] [[package]] @@ -1326,9 +1365,9 @@ dependencies = [ { name = "rpds-py" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744 } +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload-time = "2025-01-25T08:48:16.138Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775 }, + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload-time = "2025-01-25T08:48:14.241Z" }, ] [[package]] @@ -1341,9 +1380,9 @@ dependencies = [ { name = "idna" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517 } +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738 }, + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, ] [[package]] @@ -1354,9 +1393,9 @@ dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b/rich-14.1.0.tar.gz", hash = "sha256:e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8", size = 224441 } +sdist = { url = "https://files.pythonhosted.org/packages/fe/75/af448d8e52bf1d8fa6a9d089ca6c07ff4453d86c65c145d0a300bb073b9b/rich-14.1.0.tar.gz", hash = "sha256:e497a48b844b0320d45007cdebfeaeed8db2a4f4bcf49f15e455cfc4af11eaa8", size = 224441, upload-time = "2025-07-25T07:32:58.125Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/30/3c4d035596d3cf444529e0b2953ad0466f6049528a879d27534700580395/rich-14.1.0-py3-none-any.whl", hash = "sha256:536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f", size = 243368 }, + { url = "https://files.pythonhosted.org/packages/e3/30/3c4d035596d3cf444529e0b2953ad0466f6049528a879d27534700580395/rich-14.1.0-py3-none-any.whl", hash = "sha256:536f5f1785986d6dbdea3c75205c473f970777b4a0d6c6dd1b696aa05a3fa04f", size = 243368, upload-time = "2025-07-25T07:32:56.73Z" }, ] [[package]] @@ -1367,144 +1406,144 @@ dependencies = [ { name = "docutils" }, { name = "rich" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b0/69/5514c3a87b5f10f09a34bb011bc0927bc12c596c8dae5915604e71abc386/rich_rst-1.3.1.tar.gz", hash = "sha256:fad46e3ba42785ea8c1785e2ceaa56e0ffa32dbe5410dec432f37e4107c4f383", size = 13839 } +sdist = { url = "https://files.pythonhosted.org/packages/b0/69/5514c3a87b5f10f09a34bb011bc0927bc12c596c8dae5915604e71abc386/rich_rst-1.3.1.tar.gz", hash = "sha256:fad46e3ba42785ea8c1785e2ceaa56e0ffa32dbe5410dec432f37e4107c4f383", size = 13839, upload-time = "2024-04-30T04:40:38.125Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/bc/cc4e3dbc5e7992398dcb7a8eda0cbcf4fb792a0cdb93f857b478bf3cf884/rich_rst-1.3.1-py3-none-any.whl", hash = "sha256:498a74e3896507ab04492d326e794c3ef76e7cda078703aa592d1853d91098c1", size = 11621 }, + { url = "https://files.pythonhosted.org/packages/fd/bc/cc4e3dbc5e7992398dcb7a8eda0cbcf4fb792a0cdb93f857b478bf3cf884/rich_rst-1.3.1-py3-none-any.whl", hash = "sha256:498a74e3896507ab04492d326e794c3ef76e7cda078703aa592d1853d91098c1", size = 11621, upload-time = "2024-04-30T04:40:32.619Z" }, ] [[package]] name = "rpds-py" version = "0.27.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e9/dd/2c0cbe774744272b0ae725f44032c77bdcab6e8bcf544bffa3b6e70c8dba/rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8", size = 27479 } +sdist = { url = "https://files.pythonhosted.org/packages/e9/dd/2c0cbe774744272b0ae725f44032c77bdcab6e8bcf544bffa3b6e70c8dba/rpds_py-0.27.1.tar.gz", hash = "sha256:26a1c73171d10b7acccbded82bf6a586ab8203601e565badc74bbbf8bc5a10f8", size = 27479, upload-time = "2025-08-27T12:16:36.024Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/ed/3aef893e2dd30e77e35d20d4ddb45ca459db59cead748cad9796ad479411/rpds_py-0.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:68afeec26d42ab3b47e541b272166a0b4400313946871cba3ed3a4fc0cab1cef", size = 371606 }, - { url = "https://files.pythonhosted.org/packages/6d/82/9818b443e5d3eb4c83c3994561387f116aae9833b35c484474769c4a8faf/rpds_py-0.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74e5b2f7bb6fa38b1b10546d27acbacf2a022a8b5543efb06cfebc72a59c85be", size = 353452 }, - { url = "https://files.pythonhosted.org/packages/99/c7/d2a110ffaaa397fc6793a83c7bd3545d9ab22658b7cdff05a24a4535cc45/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9024de74731df54546fab0bfbcdb49fae19159ecaecfc8f37c18d2c7e2c0bd61", size = 381519 }, - { url = "https://files.pythonhosted.org/packages/5a/bc/e89581d1f9d1be7d0247eaef602566869fdc0d084008ba139e27e775366c/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:31d3ebadefcd73b73928ed0b2fd696f7fefda8629229f81929ac9c1854d0cffb", size = 394424 }, - { url = "https://files.pythonhosted.org/packages/ac/2e/36a6861f797530e74bb6ed53495f8741f1ef95939eed01d761e73d559067/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2e7f8f169d775dd9092a1743768d771f1d1300453ddfe6325ae3ab5332b4657", size = 523467 }, - { url = "https://files.pythonhosted.org/packages/c4/59/c1bc2be32564fa499f988f0a5c6505c2f4746ef96e58e4d7de5cf923d77e/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d905d16f77eb6ab2e324e09bfa277b4c8e5e6b8a78a3e7ff8f3cdf773b4c013", size = 402660 }, - { url = "https://files.pythonhosted.org/packages/0a/ec/ef8bf895f0628dd0a59e54d81caed6891663cb9c54a0f4bb7da918cb88cf/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50c946f048209e6362e22576baea09193809f87687a95a8db24e5fbdb307b93a", size = 384062 }, - { url = "https://files.pythonhosted.org/packages/69/f7/f47ff154be8d9a5e691c083a920bba89cef88d5247c241c10b9898f595a1/rpds_py-0.27.1-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:3deab27804d65cd8289eb814c2c0e807c4b9d9916c9225e363cb0cf875eb67c1", size = 401289 }, - { url = "https://files.pythonhosted.org/packages/3b/d9/ca410363efd0615814ae579f6829cafb39225cd63e5ea5ed1404cb345293/rpds_py-0.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8b61097f7488de4be8244c89915da8ed212832ccf1e7c7753a25a394bf9b1f10", size = 417718 }, - { url = "https://files.pythonhosted.org/packages/e3/a0/8cb5c2ff38340f221cc067cc093d1270e10658ba4e8d263df923daa18e86/rpds_py-0.27.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8a3f29aba6e2d7d90528d3c792555a93497fe6538aa65eb675b44505be747808", size = 558333 }, - { url = "https://files.pythonhosted.org/packages/6f/8c/1b0de79177c5d5103843774ce12b84caa7164dfc6cd66378768d37db11bf/rpds_py-0.27.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dd6cd0485b7d347304067153a6dc1d73f7d4fd995a396ef32a24d24b8ac63ac8", size = 589127 }, - { url = "https://files.pythonhosted.org/packages/c8/5e/26abb098d5e01266b0f3a2488d299d19ccc26849735d9d2b95c39397e945/rpds_py-0.27.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6f4461bf931108c9fa226ffb0e257c1b18dc2d44cd72b125bec50ee0ab1248a9", size = 554899 }, - { url = "https://files.pythonhosted.org/packages/de/41/905cc90ced13550db017f8f20c6d8e8470066c5738ba480d7ba63e3d136b/rpds_py-0.27.1-cp310-cp310-win32.whl", hash = "sha256:ee5422d7fb21f6a00c1901bf6559c49fee13a5159d0288320737bbf6585bd3e4", size = 217450 }, - { url = "https://files.pythonhosted.org/packages/75/3d/6bef47b0e253616ccdf67c283e25f2d16e18ccddd38f92af81d5a3420206/rpds_py-0.27.1-cp310-cp310-win_amd64.whl", hash = "sha256:3e039aabf6d5f83c745d5f9a0a381d031e9ed871967c0a5c38d201aca41f3ba1", size = 228447 }, - { url = "https://files.pythonhosted.org/packages/b5/c1/7907329fbef97cbd49db6f7303893bd1dd5a4a3eae415839ffdfb0762cae/rpds_py-0.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:be898f271f851f68b318872ce6ebebbc62f303b654e43bf72683dbdc25b7c881", size = 371063 }, - { url = "https://files.pythonhosted.org/packages/11/94/2aab4bc86228bcf7c48760990273653a4900de89c7537ffe1b0d6097ed39/rpds_py-0.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:62ac3d4e3e07b58ee0ddecd71d6ce3b1637de2d373501412df395a0ec5f9beb5", size = 353210 }, - { url = "https://files.pythonhosted.org/packages/3a/57/f5eb3ecf434342f4f1a46009530e93fd201a0b5b83379034ebdb1d7c1a58/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4708c5c0ceb2d034f9991623631d3d23cb16e65c83736ea020cdbe28d57c0a0e", size = 381636 }, - { url = "https://files.pythonhosted.org/packages/ae/f4/ef95c5945e2ceb5119571b184dd5a1cc4b8541bbdf67461998cfeac9cb1e/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:abfa1171a9952d2e0002aba2ad3780820b00cc3d9c98c6630f2e93271501f66c", size = 394341 }, - { url = "https://files.pythonhosted.org/packages/5a/7e/4bd610754bf492d398b61725eb9598ddd5eb86b07d7d9483dbcd810e20bc/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b507d19f817ebaca79574b16eb2ae412e5c0835542c93fe9983f1e432aca195", size = 523428 }, - { url = "https://files.pythonhosted.org/packages/9f/e5/059b9f65a8c9149361a8b75094864ab83b94718344db511fd6117936ed2a/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168b025f8fd8d8d10957405f3fdcef3dc20f5982d398f90851f4abc58c566c52", size = 402923 }, - { url = "https://files.pythonhosted.org/packages/f5/48/64cabb7daced2968dd08e8a1b7988bf358d7bd5bcd5dc89a652f4668543c/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb56c6210ef77caa58e16e8c17d35c63fe3f5b60fd9ba9d424470c3400bcf9ed", size = 384094 }, - { url = "https://files.pythonhosted.org/packages/ae/e1/dc9094d6ff566bff87add8a510c89b9e158ad2ecd97ee26e677da29a9e1b/rpds_py-0.27.1-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:d252f2d8ca0195faa707f8eb9368955760880b2b42a8ee16d382bf5dd807f89a", size = 401093 }, - { url = "https://files.pythonhosted.org/packages/37/8e/ac8577e3ecdd5593e283d46907d7011618994e1d7ab992711ae0f78b9937/rpds_py-0.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6e5e54da1e74b91dbc7996b56640f79b195d5925c2b78efaa8c5d53e1d88edde", size = 417969 }, - { url = "https://files.pythonhosted.org/packages/66/6d/87507430a8f74a93556fe55c6485ba9c259949a853ce407b1e23fea5ba31/rpds_py-0.27.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ffce0481cc6e95e5b3f0a47ee17ffbd234399e6d532f394c8dce320c3b089c21", size = 558302 }, - { url = "https://files.pythonhosted.org/packages/3a/bb/1db4781ce1dda3eecc735e3152659a27b90a02ca62bfeea17aee45cc0fbc/rpds_py-0.27.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a205fdfe55c90c2cd8e540ca9ceba65cbe6629b443bc05db1f590a3db8189ff9", size = 589259 }, - { url = "https://files.pythonhosted.org/packages/7b/0e/ae1c8943d11a814d01b482e1f8da903f88047a962dff9bbdadf3bd6e6fd1/rpds_py-0.27.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:689fb5200a749db0415b092972e8eba85847c23885c8543a8b0f5c009b1a5948", size = 554983 }, - { url = "https://files.pythonhosted.org/packages/b2/d5/0b2a55415931db4f112bdab072443ff76131b5ac4f4dc98d10d2d357eb03/rpds_py-0.27.1-cp311-cp311-win32.whl", hash = "sha256:3182af66048c00a075010bc7f4860f33913528a4b6fc09094a6e7598e462fe39", size = 217154 }, - { url = "https://files.pythonhosted.org/packages/24/75/3b7ffe0d50dc86a6a964af0d1cc3a4a2cdf437cb7b099a4747bbb96d1819/rpds_py-0.27.1-cp311-cp311-win_amd64.whl", hash = "sha256:b4938466c6b257b2f5c4ff98acd8128ec36b5059e5c8f8372d79316b1c36bb15", size = 228627 }, - { url = "https://files.pythonhosted.org/packages/8d/3f/4fd04c32abc02c710f09a72a30c9a55ea3cc154ef8099078fd50a0596f8e/rpds_py-0.27.1-cp311-cp311-win_arm64.whl", hash = "sha256:2f57af9b4d0793e53266ee4325535a31ba48e2f875da81a9177c9926dfa60746", size = 220998 }, - { url = "https://files.pythonhosted.org/packages/bd/fe/38de28dee5df58b8198c743fe2bea0c785c6d40941b9950bac4cdb71a014/rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90", size = 361887 }, - { url = "https://files.pythonhosted.org/packages/7c/9a/4b6c7eedc7dd90986bf0fab6ea2a091ec11c01b15f8ba0a14d3f80450468/rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5", size = 345795 }, - { url = "https://files.pythonhosted.org/packages/6f/0e/e650e1b81922847a09cca820237b0edee69416a01268b7754d506ade11ad/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e", size = 385121 }, - { url = "https://files.pythonhosted.org/packages/1b/ea/b306067a712988e2bff00dcc7c8f31d26c29b6d5931b461aa4b60a013e33/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881", size = 398976 }, - { url = "https://files.pythonhosted.org/packages/2c/0a/26dc43c8840cb8fe239fe12dbc8d8de40f2365e838f3d395835dde72f0e5/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec", size = 525953 }, - { url = "https://files.pythonhosted.org/packages/22/14/c85e8127b573aaf3a0cbd7fbb8c9c99e735a4a02180c84da2a463b766e9e/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb", size = 407915 }, - { url = "https://files.pythonhosted.org/packages/ed/7b/8f4fee9ba1fb5ec856eb22d725a4efa3deb47f769597c809e03578b0f9d9/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5", size = 386883 }, - { url = "https://files.pythonhosted.org/packages/86/47/28fa6d60f8b74fcdceba81b272f8d9836ac0340570f68f5df6b41838547b/rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a", size = 405699 }, - { url = "https://files.pythonhosted.org/packages/d0/fd/c5987b5e054548df56953a21fe2ebed51fc1ec7c8f24fd41c067b68c4a0a/rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444", size = 423713 }, - { url = "https://files.pythonhosted.org/packages/ac/ba/3c4978b54a73ed19a7d74531be37a8bcc542d917c770e14d372b8daea186/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a", size = 562324 }, - { url = "https://files.pythonhosted.org/packages/b5/6c/6943a91768fec16db09a42b08644b960cff540c66aab89b74be6d4a144ba/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1", size = 593646 }, - { url = "https://files.pythonhosted.org/packages/11/73/9d7a8f4be5f4396f011a6bb7a19fe26303a0dac9064462f5651ced2f572f/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998", size = 558137 }, - { url = "https://files.pythonhosted.org/packages/6e/96/6772cbfa0e2485bcceef8071de7821f81aeac8bb45fbfd5542a3e8108165/rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39", size = 221343 }, - { url = "https://files.pythonhosted.org/packages/67/b6/c82f0faa9af1c6a64669f73a17ee0eeef25aff30bb9a1c318509efe45d84/rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594", size = 232497 }, - { url = "https://files.pythonhosted.org/packages/e1/96/2817b44bd2ed11aebacc9251da03689d56109b9aba5e311297b6902136e2/rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502", size = 222790 }, - { url = "https://files.pythonhosted.org/packages/cc/77/610aeee8d41e39080c7e14afa5387138e3c9fa9756ab893d09d99e7d8e98/rpds_py-0.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e4b9fcfbc021633863a37e92571d6f91851fa656f0180246e84cbd8b3f6b329b", size = 361741 }, - { url = "https://files.pythonhosted.org/packages/3a/fc/c43765f201c6a1c60be2043cbdb664013def52460a4c7adace89d6682bf4/rpds_py-0.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1441811a96eadca93c517d08df75de45e5ffe68aa3089924f963c782c4b898cf", size = 345574 }, - { url = "https://files.pythonhosted.org/packages/20/42/ee2b2ca114294cd9847d0ef9c26d2b0851b2e7e00bf14cc4c0b581df0fc3/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55266dafa22e672f5a4f65019015f90336ed31c6383bd53f5e7826d21a0e0b83", size = 385051 }, - { url = "https://files.pythonhosted.org/packages/fd/e8/1e430fe311e4799e02e2d1af7c765f024e95e17d651612425b226705f910/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d78827d7ac08627ea2c8e02c9e5b41180ea5ea1f747e9db0915e3adf36b62dcf", size = 398395 }, - { url = "https://files.pythonhosted.org/packages/82/95/9dc227d441ff2670651c27a739acb2535ccaf8b351a88d78c088965e5996/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae92443798a40a92dc5f0b01d8a7c93adde0c4dc965310a29ae7c64d72b9fad2", size = 524334 }, - { url = "https://files.pythonhosted.org/packages/87/01/a670c232f401d9ad461d9a332aa4080cd3cb1d1df18213dbd0d2a6a7ab51/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c46c9dd2403b66a2a3b9720ec4b74d4ab49d4fabf9f03dfdce2d42af913fe8d0", size = 407691 }, - { url = "https://files.pythonhosted.org/packages/03/36/0a14aebbaa26fe7fab4780c76f2239e76cc95a0090bdb25e31d95c492fcd/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2efe4eb1d01b7f5f1939f4ef30ecea6c6b3521eec451fb93191bf84b2a522418", size = 386868 }, - { url = "https://files.pythonhosted.org/packages/3b/03/8c897fb8b5347ff6c1cc31239b9611c5bf79d78c984430887a353e1409a1/rpds_py-0.27.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:15d3b4d83582d10c601f481eca29c3f138d44c92187d197aff663a269197c02d", size = 405469 }, - { url = "https://files.pythonhosted.org/packages/da/07/88c60edc2df74850d496d78a1fdcdc7b54360a7f610a4d50008309d41b94/rpds_py-0.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4ed2e16abbc982a169d30d1a420274a709949e2cbdef119fe2ec9d870b42f274", size = 422125 }, - { url = "https://files.pythonhosted.org/packages/6b/86/5f4c707603e41b05f191a749984f390dabcbc467cf833769b47bf14ba04f/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a75f305c9b013289121ec0f1181931975df78738cdf650093e6b86d74aa7d8dd", size = 562341 }, - { url = "https://files.pythonhosted.org/packages/b2/92/3c0cb2492094e3cd9baf9e49bbb7befeceb584ea0c1a8b5939dca4da12e5/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:67ce7620704745881a3d4b0ada80ab4d99df390838839921f99e63c474f82cf2", size = 592511 }, - { url = "https://files.pythonhosted.org/packages/10/bb/82e64fbb0047c46a168faa28d0d45a7851cd0582f850b966811d30f67ad8/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d992ac10eb86d9b6f369647b6a3f412fc0075cfd5d799530e84d335e440a002", size = 557736 }, - { url = "https://files.pythonhosted.org/packages/00/95/3c863973d409210da7fb41958172c6b7dbe7fc34e04d3cc1f10bb85e979f/rpds_py-0.27.1-cp313-cp313-win32.whl", hash = "sha256:4f75e4bd8ab8db624e02c8e2fc4063021b58becdbe6df793a8111d9343aec1e3", size = 221462 }, - { url = "https://files.pythonhosted.org/packages/ce/2c/5867b14a81dc217b56d95a9f2a40fdbc56a1ab0181b80132beeecbd4b2d6/rpds_py-0.27.1-cp313-cp313-win_amd64.whl", hash = "sha256:f9025faafc62ed0b75a53e541895ca272815bec18abe2249ff6501c8f2e12b83", size = 232034 }, - { url = "https://files.pythonhosted.org/packages/c7/78/3958f3f018c01923823f1e47f1cc338e398814b92d83cd278364446fac66/rpds_py-0.27.1-cp313-cp313-win_arm64.whl", hash = "sha256:ed10dc32829e7d222b7d3b93136d25a406ba9788f6a7ebf6809092da1f4d279d", size = 222392 }, - { url = "https://files.pythonhosted.org/packages/01/76/1cdf1f91aed5c3a7bf2eba1f1c4e4d6f57832d73003919a20118870ea659/rpds_py-0.27.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:92022bbbad0d4426e616815b16bc4127f83c9a74940e1ccf3cfe0b387aba0228", size = 358355 }, - { url = "https://files.pythonhosted.org/packages/c3/6f/bf142541229374287604caf3bb2a4ae17f0a580798fd72d3b009b532db4e/rpds_py-0.27.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:47162fdab9407ec3f160805ac3e154df042e577dd53341745fc7fb3f625e6d92", size = 342138 }, - { url = "https://files.pythonhosted.org/packages/1a/77/355b1c041d6be40886c44ff5e798b4e2769e497b790f0f7fd1e78d17e9a8/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb89bec23fddc489e5d78b550a7b773557c9ab58b7946154a10a6f7a214a48b2", size = 380247 }, - { url = "https://files.pythonhosted.org/packages/d6/a4/d9cef5c3946ea271ce2243c51481971cd6e34f21925af2783dd17b26e815/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e48af21883ded2b3e9eb48cb7880ad8598b31ab752ff3be6457001d78f416723", size = 390699 }, - { url = "https://files.pythonhosted.org/packages/3a/06/005106a7b8c6c1a7e91b73169e49870f4af5256119d34a361ae5240a0c1d/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f5b7bd8e219ed50299e58551a410b64daafb5017d54bbe822e003856f06a802", size = 521852 }, - { url = "https://files.pythonhosted.org/packages/e5/3e/50fb1dac0948e17a02eb05c24510a8fe12d5ce8561c6b7b7d1339ab7ab9c/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08f1e20bccf73b08d12d804d6e1c22ca5530e71659e6673bce31a6bb71c1e73f", size = 402582 }, - { url = "https://files.pythonhosted.org/packages/cb/b0/f4e224090dc5b0ec15f31a02d746ab24101dd430847c4d99123798661bfc/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dc5dceeaefcc96dc192e3a80bbe1d6c410c469e97bdd47494a7d930987f18b2", size = 384126 }, - { url = "https://files.pythonhosted.org/packages/54/77/ac339d5f82b6afff1df8f0fe0d2145cc827992cb5f8eeb90fc9f31ef7a63/rpds_py-0.27.1-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:d76f9cc8665acdc0c9177043746775aa7babbf479b5520b78ae4002d889f5c21", size = 399486 }, - { url = "https://files.pythonhosted.org/packages/d6/29/3e1c255eee6ac358c056a57d6d6869baa00a62fa32eea5ee0632039c50a3/rpds_py-0.27.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:134fae0e36022edad8290a6661edf40c023562964efea0cc0ec7f5d392d2aaef", size = 414832 }, - { url = "https://files.pythonhosted.org/packages/3f/db/6d498b844342deb3fa1d030598db93937a9964fcf5cb4da4feb5f17be34b/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb11a4f1b2b63337cfd3b4d110af778a59aae51c81d195768e353d8b52f88081", size = 557249 }, - { url = "https://files.pythonhosted.org/packages/60/f3/690dd38e2310b6f68858a331399b4d6dbb9132c3e8ef8b4333b96caf403d/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:13e608ac9f50a0ed4faec0e90ece76ae33b34c0e8656e3dceb9a7db994c692cd", size = 587356 }, - { url = "https://files.pythonhosted.org/packages/86/e3/84507781cccd0145f35b1dc32c72675200c5ce8d5b30f813e49424ef68fc/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dd2135527aa40f061350c3f8f89da2644de26cd73e4de458e79606384f4f68e7", size = 555300 }, - { url = "https://files.pythonhosted.org/packages/e5/ee/375469849e6b429b3516206b4580a79e9ef3eb12920ddbd4492b56eaacbe/rpds_py-0.27.1-cp313-cp313t-win32.whl", hash = "sha256:3020724ade63fe320a972e2ffd93b5623227e684315adce194941167fee02688", size = 216714 }, - { url = "https://files.pythonhosted.org/packages/21/87/3fc94e47c9bd0742660e84706c311a860dcae4374cf4a03c477e23ce605a/rpds_py-0.27.1-cp313-cp313t-win_amd64.whl", hash = "sha256:8ee50c3e41739886606388ba3ab3ee2aae9f35fb23f833091833255a31740797", size = 228943 }, - { url = "https://files.pythonhosted.org/packages/70/36/b6e6066520a07cf029d385de869729a895917b411e777ab1cde878100a1d/rpds_py-0.27.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:acb9aafccaae278f449d9c713b64a9e68662e7799dbd5859e2c6b3c67b56d334", size = 362472 }, - { url = "https://files.pythonhosted.org/packages/af/07/b4646032e0dcec0df9c73a3bd52f63bc6c5f9cda992f06bd0e73fe3fbebd/rpds_py-0.27.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b7fb801aa7f845ddf601c49630deeeccde7ce10065561d92729bfe81bd21fb33", size = 345676 }, - { url = "https://files.pythonhosted.org/packages/b0/16/2f1003ee5d0af4bcb13c0cf894957984c32a6751ed7206db2aee7379a55e/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe0dd05afb46597b9a2e11c351e5e4283c741237e7f617ffb3252780cca9336a", size = 385313 }, - { url = "https://files.pythonhosted.org/packages/05/cd/7eb6dd7b232e7f2654d03fa07f1414d7dfc980e82ba71e40a7c46fd95484/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b6dfb0e058adb12d8b1d1b25f686e94ffa65d9995a5157afe99743bf7369d62b", size = 399080 }, - { url = "https://files.pythonhosted.org/packages/20/51/5829afd5000ec1cb60f304711f02572d619040aa3ec033d8226817d1e571/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed090ccd235f6fa8bb5861684567f0a83e04f52dfc2e5c05f2e4b1309fcf85e7", size = 523868 }, - { url = "https://files.pythonhosted.org/packages/05/2c/30eebca20d5db95720ab4d2faec1b5e4c1025c473f703738c371241476a2/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf876e79763eecf3e7356f157540d6a093cef395b65514f17a356f62af6cc136", size = 408750 }, - { url = "https://files.pythonhosted.org/packages/90/1a/cdb5083f043597c4d4276eae4e4c70c55ab5accec078da8611f24575a367/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12ed005216a51b1d6e2b02a7bd31885fe317e45897de81d86dcce7d74618ffff", size = 387688 }, - { url = "https://files.pythonhosted.org/packages/7c/92/cf786a15320e173f945d205ab31585cc43969743bb1a48b6888f7a2b0a2d/rpds_py-0.27.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:ee4308f409a40e50593c7e3bb8cbe0b4d4c66d1674a316324f0c2f5383b486f9", size = 407225 }, - { url = "https://files.pythonhosted.org/packages/33/5c/85ee16df5b65063ef26017bef33096557a4c83fbe56218ac7cd8c235f16d/rpds_py-0.27.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b08d152555acf1f455154d498ca855618c1378ec810646fcd7c76416ac6dc60", size = 423361 }, - { url = "https://files.pythonhosted.org/packages/4b/8e/1c2741307fcabd1a334ecf008e92c4f47bb6f848712cf15c923becfe82bb/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:dce51c828941973a5684d458214d3a36fcd28da3e1875d659388f4f9f12cc33e", size = 562493 }, - { url = "https://files.pythonhosted.org/packages/04/03/5159321baae9b2222442a70c1f988cbbd66b9be0675dd3936461269be360/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:c1476d6f29eb81aa4151c9a31219b03f1f798dc43d8af1250a870735516a1212", size = 592623 }, - { url = "https://files.pythonhosted.org/packages/ff/39/c09fd1ad28b85bc1d4554a8710233c9f4cefd03d7717a1b8fbfd171d1167/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3ce0cac322b0d69b63c9cdb895ee1b65805ec9ffad37639f291dd79467bee675", size = 558800 }, - { url = "https://files.pythonhosted.org/packages/c5/d6/99228e6bbcf4baa764b18258f519a9035131d91b538d4e0e294313462a98/rpds_py-0.27.1-cp314-cp314-win32.whl", hash = "sha256:dfbfac137d2a3d0725758cd141f878bf4329ba25e34979797c89474a89a8a3a3", size = 221943 }, - { url = "https://files.pythonhosted.org/packages/be/07/c802bc6b8e95be83b79bdf23d1aa61d68324cb1006e245d6c58e959e314d/rpds_py-0.27.1-cp314-cp314-win_amd64.whl", hash = "sha256:a6e57b0abfe7cc513450fcf529eb486b6e4d3f8aee83e92eb5f1ef848218d456", size = 233739 }, - { url = "https://files.pythonhosted.org/packages/c8/89/3e1b1c16d4c2d547c5717377a8df99aee8099ff050f87c45cb4d5fa70891/rpds_py-0.27.1-cp314-cp314-win_arm64.whl", hash = "sha256:faf8d146f3d476abfee026c4ae3bdd9ca14236ae4e4c310cbd1cf75ba33d24a3", size = 223120 }, - { url = "https://files.pythonhosted.org/packages/62/7e/dc7931dc2fa4a6e46b2a4fa744a9fe5c548efd70e0ba74f40b39fa4a8c10/rpds_py-0.27.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:ba81d2b56b6d4911ce735aad0a1d4495e808b8ee4dc58715998741a26874e7c2", size = 358944 }, - { url = "https://files.pythonhosted.org/packages/e6/22/4af76ac4e9f336bfb1a5f240d18a33c6b2fcaadb7472ac7680576512b49a/rpds_py-0.27.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:84f7d509870098de0e864cad0102711c1e24e9b1a50ee713b65928adb22269e4", size = 342283 }, - { url = "https://files.pythonhosted.org/packages/1c/15/2a7c619b3c2272ea9feb9ade67a45c40b3eeb500d503ad4c28c395dc51b4/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e960fc78fecd1100539f14132425e1d5fe44ecb9239f8f27f079962021523e", size = 380320 }, - { url = "https://files.pythonhosted.org/packages/a2/7d/4c6d243ba4a3057e994bb5bedd01b5c963c12fe38dde707a52acdb3849e7/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:62f85b665cedab1a503747617393573995dac4600ff51869d69ad2f39eb5e817", size = 391760 }, - { url = "https://files.pythonhosted.org/packages/b4/71/b19401a909b83bcd67f90221330bc1ef11bc486fe4e04c24388d28a618ae/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fed467af29776f6556250c9ed85ea5a4dd121ab56a5f8b206e3e7a4c551e48ec", size = 522476 }, - { url = "https://files.pythonhosted.org/packages/e4/44/1a3b9715c0455d2e2f0f6df5ee6d6f5afdc423d0773a8a682ed2b43c566c/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2729615f9d430af0ae6b36cf042cb55c0936408d543fb691e1a9e36648fd35a", size = 403418 }, - { url = "https://files.pythonhosted.org/packages/1c/4b/fb6c4f14984eb56673bc868a66536f53417ddb13ed44b391998100a06a96/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b207d881a9aef7ba753d69c123a35d96ca7cb808056998f6b9e8747321f03b8", size = 384771 }, - { url = "https://files.pythonhosted.org/packages/c0/56/d5265d2d28b7420d7b4d4d85cad8ef891760f5135102e60d5c970b976e41/rpds_py-0.27.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:639fd5efec029f99b79ae47e5d7e00ad8a773da899b6309f6786ecaf22948c48", size = 400022 }, - { url = "https://files.pythonhosted.org/packages/8f/e9/9f5fc70164a569bdd6ed9046486c3568d6926e3a49bdefeeccfb18655875/rpds_py-0.27.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fecc80cb2a90e28af8a9b366edacf33d7a91cbfe4c2c4544ea1246e949cfebeb", size = 416787 }, - { url = "https://files.pythonhosted.org/packages/d4/64/56dd03430ba491db943a81dcdef115a985aac5f44f565cd39a00c766d45c/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42a89282d711711d0a62d6f57d81aa43a1368686c45bc1c46b7f079d55692734", size = 557538 }, - { url = "https://files.pythonhosted.org/packages/3f/36/92cc885a3129993b1d963a2a42ecf64e6a8e129d2c7cc980dbeba84e55fb/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:cf9931f14223de59551ab9d38ed18d92f14f055a5f78c1d8ad6493f735021bbb", size = 588512 }, - { url = "https://files.pythonhosted.org/packages/dd/10/6b283707780a81919f71625351182b4f98932ac89a09023cb61865136244/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f39f58a27cc6e59f432b568ed8429c7e1641324fbe38131de852cd77b2d534b0", size = 555813 }, - { url = "https://files.pythonhosted.org/packages/04/2e/30b5ea18c01379da6272a92825dd7e53dc9d15c88a19e97932d35d430ef7/rpds_py-0.27.1-cp314-cp314t-win32.whl", hash = "sha256:d5fa0ee122dc09e23607a28e6d7b150da16c662e66409bbe85230e4c85bb528a", size = 217385 }, - { url = "https://files.pythonhosted.org/packages/32/7d/97119da51cb1dd3f2f3c0805f155a3aa4a95fa44fe7d78ae15e69edf4f34/rpds_py-0.27.1-cp314-cp314t-win_amd64.whl", hash = "sha256:6567d2bb951e21232c2f660c24cf3470bb96de56cdcb3f071a83feeaff8a2772", size = 230097 }, - { url = "https://files.pythonhosted.org/packages/d5/63/b7cc415c345625d5e62f694ea356c58fb964861409008118f1245f8c3347/rpds_py-0.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7ba22cb9693df986033b91ae1d7a979bc399237d45fccf875b76f62bb9e52ddf", size = 371360 }, - { url = "https://files.pythonhosted.org/packages/e5/8c/12e1b24b560cf378b8ffbdb9dc73abd529e1adcfcf82727dfd29c4a7b88d/rpds_py-0.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b640501be9288c77738b5492b3fd3abc4ba95c50c2e41273c8a1459f08298d3", size = 353933 }, - { url = "https://files.pythonhosted.org/packages/9b/85/1bb2210c1f7a1b99e91fea486b9f0f894aa5da3a5ec7097cbad7dec6d40f/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb08b65b93e0c6dd70aac7f7890a9c0938d5ec71d5cb32d45cf844fb8ae47636", size = 382962 }, - { url = "https://files.pythonhosted.org/packages/cc/c9/a839b9f219cf80ed65f27a7f5ddbb2809c1b85c966020ae2dff490e0b18e/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d7ff07d696a7a38152ebdb8212ca9e5baab56656749f3d6004b34ab726b550b8", size = 394412 }, - { url = "https://files.pythonhosted.org/packages/02/2d/b1d7f928b0b1f4fc2e0133e8051d199b01d7384875adc63b6ddadf3de7e5/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb7c72262deae25366e3b6c0c0ba46007967aea15d1eea746e44ddba8ec58dcc", size = 523972 }, - { url = "https://files.pythonhosted.org/packages/a9/af/2cbf56edd2d07716df1aec8a726b3159deb47cb5c27e1e42b71d705a7c2f/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7b002cab05d6339716b03a4a3a2ce26737f6231d7b523f339fa061d53368c9d8", size = 403273 }, - { url = "https://files.pythonhosted.org/packages/c0/93/425e32200158d44ff01da5d9612c3b6711fe69f606f06e3895511f17473b/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23f6b69d1c26c4704fec01311963a41d7de3ee0570a84ebde4d544e5a1859ffc", size = 385278 }, - { url = "https://files.pythonhosted.org/packages/eb/1a/1a04a915ecd0551bfa9e77b7672d1937b4b72a0fc204a17deef76001cfb2/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:530064db9146b247351f2a0250b8f00b289accea4596a033e94be2389977de71", size = 402084 }, - { url = "https://files.pythonhosted.org/packages/51/f7/66585c0fe5714368b62951d2513b684e5215beaceab2c6629549ddb15036/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7b90b0496570bd6b0321724a330d8b545827c4df2034b6ddfc5f5275f55da2ad", size = 419041 }, - { url = "https://files.pythonhosted.org/packages/8e/7e/83a508f6b8e219bba2d4af077c35ba0e0cdd35a751a3be6a7cba5a55ad71/rpds_py-0.27.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:879b0e14a2da6a1102a3fc8af580fc1ead37e6d6692a781bd8c83da37429b5ab", size = 560084 }, - { url = "https://files.pythonhosted.org/packages/66/66/bb945683b958a1b19eb0fe715594630d0f36396ebdef4d9b89c2fa09aa56/rpds_py-0.27.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:0d807710df3b5faa66c731afa162ea29717ab3be17bdc15f90f2d9f183da4059", size = 590115 }, - { url = "https://files.pythonhosted.org/packages/12/00/ccfaafaf7db7e7adace915e5c2f2c2410e16402561801e9c7f96683002d3/rpds_py-0.27.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:3adc388fc3afb6540aec081fa59e6e0d3908722771aa1e37ffe22b220a436f0b", size = 556561 }, - { url = "https://files.pythonhosted.org/packages/e1/b7/92b6ed9aad103bfe1c45df98453dfae40969eef2cb6c6239c58d7e96f1b3/rpds_py-0.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c796c0c1cc68cb08b0284db4229f5af76168172670c74908fdbd4b7d7f515819", size = 229125 }, - { url = "https://files.pythonhosted.org/packages/0c/ed/e1fba02de17f4f76318b834425257c8ea297e415e12c68b4361f63e8ae92/rpds_py-0.27.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdfe4bb2f9fe7458b7453ad3c33e726d6d1c7c0a72960bcc23800d77384e42df", size = 371402 }, - { url = "https://files.pythonhosted.org/packages/af/7c/e16b959b316048b55585a697e94add55a4ae0d984434d279ea83442e460d/rpds_py-0.27.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:8fabb8fd848a5f75a2324e4a84501ee3a5e3c78d8603f83475441866e60b94a3", size = 354084 }, - { url = "https://files.pythonhosted.org/packages/de/c1/ade645f55de76799fdd08682d51ae6724cb46f318573f18be49b1e040428/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda8719d598f2f7f3e0f885cba8646644b55a187762bec091fa14a2b819746a9", size = 383090 }, - { url = "https://files.pythonhosted.org/packages/1f/27/89070ca9b856e52960da1472efcb6c20ba27cfe902f4f23ed095b9cfc61d/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c64d07e95606ec402a0a1c511fe003873fa6af630bda59bac77fac8b4318ebc", size = 394519 }, - { url = "https://files.pythonhosted.org/packages/b3/28/be120586874ef906aa5aeeae95ae8df4184bc757e5b6bd1c729ccff45ed5/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93a2ed40de81bcff59aabebb626562d48332f3d028ca2036f1d23cbb52750be4", size = 523817 }, - { url = "https://files.pythonhosted.org/packages/a8/ef/70cc197bc11cfcde02a86f36ac1eed15c56667c2ebddbdb76a47e90306da/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:387ce8c44ae94e0ec50532d9cb0edce17311024c9794eb196b90e1058aadeb66", size = 403240 }, - { url = "https://files.pythonhosted.org/packages/cf/35/46936cca449f7f518f2f4996e0e8344db4b57e2081e752441154089d2a5f/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aaf94f812c95b5e60ebaf8bfb1898a7d7cb9c1af5744d4a67fa47796e0465d4e", size = 385194 }, - { url = "https://files.pythonhosted.org/packages/e1/62/29c0d3e5125c3270b51415af7cbff1ec587379c84f55a5761cc9efa8cd06/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:4848ca84d6ded9b58e474dfdbad4b8bfb450344c0551ddc8d958bf4b36aa837c", size = 402086 }, - { url = "https://files.pythonhosted.org/packages/8f/66/03e1087679227785474466fdd04157fb793b3b76e3fcf01cbf4c693c1949/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2bde09cbcf2248b73c7c323be49b280180ff39fadcfe04e7b6f54a678d02a7cf", size = 419272 }, - { url = "https://files.pythonhosted.org/packages/6a/24/e3e72d265121e00b063aef3e3501e5b2473cf1b23511d56e529531acf01e/rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:94c44ee01fd21c9058f124d2d4f0c9dc7634bec93cd4b38eefc385dabe71acbf", size = 560003 }, - { url = "https://files.pythonhosted.org/packages/26/ca/f5a344c534214cc2d41118c0699fffbdc2c1bc7046f2a2b9609765ab9c92/rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:df8b74962e35c9249425d90144e721eed198e6555a0e22a563d29fe4486b51f6", size = 590482 }, - { url = "https://files.pythonhosted.org/packages/ce/08/4349bdd5c64d9d193c360aa9db89adeee6f6682ab8825dca0a3f535f434f/rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:dc23e6820e3b40847e2f4a7726462ba0cf53089512abe9ee16318c366494c17a", size = 556523 }, + { url = "https://files.pythonhosted.org/packages/a5/ed/3aef893e2dd30e77e35d20d4ddb45ca459db59cead748cad9796ad479411/rpds_py-0.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:68afeec26d42ab3b47e541b272166a0b4400313946871cba3ed3a4fc0cab1cef", size = 371606, upload-time = "2025-08-27T12:12:25.189Z" }, + { url = "https://files.pythonhosted.org/packages/6d/82/9818b443e5d3eb4c83c3994561387f116aae9833b35c484474769c4a8faf/rpds_py-0.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74e5b2f7bb6fa38b1b10546d27acbacf2a022a8b5543efb06cfebc72a59c85be", size = 353452, upload-time = "2025-08-27T12:12:27.433Z" }, + { url = "https://files.pythonhosted.org/packages/99/c7/d2a110ffaaa397fc6793a83c7bd3545d9ab22658b7cdff05a24a4535cc45/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9024de74731df54546fab0bfbcdb49fae19159ecaecfc8f37c18d2c7e2c0bd61", size = 381519, upload-time = "2025-08-27T12:12:28.719Z" }, + { url = "https://files.pythonhosted.org/packages/5a/bc/e89581d1f9d1be7d0247eaef602566869fdc0d084008ba139e27e775366c/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:31d3ebadefcd73b73928ed0b2fd696f7fefda8629229f81929ac9c1854d0cffb", size = 394424, upload-time = "2025-08-27T12:12:30.207Z" }, + { url = "https://files.pythonhosted.org/packages/ac/2e/36a6861f797530e74bb6ed53495f8741f1ef95939eed01d761e73d559067/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2e7f8f169d775dd9092a1743768d771f1d1300453ddfe6325ae3ab5332b4657", size = 523467, upload-time = "2025-08-27T12:12:31.808Z" }, + { url = "https://files.pythonhosted.org/packages/c4/59/c1bc2be32564fa499f988f0a5c6505c2f4746ef96e58e4d7de5cf923d77e/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d905d16f77eb6ab2e324e09bfa277b4c8e5e6b8a78a3e7ff8f3cdf773b4c013", size = 402660, upload-time = "2025-08-27T12:12:33.444Z" }, + { url = "https://files.pythonhosted.org/packages/0a/ec/ef8bf895f0628dd0a59e54d81caed6891663cb9c54a0f4bb7da918cb88cf/rpds_py-0.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50c946f048209e6362e22576baea09193809f87687a95a8db24e5fbdb307b93a", size = 384062, upload-time = "2025-08-27T12:12:34.857Z" }, + { url = "https://files.pythonhosted.org/packages/69/f7/f47ff154be8d9a5e691c083a920bba89cef88d5247c241c10b9898f595a1/rpds_py-0.27.1-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:3deab27804d65cd8289eb814c2c0e807c4b9d9916c9225e363cb0cf875eb67c1", size = 401289, upload-time = "2025-08-27T12:12:36.085Z" }, + { url = "https://files.pythonhosted.org/packages/3b/d9/ca410363efd0615814ae579f6829cafb39225cd63e5ea5ed1404cb345293/rpds_py-0.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8b61097f7488de4be8244c89915da8ed212832ccf1e7c7753a25a394bf9b1f10", size = 417718, upload-time = "2025-08-27T12:12:37.401Z" }, + { url = "https://files.pythonhosted.org/packages/e3/a0/8cb5c2ff38340f221cc067cc093d1270e10658ba4e8d263df923daa18e86/rpds_py-0.27.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8a3f29aba6e2d7d90528d3c792555a93497fe6538aa65eb675b44505be747808", size = 558333, upload-time = "2025-08-27T12:12:38.672Z" }, + { url = "https://files.pythonhosted.org/packages/6f/8c/1b0de79177c5d5103843774ce12b84caa7164dfc6cd66378768d37db11bf/rpds_py-0.27.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dd6cd0485b7d347304067153a6dc1d73f7d4fd995a396ef32a24d24b8ac63ac8", size = 589127, upload-time = "2025-08-27T12:12:41.48Z" }, + { url = "https://files.pythonhosted.org/packages/c8/5e/26abb098d5e01266b0f3a2488d299d19ccc26849735d9d2b95c39397e945/rpds_py-0.27.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6f4461bf931108c9fa226ffb0e257c1b18dc2d44cd72b125bec50ee0ab1248a9", size = 554899, upload-time = "2025-08-27T12:12:42.925Z" }, + { url = "https://files.pythonhosted.org/packages/de/41/905cc90ced13550db017f8f20c6d8e8470066c5738ba480d7ba63e3d136b/rpds_py-0.27.1-cp310-cp310-win32.whl", hash = "sha256:ee5422d7fb21f6a00c1901bf6559c49fee13a5159d0288320737bbf6585bd3e4", size = 217450, upload-time = "2025-08-27T12:12:44.813Z" }, + { url = "https://files.pythonhosted.org/packages/75/3d/6bef47b0e253616ccdf67c283e25f2d16e18ccddd38f92af81d5a3420206/rpds_py-0.27.1-cp310-cp310-win_amd64.whl", hash = "sha256:3e039aabf6d5f83c745d5f9a0a381d031e9ed871967c0a5c38d201aca41f3ba1", size = 228447, upload-time = "2025-08-27T12:12:46.204Z" }, + { url = "https://files.pythonhosted.org/packages/b5/c1/7907329fbef97cbd49db6f7303893bd1dd5a4a3eae415839ffdfb0762cae/rpds_py-0.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:be898f271f851f68b318872ce6ebebbc62f303b654e43bf72683dbdc25b7c881", size = 371063, upload-time = "2025-08-27T12:12:47.856Z" }, + { url = "https://files.pythonhosted.org/packages/11/94/2aab4bc86228bcf7c48760990273653a4900de89c7537ffe1b0d6097ed39/rpds_py-0.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:62ac3d4e3e07b58ee0ddecd71d6ce3b1637de2d373501412df395a0ec5f9beb5", size = 353210, upload-time = "2025-08-27T12:12:49.187Z" }, + { url = "https://files.pythonhosted.org/packages/3a/57/f5eb3ecf434342f4f1a46009530e93fd201a0b5b83379034ebdb1d7c1a58/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4708c5c0ceb2d034f9991623631d3d23cb16e65c83736ea020cdbe28d57c0a0e", size = 381636, upload-time = "2025-08-27T12:12:50.492Z" }, + { url = "https://files.pythonhosted.org/packages/ae/f4/ef95c5945e2ceb5119571b184dd5a1cc4b8541bbdf67461998cfeac9cb1e/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:abfa1171a9952d2e0002aba2ad3780820b00cc3d9c98c6630f2e93271501f66c", size = 394341, upload-time = "2025-08-27T12:12:52.024Z" }, + { url = "https://files.pythonhosted.org/packages/5a/7e/4bd610754bf492d398b61725eb9598ddd5eb86b07d7d9483dbcd810e20bc/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b507d19f817ebaca79574b16eb2ae412e5c0835542c93fe9983f1e432aca195", size = 523428, upload-time = "2025-08-27T12:12:53.779Z" }, + { url = "https://files.pythonhosted.org/packages/9f/e5/059b9f65a8c9149361a8b75094864ab83b94718344db511fd6117936ed2a/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168b025f8fd8d8d10957405f3fdcef3dc20f5982d398f90851f4abc58c566c52", size = 402923, upload-time = "2025-08-27T12:12:55.15Z" }, + { url = "https://files.pythonhosted.org/packages/f5/48/64cabb7daced2968dd08e8a1b7988bf358d7bd5bcd5dc89a652f4668543c/rpds_py-0.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb56c6210ef77caa58e16e8c17d35c63fe3f5b60fd9ba9d424470c3400bcf9ed", size = 384094, upload-time = "2025-08-27T12:12:57.194Z" }, + { url = "https://files.pythonhosted.org/packages/ae/e1/dc9094d6ff566bff87add8a510c89b9e158ad2ecd97ee26e677da29a9e1b/rpds_py-0.27.1-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:d252f2d8ca0195faa707f8eb9368955760880b2b42a8ee16d382bf5dd807f89a", size = 401093, upload-time = "2025-08-27T12:12:58.985Z" }, + { url = "https://files.pythonhosted.org/packages/37/8e/ac8577e3ecdd5593e283d46907d7011618994e1d7ab992711ae0f78b9937/rpds_py-0.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6e5e54da1e74b91dbc7996b56640f79b195d5925c2b78efaa8c5d53e1d88edde", size = 417969, upload-time = "2025-08-27T12:13:00.367Z" }, + { url = "https://files.pythonhosted.org/packages/66/6d/87507430a8f74a93556fe55c6485ba9c259949a853ce407b1e23fea5ba31/rpds_py-0.27.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ffce0481cc6e95e5b3f0a47ee17ffbd234399e6d532f394c8dce320c3b089c21", size = 558302, upload-time = "2025-08-27T12:13:01.737Z" }, + { url = "https://files.pythonhosted.org/packages/3a/bb/1db4781ce1dda3eecc735e3152659a27b90a02ca62bfeea17aee45cc0fbc/rpds_py-0.27.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a205fdfe55c90c2cd8e540ca9ceba65cbe6629b443bc05db1f590a3db8189ff9", size = 589259, upload-time = "2025-08-27T12:13:03.127Z" }, + { url = "https://files.pythonhosted.org/packages/7b/0e/ae1c8943d11a814d01b482e1f8da903f88047a962dff9bbdadf3bd6e6fd1/rpds_py-0.27.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:689fb5200a749db0415b092972e8eba85847c23885c8543a8b0f5c009b1a5948", size = 554983, upload-time = "2025-08-27T12:13:04.516Z" }, + { url = "https://files.pythonhosted.org/packages/b2/d5/0b2a55415931db4f112bdab072443ff76131b5ac4f4dc98d10d2d357eb03/rpds_py-0.27.1-cp311-cp311-win32.whl", hash = "sha256:3182af66048c00a075010bc7f4860f33913528a4b6fc09094a6e7598e462fe39", size = 217154, upload-time = "2025-08-27T12:13:06.278Z" }, + { url = "https://files.pythonhosted.org/packages/24/75/3b7ffe0d50dc86a6a964af0d1cc3a4a2cdf437cb7b099a4747bbb96d1819/rpds_py-0.27.1-cp311-cp311-win_amd64.whl", hash = "sha256:b4938466c6b257b2f5c4ff98acd8128ec36b5059e5c8f8372d79316b1c36bb15", size = 228627, upload-time = "2025-08-27T12:13:07.625Z" }, + { url = "https://files.pythonhosted.org/packages/8d/3f/4fd04c32abc02c710f09a72a30c9a55ea3cc154ef8099078fd50a0596f8e/rpds_py-0.27.1-cp311-cp311-win_arm64.whl", hash = "sha256:2f57af9b4d0793e53266ee4325535a31ba48e2f875da81a9177c9926dfa60746", size = 220998, upload-time = "2025-08-27T12:13:08.972Z" }, + { url = "https://files.pythonhosted.org/packages/bd/fe/38de28dee5df58b8198c743fe2bea0c785c6d40941b9950bac4cdb71a014/rpds_py-0.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ae2775c1973e3c30316892737b91f9283f9908e3cc7625b9331271eaaed7dc90", size = 361887, upload-time = "2025-08-27T12:13:10.233Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/4b6c7eedc7dd90986bf0fab6ea2a091ec11c01b15f8ba0a14d3f80450468/rpds_py-0.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2643400120f55c8a96f7c9d858f7be0c88d383cd4653ae2cf0d0c88f668073e5", size = 345795, upload-time = "2025-08-27T12:13:11.65Z" }, + { url = "https://files.pythonhosted.org/packages/6f/0e/e650e1b81922847a09cca820237b0edee69416a01268b7754d506ade11ad/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16323f674c089b0360674a4abd28d5042947d54ba620f72514d69be4ff64845e", size = 385121, upload-time = "2025-08-27T12:13:13.008Z" }, + { url = "https://files.pythonhosted.org/packages/1b/ea/b306067a712988e2bff00dcc7c8f31d26c29b6d5931b461aa4b60a013e33/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a1f4814b65eacac94a00fc9a526e3fdafd78e439469644032032d0d63de4881", size = 398976, upload-time = "2025-08-27T12:13:14.368Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0a/26dc43c8840cb8fe239fe12dbc8d8de40f2365e838f3d395835dde72f0e5/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ba32c16b064267b22f1850a34051121d423b6f7338a12b9459550eb2096e7ec", size = 525953, upload-time = "2025-08-27T12:13:15.774Z" }, + { url = "https://files.pythonhosted.org/packages/22/14/c85e8127b573aaf3a0cbd7fbb8c9c99e735a4a02180c84da2a463b766e9e/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5c20f33fd10485b80f65e800bbe5f6785af510b9f4056c5a3c612ebc83ba6cb", size = 407915, upload-time = "2025-08-27T12:13:17.379Z" }, + { url = "https://files.pythonhosted.org/packages/ed/7b/8f4fee9ba1fb5ec856eb22d725a4efa3deb47f769597c809e03578b0f9d9/rpds_py-0.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:466bfe65bd932da36ff279ddd92de56b042f2266d752719beb97b08526268ec5", size = 386883, upload-time = "2025-08-27T12:13:18.704Z" }, + { url = "https://files.pythonhosted.org/packages/86/47/28fa6d60f8b74fcdceba81b272f8d9836ac0340570f68f5df6b41838547b/rpds_py-0.27.1-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:41e532bbdcb57c92ba3be62c42e9f096431b4cf478da9bc3bc6ce5c38ab7ba7a", size = 405699, upload-time = "2025-08-27T12:13:20.089Z" }, + { url = "https://files.pythonhosted.org/packages/d0/fd/c5987b5e054548df56953a21fe2ebed51fc1ec7c8f24fd41c067b68c4a0a/rpds_py-0.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f149826d742b406579466283769a8ea448eed82a789af0ed17b0cd5770433444", size = 423713, upload-time = "2025-08-27T12:13:21.436Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ba/3c4978b54a73ed19a7d74531be37a8bcc542d917c770e14d372b8daea186/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80c60cfb5310677bd67cb1e85a1e8eb52e12529545441b43e6f14d90b878775a", size = 562324, upload-time = "2025-08-27T12:13:22.789Z" }, + { url = "https://files.pythonhosted.org/packages/b5/6c/6943a91768fec16db09a42b08644b960cff540c66aab89b74be6d4a144ba/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7ee6521b9baf06085f62ba9c7a3e5becffbc32480d2f1b351559c001c38ce4c1", size = 593646, upload-time = "2025-08-27T12:13:24.122Z" }, + { url = "https://files.pythonhosted.org/packages/11/73/9d7a8f4be5f4396f011a6bb7a19fe26303a0dac9064462f5651ced2f572f/rpds_py-0.27.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a512c8263249a9d68cac08b05dd59d2b3f2061d99b322813cbcc14c3c7421998", size = 558137, upload-time = "2025-08-27T12:13:25.557Z" }, + { url = "https://files.pythonhosted.org/packages/6e/96/6772cbfa0e2485bcceef8071de7821f81aeac8bb45fbfd5542a3e8108165/rpds_py-0.27.1-cp312-cp312-win32.whl", hash = "sha256:819064fa048ba01b6dadc5116f3ac48610435ac9a0058bbde98e569f9e785c39", size = 221343, upload-time = "2025-08-27T12:13:26.967Z" }, + { url = "https://files.pythonhosted.org/packages/67/b6/c82f0faa9af1c6a64669f73a17ee0eeef25aff30bb9a1c318509efe45d84/rpds_py-0.27.1-cp312-cp312-win_amd64.whl", hash = "sha256:d9199717881f13c32c4046a15f024971a3b78ad4ea029e8da6b86e5aa9cf4594", size = 232497, upload-time = "2025-08-27T12:13:28.326Z" }, + { url = "https://files.pythonhosted.org/packages/e1/96/2817b44bd2ed11aebacc9251da03689d56109b9aba5e311297b6902136e2/rpds_py-0.27.1-cp312-cp312-win_arm64.whl", hash = "sha256:33aa65b97826a0e885ef6e278fbd934e98cdcfed80b63946025f01e2f5b29502", size = 222790, upload-time = "2025-08-27T12:13:29.71Z" }, + { url = "https://files.pythonhosted.org/packages/cc/77/610aeee8d41e39080c7e14afa5387138e3c9fa9756ab893d09d99e7d8e98/rpds_py-0.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e4b9fcfbc021633863a37e92571d6f91851fa656f0180246e84cbd8b3f6b329b", size = 361741, upload-time = "2025-08-27T12:13:31.039Z" }, + { url = "https://files.pythonhosted.org/packages/3a/fc/c43765f201c6a1c60be2043cbdb664013def52460a4c7adace89d6682bf4/rpds_py-0.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1441811a96eadca93c517d08df75de45e5ffe68aa3089924f963c782c4b898cf", size = 345574, upload-time = "2025-08-27T12:13:32.902Z" }, + { url = "https://files.pythonhosted.org/packages/20/42/ee2b2ca114294cd9847d0ef9c26d2b0851b2e7e00bf14cc4c0b581df0fc3/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55266dafa22e672f5a4f65019015f90336ed31c6383bd53f5e7826d21a0e0b83", size = 385051, upload-time = "2025-08-27T12:13:34.228Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e8/1e430fe311e4799e02e2d1af7c765f024e95e17d651612425b226705f910/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d78827d7ac08627ea2c8e02c9e5b41180ea5ea1f747e9db0915e3adf36b62dcf", size = 398395, upload-time = "2025-08-27T12:13:36.132Z" }, + { url = "https://files.pythonhosted.org/packages/82/95/9dc227d441ff2670651c27a739acb2535ccaf8b351a88d78c088965e5996/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae92443798a40a92dc5f0b01d8a7c93adde0c4dc965310a29ae7c64d72b9fad2", size = 524334, upload-time = "2025-08-27T12:13:37.562Z" }, + { url = "https://files.pythonhosted.org/packages/87/01/a670c232f401d9ad461d9a332aa4080cd3cb1d1df18213dbd0d2a6a7ab51/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c46c9dd2403b66a2a3b9720ec4b74d4ab49d4fabf9f03dfdce2d42af913fe8d0", size = 407691, upload-time = "2025-08-27T12:13:38.94Z" }, + { url = "https://files.pythonhosted.org/packages/03/36/0a14aebbaa26fe7fab4780c76f2239e76cc95a0090bdb25e31d95c492fcd/rpds_py-0.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2efe4eb1d01b7f5f1939f4ef30ecea6c6b3521eec451fb93191bf84b2a522418", size = 386868, upload-time = "2025-08-27T12:13:40.192Z" }, + { url = "https://files.pythonhosted.org/packages/3b/03/8c897fb8b5347ff6c1cc31239b9611c5bf79d78c984430887a353e1409a1/rpds_py-0.27.1-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:15d3b4d83582d10c601f481eca29c3f138d44c92187d197aff663a269197c02d", size = 405469, upload-time = "2025-08-27T12:13:41.496Z" }, + { url = "https://files.pythonhosted.org/packages/da/07/88c60edc2df74850d496d78a1fdcdc7b54360a7f610a4d50008309d41b94/rpds_py-0.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4ed2e16abbc982a169d30d1a420274a709949e2cbdef119fe2ec9d870b42f274", size = 422125, upload-time = "2025-08-27T12:13:42.802Z" }, + { url = "https://files.pythonhosted.org/packages/6b/86/5f4c707603e41b05f191a749984f390dabcbc467cf833769b47bf14ba04f/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a75f305c9b013289121ec0f1181931975df78738cdf650093e6b86d74aa7d8dd", size = 562341, upload-time = "2025-08-27T12:13:44.472Z" }, + { url = "https://files.pythonhosted.org/packages/b2/92/3c0cb2492094e3cd9baf9e49bbb7befeceb584ea0c1a8b5939dca4da12e5/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:67ce7620704745881a3d4b0ada80ab4d99df390838839921f99e63c474f82cf2", size = 592511, upload-time = "2025-08-27T12:13:45.898Z" }, + { url = "https://files.pythonhosted.org/packages/10/bb/82e64fbb0047c46a168faa28d0d45a7851cd0582f850b966811d30f67ad8/rpds_py-0.27.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d992ac10eb86d9b6f369647b6a3f412fc0075cfd5d799530e84d335e440a002", size = 557736, upload-time = "2025-08-27T12:13:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/00/95/3c863973d409210da7fb41958172c6b7dbe7fc34e04d3cc1f10bb85e979f/rpds_py-0.27.1-cp313-cp313-win32.whl", hash = "sha256:4f75e4bd8ab8db624e02c8e2fc4063021b58becdbe6df793a8111d9343aec1e3", size = 221462, upload-time = "2025-08-27T12:13:48.742Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2c/5867b14a81dc217b56d95a9f2a40fdbc56a1ab0181b80132beeecbd4b2d6/rpds_py-0.27.1-cp313-cp313-win_amd64.whl", hash = "sha256:f9025faafc62ed0b75a53e541895ca272815bec18abe2249ff6501c8f2e12b83", size = 232034, upload-time = "2025-08-27T12:13:50.11Z" }, + { url = "https://files.pythonhosted.org/packages/c7/78/3958f3f018c01923823f1e47f1cc338e398814b92d83cd278364446fac66/rpds_py-0.27.1-cp313-cp313-win_arm64.whl", hash = "sha256:ed10dc32829e7d222b7d3b93136d25a406ba9788f6a7ebf6809092da1f4d279d", size = 222392, upload-time = "2025-08-27T12:13:52.587Z" }, + { url = "https://files.pythonhosted.org/packages/01/76/1cdf1f91aed5c3a7bf2eba1f1c4e4d6f57832d73003919a20118870ea659/rpds_py-0.27.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:92022bbbad0d4426e616815b16bc4127f83c9a74940e1ccf3cfe0b387aba0228", size = 358355, upload-time = "2025-08-27T12:13:54.012Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6f/bf142541229374287604caf3bb2a4ae17f0a580798fd72d3b009b532db4e/rpds_py-0.27.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:47162fdab9407ec3f160805ac3e154df042e577dd53341745fc7fb3f625e6d92", size = 342138, upload-time = "2025-08-27T12:13:55.791Z" }, + { url = "https://files.pythonhosted.org/packages/1a/77/355b1c041d6be40886c44ff5e798b4e2769e497b790f0f7fd1e78d17e9a8/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb89bec23fddc489e5d78b550a7b773557c9ab58b7946154a10a6f7a214a48b2", size = 380247, upload-time = "2025-08-27T12:13:57.683Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a4/d9cef5c3946ea271ce2243c51481971cd6e34f21925af2783dd17b26e815/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e48af21883ded2b3e9eb48cb7880ad8598b31ab752ff3be6457001d78f416723", size = 390699, upload-time = "2025-08-27T12:13:59.137Z" }, + { url = "https://files.pythonhosted.org/packages/3a/06/005106a7b8c6c1a7e91b73169e49870f4af5256119d34a361ae5240a0c1d/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6f5b7bd8e219ed50299e58551a410b64daafb5017d54bbe822e003856f06a802", size = 521852, upload-time = "2025-08-27T12:14:00.583Z" }, + { url = "https://files.pythonhosted.org/packages/e5/3e/50fb1dac0948e17a02eb05c24510a8fe12d5ce8561c6b7b7d1339ab7ab9c/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08f1e20bccf73b08d12d804d6e1c22ca5530e71659e6673bce31a6bb71c1e73f", size = 402582, upload-time = "2025-08-27T12:14:02.034Z" }, + { url = "https://files.pythonhosted.org/packages/cb/b0/f4e224090dc5b0ec15f31a02d746ab24101dd430847c4d99123798661bfc/rpds_py-0.27.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dc5dceeaefcc96dc192e3a80bbe1d6c410c469e97bdd47494a7d930987f18b2", size = 384126, upload-time = "2025-08-27T12:14:03.437Z" }, + { url = "https://files.pythonhosted.org/packages/54/77/ac339d5f82b6afff1df8f0fe0d2145cc827992cb5f8eeb90fc9f31ef7a63/rpds_py-0.27.1-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:d76f9cc8665acdc0c9177043746775aa7babbf479b5520b78ae4002d889f5c21", size = 399486, upload-time = "2025-08-27T12:14:05.443Z" }, + { url = "https://files.pythonhosted.org/packages/d6/29/3e1c255eee6ac358c056a57d6d6869baa00a62fa32eea5ee0632039c50a3/rpds_py-0.27.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:134fae0e36022edad8290a6661edf40c023562964efea0cc0ec7f5d392d2aaef", size = 414832, upload-time = "2025-08-27T12:14:06.902Z" }, + { url = "https://files.pythonhosted.org/packages/3f/db/6d498b844342deb3fa1d030598db93937a9964fcf5cb4da4feb5f17be34b/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb11a4f1b2b63337cfd3b4d110af778a59aae51c81d195768e353d8b52f88081", size = 557249, upload-time = "2025-08-27T12:14:08.37Z" }, + { url = "https://files.pythonhosted.org/packages/60/f3/690dd38e2310b6f68858a331399b4d6dbb9132c3e8ef8b4333b96caf403d/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:13e608ac9f50a0ed4faec0e90ece76ae33b34c0e8656e3dceb9a7db994c692cd", size = 587356, upload-time = "2025-08-27T12:14:10.034Z" }, + { url = "https://files.pythonhosted.org/packages/86/e3/84507781cccd0145f35b1dc32c72675200c5ce8d5b30f813e49424ef68fc/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dd2135527aa40f061350c3f8f89da2644de26cd73e4de458e79606384f4f68e7", size = 555300, upload-time = "2025-08-27T12:14:11.783Z" }, + { url = "https://files.pythonhosted.org/packages/e5/ee/375469849e6b429b3516206b4580a79e9ef3eb12920ddbd4492b56eaacbe/rpds_py-0.27.1-cp313-cp313t-win32.whl", hash = "sha256:3020724ade63fe320a972e2ffd93b5623227e684315adce194941167fee02688", size = 216714, upload-time = "2025-08-27T12:14:13.629Z" }, + { url = "https://files.pythonhosted.org/packages/21/87/3fc94e47c9bd0742660e84706c311a860dcae4374cf4a03c477e23ce605a/rpds_py-0.27.1-cp313-cp313t-win_amd64.whl", hash = "sha256:8ee50c3e41739886606388ba3ab3ee2aae9f35fb23f833091833255a31740797", size = 228943, upload-time = "2025-08-27T12:14:14.937Z" }, + { url = "https://files.pythonhosted.org/packages/70/36/b6e6066520a07cf029d385de869729a895917b411e777ab1cde878100a1d/rpds_py-0.27.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:acb9aafccaae278f449d9c713b64a9e68662e7799dbd5859e2c6b3c67b56d334", size = 362472, upload-time = "2025-08-27T12:14:16.333Z" }, + { url = "https://files.pythonhosted.org/packages/af/07/b4646032e0dcec0df9c73a3bd52f63bc6c5f9cda992f06bd0e73fe3fbebd/rpds_py-0.27.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b7fb801aa7f845ddf601c49630deeeccde7ce10065561d92729bfe81bd21fb33", size = 345676, upload-time = "2025-08-27T12:14:17.764Z" }, + { url = "https://files.pythonhosted.org/packages/b0/16/2f1003ee5d0af4bcb13c0cf894957984c32a6751ed7206db2aee7379a55e/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe0dd05afb46597b9a2e11c351e5e4283c741237e7f617ffb3252780cca9336a", size = 385313, upload-time = "2025-08-27T12:14:19.829Z" }, + { url = "https://files.pythonhosted.org/packages/05/cd/7eb6dd7b232e7f2654d03fa07f1414d7dfc980e82ba71e40a7c46fd95484/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b6dfb0e058adb12d8b1d1b25f686e94ffa65d9995a5157afe99743bf7369d62b", size = 399080, upload-time = "2025-08-27T12:14:21.531Z" }, + { url = "https://files.pythonhosted.org/packages/20/51/5829afd5000ec1cb60f304711f02572d619040aa3ec033d8226817d1e571/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed090ccd235f6fa8bb5861684567f0a83e04f52dfc2e5c05f2e4b1309fcf85e7", size = 523868, upload-time = "2025-08-27T12:14:23.485Z" }, + { url = "https://files.pythonhosted.org/packages/05/2c/30eebca20d5db95720ab4d2faec1b5e4c1025c473f703738c371241476a2/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf876e79763eecf3e7356f157540d6a093cef395b65514f17a356f62af6cc136", size = 408750, upload-time = "2025-08-27T12:14:24.924Z" }, + { url = "https://files.pythonhosted.org/packages/90/1a/cdb5083f043597c4d4276eae4e4c70c55ab5accec078da8611f24575a367/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12ed005216a51b1d6e2b02a7bd31885fe317e45897de81d86dcce7d74618ffff", size = 387688, upload-time = "2025-08-27T12:14:27.537Z" }, + { url = "https://files.pythonhosted.org/packages/7c/92/cf786a15320e173f945d205ab31585cc43969743bb1a48b6888f7a2b0a2d/rpds_py-0.27.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:ee4308f409a40e50593c7e3bb8cbe0b4d4c66d1674a316324f0c2f5383b486f9", size = 407225, upload-time = "2025-08-27T12:14:28.981Z" }, + { url = "https://files.pythonhosted.org/packages/33/5c/85ee16df5b65063ef26017bef33096557a4c83fbe56218ac7cd8c235f16d/rpds_py-0.27.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b08d152555acf1f455154d498ca855618c1378ec810646fcd7c76416ac6dc60", size = 423361, upload-time = "2025-08-27T12:14:30.469Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8e/1c2741307fcabd1a334ecf008e92c4f47bb6f848712cf15c923becfe82bb/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:dce51c828941973a5684d458214d3a36fcd28da3e1875d659388f4f9f12cc33e", size = 562493, upload-time = "2025-08-27T12:14:31.987Z" }, + { url = "https://files.pythonhosted.org/packages/04/03/5159321baae9b2222442a70c1f988cbbd66b9be0675dd3936461269be360/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:c1476d6f29eb81aa4151c9a31219b03f1f798dc43d8af1250a870735516a1212", size = 592623, upload-time = "2025-08-27T12:14:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/ff/39/c09fd1ad28b85bc1d4554a8710233c9f4cefd03d7717a1b8fbfd171d1167/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3ce0cac322b0d69b63c9cdb895ee1b65805ec9ffad37639f291dd79467bee675", size = 558800, upload-time = "2025-08-27T12:14:35.436Z" }, + { url = "https://files.pythonhosted.org/packages/c5/d6/99228e6bbcf4baa764b18258f519a9035131d91b538d4e0e294313462a98/rpds_py-0.27.1-cp314-cp314-win32.whl", hash = "sha256:dfbfac137d2a3d0725758cd141f878bf4329ba25e34979797c89474a89a8a3a3", size = 221943, upload-time = "2025-08-27T12:14:36.898Z" }, + { url = "https://files.pythonhosted.org/packages/be/07/c802bc6b8e95be83b79bdf23d1aa61d68324cb1006e245d6c58e959e314d/rpds_py-0.27.1-cp314-cp314-win_amd64.whl", hash = "sha256:a6e57b0abfe7cc513450fcf529eb486b6e4d3f8aee83e92eb5f1ef848218d456", size = 233739, upload-time = "2025-08-27T12:14:38.386Z" }, + { url = "https://files.pythonhosted.org/packages/c8/89/3e1b1c16d4c2d547c5717377a8df99aee8099ff050f87c45cb4d5fa70891/rpds_py-0.27.1-cp314-cp314-win_arm64.whl", hash = "sha256:faf8d146f3d476abfee026c4ae3bdd9ca14236ae4e4c310cbd1cf75ba33d24a3", size = 223120, upload-time = "2025-08-27T12:14:39.82Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/dc7931dc2fa4a6e46b2a4fa744a9fe5c548efd70e0ba74f40b39fa4a8c10/rpds_py-0.27.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:ba81d2b56b6d4911ce735aad0a1d4495e808b8ee4dc58715998741a26874e7c2", size = 358944, upload-time = "2025-08-27T12:14:41.199Z" }, + { url = "https://files.pythonhosted.org/packages/e6/22/4af76ac4e9f336bfb1a5f240d18a33c6b2fcaadb7472ac7680576512b49a/rpds_py-0.27.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:84f7d509870098de0e864cad0102711c1e24e9b1a50ee713b65928adb22269e4", size = 342283, upload-time = "2025-08-27T12:14:42.699Z" }, + { url = "https://files.pythonhosted.org/packages/1c/15/2a7c619b3c2272ea9feb9ade67a45c40b3eeb500d503ad4c28c395dc51b4/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e960fc78fecd1100539f14132425e1d5fe44ecb9239f8f27f079962021523e", size = 380320, upload-time = "2025-08-27T12:14:44.157Z" }, + { url = "https://files.pythonhosted.org/packages/a2/7d/4c6d243ba4a3057e994bb5bedd01b5c963c12fe38dde707a52acdb3849e7/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:62f85b665cedab1a503747617393573995dac4600ff51869d69ad2f39eb5e817", size = 391760, upload-time = "2025-08-27T12:14:45.845Z" }, + { url = "https://files.pythonhosted.org/packages/b4/71/b19401a909b83bcd67f90221330bc1ef11bc486fe4e04c24388d28a618ae/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fed467af29776f6556250c9ed85ea5a4dd121ab56a5f8b206e3e7a4c551e48ec", size = 522476, upload-time = "2025-08-27T12:14:47.364Z" }, + { url = "https://files.pythonhosted.org/packages/e4/44/1a3b9715c0455d2e2f0f6df5ee6d6f5afdc423d0773a8a682ed2b43c566c/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2729615f9d430af0ae6b36cf042cb55c0936408d543fb691e1a9e36648fd35a", size = 403418, upload-time = "2025-08-27T12:14:49.991Z" }, + { url = "https://files.pythonhosted.org/packages/1c/4b/fb6c4f14984eb56673bc868a66536f53417ddb13ed44b391998100a06a96/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b207d881a9aef7ba753d69c123a35d96ca7cb808056998f6b9e8747321f03b8", size = 384771, upload-time = "2025-08-27T12:14:52.159Z" }, + { url = "https://files.pythonhosted.org/packages/c0/56/d5265d2d28b7420d7b4d4d85cad8ef891760f5135102e60d5c970b976e41/rpds_py-0.27.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:639fd5efec029f99b79ae47e5d7e00ad8a773da899b6309f6786ecaf22948c48", size = 400022, upload-time = "2025-08-27T12:14:53.859Z" }, + { url = "https://files.pythonhosted.org/packages/8f/e9/9f5fc70164a569bdd6ed9046486c3568d6926e3a49bdefeeccfb18655875/rpds_py-0.27.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fecc80cb2a90e28af8a9b366edacf33d7a91cbfe4c2c4544ea1246e949cfebeb", size = 416787, upload-time = "2025-08-27T12:14:55.673Z" }, + { url = "https://files.pythonhosted.org/packages/d4/64/56dd03430ba491db943a81dcdef115a985aac5f44f565cd39a00c766d45c/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42a89282d711711d0a62d6f57d81aa43a1368686c45bc1c46b7f079d55692734", size = 557538, upload-time = "2025-08-27T12:14:57.245Z" }, + { url = "https://files.pythonhosted.org/packages/3f/36/92cc885a3129993b1d963a2a42ecf64e6a8e129d2c7cc980dbeba84e55fb/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:cf9931f14223de59551ab9d38ed18d92f14f055a5f78c1d8ad6493f735021bbb", size = 588512, upload-time = "2025-08-27T12:14:58.728Z" }, + { url = "https://files.pythonhosted.org/packages/dd/10/6b283707780a81919f71625351182b4f98932ac89a09023cb61865136244/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f39f58a27cc6e59f432b568ed8429c7e1641324fbe38131de852cd77b2d534b0", size = 555813, upload-time = "2025-08-27T12:15:00.334Z" }, + { url = "https://files.pythonhosted.org/packages/04/2e/30b5ea18c01379da6272a92825dd7e53dc9d15c88a19e97932d35d430ef7/rpds_py-0.27.1-cp314-cp314t-win32.whl", hash = "sha256:d5fa0ee122dc09e23607a28e6d7b150da16c662e66409bbe85230e4c85bb528a", size = 217385, upload-time = "2025-08-27T12:15:01.937Z" }, + { url = "https://files.pythonhosted.org/packages/32/7d/97119da51cb1dd3f2f3c0805f155a3aa4a95fa44fe7d78ae15e69edf4f34/rpds_py-0.27.1-cp314-cp314t-win_amd64.whl", hash = "sha256:6567d2bb951e21232c2f660c24cf3470bb96de56cdcb3f071a83feeaff8a2772", size = 230097, upload-time = "2025-08-27T12:15:03.961Z" }, + { url = "https://files.pythonhosted.org/packages/d5/63/b7cc415c345625d5e62f694ea356c58fb964861409008118f1245f8c3347/rpds_py-0.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7ba22cb9693df986033b91ae1d7a979bc399237d45fccf875b76f62bb9e52ddf", size = 371360, upload-time = "2025-08-27T12:15:29.218Z" }, + { url = "https://files.pythonhosted.org/packages/e5/8c/12e1b24b560cf378b8ffbdb9dc73abd529e1adcfcf82727dfd29c4a7b88d/rpds_py-0.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b640501be9288c77738b5492b3fd3abc4ba95c50c2e41273c8a1459f08298d3", size = 353933, upload-time = "2025-08-27T12:15:30.837Z" }, + { url = "https://files.pythonhosted.org/packages/9b/85/1bb2210c1f7a1b99e91fea486b9f0f894aa5da3a5ec7097cbad7dec6d40f/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb08b65b93e0c6dd70aac7f7890a9c0938d5ec71d5cb32d45cf844fb8ae47636", size = 382962, upload-time = "2025-08-27T12:15:32.348Z" }, + { url = "https://files.pythonhosted.org/packages/cc/c9/a839b9f219cf80ed65f27a7f5ddbb2809c1b85c966020ae2dff490e0b18e/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d7ff07d696a7a38152ebdb8212ca9e5baab56656749f3d6004b34ab726b550b8", size = 394412, upload-time = "2025-08-27T12:15:33.839Z" }, + { url = "https://files.pythonhosted.org/packages/02/2d/b1d7f928b0b1f4fc2e0133e8051d199b01d7384875adc63b6ddadf3de7e5/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fb7c72262deae25366e3b6c0c0ba46007967aea15d1eea746e44ddba8ec58dcc", size = 523972, upload-time = "2025-08-27T12:15:35.377Z" }, + { url = "https://files.pythonhosted.org/packages/a9/af/2cbf56edd2d07716df1aec8a726b3159deb47cb5c27e1e42b71d705a7c2f/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7b002cab05d6339716b03a4a3a2ce26737f6231d7b523f339fa061d53368c9d8", size = 403273, upload-time = "2025-08-27T12:15:37.051Z" }, + { url = "https://files.pythonhosted.org/packages/c0/93/425e32200158d44ff01da5d9612c3b6711fe69f606f06e3895511f17473b/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23f6b69d1c26c4704fec01311963a41d7de3ee0570a84ebde4d544e5a1859ffc", size = 385278, upload-time = "2025-08-27T12:15:38.571Z" }, + { url = "https://files.pythonhosted.org/packages/eb/1a/1a04a915ecd0551bfa9e77b7672d1937b4b72a0fc204a17deef76001cfb2/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:530064db9146b247351f2a0250b8f00b289accea4596a033e94be2389977de71", size = 402084, upload-time = "2025-08-27T12:15:40.529Z" }, + { url = "https://files.pythonhosted.org/packages/51/f7/66585c0fe5714368b62951d2513b684e5215beaceab2c6629549ddb15036/rpds_py-0.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7b90b0496570bd6b0321724a330d8b545827c4df2034b6ddfc5f5275f55da2ad", size = 419041, upload-time = "2025-08-27T12:15:42.191Z" }, + { url = "https://files.pythonhosted.org/packages/8e/7e/83a508f6b8e219bba2d4af077c35ba0e0cdd35a751a3be6a7cba5a55ad71/rpds_py-0.27.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:879b0e14a2da6a1102a3fc8af580fc1ead37e6d6692a781bd8c83da37429b5ab", size = 560084, upload-time = "2025-08-27T12:15:43.839Z" }, + { url = "https://files.pythonhosted.org/packages/66/66/bb945683b958a1b19eb0fe715594630d0f36396ebdef4d9b89c2fa09aa56/rpds_py-0.27.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:0d807710df3b5faa66c731afa162ea29717ab3be17bdc15f90f2d9f183da4059", size = 590115, upload-time = "2025-08-27T12:15:46.647Z" }, + { url = "https://files.pythonhosted.org/packages/12/00/ccfaafaf7db7e7adace915e5c2f2c2410e16402561801e9c7f96683002d3/rpds_py-0.27.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:3adc388fc3afb6540aec081fa59e6e0d3908722771aa1e37ffe22b220a436f0b", size = 556561, upload-time = "2025-08-27T12:15:48.219Z" }, + { url = "https://files.pythonhosted.org/packages/e1/b7/92b6ed9aad103bfe1c45df98453dfae40969eef2cb6c6239c58d7e96f1b3/rpds_py-0.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c796c0c1cc68cb08b0284db4229f5af76168172670c74908fdbd4b7d7f515819", size = 229125, upload-time = "2025-08-27T12:15:49.956Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ed/e1fba02de17f4f76318b834425257c8ea297e415e12c68b4361f63e8ae92/rpds_py-0.27.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdfe4bb2f9fe7458b7453ad3c33e726d6d1c7c0a72960bcc23800d77384e42df", size = 371402, upload-time = "2025-08-27T12:15:51.561Z" }, + { url = "https://files.pythonhosted.org/packages/af/7c/e16b959b316048b55585a697e94add55a4ae0d984434d279ea83442e460d/rpds_py-0.27.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:8fabb8fd848a5f75a2324e4a84501ee3a5e3c78d8603f83475441866e60b94a3", size = 354084, upload-time = "2025-08-27T12:15:53.219Z" }, + { url = "https://files.pythonhosted.org/packages/de/c1/ade645f55de76799fdd08682d51ae6724cb46f318573f18be49b1e040428/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eda8719d598f2f7f3e0f885cba8646644b55a187762bec091fa14a2b819746a9", size = 383090, upload-time = "2025-08-27T12:15:55.158Z" }, + { url = "https://files.pythonhosted.org/packages/1f/27/89070ca9b856e52960da1472efcb6c20ba27cfe902f4f23ed095b9cfc61d/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c64d07e95606ec402a0a1c511fe003873fa6af630bda59bac77fac8b4318ebc", size = 394519, upload-time = "2025-08-27T12:15:57.238Z" }, + { url = "https://files.pythonhosted.org/packages/b3/28/be120586874ef906aa5aeeae95ae8df4184bc757e5b6bd1c729ccff45ed5/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93a2ed40de81bcff59aabebb626562d48332f3d028ca2036f1d23cbb52750be4", size = 523817, upload-time = "2025-08-27T12:15:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/70cc197bc11cfcde02a86f36ac1eed15c56667c2ebddbdb76a47e90306da/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:387ce8c44ae94e0ec50532d9cb0edce17311024c9794eb196b90e1058aadeb66", size = 403240, upload-time = "2025-08-27T12:16:00.923Z" }, + { url = "https://files.pythonhosted.org/packages/cf/35/46936cca449f7f518f2f4996e0e8344db4b57e2081e752441154089d2a5f/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aaf94f812c95b5e60ebaf8bfb1898a7d7cb9c1af5744d4a67fa47796e0465d4e", size = 385194, upload-time = "2025-08-27T12:16:02.802Z" }, + { url = "https://files.pythonhosted.org/packages/e1/62/29c0d3e5125c3270b51415af7cbff1ec587379c84f55a5761cc9efa8cd06/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:4848ca84d6ded9b58e474dfdbad4b8bfb450344c0551ddc8d958bf4b36aa837c", size = 402086, upload-time = "2025-08-27T12:16:04.806Z" }, + { url = "https://files.pythonhosted.org/packages/8f/66/03e1087679227785474466fdd04157fb793b3b76e3fcf01cbf4c693c1949/rpds_py-0.27.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2bde09cbcf2248b73c7c323be49b280180ff39fadcfe04e7b6f54a678d02a7cf", size = 419272, upload-time = "2025-08-27T12:16:06.471Z" }, + { url = "https://files.pythonhosted.org/packages/6a/24/e3e72d265121e00b063aef3e3501e5b2473cf1b23511d56e529531acf01e/rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:94c44ee01fd21c9058f124d2d4f0c9dc7634bec93cd4b38eefc385dabe71acbf", size = 560003, upload-time = "2025-08-27T12:16:08.06Z" }, + { url = "https://files.pythonhosted.org/packages/26/ca/f5a344c534214cc2d41118c0699fffbdc2c1bc7046f2a2b9609765ab9c92/rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:df8b74962e35c9249425d90144e721eed198e6555a0e22a563d29fe4486b51f6", size = 590482, upload-time = "2025-08-27T12:16:10.137Z" }, + { url = "https://files.pythonhosted.org/packages/ce/08/4349bdd5c64d9d193c360aa9db89adeee6f6682ab8825dca0a3f535f434f/rpds_py-0.27.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:dc23e6820e3b40847e2f4a7726462ba0cf53089512abe9ee16318c366494c17a", size = 556523, upload-time = "2025-08-27T12:16:12.188Z" }, ] [[package]] @@ -1515,36 +1554,36 @@ dependencies = [ { name = "cryptography" }, { name = "jeepney" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884 } +sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554 }, + { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554, upload-time = "2025-11-23T19:02:51.545Z" }, ] [[package]] name = "shellingham" version = "1.5.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310 } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 }, + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, ] [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] [[package]] name = "sortedcontainers" version = "2.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594 } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 }, + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, ] [[package]] @@ -1554,9 +1593,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/42/6f/22ed6e33f8a9e76ca0a412405f31abb844b779d52c5f96660766edcd737c/sse_starlette-3.0.2.tar.gz", hash = "sha256:ccd60b5765ebb3584d0de2d7a6e4f745672581de4f5005ab31c3a25d10b52b3a", size = 20985 } +sdist = { url = "https://files.pythonhosted.org/packages/42/6f/22ed6e33f8a9e76ca0a412405f31abb844b779d52c5f96660766edcd737c/sse_starlette-3.0.2.tar.gz", hash = "sha256:ccd60b5765ebb3584d0de2d7a6e4f745672581de4f5005ab31c3a25d10b52b3a", size = 20985, upload-time = "2025-07-27T09:07:44.565Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/10/c78f463b4ef22eef8491f218f692be838282cd65480f6e423d7730dfd1fb/sse_starlette-3.0.2-py3-none-any.whl", hash = "sha256:16b7cbfddbcd4eaca11f7b586f3b8a080f1afe952c15813455b162edea619e5a", size = 11297 }, + { url = "https://files.pythonhosted.org/packages/ef/10/c78f463b4ef22eef8491f218f692be838282cd65480f6e423d7730dfd1fb/sse_starlette-3.0.2-py3-none-any.whl", hash = "sha256:16b7cbfddbcd4eaca11f7b586f3b8a080f1afe952c15813455b162edea619e5a", size = 11297, upload-time = "2025-07-27T09:07:43.268Z" }, ] [[package]] @@ -1567,58 +1606,58 @@ dependencies = [ { name = "anyio" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/15/b9/cc3017f9a9c9b6e27c5106cc10cc7904653c3eec0729793aec10479dd669/starlette-0.47.3.tar.gz", hash = "sha256:6bc94f839cc176c4858894f1f8908f0ab79dfec1a6b8402f6da9be26ebea52e9", size = 2584144 } +sdist = { url = "https://files.pythonhosted.org/packages/15/b9/cc3017f9a9c9b6e27c5106cc10cc7904653c3eec0729793aec10479dd669/starlette-0.47.3.tar.gz", hash = "sha256:6bc94f839cc176c4858894f1f8908f0ab79dfec1a6b8402f6da9be26ebea52e9", size = 2584144, upload-time = "2025-08-24T13:36:42.122Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/fd/901cfa59aaa5b30a99e16876f11abe38b59a1a2c51ffb3d7142bb6089069/starlette-0.47.3-py3-none-any.whl", hash = "sha256:89c0778ca62a76b826101e7c709e70680a1699ca7da6b44d38eb0a7e61fe4b51", size = 72991 }, + { url = "https://files.pythonhosted.org/packages/ce/fd/901cfa59aaa5b30a99e16876f11abe38b59a1a2c51ffb3d7142bb6089069/starlette-0.47.3-py3-none-any.whl", hash = "sha256:89c0778ca62a76b826101e7c709e70680a1699ca7da6b44d38eb0a7e61fe4b51", size = 72991, upload-time = "2025-08-24T13:36:40.887Z" }, ] [[package]] name = "tomli" version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392 } +sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392, upload-time = "2025-10-08T22:01:47.119Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236 }, - { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084 }, - { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832 }, - { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052 }, - { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555 }, - { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128 }, - { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445 }, - { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165 }, - { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891 }, - { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796 }, - { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121 }, - { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070 }, - { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859 }, - { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296 }, - { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124 }, - { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698 }, - { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819 }, - { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766 }, - { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771 }, - { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586 }, - { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792 }, - { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909 }, - { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946 }, - { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705 }, - { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244 }, - { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637 }, - { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925 }, - { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045 }, - { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835 }, - { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109 }, - { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930 }, - { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964 }, - { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065 }, - { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088 }, - { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193 }, - { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488 }, - { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669 }, - { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709 }, - { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563 }, - { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756 }, - { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408 }, + { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236, upload-time = "2025-10-08T22:01:00.137Z" }, + { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084, upload-time = "2025-10-08T22:01:01.63Z" }, + { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832, upload-time = "2025-10-08T22:01:02.543Z" }, + { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052, upload-time = "2025-10-08T22:01:03.836Z" }, + { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555, upload-time = "2025-10-08T22:01:04.834Z" }, + { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128, upload-time = "2025-10-08T22:01:05.84Z" }, + { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445, upload-time = "2025-10-08T22:01:06.896Z" }, + { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165, upload-time = "2025-10-08T22:01:08.107Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891, upload-time = "2025-10-08T22:01:09.082Z" }, + { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796, upload-time = "2025-10-08T22:01:10.266Z" }, + { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121, upload-time = "2025-10-08T22:01:11.332Z" }, + { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070, upload-time = "2025-10-08T22:01:12.498Z" }, + { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859, upload-time = "2025-10-08T22:01:13.551Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296, upload-time = "2025-10-08T22:01:14.614Z" }, + { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124, upload-time = "2025-10-08T22:01:15.629Z" }, + { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698, upload-time = "2025-10-08T22:01:16.51Z" }, + { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819, upload-time = "2025-10-08T22:01:17.964Z" }, + { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766, upload-time = "2025-10-08T22:01:18.959Z" }, + { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771, upload-time = "2025-10-08T22:01:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586, upload-time = "2025-10-08T22:01:21.164Z" }, + { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792, upload-time = "2025-10-08T22:01:22.417Z" }, + { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909, upload-time = "2025-10-08T22:01:23.859Z" }, + { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946, upload-time = "2025-10-08T22:01:24.893Z" }, + { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705, upload-time = "2025-10-08T22:01:26.153Z" }, + { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244, upload-time = "2025-10-08T22:01:27.06Z" }, + { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637, upload-time = "2025-10-08T22:01:28.059Z" }, + { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925, upload-time = "2025-10-08T22:01:29.066Z" }, + { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045, upload-time = "2025-10-08T22:01:31.98Z" }, + { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835, upload-time = "2025-10-08T22:01:32.989Z" }, + { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109, upload-time = "2025-10-08T22:01:34.052Z" }, + { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930, upload-time = "2025-10-08T22:01:35.082Z" }, + { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964, upload-time = "2025-10-08T22:01:36.057Z" }, + { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065, upload-time = "2025-10-08T22:01:37.27Z" }, + { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088, upload-time = "2025-10-08T22:01:38.235Z" }, + { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193, upload-time = "2025-10-08T22:01:39.712Z" }, + { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488, upload-time = "2025-10-08T22:01:40.773Z" }, + { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669, upload-time = "2025-10-08T22:01:41.824Z" }, + { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709, upload-time = "2025-10-08T22:01:43.177Z" }, + { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563, upload-time = "2025-10-08T22:01:44.233Z" }, + { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756, upload-time = "2025-10-08T22:01:45.234Z" }, + { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408, upload-time = "2025-10-08T22:01:46.04Z" }, ] [[package]] @@ -1626,11 +1665,11 @@ name = "tqdm" version = "4.67.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, ] [[package]] @@ -1643,18 +1682,18 @@ dependencies = [ { name = "shellingham" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8f/28/7c85c8032b91dbe79725b6f17d2fffc595dff06a35c7a30a37bef73a1ab4/typer-0.20.0.tar.gz", hash = "sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37", size = 106492 } +sdist = { url = "https://files.pythonhosted.org/packages/8f/28/7c85c8032b91dbe79725b6f17d2fffc595dff06a35c7a30a37bef73a1ab4/typer-0.20.0.tar.gz", hash = "sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37", size = 106492, upload-time = "2025-10-20T17:03:49.445Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/64/7713ffe4b5983314e9d436a90d5bd4f63b6054e2aca783a3cfc44cb95bbf/typer-0.20.0-py3-none-any.whl", hash = "sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a", size = 47028 }, + { url = "https://files.pythonhosted.org/packages/78/64/7713ffe4b5983314e9d436a90d5bd4f63b6054e2aca783a3cfc44cb95bbf/typer-0.20.0-py3-none-any.whl", hash = "sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a", size = 47028, upload-time = "2025-10-20T17:03:47.617Z" }, ] [[package]] name = "typing-extensions" version = "4.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391 } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614 }, + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] [[package]] @@ -1664,18 +1703,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", size = 75726 } +sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", size = 75726, upload-time = "2025-05-21T18:55:23.885Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552 }, + { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552, upload-time = "2025-05-21T18:55:22.152Z" }, ] [[package]] name = "urllib3" version = "2.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185 } +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795 }, + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, ] [[package]] @@ -1687,144 +1726,144 @@ dependencies = [ { name = "h11" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01", size = 78473 } +sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01", size = 78473, upload-time = "2025-06-28T16:15:46.058Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a", size = 66406 }, + { url = "https://files.pythonhosted.org/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a", size = 66406, upload-time = "2025-06-28T16:15:44.816Z" }, ] [[package]] name = "websockets" version = "15.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016 } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/da/6462a9f510c0c49837bbc9345aca92d767a56c1fb2939e1579df1e1cdcf7/websockets-15.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b", size = 175423 }, - { url = "https://files.pythonhosted.org/packages/1c/9f/9d11c1a4eb046a9e106483b9ff69bce7ac880443f00e5ce64261b47b07e7/websockets-15.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205", size = 173080 }, - { url = "https://files.pythonhosted.org/packages/d5/4f/b462242432d93ea45f297b6179c7333dd0402b855a912a04e7fc61c0d71f/websockets-15.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a", size = 173329 }, - { url = "https://files.pythonhosted.org/packages/6e/0c/6afa1f4644d7ed50284ac59cc70ef8abd44ccf7d45850d989ea7310538d0/websockets-15.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e", size = 182312 }, - { url = "https://files.pythonhosted.org/packages/dd/d4/ffc8bd1350b229ca7a4db2a3e1c482cf87cea1baccd0ef3e72bc720caeec/websockets-15.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf", size = 181319 }, - { url = "https://files.pythonhosted.org/packages/97/3a/5323a6bb94917af13bbb34009fac01e55c51dfde354f63692bf2533ffbc2/websockets-15.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb", size = 181631 }, - { url = "https://files.pythonhosted.org/packages/a6/cc/1aeb0f7cee59ef065724041bb7ed667b6ab1eeffe5141696cccec2687b66/websockets-15.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d", size = 182016 }, - { url = "https://files.pythonhosted.org/packages/79/f9/c86f8f7af208e4161a7f7e02774e9d0a81c632ae76db2ff22549e1718a51/websockets-15.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9", size = 181426 }, - { url = "https://files.pythonhosted.org/packages/c7/b9/828b0bc6753db905b91df6ae477c0b14a141090df64fb17f8a9d7e3516cf/websockets-15.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c", size = 181360 }, - { url = "https://files.pythonhosted.org/packages/89/fb/250f5533ec468ba6327055b7d98b9df056fb1ce623b8b6aaafb30b55d02e/websockets-15.0.1-cp310-cp310-win32.whl", hash = "sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256", size = 176388 }, - { url = "https://files.pythonhosted.org/packages/1c/46/aca7082012768bb98e5608f01658ff3ac8437e563eca41cf068bd5849a5e/websockets-15.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41", size = 176830 }, - { url = "https://files.pythonhosted.org/packages/9f/32/18fcd5919c293a398db67443acd33fde142f283853076049824fc58e6f75/websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431", size = 175423 }, - { url = "https://files.pythonhosted.org/packages/76/70/ba1ad96b07869275ef42e2ce21f07a5b0148936688c2baf7e4a1f60d5058/websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57", size = 173082 }, - { url = "https://files.pythonhosted.org/packages/86/f2/10b55821dd40eb696ce4704a87d57774696f9451108cff0d2824c97e0f97/websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905", size = 173330 }, - { url = "https://files.pythonhosted.org/packages/a5/90/1c37ae8b8a113d3daf1065222b6af61cc44102da95388ac0018fcb7d93d9/websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562", size = 182878 }, - { url = "https://files.pythonhosted.org/packages/8e/8d/96e8e288b2a41dffafb78e8904ea7367ee4f891dafc2ab8d87e2124cb3d3/websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792", size = 181883 }, - { url = "https://files.pythonhosted.org/packages/93/1f/5d6dbf551766308f6f50f8baf8e9860be6182911e8106da7a7f73785f4c4/websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413", size = 182252 }, - { url = "https://files.pythonhosted.org/packages/d4/78/2d4fed9123e6620cbf1706c0de8a1632e1a28e7774d94346d7de1bba2ca3/websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8", size = 182521 }, - { url = "https://files.pythonhosted.org/packages/e7/3b/66d4c1b444dd1a9823c4a81f50231b921bab54eee2f69e70319b4e21f1ca/websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3", size = 181958 }, - { url = "https://files.pythonhosted.org/packages/08/ff/e9eed2ee5fed6f76fdd6032ca5cd38c57ca9661430bb3d5fb2872dc8703c/websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf", size = 181918 }, - { url = "https://files.pythonhosted.org/packages/d8/75/994634a49b7e12532be6a42103597b71098fd25900f7437d6055ed39930a/websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", size = 176388 }, - { url = "https://files.pythonhosted.org/packages/98/93/e36c73f78400a65f5e236cd376713c34182e6663f6889cd45a4a04d8f203/websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", size = 176828 }, - { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437 }, - { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096 }, - { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332 }, - { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152 }, - { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096 }, - { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523 }, - { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790 }, - { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165 }, - { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160 }, - { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395 }, - { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841 }, - { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440 }, - { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098 }, - { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329 }, - { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111 }, - { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054 }, - { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496 }, - { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829 }, - { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217 }, - { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195 }, - { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393 }, - { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837 }, - { url = "https://files.pythonhosted.org/packages/02/9e/d40f779fa16f74d3468357197af8d6ad07e7c5a27ea1ca74ceb38986f77a/websockets-15.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3", size = 173109 }, - { url = "https://files.pythonhosted.org/packages/bc/cd/5b887b8585a593073fd92f7c23ecd3985cd2c3175025a91b0d69b0551372/websockets-15.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1", size = 173343 }, - { url = "https://files.pythonhosted.org/packages/fe/ae/d34f7556890341e900a95acf4886833646306269f899d58ad62f588bf410/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475", size = 174599 }, - { url = "https://files.pythonhosted.org/packages/71/e6/5fd43993a87db364ec60fc1d608273a1a465c0caba69176dd160e197ce42/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9", size = 174207 }, - { url = "https://files.pythonhosted.org/packages/2b/fb/c492d6daa5ec067c2988ac80c61359ace5c4c674c532985ac5a123436cec/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04", size = 174155 }, - { url = "https://files.pythonhosted.org/packages/68/a1/dcb68430b1d00b698ae7a7e0194433bce4f07ded185f0ee5fb21e2a2e91e/websockets-15.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122", size = 176884 }, - { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 }, + { url = "https://files.pythonhosted.org/packages/1e/da/6462a9f510c0c49837bbc9345aca92d767a56c1fb2939e1579df1e1cdcf7/websockets-15.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b", size = 175423, upload-time = "2025-03-05T20:01:35.363Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9f/9d11c1a4eb046a9e106483b9ff69bce7ac880443f00e5ce64261b47b07e7/websockets-15.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205", size = 173080, upload-time = "2025-03-05T20:01:37.304Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4f/b462242432d93ea45f297b6179c7333dd0402b855a912a04e7fc61c0d71f/websockets-15.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a", size = 173329, upload-time = "2025-03-05T20:01:39.668Z" }, + { url = "https://files.pythonhosted.org/packages/6e/0c/6afa1f4644d7ed50284ac59cc70ef8abd44ccf7d45850d989ea7310538d0/websockets-15.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e", size = 182312, upload-time = "2025-03-05T20:01:41.815Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d4/ffc8bd1350b229ca7a4db2a3e1c482cf87cea1baccd0ef3e72bc720caeec/websockets-15.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf", size = 181319, upload-time = "2025-03-05T20:01:43.967Z" }, + { url = "https://files.pythonhosted.org/packages/97/3a/5323a6bb94917af13bbb34009fac01e55c51dfde354f63692bf2533ffbc2/websockets-15.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb", size = 181631, upload-time = "2025-03-05T20:01:46.104Z" }, + { url = "https://files.pythonhosted.org/packages/a6/cc/1aeb0f7cee59ef065724041bb7ed667b6ab1eeffe5141696cccec2687b66/websockets-15.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d", size = 182016, upload-time = "2025-03-05T20:01:47.603Z" }, + { url = "https://files.pythonhosted.org/packages/79/f9/c86f8f7af208e4161a7f7e02774e9d0a81c632ae76db2ff22549e1718a51/websockets-15.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9", size = 181426, upload-time = "2025-03-05T20:01:48.949Z" }, + { url = "https://files.pythonhosted.org/packages/c7/b9/828b0bc6753db905b91df6ae477c0b14a141090df64fb17f8a9d7e3516cf/websockets-15.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c", size = 181360, upload-time = "2025-03-05T20:01:50.938Z" }, + { url = "https://files.pythonhosted.org/packages/89/fb/250f5533ec468ba6327055b7d98b9df056fb1ce623b8b6aaafb30b55d02e/websockets-15.0.1-cp310-cp310-win32.whl", hash = "sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256", size = 176388, upload-time = "2025-03-05T20:01:52.213Z" }, + { url = "https://files.pythonhosted.org/packages/1c/46/aca7082012768bb98e5608f01658ff3ac8437e563eca41cf068bd5849a5e/websockets-15.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41", size = 176830, upload-time = "2025-03-05T20:01:53.922Z" }, + { url = "https://files.pythonhosted.org/packages/9f/32/18fcd5919c293a398db67443acd33fde142f283853076049824fc58e6f75/websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431", size = 175423, upload-time = "2025-03-05T20:01:56.276Z" }, + { url = "https://files.pythonhosted.org/packages/76/70/ba1ad96b07869275ef42e2ce21f07a5b0148936688c2baf7e4a1f60d5058/websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57", size = 173082, upload-time = "2025-03-05T20:01:57.563Z" }, + { url = "https://files.pythonhosted.org/packages/86/f2/10b55821dd40eb696ce4704a87d57774696f9451108cff0d2824c97e0f97/websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905", size = 173330, upload-time = "2025-03-05T20:01:59.063Z" }, + { url = "https://files.pythonhosted.org/packages/a5/90/1c37ae8b8a113d3daf1065222b6af61cc44102da95388ac0018fcb7d93d9/websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562", size = 182878, upload-time = "2025-03-05T20:02:00.305Z" }, + { url = "https://files.pythonhosted.org/packages/8e/8d/96e8e288b2a41dffafb78e8904ea7367ee4f891dafc2ab8d87e2124cb3d3/websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792", size = 181883, upload-time = "2025-03-05T20:02:03.148Z" }, + { url = "https://files.pythonhosted.org/packages/93/1f/5d6dbf551766308f6f50f8baf8e9860be6182911e8106da7a7f73785f4c4/websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413", size = 182252, upload-time = "2025-03-05T20:02:05.29Z" }, + { url = "https://files.pythonhosted.org/packages/d4/78/2d4fed9123e6620cbf1706c0de8a1632e1a28e7774d94346d7de1bba2ca3/websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8", size = 182521, upload-time = "2025-03-05T20:02:07.458Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3b/66d4c1b444dd1a9823c4a81f50231b921bab54eee2f69e70319b4e21f1ca/websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3", size = 181958, upload-time = "2025-03-05T20:02:09.842Z" }, + { url = "https://files.pythonhosted.org/packages/08/ff/e9eed2ee5fed6f76fdd6032ca5cd38c57ca9661430bb3d5fb2872dc8703c/websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf", size = 181918, upload-time = "2025-03-05T20:02:11.968Z" }, + { url = "https://files.pythonhosted.org/packages/d8/75/994634a49b7e12532be6a42103597b71098fd25900f7437d6055ed39930a/websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", size = 176388, upload-time = "2025-03-05T20:02:13.32Z" }, + { url = "https://files.pythonhosted.org/packages/98/93/e36c73f78400a65f5e236cd376713c34182e6663f6889cd45a4a04d8f203/websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", size = 176828, upload-time = "2025-03-05T20:02:14.585Z" }, + { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437, upload-time = "2025-03-05T20:02:16.706Z" }, + { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096, upload-time = "2025-03-05T20:02:18.832Z" }, + { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332, upload-time = "2025-03-05T20:02:20.187Z" }, + { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152, upload-time = "2025-03-05T20:02:22.286Z" }, + { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096, upload-time = "2025-03-05T20:02:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523, upload-time = "2025-03-05T20:02:25.669Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790, upload-time = "2025-03-05T20:02:26.99Z" }, + { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165, upload-time = "2025-03-05T20:02:30.291Z" }, + { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160, upload-time = "2025-03-05T20:02:31.634Z" }, + { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395, upload-time = "2025-03-05T20:02:33.017Z" }, + { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841, upload-time = "2025-03-05T20:02:34.498Z" }, + { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440, upload-time = "2025-03-05T20:02:36.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098, upload-time = "2025-03-05T20:02:37.985Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329, upload-time = "2025-03-05T20:02:39.298Z" }, + { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111, upload-time = "2025-03-05T20:02:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054, upload-time = "2025-03-05T20:02:41.926Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496, upload-time = "2025-03-05T20:02:43.304Z" }, + { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829, upload-time = "2025-03-05T20:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217, upload-time = "2025-03-05T20:02:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195, upload-time = "2025-03-05T20:02:51.561Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393, upload-time = "2025-03-05T20:02:53.814Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837, upload-time = "2025-03-05T20:02:55.237Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/d40f779fa16f74d3468357197af8d6ad07e7c5a27ea1ca74ceb38986f77a/websockets-15.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3", size = 173109, upload-time = "2025-03-05T20:03:17.769Z" }, + { url = "https://files.pythonhosted.org/packages/bc/cd/5b887b8585a593073fd92f7c23ecd3985cd2c3175025a91b0d69b0551372/websockets-15.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1", size = 173343, upload-time = "2025-03-05T20:03:19.094Z" }, + { url = "https://files.pythonhosted.org/packages/fe/ae/d34f7556890341e900a95acf4886833646306269f899d58ad62f588bf410/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475", size = 174599, upload-time = "2025-03-05T20:03:21.1Z" }, + { url = "https://files.pythonhosted.org/packages/71/e6/5fd43993a87db364ec60fc1d608273a1a465c0caba69176dd160e197ce42/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9", size = 174207, upload-time = "2025-03-05T20:03:23.221Z" }, + { url = "https://files.pythonhosted.org/packages/2b/fb/c492d6daa5ec067c2988ac80c61359ace5c4c674c532985ac5a123436cec/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04", size = 174155, upload-time = "2025-03-05T20:03:25.321Z" }, + { url = "https://files.pythonhosted.org/packages/68/a1/dcb68430b1d00b698ae7a7e0194433bce4f07ded185f0ee5fb21e2a2e91e/websockets-15.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122", size = 176884, upload-time = "2025-03-05T20:03:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, ] [[package]] name = "wrapt" version = "1.17.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/95/8f/aeb76c5b46e273670962298c23e7ddde79916cb74db802131d49a85e4b7d/wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0", size = 55547 } +sdist = { url = "https://files.pythonhosted.org/packages/95/8f/aeb76c5b46e273670962298c23e7ddde79916cb74db802131d49a85e4b7d/wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0", size = 55547, upload-time = "2025-08-12T05:53:21.714Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/23/bb82321b86411eb51e5a5db3fb8f8032fd30bd7c2d74bfe936136b2fa1d6/wrapt-1.17.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88bbae4d40d5a46142e70d58bf664a89b6b4befaea7b2ecc14e03cedb8e06c04", size = 53482 }, - { url = "https://files.pythonhosted.org/packages/45/69/f3c47642b79485a30a59c63f6d739ed779fb4cc8323205d047d741d55220/wrapt-1.17.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b13af258d6a9ad602d57d889f83b9d5543acd471eee12eb51f5b01f8eb1bc2", size = 38676 }, - { url = "https://files.pythonhosted.org/packages/d1/71/e7e7f5670c1eafd9e990438e69d8fb46fa91a50785332e06b560c869454f/wrapt-1.17.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c", size = 38957 }, - { url = "https://files.pythonhosted.org/packages/de/17/9f8f86755c191d6779d7ddead1a53c7a8aa18bccb7cea8e7e72dfa6a8a09/wrapt-1.17.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f9b2601381be482f70e5d1051a5965c25fb3625455a2bf520b5a077b22afb775", size = 81975 }, - { url = "https://files.pythonhosted.org/packages/f2/15/dd576273491f9f43dd09fce517f6c2ce6eb4fe21681726068db0d0467096/wrapt-1.17.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:343e44b2a8e60e06a7e0d29c1671a0d9951f59174f3709962b5143f60a2a98bd", size = 83149 }, - { url = "https://files.pythonhosted.org/packages/0c/c4/5eb4ce0d4814521fee7aa806264bf7a114e748ad05110441cd5b8a5c744b/wrapt-1.17.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:33486899acd2d7d3066156b03465b949da3fd41a5da6e394ec49d271baefcf05", size = 82209 }, - { url = "https://files.pythonhosted.org/packages/31/4b/819e9e0eb5c8dc86f60dfc42aa4e2c0d6c3db8732bce93cc752e604bb5f5/wrapt-1.17.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e6f40a8aa5a92f150bdb3e1c44b7e98fb7113955b2e5394122fa5532fec4b418", size = 81551 }, - { url = "https://files.pythonhosted.org/packages/f8/83/ed6baf89ba3a56694700139698cf703aac9f0f9eb03dab92f57551bd5385/wrapt-1.17.3-cp310-cp310-win32.whl", hash = "sha256:a36692b8491d30a8c75f1dfee65bef119d6f39ea84ee04d9f9311f83c5ad9390", size = 36464 }, - { url = "https://files.pythonhosted.org/packages/2f/90/ee61d36862340ad7e9d15a02529df6b948676b9a5829fd5e16640156627d/wrapt-1.17.3-cp310-cp310-win_amd64.whl", hash = "sha256:afd964fd43b10c12213574db492cb8f73b2f0826c8df07a68288f8f19af2ebe6", size = 38748 }, - { url = "https://files.pythonhosted.org/packages/bd/c3/cefe0bd330d389c9983ced15d326f45373f4073c9f4a8c2f99b50bfea329/wrapt-1.17.3-cp310-cp310-win_arm64.whl", hash = "sha256:af338aa93554be859173c39c85243970dc6a289fa907402289eeae7543e1ae18", size = 36810 }, - { url = "https://files.pythonhosted.org/packages/52/db/00e2a219213856074a213503fdac0511203dceefff26e1daa15250cc01a0/wrapt-1.17.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:273a736c4645e63ac582c60a56b0acb529ef07f78e08dc6bfadf6a46b19c0da7", size = 53482 }, - { url = "https://files.pythonhosted.org/packages/5e/30/ca3c4a5eba478408572096fe9ce36e6e915994dd26a4e9e98b4f729c06d9/wrapt-1.17.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5531d911795e3f935a9c23eb1c8c03c211661a5060aab167065896bbf62a5f85", size = 38674 }, - { url = "https://files.pythonhosted.org/packages/31/25/3e8cc2c46b5329c5957cec959cb76a10718e1a513309c31399a4dad07eb3/wrapt-1.17.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0610b46293c59a3adbae3dee552b648b984176f8562ee0dba099a56cfbe4df1f", size = 38959 }, - { url = "https://files.pythonhosted.org/packages/5d/8f/a32a99fc03e4b37e31b57cb9cefc65050ea08147a8ce12f288616b05ef54/wrapt-1.17.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b32888aad8b6e68f83a8fdccbf3165f5469702a7544472bdf41f582970ed3311", size = 82376 }, - { url = "https://files.pythonhosted.org/packages/31/57/4930cb8d9d70d59c27ee1332a318c20291749b4fba31f113c2f8ac49a72e/wrapt-1.17.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cccf4f81371f257440c88faed6b74f1053eef90807b77e31ca057b2db74edb1", size = 83604 }, - { url = "https://files.pythonhosted.org/packages/a8/f3/1afd48de81d63dd66e01b263a6fbb86e1b5053b419b9b33d13e1f6d0f7d0/wrapt-1.17.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8a210b158a34164de8bb68b0e7780041a903d7b00c87e906fb69928bf7890d5", size = 82782 }, - { url = "https://files.pythonhosted.org/packages/1e/d7/4ad5327612173b144998232f98a85bb24b60c352afb73bc48e3e0d2bdc4e/wrapt-1.17.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:79573c24a46ce11aab457b472efd8d125e5a51da2d1d24387666cd85f54c05b2", size = 82076 }, - { url = "https://files.pythonhosted.org/packages/bb/59/e0adfc831674a65694f18ea6dc821f9fcb9ec82c2ce7e3d73a88ba2e8718/wrapt-1.17.3-cp311-cp311-win32.whl", hash = "sha256:c31eebe420a9a5d2887b13000b043ff6ca27c452a9a22fa71f35f118e8d4bf89", size = 36457 }, - { url = "https://files.pythonhosted.org/packages/83/88/16b7231ba49861b6f75fc309b11012ede4d6b0a9c90969d9e0db8d991aeb/wrapt-1.17.3-cp311-cp311-win_amd64.whl", hash = "sha256:0b1831115c97f0663cb77aa27d381237e73ad4f721391a9bfb2fe8bc25fa6e77", size = 38745 }, - { url = "https://files.pythonhosted.org/packages/9a/1e/c4d4f3398ec073012c51d1c8d87f715f56765444e1a4b11e5180577b7e6e/wrapt-1.17.3-cp311-cp311-win_arm64.whl", hash = "sha256:5a7b3c1ee8265eb4c8f1b7d29943f195c00673f5ab60c192eba2d4a7eae5f46a", size = 36806 }, - { url = "https://files.pythonhosted.org/packages/9f/41/cad1aba93e752f1f9268c77270da3c469883d56e2798e7df6240dcb2287b/wrapt-1.17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0", size = 53998 }, - { url = "https://files.pythonhosted.org/packages/60/f8/096a7cc13097a1869fe44efe68dace40d2a16ecb853141394047f0780b96/wrapt-1.17.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba", size = 39020 }, - { url = "https://files.pythonhosted.org/packages/33/df/bdf864b8997aab4febb96a9ae5c124f700a5abd9b5e13d2a3214ec4be705/wrapt-1.17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd", size = 39098 }, - { url = "https://files.pythonhosted.org/packages/9f/81/5d931d78d0eb732b95dc3ddaeeb71c8bb572fb01356e9133916cd729ecdd/wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828", size = 88036 }, - { url = "https://files.pythonhosted.org/packages/ca/38/2e1785df03b3d72d34fc6252d91d9d12dc27a5c89caef3335a1bbb8908ca/wrapt-1.17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9", size = 88156 }, - { url = "https://files.pythonhosted.org/packages/b3/8b/48cdb60fe0603e34e05cffda0b2a4adab81fd43718e11111a4b0100fd7c1/wrapt-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396", size = 87102 }, - { url = "https://files.pythonhosted.org/packages/3c/51/d81abca783b58f40a154f1b2c56db1d2d9e0d04fa2d4224e357529f57a57/wrapt-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc", size = 87732 }, - { url = "https://files.pythonhosted.org/packages/9e/b1/43b286ca1392a006d5336412d41663eeef1ad57485f3e52c767376ba7e5a/wrapt-1.17.3-cp312-cp312-win32.whl", hash = "sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe", size = 36705 }, - { url = "https://files.pythonhosted.org/packages/28/de/49493f962bd3c586ab4b88066e967aa2e0703d6ef2c43aa28cb83bf7b507/wrapt-1.17.3-cp312-cp312-win_amd64.whl", hash = "sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c", size = 38877 }, - { url = "https://files.pythonhosted.org/packages/f1/48/0f7102fe9cb1e8a5a77f80d4f0956d62d97034bbe88d33e94699f99d181d/wrapt-1.17.3-cp312-cp312-win_arm64.whl", hash = "sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6", size = 36885 }, - { url = "https://files.pythonhosted.org/packages/fc/f6/759ece88472157acb55fc195e5b116e06730f1b651b5b314c66291729193/wrapt-1.17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0", size = 54003 }, - { url = "https://files.pythonhosted.org/packages/4f/a9/49940b9dc6d47027dc850c116d79b4155f15c08547d04db0f07121499347/wrapt-1.17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77", size = 39025 }, - { url = "https://files.pythonhosted.org/packages/45/35/6a08de0f2c96dcdd7fe464d7420ddb9a7655a6561150e5fc4da9356aeaab/wrapt-1.17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7", size = 39108 }, - { url = "https://files.pythonhosted.org/packages/0c/37/6faf15cfa41bf1f3dba80cd3f5ccc6622dfccb660ab26ed79f0178c7497f/wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277", size = 88072 }, - { url = "https://files.pythonhosted.org/packages/78/f2/efe19ada4a38e4e15b6dff39c3e3f3f73f5decf901f66e6f72fe79623a06/wrapt-1.17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d", size = 88214 }, - { url = "https://files.pythonhosted.org/packages/40/90/ca86701e9de1622b16e09689fc24b76f69b06bb0150990f6f4e8b0eeb576/wrapt-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa", size = 87105 }, - { url = "https://files.pythonhosted.org/packages/fd/e0/d10bd257c9a3e15cbf5523025252cc14d77468e8ed644aafb2d6f54cb95d/wrapt-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050", size = 87766 }, - { url = "https://files.pythonhosted.org/packages/e8/cf/7d848740203c7b4b27eb55dbfede11aca974a51c3d894f6cc4b865f42f58/wrapt-1.17.3-cp313-cp313-win32.whl", hash = "sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8", size = 36711 }, - { url = "https://files.pythonhosted.org/packages/57/54/35a84d0a4d23ea675994104e667ceff49227ce473ba6a59ba2c84f250b74/wrapt-1.17.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb", size = 38885 }, - { url = "https://files.pythonhosted.org/packages/01/77/66e54407c59d7b02a3c4e0af3783168fff8e5d61def52cda8728439d86bc/wrapt-1.17.3-cp313-cp313-win_arm64.whl", hash = "sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16", size = 36896 }, - { url = "https://files.pythonhosted.org/packages/02/a2/cd864b2a14f20d14f4c496fab97802001560f9f41554eef6df201cd7f76c/wrapt-1.17.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39", size = 54132 }, - { url = "https://files.pythonhosted.org/packages/d5/46/d011725b0c89e853dc44cceb738a307cde5d240d023d6d40a82d1b4e1182/wrapt-1.17.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235", size = 39091 }, - { url = "https://files.pythonhosted.org/packages/2e/9e/3ad852d77c35aae7ddebdbc3b6d35ec8013af7d7dddad0ad911f3d891dae/wrapt-1.17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c", size = 39172 }, - { url = "https://files.pythonhosted.org/packages/c3/f7/c983d2762bcce2326c317c26a6a1e7016f7eb039c27cdf5c4e30f4160f31/wrapt-1.17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b", size = 87163 }, - { url = "https://files.pythonhosted.org/packages/e4/0f/f673f75d489c7f22d17fe0193e84b41540d962f75fce579cf6873167c29b/wrapt-1.17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa", size = 87963 }, - { url = "https://files.pythonhosted.org/packages/df/61/515ad6caca68995da2fac7a6af97faab8f78ebe3bf4f761e1b77efbc47b5/wrapt-1.17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7", size = 86945 }, - { url = "https://files.pythonhosted.org/packages/d3/bd/4e70162ce398462a467bc09e768bee112f1412e563620adc353de9055d33/wrapt-1.17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4", size = 86857 }, - { url = "https://files.pythonhosted.org/packages/2b/b8/da8560695e9284810b8d3df8a19396a6e40e7518059584a1a394a2b35e0a/wrapt-1.17.3-cp314-cp314-win32.whl", hash = "sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10", size = 37178 }, - { url = "https://files.pythonhosted.org/packages/db/c8/b71eeb192c440d67a5a0449aaee2310a1a1e8eca41676046f99ed2487e9f/wrapt-1.17.3-cp314-cp314-win_amd64.whl", hash = "sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6", size = 39310 }, - { url = "https://files.pythonhosted.org/packages/45/20/2cda20fd4865fa40f86f6c46ed37a2a8356a7a2fde0773269311f2af56c7/wrapt-1.17.3-cp314-cp314-win_arm64.whl", hash = "sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58", size = 37266 }, - { url = "https://files.pythonhosted.org/packages/77/ed/dd5cf21aec36c80443c6f900449260b80e2a65cf963668eaef3b9accce36/wrapt-1.17.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a", size = 56544 }, - { url = "https://files.pythonhosted.org/packages/8d/96/450c651cc753877ad100c7949ab4d2e2ecc4d97157e00fa8f45df682456a/wrapt-1.17.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067", size = 40283 }, - { url = "https://files.pythonhosted.org/packages/d1/86/2fcad95994d9b572db57632acb6f900695a648c3e063f2cd344b3f5c5a37/wrapt-1.17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454", size = 40366 }, - { url = "https://files.pythonhosted.org/packages/64/0e/f4472f2fdde2d4617975144311f8800ef73677a159be7fe61fa50997d6c0/wrapt-1.17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e", size = 108571 }, - { url = "https://files.pythonhosted.org/packages/cc/01/9b85a99996b0a97c8a17484684f206cbb6ba73c1ce6890ac668bcf3838fb/wrapt-1.17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f", size = 113094 }, - { url = "https://files.pythonhosted.org/packages/25/02/78926c1efddcc7b3aa0bc3d6b33a822f7d898059f7cd9ace8c8318e559ef/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056", size = 110659 }, - { url = "https://files.pythonhosted.org/packages/dc/ee/c414501ad518ac3e6fe184753632fe5e5ecacdcf0effc23f31c1e4f7bfcf/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804", size = 106946 }, - { url = "https://files.pythonhosted.org/packages/be/44/a1bd64b723d13bb151d6cc91b986146a1952385e0392a78567e12149c7b4/wrapt-1.17.3-cp314-cp314t-win32.whl", hash = "sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977", size = 38717 }, - { url = "https://files.pythonhosted.org/packages/79/d9/7cfd5a312760ac4dd8bf0184a6ee9e43c33e47f3dadc303032ce012b8fa3/wrapt-1.17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116", size = 41334 }, - { url = "https://files.pythonhosted.org/packages/46/78/10ad9781128ed2f99dbc474f43283b13fea8ba58723e98844367531c18e9/wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6", size = 38471 }, - { url = "https://files.pythonhosted.org/packages/1f/f6/a933bd70f98e9cf3e08167fc5cd7aaaca49147e48411c0bd5ae701bb2194/wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22", size = 23591 }, + { url = "https://files.pythonhosted.org/packages/3f/23/bb82321b86411eb51e5a5db3fb8f8032fd30bd7c2d74bfe936136b2fa1d6/wrapt-1.17.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:88bbae4d40d5a46142e70d58bf664a89b6b4befaea7b2ecc14e03cedb8e06c04", size = 53482, upload-time = "2025-08-12T05:51:44.467Z" }, + { url = "https://files.pythonhosted.org/packages/45/69/f3c47642b79485a30a59c63f6d739ed779fb4cc8323205d047d741d55220/wrapt-1.17.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b13af258d6a9ad602d57d889f83b9d5543acd471eee12eb51f5b01f8eb1bc2", size = 38676, upload-time = "2025-08-12T05:51:32.636Z" }, + { url = "https://files.pythonhosted.org/packages/d1/71/e7e7f5670c1eafd9e990438e69d8fb46fa91a50785332e06b560c869454f/wrapt-1.17.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd341868a4b6714a5962c1af0bd44f7c404ef78720c7de4892901e540417111c", size = 38957, upload-time = "2025-08-12T05:51:54.655Z" }, + { url = "https://files.pythonhosted.org/packages/de/17/9f8f86755c191d6779d7ddead1a53c7a8aa18bccb7cea8e7e72dfa6a8a09/wrapt-1.17.3-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f9b2601381be482f70e5d1051a5965c25fb3625455a2bf520b5a077b22afb775", size = 81975, upload-time = "2025-08-12T05:52:30.109Z" }, + { url = "https://files.pythonhosted.org/packages/f2/15/dd576273491f9f43dd09fce517f6c2ce6eb4fe21681726068db0d0467096/wrapt-1.17.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:343e44b2a8e60e06a7e0d29c1671a0d9951f59174f3709962b5143f60a2a98bd", size = 83149, upload-time = "2025-08-12T05:52:09.316Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c4/5eb4ce0d4814521fee7aa806264bf7a114e748ad05110441cd5b8a5c744b/wrapt-1.17.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:33486899acd2d7d3066156b03465b949da3fd41a5da6e394ec49d271baefcf05", size = 82209, upload-time = "2025-08-12T05:52:10.331Z" }, + { url = "https://files.pythonhosted.org/packages/31/4b/819e9e0eb5c8dc86f60dfc42aa4e2c0d6c3db8732bce93cc752e604bb5f5/wrapt-1.17.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e6f40a8aa5a92f150bdb3e1c44b7e98fb7113955b2e5394122fa5532fec4b418", size = 81551, upload-time = "2025-08-12T05:52:31.137Z" }, + { url = "https://files.pythonhosted.org/packages/f8/83/ed6baf89ba3a56694700139698cf703aac9f0f9eb03dab92f57551bd5385/wrapt-1.17.3-cp310-cp310-win32.whl", hash = "sha256:a36692b8491d30a8c75f1dfee65bef119d6f39ea84ee04d9f9311f83c5ad9390", size = 36464, upload-time = "2025-08-12T05:53:01.204Z" }, + { url = "https://files.pythonhosted.org/packages/2f/90/ee61d36862340ad7e9d15a02529df6b948676b9a5829fd5e16640156627d/wrapt-1.17.3-cp310-cp310-win_amd64.whl", hash = "sha256:afd964fd43b10c12213574db492cb8f73b2f0826c8df07a68288f8f19af2ebe6", size = 38748, upload-time = "2025-08-12T05:53:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c3/cefe0bd330d389c9983ced15d326f45373f4073c9f4a8c2f99b50bfea329/wrapt-1.17.3-cp310-cp310-win_arm64.whl", hash = "sha256:af338aa93554be859173c39c85243970dc6a289fa907402289eeae7543e1ae18", size = 36810, upload-time = "2025-08-12T05:52:51.906Z" }, + { url = "https://files.pythonhosted.org/packages/52/db/00e2a219213856074a213503fdac0511203dceefff26e1daa15250cc01a0/wrapt-1.17.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:273a736c4645e63ac582c60a56b0acb529ef07f78e08dc6bfadf6a46b19c0da7", size = 53482, upload-time = "2025-08-12T05:51:45.79Z" }, + { url = "https://files.pythonhosted.org/packages/5e/30/ca3c4a5eba478408572096fe9ce36e6e915994dd26a4e9e98b4f729c06d9/wrapt-1.17.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5531d911795e3f935a9c23eb1c8c03c211661a5060aab167065896bbf62a5f85", size = 38674, upload-time = "2025-08-12T05:51:34.629Z" }, + { url = "https://files.pythonhosted.org/packages/31/25/3e8cc2c46b5329c5957cec959cb76a10718e1a513309c31399a4dad07eb3/wrapt-1.17.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0610b46293c59a3adbae3dee552b648b984176f8562ee0dba099a56cfbe4df1f", size = 38959, upload-time = "2025-08-12T05:51:56.074Z" }, + { url = "https://files.pythonhosted.org/packages/5d/8f/a32a99fc03e4b37e31b57cb9cefc65050ea08147a8ce12f288616b05ef54/wrapt-1.17.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b32888aad8b6e68f83a8fdccbf3165f5469702a7544472bdf41f582970ed3311", size = 82376, upload-time = "2025-08-12T05:52:32.134Z" }, + { url = "https://files.pythonhosted.org/packages/31/57/4930cb8d9d70d59c27ee1332a318c20291749b4fba31f113c2f8ac49a72e/wrapt-1.17.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8cccf4f81371f257440c88faed6b74f1053eef90807b77e31ca057b2db74edb1", size = 83604, upload-time = "2025-08-12T05:52:11.663Z" }, + { url = "https://files.pythonhosted.org/packages/a8/f3/1afd48de81d63dd66e01b263a6fbb86e1b5053b419b9b33d13e1f6d0f7d0/wrapt-1.17.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8a210b158a34164de8bb68b0e7780041a903d7b00c87e906fb69928bf7890d5", size = 82782, upload-time = "2025-08-12T05:52:12.626Z" }, + { url = "https://files.pythonhosted.org/packages/1e/d7/4ad5327612173b144998232f98a85bb24b60c352afb73bc48e3e0d2bdc4e/wrapt-1.17.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:79573c24a46ce11aab457b472efd8d125e5a51da2d1d24387666cd85f54c05b2", size = 82076, upload-time = "2025-08-12T05:52:33.168Z" }, + { url = "https://files.pythonhosted.org/packages/bb/59/e0adfc831674a65694f18ea6dc821f9fcb9ec82c2ce7e3d73a88ba2e8718/wrapt-1.17.3-cp311-cp311-win32.whl", hash = "sha256:c31eebe420a9a5d2887b13000b043ff6ca27c452a9a22fa71f35f118e8d4bf89", size = 36457, upload-time = "2025-08-12T05:53:03.936Z" }, + { url = "https://files.pythonhosted.org/packages/83/88/16b7231ba49861b6f75fc309b11012ede4d6b0a9c90969d9e0db8d991aeb/wrapt-1.17.3-cp311-cp311-win_amd64.whl", hash = "sha256:0b1831115c97f0663cb77aa27d381237e73ad4f721391a9bfb2fe8bc25fa6e77", size = 38745, upload-time = "2025-08-12T05:53:02.885Z" }, + { url = "https://files.pythonhosted.org/packages/9a/1e/c4d4f3398ec073012c51d1c8d87f715f56765444e1a4b11e5180577b7e6e/wrapt-1.17.3-cp311-cp311-win_arm64.whl", hash = "sha256:5a7b3c1ee8265eb4c8f1b7d29943f195c00673f5ab60c192eba2d4a7eae5f46a", size = 36806, upload-time = "2025-08-12T05:52:53.368Z" }, + { url = "https://files.pythonhosted.org/packages/9f/41/cad1aba93e752f1f9268c77270da3c469883d56e2798e7df6240dcb2287b/wrapt-1.17.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ab232e7fdb44cdfbf55fc3afa31bcdb0d8980b9b95c38b6405df2acb672af0e0", size = 53998, upload-time = "2025-08-12T05:51:47.138Z" }, + { url = "https://files.pythonhosted.org/packages/60/f8/096a7cc13097a1869fe44efe68dace40d2a16ecb853141394047f0780b96/wrapt-1.17.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9baa544e6acc91130e926e8c802a17f3b16fbea0fd441b5a60f5cf2cc5c3deba", size = 39020, upload-time = "2025-08-12T05:51:35.906Z" }, + { url = "https://files.pythonhosted.org/packages/33/df/bdf864b8997aab4febb96a9ae5c124f700a5abd9b5e13d2a3214ec4be705/wrapt-1.17.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b538e31eca1a7ea4605e44f81a48aa24c4632a277431a6ed3f328835901f4fd", size = 39098, upload-time = "2025-08-12T05:51:57.474Z" }, + { url = "https://files.pythonhosted.org/packages/9f/81/5d931d78d0eb732b95dc3ddaeeb71c8bb572fb01356e9133916cd729ecdd/wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:042ec3bb8f319c147b1301f2393bc19dba6e176b7da446853406d041c36c7828", size = 88036, upload-time = "2025-08-12T05:52:34.784Z" }, + { url = "https://files.pythonhosted.org/packages/ca/38/2e1785df03b3d72d34fc6252d91d9d12dc27a5c89caef3335a1bbb8908ca/wrapt-1.17.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3af60380ba0b7b5aeb329bc4e402acd25bd877e98b3727b0135cb5c2efdaefe9", size = 88156, upload-time = "2025-08-12T05:52:13.599Z" }, + { url = "https://files.pythonhosted.org/packages/b3/8b/48cdb60fe0603e34e05cffda0b2a4adab81fd43718e11111a4b0100fd7c1/wrapt-1.17.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0b02e424deef65c9f7326d8c19220a2c9040c51dc165cddb732f16198c168396", size = 87102, upload-time = "2025-08-12T05:52:14.56Z" }, + { url = "https://files.pythonhosted.org/packages/3c/51/d81abca783b58f40a154f1b2c56db1d2d9e0d04fa2d4224e357529f57a57/wrapt-1.17.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:74afa28374a3c3a11b3b5e5fca0ae03bef8450d6aa3ab3a1e2c30e3a75d023dc", size = 87732, upload-time = "2025-08-12T05:52:36.165Z" }, + { url = "https://files.pythonhosted.org/packages/9e/b1/43b286ca1392a006d5336412d41663eeef1ad57485f3e52c767376ba7e5a/wrapt-1.17.3-cp312-cp312-win32.whl", hash = "sha256:4da9f45279fff3543c371d5ababc57a0384f70be244de7759c85a7f989cb4ebe", size = 36705, upload-time = "2025-08-12T05:53:07.123Z" }, + { url = "https://files.pythonhosted.org/packages/28/de/49493f962bd3c586ab4b88066e967aa2e0703d6ef2c43aa28cb83bf7b507/wrapt-1.17.3-cp312-cp312-win_amd64.whl", hash = "sha256:e71d5c6ebac14875668a1e90baf2ea0ef5b7ac7918355850c0908ae82bcb297c", size = 38877, upload-time = "2025-08-12T05:53:05.436Z" }, + { url = "https://files.pythonhosted.org/packages/f1/48/0f7102fe9cb1e8a5a77f80d4f0956d62d97034bbe88d33e94699f99d181d/wrapt-1.17.3-cp312-cp312-win_arm64.whl", hash = "sha256:604d076c55e2fdd4c1c03d06dc1a31b95130010517b5019db15365ec4a405fc6", size = 36885, upload-time = "2025-08-12T05:52:54.367Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f6/759ece88472157acb55fc195e5b116e06730f1b651b5b314c66291729193/wrapt-1.17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0", size = 54003, upload-time = "2025-08-12T05:51:48.627Z" }, + { url = "https://files.pythonhosted.org/packages/4f/a9/49940b9dc6d47027dc850c116d79b4155f15c08547d04db0f07121499347/wrapt-1.17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77", size = 39025, upload-time = "2025-08-12T05:51:37.156Z" }, + { url = "https://files.pythonhosted.org/packages/45/35/6a08de0f2c96dcdd7fe464d7420ddb9a7655a6561150e5fc4da9356aeaab/wrapt-1.17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7", size = 39108, upload-time = "2025-08-12T05:51:58.425Z" }, + { url = "https://files.pythonhosted.org/packages/0c/37/6faf15cfa41bf1f3dba80cd3f5ccc6622dfccb660ab26ed79f0178c7497f/wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277", size = 88072, upload-time = "2025-08-12T05:52:37.53Z" }, + { url = "https://files.pythonhosted.org/packages/78/f2/efe19ada4a38e4e15b6dff39c3e3f3f73f5decf901f66e6f72fe79623a06/wrapt-1.17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d", size = 88214, upload-time = "2025-08-12T05:52:15.886Z" }, + { url = "https://files.pythonhosted.org/packages/40/90/ca86701e9de1622b16e09689fc24b76f69b06bb0150990f6f4e8b0eeb576/wrapt-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa", size = 87105, upload-time = "2025-08-12T05:52:17.914Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e0/d10bd257c9a3e15cbf5523025252cc14d77468e8ed644aafb2d6f54cb95d/wrapt-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050", size = 87766, upload-time = "2025-08-12T05:52:39.243Z" }, + { url = "https://files.pythonhosted.org/packages/e8/cf/7d848740203c7b4b27eb55dbfede11aca974a51c3d894f6cc4b865f42f58/wrapt-1.17.3-cp313-cp313-win32.whl", hash = "sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8", size = 36711, upload-time = "2025-08-12T05:53:10.074Z" }, + { url = "https://files.pythonhosted.org/packages/57/54/35a84d0a4d23ea675994104e667ceff49227ce473ba6a59ba2c84f250b74/wrapt-1.17.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb", size = 38885, upload-time = "2025-08-12T05:53:08.695Z" }, + { url = "https://files.pythonhosted.org/packages/01/77/66e54407c59d7b02a3c4e0af3783168fff8e5d61def52cda8728439d86bc/wrapt-1.17.3-cp313-cp313-win_arm64.whl", hash = "sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16", size = 36896, upload-time = "2025-08-12T05:52:55.34Z" }, + { url = "https://files.pythonhosted.org/packages/02/a2/cd864b2a14f20d14f4c496fab97802001560f9f41554eef6df201cd7f76c/wrapt-1.17.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39", size = 54132, upload-time = "2025-08-12T05:51:49.864Z" }, + { url = "https://files.pythonhosted.org/packages/d5/46/d011725b0c89e853dc44cceb738a307cde5d240d023d6d40a82d1b4e1182/wrapt-1.17.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235", size = 39091, upload-time = "2025-08-12T05:51:38.935Z" }, + { url = "https://files.pythonhosted.org/packages/2e/9e/3ad852d77c35aae7ddebdbc3b6d35ec8013af7d7dddad0ad911f3d891dae/wrapt-1.17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c", size = 39172, upload-time = "2025-08-12T05:51:59.365Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f7/c983d2762bcce2326c317c26a6a1e7016f7eb039c27cdf5c4e30f4160f31/wrapt-1.17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b", size = 87163, upload-time = "2025-08-12T05:52:40.965Z" }, + { url = "https://files.pythonhosted.org/packages/e4/0f/f673f75d489c7f22d17fe0193e84b41540d962f75fce579cf6873167c29b/wrapt-1.17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa", size = 87963, upload-time = "2025-08-12T05:52:20.326Z" }, + { url = "https://files.pythonhosted.org/packages/df/61/515ad6caca68995da2fac7a6af97faab8f78ebe3bf4f761e1b77efbc47b5/wrapt-1.17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7", size = 86945, upload-time = "2025-08-12T05:52:21.581Z" }, + { url = "https://files.pythonhosted.org/packages/d3/bd/4e70162ce398462a467bc09e768bee112f1412e563620adc353de9055d33/wrapt-1.17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4", size = 86857, upload-time = "2025-08-12T05:52:43.043Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b8/da8560695e9284810b8d3df8a19396a6e40e7518059584a1a394a2b35e0a/wrapt-1.17.3-cp314-cp314-win32.whl", hash = "sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10", size = 37178, upload-time = "2025-08-12T05:53:12.605Z" }, + { url = "https://files.pythonhosted.org/packages/db/c8/b71eeb192c440d67a5a0449aaee2310a1a1e8eca41676046f99ed2487e9f/wrapt-1.17.3-cp314-cp314-win_amd64.whl", hash = "sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6", size = 39310, upload-time = "2025-08-12T05:53:11.106Z" }, + { url = "https://files.pythonhosted.org/packages/45/20/2cda20fd4865fa40f86f6c46ed37a2a8356a7a2fde0773269311f2af56c7/wrapt-1.17.3-cp314-cp314-win_arm64.whl", hash = "sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58", size = 37266, upload-time = "2025-08-12T05:52:56.531Z" }, + { url = "https://files.pythonhosted.org/packages/77/ed/dd5cf21aec36c80443c6f900449260b80e2a65cf963668eaef3b9accce36/wrapt-1.17.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a", size = 56544, upload-time = "2025-08-12T05:51:51.109Z" }, + { url = "https://files.pythonhosted.org/packages/8d/96/450c651cc753877ad100c7949ab4d2e2ecc4d97157e00fa8f45df682456a/wrapt-1.17.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067", size = 40283, upload-time = "2025-08-12T05:51:39.912Z" }, + { url = "https://files.pythonhosted.org/packages/d1/86/2fcad95994d9b572db57632acb6f900695a648c3e063f2cd344b3f5c5a37/wrapt-1.17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454", size = 40366, upload-time = "2025-08-12T05:52:00.693Z" }, + { url = "https://files.pythonhosted.org/packages/64/0e/f4472f2fdde2d4617975144311f8800ef73677a159be7fe61fa50997d6c0/wrapt-1.17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e", size = 108571, upload-time = "2025-08-12T05:52:44.521Z" }, + { url = "https://files.pythonhosted.org/packages/cc/01/9b85a99996b0a97c8a17484684f206cbb6ba73c1ce6890ac668bcf3838fb/wrapt-1.17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f", size = 113094, upload-time = "2025-08-12T05:52:22.618Z" }, + { url = "https://files.pythonhosted.org/packages/25/02/78926c1efddcc7b3aa0bc3d6b33a822f7d898059f7cd9ace8c8318e559ef/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056", size = 110659, upload-time = "2025-08-12T05:52:24.057Z" }, + { url = "https://files.pythonhosted.org/packages/dc/ee/c414501ad518ac3e6fe184753632fe5e5ecacdcf0effc23f31c1e4f7bfcf/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804", size = 106946, upload-time = "2025-08-12T05:52:45.976Z" }, + { url = "https://files.pythonhosted.org/packages/be/44/a1bd64b723d13bb151d6cc91b986146a1952385e0392a78567e12149c7b4/wrapt-1.17.3-cp314-cp314t-win32.whl", hash = "sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977", size = 38717, upload-time = "2025-08-12T05:53:15.214Z" }, + { url = "https://files.pythonhosted.org/packages/79/d9/7cfd5a312760ac4dd8bf0184a6ee9e43c33e47f3dadc303032ce012b8fa3/wrapt-1.17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116", size = 41334, upload-time = "2025-08-12T05:53:14.178Z" }, + { url = "https://files.pythonhosted.org/packages/46/78/10ad9781128ed2f99dbc474f43283b13fea8ba58723e98844367531c18e9/wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6", size = 38471, upload-time = "2025-08-12T05:52:57.784Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f6/a933bd70f98e9cf3e08167fc5cd7aaaca49147e48411c0bd5ae701bb2194/wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22", size = 23591, upload-time = "2025-08-12T05:53:20.674Z" }, ] [[package]] name = "zipp" version = "3.23.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547 } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276 }, + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, ] diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/uv.lock b/demos/use_cases/multi_agent_with_crewai_langchain/uv.lock index 985c19e7..6671d44c 100644 --- a/demos/use_cases/multi_agent_with_crewai_langchain/uv.lock +++ b/demos/use_cases/multi_agent_with_crewai_langchain/uv.lock @@ -1,6 +1,153 @@ version = 1 revision = 3 requires-python = ">=3.10" +resolution-markers = [ + "python_full_version >= '3.13'", + "python_full_version >= '3.11' and python_full_version < '3.13'", + "python_full_version < '3.11'", +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.13.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "async-timeout", marker = "python_full_version < '3.11'" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/42/32cf8e7704ceb4481406eb87161349abb46a57fee3f008ba9cb610968646/aiohttp-3.13.3.tar.gz", hash = "sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88", size = 7844556, upload-time = "2026-01-03T17:33:05.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/d6/5aec9313ee6ea9c7cde8b891b69f4ff4001416867104580670a31daeba5b/aiohttp-3.13.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7", size = 738950, upload-time = "2026-01-03T17:29:13.002Z" }, + { url = "https://files.pythonhosted.org/packages/68/03/8fa90a7e6d11ff20a18837a8e2b5dd23db01aabc475aa9271c8ad33299f5/aiohttp-3.13.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821", size = 496099, upload-time = "2026-01-03T17:29:15.268Z" }, + { url = "https://files.pythonhosted.org/packages/d2/23/b81f744d402510a8366b74eb420fc0cc1170d0c43daca12d10814df85f10/aiohttp-3.13.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845", size = 491072, upload-time = "2026-01-03T17:29:16.922Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e1/56d1d1c0dd334cd203dd97706ce004c1aa24b34a813b0b8daf3383039706/aiohttp-3.13.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af", size = 1671588, upload-time = "2026-01-03T17:29:18.539Z" }, + { url = "https://files.pythonhosted.org/packages/5f/34/8d7f962604f4bc2b4e39eb1220dac7d4e4cba91fb9ba0474b4ecd67db165/aiohttp-3.13.3-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940", size = 1640334, upload-time = "2026-01-03T17:29:21.028Z" }, + { url = "https://files.pythonhosted.org/packages/94/1d/fcccf2c668d87337ddeef9881537baee13c58d8f01f12ba8a24215f2b804/aiohttp-3.13.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160", size = 1722656, upload-time = "2026-01-03T17:29:22.531Z" }, + { url = "https://files.pythonhosted.org/packages/aa/98/c6f3b081c4c606bc1e5f2ec102e87d6411c73a9ef3616fea6f2d5c98c062/aiohttp-3.13.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7", size = 1817625, upload-time = "2026-01-03T17:29:24.276Z" }, + { url = "https://files.pythonhosted.org/packages/2c/c0/cfcc3d2e11b477f86e1af2863f3858c8850d751ce8dc39c4058a072c9e54/aiohttp-3.13.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455", size = 1672604, upload-time = "2026-01-03T17:29:26.099Z" }, + { url = "https://files.pythonhosted.org/packages/1e/77/6b4ffcbcac4c6a5d041343a756f34a6dd26174ae07f977a64fe028dda5b0/aiohttp-3.13.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279", size = 1554370, upload-time = "2026-01-03T17:29:28.121Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f0/e3ddfa93f17d689dbe014ba048f18e0c9f9b456033b70e94349a2e9048be/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e", size = 1642023, upload-time = "2026-01-03T17:29:30.002Z" }, + { url = "https://files.pythonhosted.org/packages/eb/45/c14019c9ec60a8e243d06d601b33dcc4fd92379424bde3021725859d7f99/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d", size = 1649680, upload-time = "2026-01-03T17:29:31.782Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fd/09c9451dae5aa5c5ed756df95ff9ef549d45d4be663bafd1e4954fd836f0/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808", size = 1692407, upload-time = "2026-01-03T17:29:33.392Z" }, + { url = "https://files.pythonhosted.org/packages/a6/81/938bc2ec33c10efd6637ccb3d22f9f3160d08e8f3aa2587a2c2d5ab578eb/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40", size = 1543047, upload-time = "2026-01-03T17:29:34.855Z" }, + { url = "https://files.pythonhosted.org/packages/f7/23/80488ee21c8d567c83045e412e1d9b7077d27171591a4eb7822586e8c06a/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29", size = 1715264, upload-time = "2026-01-03T17:29:36.389Z" }, + { url = "https://files.pythonhosted.org/packages/e2/83/259a8da6683182768200b368120ab3deff5370bed93880fb9a3a86299f34/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11", size = 1657275, upload-time = "2026-01-03T17:29:38.162Z" }, + { url = "https://files.pythonhosted.org/packages/3f/4f/2c41f800a0b560785c10fb316216ac058c105f9be50bdc6a285de88db625/aiohttp-3.13.3-cp310-cp310-win32.whl", hash = "sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd", size = 434053, upload-time = "2026-01-03T17:29:40.074Z" }, + { url = "https://files.pythonhosted.org/packages/80/df/29cd63c7ecfdb65ccc12f7d808cac4fa2a19544660c06c61a4a48462de0c/aiohttp-3.13.3-cp310-cp310-win_amd64.whl", hash = "sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c", size = 456687, upload-time = "2026-01-03T17:29:41.819Z" }, + { url = "https://files.pythonhosted.org/packages/f1/4c/a164164834f03924d9a29dc3acd9e7ee58f95857e0b467f6d04298594ebb/aiohttp-3.13.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b", size = 746051, upload-time = "2026-01-03T17:29:43.287Z" }, + { url = "https://files.pythonhosted.org/packages/82/71/d5c31390d18d4f58115037c432b7e0348c60f6f53b727cad33172144a112/aiohttp-3.13.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64", size = 499234, upload-time = "2026-01-03T17:29:44.822Z" }, + { url = "https://files.pythonhosted.org/packages/0e/c9/741f8ac91e14b1d2e7100690425a5b2b919a87a5075406582991fb7de920/aiohttp-3.13.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea", size = 494979, upload-time = "2026-01-03T17:29:46.405Z" }, + { url = "https://files.pythonhosted.org/packages/75/b5/31d4d2e802dfd59f74ed47eba48869c1c21552c586d5e81a9d0d5c2ad640/aiohttp-3.13.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a", size = 1748297, upload-time = "2026-01-03T17:29:48.083Z" }, + { url = "https://files.pythonhosted.org/packages/1a/3e/eefad0ad42959f226bb79664826883f2687d602a9ae2941a18e0484a74d3/aiohttp-3.13.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540", size = 1707172, upload-time = "2026-01-03T17:29:49.648Z" }, + { url = "https://files.pythonhosted.org/packages/c5/3a/54a64299fac2891c346cdcf2aa6803f994a2e4beeaf2e5a09dcc54acc842/aiohttp-3.13.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b", size = 1805405, upload-time = "2026-01-03T17:29:51.244Z" }, + { url = "https://files.pythonhosted.org/packages/6c/70/ddc1b7169cf64075e864f64595a14b147a895a868394a48f6a8031979038/aiohttp-3.13.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3", size = 1899449, upload-time = "2026-01-03T17:29:53.938Z" }, + { url = "https://files.pythonhosted.org/packages/a1/7e/6815aab7d3a56610891c76ef79095677b8b5be6646aaf00f69b221765021/aiohttp-3.13.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1", size = 1748444, upload-time = "2026-01-03T17:29:55.484Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f2/073b145c4100da5511f457dc0f7558e99b2987cf72600d42b559db856fbc/aiohttp-3.13.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3", size = 1606038, upload-time = "2026-01-03T17:29:57.179Z" }, + { url = "https://files.pythonhosted.org/packages/0a/c1/778d011920cae03ae01424ec202c513dc69243cf2db303965615b81deeea/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440", size = 1724156, upload-time = "2026-01-03T17:29:58.914Z" }, + { url = "https://files.pythonhosted.org/packages/0e/cb/3419eabf4ec1e9ec6f242c32b689248365a1cf621891f6f0386632525494/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7", size = 1722340, upload-time = "2026-01-03T17:30:01.962Z" }, + { url = "https://files.pythonhosted.org/packages/7a/e5/76cf77bdbc435bf233c1f114edad39ed4177ccbfab7c329482b179cff4f4/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c", size = 1783041, upload-time = "2026-01-03T17:30:03.609Z" }, + { url = "https://files.pythonhosted.org/packages/9d/d4/dd1ca234c794fd29c057ce8c0566b8ef7fd6a51069de5f06fa84b9a1971c/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51", size = 1596024, upload-time = "2026-01-03T17:30:05.132Z" }, + { url = "https://files.pythonhosted.org/packages/55/58/4345b5f26661a6180afa686c473620c30a66afdf120ed3dd545bbc809e85/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4", size = 1804590, upload-time = "2026-01-03T17:30:07.135Z" }, + { url = "https://files.pythonhosted.org/packages/7b/06/05950619af6c2df7e0a431d889ba2813c9f0129cec76f663e547a5ad56f2/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29", size = 1740355, upload-time = "2026-01-03T17:30:09.083Z" }, + { url = "https://files.pythonhosted.org/packages/3e/80/958f16de79ba0422d7c1e284b2abd0c84bc03394fbe631d0a39ffa10e1eb/aiohttp-3.13.3-cp311-cp311-win32.whl", hash = "sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239", size = 433701, upload-time = "2026-01-03T17:30:10.869Z" }, + { url = "https://files.pythonhosted.org/packages/dc/f2/27cdf04c9851712d6c1b99df6821a6623c3c9e55956d4b1e318c337b5a48/aiohttp-3.13.3-cp311-cp311-win_amd64.whl", hash = "sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f", size = 457678, upload-time = "2026-01-03T17:30:12.719Z" }, + { url = "https://files.pythonhosted.org/packages/a0/be/4fc11f202955a69e0db803a12a062b8379c970c7c84f4882b6da17337cc1/aiohttp-3.13.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c", size = 739732, upload-time = "2026-01-03T17:30:14.23Z" }, + { url = "https://files.pythonhosted.org/packages/97/2c/621d5b851f94fa0bb7430d6089b3aa970a9d9b75196bc93bb624b0db237a/aiohttp-3.13.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168", size = 494293, upload-time = "2026-01-03T17:30:15.96Z" }, + { url = "https://files.pythonhosted.org/packages/5d/43/4be01406b78e1be8320bb8316dc9c42dbab553d281c40364e0f862d5661c/aiohttp-3.13.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d", size = 493533, upload-time = "2026-01-03T17:30:17.431Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a8/5a35dc56a06a2c90d4742cbf35294396907027f80eea696637945a106f25/aiohttp-3.13.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29", size = 1737839, upload-time = "2026-01-03T17:30:19.422Z" }, + { url = "https://files.pythonhosted.org/packages/bf/62/4b9eeb331da56530bf2e198a297e5303e1c1ebdceeb00fe9b568a65c5a0c/aiohttp-3.13.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3", size = 1703932, upload-time = "2026-01-03T17:30:21.756Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f6/af16887b5d419e6a367095994c0b1332d154f647e7dc2bd50e61876e8e3d/aiohttp-3.13.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d", size = 1771906, upload-time = "2026-01-03T17:30:23.932Z" }, + { url = "https://files.pythonhosted.org/packages/ce/83/397c634b1bcc24292fa1e0c7822800f9f6569e32934bdeef09dae7992dfb/aiohttp-3.13.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463", size = 1871020, upload-time = "2026-01-03T17:30:26Z" }, + { url = "https://files.pythonhosted.org/packages/86/f6/a62cbbf13f0ac80a70f71b1672feba90fdb21fd7abd8dbf25c0105fb6fa3/aiohttp-3.13.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc", size = 1755181, upload-time = "2026-01-03T17:30:27.554Z" }, + { url = "https://files.pythonhosted.org/packages/0a/87/20a35ad487efdd3fba93d5843efdfaa62d2f1479eaafa7453398a44faf13/aiohttp-3.13.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf", size = 1561794, upload-time = "2026-01-03T17:30:29.254Z" }, + { url = "https://files.pythonhosted.org/packages/de/95/8fd69a66682012f6716e1bc09ef8a1a2a91922c5725cb904689f112309c4/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033", size = 1697900, upload-time = "2026-01-03T17:30:31.033Z" }, + { url = "https://files.pythonhosted.org/packages/e5/66/7b94b3b5ba70e955ff597672dad1691333080e37f50280178967aff68657/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f", size = 1728239, upload-time = "2026-01-03T17:30:32.703Z" }, + { url = "https://files.pythonhosted.org/packages/47/71/6f72f77f9f7d74719692ab65a2a0252584bf8d5f301e2ecb4c0da734530a/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679", size = 1740527, upload-time = "2026-01-03T17:30:34.695Z" }, + { url = "https://files.pythonhosted.org/packages/fa/b4/75ec16cbbd5c01bdaf4a05b19e103e78d7ce1ef7c80867eb0ace42ff4488/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423", size = 1554489, upload-time = "2026-01-03T17:30:36.864Z" }, + { url = "https://files.pythonhosted.org/packages/52/8f/bc518c0eea29f8406dcf7ed1f96c9b48e3bc3995a96159b3fc11f9e08321/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce", size = 1767852, upload-time = "2026-01-03T17:30:39.433Z" }, + { url = "https://files.pythonhosted.org/packages/9d/f2/a07a75173124f31f11ea6f863dc44e6f09afe2bca45dd4e64979490deab1/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a", size = 1722379, upload-time = "2026-01-03T17:30:41.081Z" }, + { url = "https://files.pythonhosted.org/packages/3c/4a/1a3fee7c21350cac78e5c5cef711bac1b94feca07399f3d406972e2d8fcd/aiohttp-3.13.3-cp312-cp312-win32.whl", hash = "sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046", size = 428253, upload-time = "2026-01-03T17:30:42.644Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b7/76175c7cb4eb73d91ad63c34e29fc4f77c9386bba4a65b53ba8e05ee3c39/aiohttp-3.13.3-cp312-cp312-win_amd64.whl", hash = "sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57", size = 455407, upload-time = "2026-01-03T17:30:44.195Z" }, + { url = "https://files.pythonhosted.org/packages/97/8a/12ca489246ca1faaf5432844adbfce7ff2cc4997733e0af120869345643a/aiohttp-3.13.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c", size = 734190, upload-time = "2026-01-03T17:30:45.832Z" }, + { url = "https://files.pythonhosted.org/packages/32/08/de43984c74ed1fca5c014808963cc83cb00d7bb06af228f132d33862ca76/aiohttp-3.13.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9", size = 491783, upload-time = "2026-01-03T17:30:47.466Z" }, + { url = "https://files.pythonhosted.org/packages/17/f8/8dd2cf6112a5a76f81f81a5130c57ca829d101ad583ce57f889179accdda/aiohttp-3.13.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3", size = 490704, upload-time = "2026-01-03T17:30:49.373Z" }, + { url = "https://files.pythonhosted.org/packages/6d/40/a46b03ca03936f832bc7eaa47cfbb1ad012ba1be4790122ee4f4f8cba074/aiohttp-3.13.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf", size = 1720652, upload-time = "2026-01-03T17:30:50.974Z" }, + { url = "https://files.pythonhosted.org/packages/f7/7e/917fe18e3607af92657e4285498f500dca797ff8c918bd7d90b05abf6c2a/aiohttp-3.13.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6", size = 1692014, upload-time = "2026-01-03T17:30:52.729Z" }, + { url = "https://files.pythonhosted.org/packages/71/b6/cefa4cbc00d315d68973b671cf105b21a609c12b82d52e5d0c9ae61d2a09/aiohttp-3.13.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d", size = 1759777, upload-time = "2026-01-03T17:30:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/fb/e3/e06ee07b45e59e6d81498b591fc589629be1553abb2a82ce33efe2a7b068/aiohttp-3.13.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261", size = 1861276, upload-time = "2026-01-03T17:30:56.512Z" }, + { url = "https://files.pythonhosted.org/packages/7c/24/75d274228acf35ceeb2850b8ce04de9dd7355ff7a0b49d607ee60c29c518/aiohttp-3.13.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0", size = 1743131, upload-time = "2026-01-03T17:30:58.256Z" }, + { url = "https://files.pythonhosted.org/packages/04/98/3d21dde21889b17ca2eea54fdcff21b27b93f45b7bb94ca029c31ab59dc3/aiohttp-3.13.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730", size = 1556863, upload-time = "2026-01-03T17:31:00.445Z" }, + { url = "https://files.pythonhosted.org/packages/9e/84/da0c3ab1192eaf64782b03971ab4055b475d0db07b17eff925e8c93b3aa5/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91", size = 1682793, upload-time = "2026-01-03T17:31:03.024Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0f/5802ada182f575afa02cbd0ec5180d7e13a402afb7c2c03a9aa5e5d49060/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3", size = 1716676, upload-time = "2026-01-03T17:31:04.842Z" }, + { url = "https://files.pythonhosted.org/packages/3f/8c/714d53bd8b5a4560667f7bbbb06b20c2382f9c7847d198370ec6526af39c/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4", size = 1733217, upload-time = "2026-01-03T17:31:06.868Z" }, + { url = "https://files.pythonhosted.org/packages/7d/79/e2176f46d2e963facea939f5be2d26368ce543622be6f00a12844d3c991f/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998", size = 1552303, upload-time = "2026-01-03T17:31:08.958Z" }, + { url = "https://files.pythonhosted.org/packages/ab/6a/28ed4dea1759916090587d1fe57087b03e6c784a642b85ef48217b0277ae/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0", size = 1763673, upload-time = "2026-01-03T17:31:10.676Z" }, + { url = "https://files.pythonhosted.org/packages/e8/35/4a3daeb8b9fab49240d21c04d50732313295e4bd813a465d840236dd0ce1/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591", size = 1721120, upload-time = "2026-01-03T17:31:12.575Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9f/d643bb3c5fb99547323e635e251c609fbbc660d983144cfebec529e09264/aiohttp-3.13.3-cp313-cp313-win32.whl", hash = "sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf", size = 427383, upload-time = "2026-01-03T17:31:14.382Z" }, + { url = "https://files.pythonhosted.org/packages/4e/f1/ab0395f8a79933577cdd996dd2f9aa6014af9535f65dddcf88204682fe62/aiohttp-3.13.3-cp313-cp313-win_amd64.whl", hash = "sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e", size = 453899, upload-time = "2026-01-03T17:31:15.958Z" }, + { url = "https://files.pythonhosted.org/packages/99/36/5b6514a9f5d66f4e2597e40dea2e3db271e023eb7a5d22defe96ba560996/aiohttp-3.13.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:ea37047c6b367fd4bd632bff8077449b8fa034b69e812a18e0132a00fae6e808", size = 737238, upload-time = "2026-01-03T17:31:17.909Z" }, + { url = "https://files.pythonhosted.org/packages/f7/49/459327f0d5bcd8c6c9ca69e60fdeebc3622861e696490d8674a6d0cb90a6/aiohttp-3.13.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6fc0e2337d1a4c3e6acafda6a78a39d4c14caea625124817420abceed36e2415", size = 492292, upload-time = "2026-01-03T17:31:19.919Z" }, + { url = "https://files.pythonhosted.org/packages/e8/0b/b97660c5fd05d3495b4eb27f2d0ef18dc1dc4eff7511a9bf371397ff0264/aiohttp-3.13.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c685f2d80bb67ca8c3837823ad76196b3694b0159d232206d1e461d3d434666f", size = 493021, upload-time = "2026-01-03T17:31:21.636Z" }, + { url = "https://files.pythonhosted.org/packages/54/d4/438efabdf74e30aeceb890c3290bbaa449780583b1270b00661126b8aae4/aiohttp-3.13.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48e377758516d262bde50c2584fc6c578af272559c409eecbdd2bae1601184d6", size = 1717263, upload-time = "2026-01-03T17:31:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/71/f2/7bddc7fd612367d1459c5bcf598a9e8f7092d6580d98de0e057eb42697ad/aiohttp-3.13.3-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:34749271508078b261c4abb1767d42b8d0c0cc9449c73a4df494777dc55f0687", size = 1669107, upload-time = "2026-01-03T17:31:25.334Z" }, + { url = "https://files.pythonhosted.org/packages/00/5a/1aeaecca40e22560f97610a329e0e5efef5e0b5afdf9f857f0d93839ab2e/aiohttp-3.13.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82611aeec80eb144416956ec85b6ca45a64d76429c1ed46ae1b5f86c6e0c9a26", size = 1760196, upload-time = "2026-01-03T17:31:27.394Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f8/0ff6992bea7bd560fc510ea1c815f87eedd745fe035589c71ce05612a19a/aiohttp-3.13.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2fff83cfc93f18f215896e3a190e8e5cb413ce01553901aca925176e7568963a", size = 1843591, upload-time = "2026-01-03T17:31:29.238Z" }, + { url = "https://files.pythonhosted.org/packages/e3/d1/e30e537a15f53485b61f5be525f2157da719819e8377298502aebac45536/aiohttp-3.13.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bbe7d4cecacb439e2e2a8a1a7b935c25b812af7a5fd26503a66dadf428e79ec1", size = 1720277, upload-time = "2026-01-03T17:31:31.053Z" }, + { url = "https://files.pythonhosted.org/packages/84/45/23f4c451d8192f553d38d838831ebbc156907ea6e05557f39563101b7717/aiohttp-3.13.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b928f30fe49574253644b1ca44b1b8adbd903aa0da4b9054a6c20fc7f4092a25", size = 1548575, upload-time = "2026-01-03T17:31:32.87Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ed/0a42b127a43712eda7807e7892c083eadfaf8429ca8fb619662a530a3aab/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7b5e8fe4de30df199155baaf64f2fcd604f4c678ed20910db8e2c66dc4b11603", size = 1679455, upload-time = "2026-01-03T17:31:34.76Z" }, + { url = "https://files.pythonhosted.org/packages/2e/b5/c05f0c2b4b4fe2c9d55e73b6d3ed4fd6c9dc2684b1d81cbdf77e7fad9adb/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:8542f41a62bcc58fc7f11cf7c90e0ec324ce44950003feb70640fc2a9092c32a", size = 1687417, upload-time = "2026-01-03T17:31:36.699Z" }, + { url = "https://files.pythonhosted.org/packages/c9/6b/915bc5dad66aef602b9e459b5a973529304d4e89ca86999d9d75d80cbd0b/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5e1d8c8b8f1d91cd08d8f4a3c2b067bfca6ec043d3ff36de0f3a715feeedf926", size = 1729968, upload-time = "2026-01-03T17:31:38.622Z" }, + { url = "https://files.pythonhosted.org/packages/11/3b/e84581290a9520024a08640b63d07673057aec5ca548177a82026187ba73/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:90455115e5da1c3c51ab619ac57f877da8fd6d73c05aacd125c5ae9819582aba", size = 1545690, upload-time = "2026-01-03T17:31:40.57Z" }, + { url = "https://files.pythonhosted.org/packages/f5/04/0c3655a566c43fd647c81b895dfe361b9f9ad6d58c19309d45cff52d6c3b/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:042e9e0bcb5fba81886c8b4fbb9a09d6b8a00245fd8d88e4d989c1f96c74164c", size = 1746390, upload-time = "2026-01-03T17:31:42.857Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/71165b26978f719c3419381514c9690bd5980e764a09440a10bb816ea4ab/aiohttp-3.13.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2eb752b102b12a76ca02dff751a801f028b4ffbbc478840b473597fc91a9ed43", size = 1702188, upload-time = "2026-01-03T17:31:44.984Z" }, + { url = "https://files.pythonhosted.org/packages/29/a7/cbe6c9e8e136314fa1980da388a59d2f35f35395948a08b6747baebb6aa6/aiohttp-3.13.3-cp314-cp314-win32.whl", hash = "sha256:b556c85915d8efaed322bf1bdae9486aa0f3f764195a0fb6ee962e5c71ef5ce1", size = 433126, upload-time = "2026-01-03T17:31:47.463Z" }, + { url = "https://files.pythonhosted.org/packages/de/56/982704adea7d3b16614fc5936014e9af85c0e34b58f9046655817f04306e/aiohttp-3.13.3-cp314-cp314-win_amd64.whl", hash = "sha256:9bf9f7a65e7aa20dd764151fb3d616c81088f91f8df39c3893a536e279b4b984", size = 459128, upload-time = "2026-01-03T17:31:49.2Z" }, + { url = "https://files.pythonhosted.org/packages/6c/2a/3c79b638a9c3d4658d345339d22070241ea341ed4e07b5ac60fb0f418003/aiohttp-3.13.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:05861afbbec40650d8a07ea324367cb93e9e8cc7762e04dd4405df99fa65159c", size = 769512, upload-time = "2026-01-03T17:31:51.134Z" }, + { url = "https://files.pythonhosted.org/packages/29/b9/3e5014d46c0ab0db8707e0ac2711ed28c4da0218c358a4e7c17bae0d8722/aiohttp-3.13.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2fc82186fadc4a8316768d61f3722c230e2c1dcab4200d52d2ebdf2482e47592", size = 506444, upload-time = "2026-01-03T17:31:52.85Z" }, + { url = "https://files.pythonhosted.org/packages/90/03/c1d4ef9a054e151cd7839cdc497f2638f00b93cbe8043983986630d7a80c/aiohttp-3.13.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0add0900ff220d1d5c5ebbf99ed88b0c1bbf87aa7e4262300ed1376a6b13414f", size = 510798, upload-time = "2026-01-03T17:31:54.91Z" }, + { url = "https://files.pythonhosted.org/packages/ea/76/8c1e5abbfe8e127c893fe7ead569148a4d5a799f7cf958d8c09f3eedf097/aiohttp-3.13.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:568f416a4072fbfae453dcf9a99194bbb8bdeab718e08ee13dfa2ba0e4bebf29", size = 1868835, upload-time = "2026-01-03T17:31:56.733Z" }, + { url = "https://files.pythonhosted.org/packages/8e/ac/984c5a6f74c363b01ff97adc96a3976d9c98940b8969a1881575b279ac5d/aiohttp-3.13.3-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:add1da70de90a2569c5e15249ff76a631ccacfe198375eead4aadf3b8dc849dc", size = 1720486, upload-time = "2026-01-03T17:31:58.65Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9a/b7039c5f099c4eb632138728828b33428585031a1e658d693d41d07d89d1/aiohttp-3.13.3-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:10b47b7ba335d2e9b1239fa571131a87e2d8ec96b333e68b2a305e7a98b0bae2", size = 1847951, upload-time = "2026-01-03T17:32:00.989Z" }, + { url = "https://files.pythonhosted.org/packages/3c/02/3bec2b9a1ba3c19ff89a43a19324202b8eb187ca1e928d8bdac9bbdddebd/aiohttp-3.13.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3dd4dce1c718e38081c8f35f323209d4c1df7d4db4bab1b5c88a6b4d12b74587", size = 1941001, upload-time = "2026-01-03T17:32:03.122Z" }, + { url = "https://files.pythonhosted.org/packages/37/df/d879401cedeef27ac4717f6426c8c36c3091c6e9f08a9178cc87549c537f/aiohttp-3.13.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34bac00a67a812570d4a460447e1e9e06fae622946955f939051e7cc895cfab8", size = 1797246, upload-time = "2026-01-03T17:32:05.255Z" }, + { url = "https://files.pythonhosted.org/packages/8d/15/be122de1f67e6953add23335c8ece6d314ab67c8bebb3f181063010795a7/aiohttp-3.13.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a19884d2ee70b06d9204b2727a7b9f983d0c684c650254679e716b0b77920632", size = 1627131, upload-time = "2026-01-03T17:32:07.607Z" }, + { url = "https://files.pythonhosted.org/packages/12/12/70eedcac9134cfa3219ab7af31ea56bc877395b1ac30d65b1bc4b27d0438/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5f8ca7f2bb6ba8348a3614c7918cc4bb73268c5ac2a207576b7afea19d3d9f64", size = 1795196, upload-time = "2026-01-03T17:32:09.59Z" }, + { url = "https://files.pythonhosted.org/packages/32/11/b30e1b1cd1f3054af86ebe60df96989c6a414dd87e27ad16950eee420bea/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:b0d95340658b9d2f11d9697f59b3814a9d3bb4b7a7c20b131df4bcef464037c0", size = 1782841, upload-time = "2026-01-03T17:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/88/0d/d98a9367b38912384a17e287850f5695c528cff0f14f791ce8ee2e4f7796/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:a1e53262fd202e4b40b70c3aff944a8155059beedc8a89bba9dc1f9ef06a1b56", size = 1795193, upload-time = "2026-01-03T17:32:13.705Z" }, + { url = "https://files.pythonhosted.org/packages/43/a5/a2dfd1f5ff5581632c7f6a30e1744deda03808974f94f6534241ef60c751/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:d60ac9663f44168038586cab2157e122e46bdef09e9368b37f2d82d354c23f72", size = 1621979, upload-time = "2026-01-03T17:32:15.965Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f0/12973c382ae7c1cccbc4417e129c5bf54c374dfb85af70893646e1f0e749/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:90751b8eed69435bac9ff4e3d2f6b3af1f57e37ecb0fbeee59c0174c9e2d41df", size = 1822193, upload-time = "2026-01-03T17:32:18.219Z" }, + { url = "https://files.pythonhosted.org/packages/3c/5f/24155e30ba7f8c96918af1350eb0663e2430aad9e001c0489d89cd708ab1/aiohttp-3.13.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fc353029f176fd2b3ec6cfc71be166aba1936fe5d73dd1992ce289ca6647a9aa", size = 1769801, upload-time = "2026-01-03T17:32:20.25Z" }, + { url = "https://files.pythonhosted.org/packages/eb/f8/7314031ff5c10e6ece114da79b338ec17eeff3a079e53151f7e9f43c4723/aiohttp-3.13.3-cp314-cp314t-win32.whl", hash = "sha256:2e41b18a58da1e474a057b3d35248d8320029f61d70a37629535b16a0c8f3767", size = 466523, upload-time = "2026-01-03T17:32:22.215Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/278a98c715ae467624eafe375542d8ba9b4383a016df8fdefe0ae28382a7/aiohttp-3.13.3-cp314-cp314t-win_amd64.whl", hash = "sha256:44531a36aa2264a1860089ffd4dce7baf875ee5a6079d5fb42e261c704ef7344", size = 499694, upload-time = "2026-01-03T17:32:24.546Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] [[package]] name = "annotated-doc" @@ -34,6 +181,141 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl", hash = "sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb", size = 113362, upload-time = "2025-11-28T23:36:57.897Z" }, ] +[[package]] +name = "appdirs" +version = "1.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/d8/05696357e0311f5b5c316d7b95f46c669dd9c15aaeecbb48c7d0aeb88c40/appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", size = 13470, upload-time = "2020-05-11T07:59:51.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128", size = 9566, upload-time = "2020-05-11T07:59:49.499Z" }, +] + +[[package]] +name = "async-timeout" +version = "5.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274, upload-time = "2024-11-06T16:41:39.6Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233, upload-time = "2024-11-06T16:41:37.9Z" }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "backoff" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba", size = 17001, upload-time = "2022-10-05T19:19:32.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8", size = 15148, upload-time = "2022-10-05T19:19:30.546Z" }, +] + +[[package]] +name = "bcrypt" +version = "5.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/36/3329e2518d70ad8e2e5817d5a4cac6bba05a47767ec416c7d020a965f408/bcrypt-5.0.0.tar.gz", hash = "sha256:f748f7c2d6fd375cc93d3fba7ef4a9e3a092421b8dbf34d8d4dc06be9492dfdd", size = 25386, upload-time = "2025-09-25T19:50:47.829Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/85/3e65e01985fddf25b64ca67275bb5bdb4040bd1a53b66d355c6c37c8a680/bcrypt-5.0.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f3c08197f3039bec79cee59a606d62b96b16669cff3949f21e74796b6e3cd2be", size = 481806, upload-time = "2025-09-25T19:49:05.102Z" }, + { url = "https://files.pythonhosted.org/packages/44/dc/01eb79f12b177017a726cbf78330eb0eb442fae0e7b3dfd84ea2849552f3/bcrypt-5.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:200af71bc25f22006f4069060c88ed36f8aa4ff7f53e67ff04d2ab3f1e79a5b2", size = 268626, upload-time = "2025-09-25T19:49:06.723Z" }, + { url = "https://files.pythonhosted.org/packages/8c/cf/e82388ad5959c40d6afd94fb4743cc077129d45b952d46bdc3180310e2df/bcrypt-5.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:baade0a5657654c2984468efb7d6c110db87ea63ef5a4b54732e7e337253e44f", size = 271853, upload-time = "2025-09-25T19:49:08.028Z" }, + { url = "https://files.pythonhosted.org/packages/ec/86/7134b9dae7cf0efa85671651341f6afa695857fae172615e960fb6a466fa/bcrypt-5.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:c58b56cdfb03202b3bcc9fd8daee8e8e9b6d7e3163aa97c631dfcfcc24d36c86", size = 269793, upload-time = "2025-09-25T19:49:09.727Z" }, + { url = "https://files.pythonhosted.org/packages/cc/82/6296688ac1b9e503d034e7d0614d56e80c5d1a08402ff856a4549cb59207/bcrypt-5.0.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4bfd2a34de661f34d0bda43c3e4e79df586e4716ef401fe31ea39d69d581ef23", size = 289930, upload-time = "2025-09-25T19:49:11.204Z" }, + { url = "https://files.pythonhosted.org/packages/d1/18/884a44aa47f2a3b88dd09bc05a1e40b57878ecd111d17e5bba6f09f8bb77/bcrypt-5.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ed2e1365e31fc73f1825fa830f1c8f8917ca1b3ca6185773b349c20fd606cec2", size = 272194, upload-time = "2025-09-25T19:49:12.524Z" }, + { url = "https://files.pythonhosted.org/packages/0e/8f/371a3ab33c6982070b674f1788e05b656cfbf5685894acbfef0c65483a59/bcrypt-5.0.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:83e787d7a84dbbfba6f250dd7a5efd689e935f03dd83b0f919d39349e1f23f83", size = 269381, upload-time = "2025-09-25T19:49:14.308Z" }, + { url = "https://files.pythonhosted.org/packages/b1/34/7e4e6abb7a8778db6422e88b1f06eb07c47682313997ee8a8f9352e5a6f1/bcrypt-5.0.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:137c5156524328a24b9fac1cb5db0ba618bc97d11970b39184c1d87dc4bf1746", size = 271750, upload-time = "2025-09-25T19:49:15.584Z" }, + { url = "https://files.pythonhosted.org/packages/c0/1b/54f416be2499bd72123c70d98d36c6cd61a4e33d9b89562c22481c81bb30/bcrypt-5.0.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:38cac74101777a6a7d3b3e3cfefa57089b5ada650dce2baf0cbdd9d65db22a9e", size = 303757, upload-time = "2025-09-25T19:49:17.244Z" }, + { url = "https://files.pythonhosted.org/packages/13/62/062c24c7bcf9d2826a1a843d0d605c65a755bc98002923d01fd61270705a/bcrypt-5.0.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:d8d65b564ec849643d9f7ea05c6d9f0cd7ca23bdd4ac0c2dbef1104ab504543d", size = 306740, upload-time = "2025-09-25T19:49:18.693Z" }, + { url = "https://files.pythonhosted.org/packages/d5/c8/1fdbfc8c0f20875b6b4020f3c7dc447b8de60aa0be5faaf009d24242aec9/bcrypt-5.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:741449132f64b3524e95cd30e5cd3343006ce146088f074f31ab26b94e6c75ba", size = 334197, upload-time = "2025-09-25T19:49:20.523Z" }, + { url = "https://files.pythonhosted.org/packages/a6/c1/8b84545382d75bef226fbc6588af0f7b7d095f7cd6a670b42a86243183cd/bcrypt-5.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:212139484ab3207b1f0c00633d3be92fef3c5f0af17cad155679d03ff2ee1e41", size = 352974, upload-time = "2025-09-25T19:49:22.254Z" }, + { url = "https://files.pythonhosted.org/packages/10/a6/ffb49d4254ed085e62e3e5dd05982b4393e32fe1e49bb1130186617c29cd/bcrypt-5.0.0-cp313-cp313t-win32.whl", hash = "sha256:9d52ed507c2488eddd6a95bccee4e808d3234fa78dd370e24bac65a21212b861", size = 148498, upload-time = "2025-09-25T19:49:24.134Z" }, + { url = "https://files.pythonhosted.org/packages/48/a9/259559edc85258b6d5fc5471a62a3299a6aa37a6611a169756bf4689323c/bcrypt-5.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f6984a24db30548fd39a44360532898c33528b74aedf81c26cf29c51ee47057e", size = 145853, upload-time = "2025-09-25T19:49:25.702Z" }, + { url = "https://files.pythonhosted.org/packages/2d/df/9714173403c7e8b245acf8e4be8876aac64a209d1b392af457c79e60492e/bcrypt-5.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:9fffdb387abe6aa775af36ef16f55e318dcda4194ddbf82007a6f21da29de8f5", size = 139626, upload-time = "2025-09-25T19:49:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/f8/14/c18006f91816606a4abe294ccc5d1e6f0e42304df5a33710e9e8e95416e1/bcrypt-5.0.0-cp314-cp314t-macosx_10_12_universal2.whl", hash = "sha256:4870a52610537037adb382444fefd3706d96d663ac44cbb2f37e3919dca3d7ef", size = 481862, upload-time = "2025-09-25T19:49:28.365Z" }, + { url = "https://files.pythonhosted.org/packages/67/49/dd074d831f00e589537e07a0725cf0e220d1f0d5d8e85ad5bbff251c45aa/bcrypt-5.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:48f753100931605686f74e27a7b49238122aa761a9aefe9373265b8b7aa43ea4", size = 268544, upload-time = "2025-09-25T19:49:30.39Z" }, + { url = "https://files.pythonhosted.org/packages/f5/91/50ccba088b8c474545b034a1424d05195d9fcbaaf802ab8bfe2be5a4e0d7/bcrypt-5.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f70aadb7a809305226daedf75d90379c397b094755a710d7014b8b117df1ebbf", size = 271787, upload-time = "2025-09-25T19:49:32.144Z" }, + { url = "https://files.pythonhosted.org/packages/aa/e7/d7dba133e02abcda3b52087a7eea8c0d4f64d3e593b4fffc10c31b7061f3/bcrypt-5.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:744d3c6b164caa658adcb72cb8cc9ad9b4b75c7db507ab4bc2480474a51989da", size = 269753, upload-time = "2025-09-25T19:49:33.885Z" }, + { url = "https://files.pythonhosted.org/packages/33/fc/5b145673c4b8d01018307b5c2c1fc87a6f5a436f0ad56607aee389de8ee3/bcrypt-5.0.0-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a28bc05039bdf3289d757f49d616ab3efe8cf40d8e8001ccdd621cd4f98f4fc9", size = 289587, upload-time = "2025-09-25T19:49:35.144Z" }, + { url = "https://files.pythonhosted.org/packages/27/d7/1ff22703ec6d4f90e62f1a5654b8867ef96bafb8e8102c2288333e1a6ca6/bcrypt-5.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:7f277a4b3390ab4bebe597800a90da0edae882c6196d3038a73adf446c4f969f", size = 272178, upload-time = "2025-09-25T19:49:36.793Z" }, + { url = "https://files.pythonhosted.org/packages/c8/88/815b6d558a1e4d40ece04a2f84865b0fef233513bd85fd0e40c294272d62/bcrypt-5.0.0-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:79cfa161eda8d2ddf29acad370356b47f02387153b11d46042e93a0a95127493", size = 269295, upload-time = "2025-09-25T19:49:38.164Z" }, + { url = "https://files.pythonhosted.org/packages/51/8c/e0db387c79ab4931fc89827d37608c31cc57b6edc08ccd2386139028dc0d/bcrypt-5.0.0-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:a5393eae5722bcef046a990b84dff02b954904c36a194f6cfc817d7dca6c6f0b", size = 271700, upload-time = "2025-09-25T19:49:39.917Z" }, + { url = "https://files.pythonhosted.org/packages/06/83/1570edddd150f572dbe9fc00f6203a89fc7d4226821f67328a85c330f239/bcrypt-5.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7f4c94dec1b5ab5d522750cb059bb9409ea8872d4494fd152b53cca99f1ddd8c", size = 334034, upload-time = "2025-09-25T19:49:41.227Z" }, + { url = "https://files.pythonhosted.org/packages/c9/f2/ea64e51a65e56ae7a8a4ec236c2bfbdd4b23008abd50ac33fbb2d1d15424/bcrypt-5.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0cae4cb350934dfd74c020525eeae0a5f79257e8a201c0c176f4b84fdbf2a4b4", size = 352766, upload-time = "2025-09-25T19:49:43.08Z" }, + { url = "https://files.pythonhosted.org/packages/d7/d4/1a388d21ee66876f27d1a1f41287897d0c0f1712ef97d395d708ba93004c/bcrypt-5.0.0-cp314-cp314t-win32.whl", hash = "sha256:b17366316c654e1ad0306a6858e189fc835eca39f7eb2cafd6aaca8ce0c40a2e", size = 152449, upload-time = "2025-09-25T19:49:44.971Z" }, + { url = "https://files.pythonhosted.org/packages/3f/61/3291c2243ae0229e5bca5d19f4032cecad5dfb05a2557169d3a69dc0ba91/bcrypt-5.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:92864f54fb48b4c718fc92a32825d0e42265a627f956bc0361fe869f1adc3e7d", size = 149310, upload-time = "2025-09-25T19:49:46.162Z" }, + { url = "https://files.pythonhosted.org/packages/3e/89/4b01c52ae0c1a681d4021e5dd3e45b111a8fb47254a274fa9a378d8d834b/bcrypt-5.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dd19cf5184a90c873009244586396a6a884d591a5323f0e8a5922560718d4993", size = 143761, upload-time = "2025-09-25T19:49:47.345Z" }, + { url = "https://files.pythonhosted.org/packages/84/29/6237f151fbfe295fe3e074ecc6d44228faa1e842a81f6d34a02937ee1736/bcrypt-5.0.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:fc746432b951e92b58317af8e0ca746efe93e66555f1b40888865ef5bf56446b", size = 494553, upload-time = "2025-09-25T19:49:49.006Z" }, + { url = "https://files.pythonhosted.org/packages/45/b6/4c1205dde5e464ea3bd88e8742e19f899c16fa8916fb8510a851fae985b5/bcrypt-5.0.0-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c2388ca94ffee269b6038d48747f4ce8df0ffbea43f31abfa18ac72f0218effb", size = 275009, upload-time = "2025-09-25T19:49:50.581Z" }, + { url = "https://files.pythonhosted.org/packages/3b/71/427945e6ead72ccffe77894b2655b695ccf14ae1866cd977e185d606dd2f/bcrypt-5.0.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:560ddb6ec730386e7b3b26b8b4c88197aaed924430e7b74666a586ac997249ef", size = 278029, upload-time = "2025-09-25T19:49:52.533Z" }, + { url = "https://files.pythonhosted.org/packages/17/72/c344825e3b83c5389a369c8a8e58ffe1480b8a699f46c127c34580c4666b/bcrypt-5.0.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d79e5c65dcc9af213594d6f7f1fa2c98ad3fc10431e7aa53c176b441943efbdd", size = 275907, upload-time = "2025-09-25T19:49:54.709Z" }, + { url = "https://files.pythonhosted.org/packages/0b/7e/d4e47d2df1641a36d1212e5c0514f5291e1a956a7749f1e595c07a972038/bcrypt-5.0.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2b732e7d388fa22d48920baa267ba5d97cca38070b69c0e2d37087b381c681fd", size = 296500, upload-time = "2025-09-25T19:49:56.013Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c3/0ae57a68be2039287ec28bc463b82e4b8dc23f9d12c0be331f4782e19108/bcrypt-5.0.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:0c8e093ea2532601a6f686edbc2c6b2ec24131ff5c52f7610dd64fa4553b5464", size = 278412, upload-time = "2025-09-25T19:49:57.356Z" }, + { url = "https://files.pythonhosted.org/packages/45/2b/77424511adb11e6a99e3a00dcc7745034bee89036ad7d7e255a7e47be7d8/bcrypt-5.0.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:5b1589f4839a0899c146e8892efe320c0fa096568abd9b95593efac50a87cb75", size = 275486, upload-time = "2025-09-25T19:49:59.116Z" }, + { url = "https://files.pythonhosted.org/packages/43/0a/405c753f6158e0f3f14b00b462d8bca31296f7ecfc8fc8bc7919c0c7d73a/bcrypt-5.0.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:89042e61b5e808b67daf24a434d89bab164d4de1746b37a8d173b6b14f3db9ff", size = 277940, upload-time = "2025-09-25T19:50:00.869Z" }, + { url = "https://files.pythonhosted.org/packages/62/83/b3efc285d4aadc1fa83db385ec64dcfa1707e890eb42f03b127d66ac1b7b/bcrypt-5.0.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:e3cf5b2560c7b5a142286f69bde914494b6d8f901aaa71e453078388a50881c4", size = 310776, upload-time = "2025-09-25T19:50:02.393Z" }, + { url = "https://files.pythonhosted.org/packages/95/7d/47ee337dacecde6d234890fe929936cb03ebc4c3a7460854bbd9c97780b8/bcrypt-5.0.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f632fd56fc4e61564f78b46a2269153122db34988e78b6be8b32d28507b7eaeb", size = 312922, upload-time = "2025-09-25T19:50:04.232Z" }, + { url = "https://files.pythonhosted.org/packages/d6/3a/43d494dfb728f55f4e1cf8fd435d50c16a2d75493225b54c8d06122523c6/bcrypt-5.0.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:801cad5ccb6b87d1b430f183269b94c24f248dddbbc5c1f78b6ed231743e001c", size = 341367, upload-time = "2025-09-25T19:50:05.559Z" }, + { url = "https://files.pythonhosted.org/packages/55/ab/a0727a4547e383e2e22a630e0f908113db37904f58719dc48d4622139b5c/bcrypt-5.0.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3cf67a804fc66fc217e6914a5635000259fbbbb12e78a99488e4d5ba445a71eb", size = 359187, upload-time = "2025-09-25T19:50:06.916Z" }, + { url = "https://files.pythonhosted.org/packages/1b/bb/461f352fdca663524b4643d8b09e8435b4990f17fbf4fea6bc2a90aa0cc7/bcrypt-5.0.0-cp38-abi3-win32.whl", hash = "sha256:3abeb543874b2c0524ff40c57a4e14e5d3a66ff33fb423529c88f180fd756538", size = 153752, upload-time = "2025-09-25T19:50:08.515Z" }, + { url = "https://files.pythonhosted.org/packages/41/aa/4190e60921927b7056820291f56fc57d00d04757c8b316b2d3c0d1d6da2c/bcrypt-5.0.0-cp38-abi3-win_amd64.whl", hash = "sha256:35a77ec55b541e5e583eb3436ffbbf53b0ffa1fa16ca6782279daf95d146dcd9", size = 150881, upload-time = "2025-09-25T19:50:09.742Z" }, + { url = "https://files.pythonhosted.org/packages/54/12/cd77221719d0b39ac0b55dbd39358db1cd1246e0282e104366ebbfb8266a/bcrypt-5.0.0-cp38-abi3-win_arm64.whl", hash = "sha256:cde08734f12c6a4e28dc6755cd11d3bdfea608d93d958fffbe95a7026ebe4980", size = 144931, upload-time = "2025-09-25T19:50:11.016Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ba/2af136406e1c3839aea9ecadc2f6be2bcd1eff255bd451dd39bcf302c47a/bcrypt-5.0.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0c418ca99fd47e9c59a301744d63328f17798b5947b0f791e9af3c1c499c2d0a", size = 495313, upload-time = "2025-09-25T19:50:12.309Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ee/2f4985dbad090ace5ad1f7dd8ff94477fe089b5fab2040bd784a3d5f187b/bcrypt-5.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddb4e1500f6efdd402218ffe34d040a1196c072e07929b9820f363a1fd1f4191", size = 275290, upload-time = "2025-09-25T19:50:13.673Z" }, + { url = "https://files.pythonhosted.org/packages/e4/6e/b77ade812672d15cf50842e167eead80ac3514f3beacac8902915417f8b7/bcrypt-5.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7aeef54b60ceddb6f30ee3db090351ecf0d40ec6e2abf41430997407a46d2254", size = 278253, upload-time = "2025-09-25T19:50:15.089Z" }, + { url = "https://files.pythonhosted.org/packages/36/c4/ed00ed32f1040f7990dac7115f82273e3c03da1e1a1587a778d8cea496d8/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f0ce778135f60799d89c9693b9b398819d15f1921ba15fe719acb3178215a7db", size = 276084, upload-time = "2025-09-25T19:50:16.699Z" }, + { url = "https://files.pythonhosted.org/packages/e7/c4/fa6e16145e145e87f1fa351bbd54b429354fd72145cd3d4e0c5157cf4c70/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a71f70ee269671460b37a449f5ff26982a6f2ba493b3eabdd687b4bf35f875ac", size = 297185, upload-time = "2025-09-25T19:50:18.525Z" }, + { url = "https://files.pythonhosted.org/packages/24/b4/11f8a31d8b67cca3371e046db49baa7c0594d71eb40ac8121e2fc0888db0/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8429e1c410b4073944f03bd778a9e066e7fad723564a52ff91841d278dfc822", size = 278656, upload-time = "2025-09-25T19:50:19.809Z" }, + { url = "https://files.pythonhosted.org/packages/ac/31/79f11865f8078e192847d2cb526e3fa27c200933c982c5b2869720fa5fce/bcrypt-5.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:edfcdcedd0d0f05850c52ba3127b1fce70b9f89e0fe5ff16517df7e81fa3cbb8", size = 275662, upload-time = "2025-09-25T19:50:21.567Z" }, + { url = "https://files.pythonhosted.org/packages/d4/8d/5e43d9584b3b3591a6f9b68f755a4da879a59712981ef5ad2a0ac1379f7a/bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:611f0a17aa4a25a69362dcc299fda5c8a3d4f160e2abb3831041feb77393a14a", size = 278240, upload-time = "2025-09-25T19:50:23.305Z" }, + { url = "https://files.pythonhosted.org/packages/89/48/44590e3fc158620f680a978aafe8f87a4c4320da81ed11552f0323aa9a57/bcrypt-5.0.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:db99dca3b1fdc3db87d7c57eac0c82281242d1eabf19dcb8a6b10eb29a2e72d1", size = 311152, upload-time = "2025-09-25T19:50:24.597Z" }, + { url = "https://files.pythonhosted.org/packages/5f/85/e4fbfc46f14f47b0d20493669a625da5827d07e8a88ee460af6cd9768b44/bcrypt-5.0.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:5feebf85a9cefda32966d8171f5db7e3ba964b77fdfe31919622256f80f9cf42", size = 313284, upload-time = "2025-09-25T19:50:26.268Z" }, + { url = "https://files.pythonhosted.org/packages/25/ae/479f81d3f4594456a01ea2f05b132a519eff9ab5768a70430fa1132384b1/bcrypt-5.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3ca8a166b1140436e058298a34d88032ab62f15aae1c598580333dc21d27ef10", size = 341643, upload-time = "2025-09-25T19:50:28.02Z" }, + { url = "https://files.pythonhosted.org/packages/df/d2/36a086dee1473b14276cd6ea7f61aef3b2648710b5d7f1c9e032c29b859f/bcrypt-5.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:61afc381250c3182d9078551e3ac3a41da14154fbff647ddf52a769f588c4172", size = 359698, upload-time = "2025-09-25T19:50:31.347Z" }, + { url = "https://files.pythonhosted.org/packages/c0/f6/688d2cd64bfd0b14d805ddb8a565e11ca1fb0fd6817175d58b10052b6d88/bcrypt-5.0.0-cp39-abi3-win32.whl", hash = "sha256:64d7ce196203e468c457c37ec22390f1a61c85c6f0b8160fd752940ccfb3a683", size = 153725, upload-time = "2025-09-25T19:50:34.384Z" }, + { url = "https://files.pythonhosted.org/packages/9f/b9/9d9a641194a730bda138b3dfe53f584d61c58cd5230e37566e83ec2ffa0d/bcrypt-5.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:64ee8434b0da054d830fa8e89e1c8bf30061d539044a39524ff7dec90481e5c2", size = 150912, upload-time = "2025-09-25T19:50:35.69Z" }, + { url = "https://files.pythonhosted.org/packages/27/44/d2ef5e87509158ad2187f4dd0852df80695bb1ee0cfe0a684727b01a69e0/bcrypt-5.0.0-cp39-abi3-win_arm64.whl", hash = "sha256:f2347d3534e76bf50bca5500989d6c1d05ed64b440408057a37673282c654927", size = 144953, upload-time = "2025-09-25T19:50:37.32Z" }, + { url = "https://files.pythonhosted.org/packages/8a/75/4aa9f5a4d40d762892066ba1046000b329c7cd58e888a6db878019b282dc/bcrypt-5.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7edda91d5ab52b15636d9c30da87d2cc84f426c72b9dba7a9b4fe142ba11f534", size = 271180, upload-time = "2025-09-25T19:50:38.575Z" }, + { url = "https://files.pythonhosted.org/packages/54/79/875f9558179573d40a9cc743038ac2bf67dfb79cecb1e8b5d70e88c94c3d/bcrypt-5.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:046ad6db88edb3c5ece4369af997938fb1c19d6a699b9c1b27b0db432faae4c4", size = 273791, upload-time = "2025-09-25T19:50:39.913Z" }, + { url = "https://files.pythonhosted.org/packages/bc/fe/975adb8c216174bf70fc17535f75e85ac06ed5252ea077be10d9cff5ce24/bcrypt-5.0.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:dcd58e2b3a908b5ecc9b9df2f0085592506ac2d5110786018ee5e160f28e0911", size = 270746, upload-time = "2025-09-25T19:50:43.306Z" }, + { url = "https://files.pythonhosted.org/packages/e4/f8/972c96f5a2b6c4b3deca57009d93e946bbdbe2241dca9806d502f29dd3ee/bcrypt-5.0.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:6b8f520b61e8781efee73cba14e3e8c9556ccfb375623f4f97429544734545b4", size = 273375, upload-time = "2025-09-25T19:50:45.43Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.14.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, +] + +[[package]] +name = "build" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "os_name == 'nt'" }, + { name = "importlib-metadata", marker = "python_full_version < '3.10.2'" }, + { name = "packaging" }, + { name = "pyproject-hooks" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/18/94eaffda7b329535d91f00fe605ab1f1e5cd68b2074d03f255c7d250687d/build-1.4.0.tar.gz", hash = "sha256:f1b91b925aa322be454f8330c6fb48b465da993d1e7e7e6fa35027ec49f3c936", size = 50054, upload-time = "2026-01-08T16:41:47.696Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/0d/84a4380f930db0010168e0aa7b7a8fed9ba1835a8fbb1472bc6d0201d529/build-1.4.0-py3-none-any.whl", hash = "sha256:6a07c1b8eb6f2b311b96fcbdbce5dab5fe637ffda0fd83c9cac622e927501596", size = 24141, upload-time = "2026-01-08T16:41:46.453Z" }, +] + [[package]] name = "certifi" version = "2025.11.12" @@ -43,6 +325,220 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, ] +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44", size = 184283, upload-time = "2025-09-08T23:22:08.01Z" }, + { url = "https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49", size = 180504, upload-time = "2025-09-08T23:22:10.637Z" }, + { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811, upload-time = "2025-09-08T23:22:12.267Z" }, + { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402, upload-time = "2025-09-08T23:22:13.455Z" }, + { url = "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", size = 203217, upload-time = "2025-09-08T23:22:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", size = 203079, upload-time = "2025-09-08T23:22:15.769Z" }, + { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475, upload-time = "2025-09-08T23:22:17.427Z" }, + { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829, upload-time = "2025-09-08T23:22:19.069Z" }, + { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211, upload-time = "2025-09-08T23:22:20.588Z" }, + { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036, upload-time = "2025-09-08T23:22:22.143Z" }, + { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184, upload-time = "2025-09-08T23:22:23.328Z" }, + { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790, upload-time = "2025-09-08T23:22:24.752Z" }, + { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload-time = "2025-09-08T23:22:26.456Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload-time = "2025-09-08T23:22:28.197Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload-time = "2025-09-08T23:22:32.507Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload-time = "2025-09-08T23:22:34.132Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, + { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload-time = "2025-10-14T04:40:11.385Z" }, + { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814, upload-time = "2025-10-14T04:40:13.135Z" }, + { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467, upload-time = "2025-10-14T04:40:14.728Z" }, + { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280, upload-time = "2025-10-14T04:40:16.14Z" }, + { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454, upload-time = "2025-10-14T04:40:17.567Z" }, + { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609, upload-time = "2025-10-14T04:40:19.08Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849, upload-time = "2025-10-14T04:40:20.607Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586, upload-time = "2025-10-14T04:40:21.719Z" }, + { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290, upload-time = "2025-10-14T04:40:23.069Z" }, + { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663, upload-time = "2025-10-14T04:40:24.17Z" }, + { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964, upload-time = "2025-10-14T04:40:25.368Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064, upload-time = "2025-10-14T04:40:26.806Z" }, + { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015, upload-time = "2025-10-14T04:40:28.284Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload-time = "2025-10-14T04:40:29.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload-time = "2025-10-14T04:40:30.644Z" }, + { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload-time = "2025-10-14T04:40:32.108Z" }, + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "chromadb" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bcrypt" }, + { name = "build" }, + { name = "grpcio" }, + { name = "httpx" }, + { name = "importlib-resources" }, + { name = "jsonschema" }, + { name = "kubernetes" }, + { name = "mmh3" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "onnxruntime" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-grpc" }, + { name = "opentelemetry-sdk" }, + { name = "orjson" }, + { name = "overrides" }, + { name = "posthog" }, + { name = "pybase64" }, + { name = "pydantic" }, + { name = "pypika" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "tenacity" }, + { name = "tokenizers" }, + { name = "tqdm" }, + { name = "typer" }, + { name = "typing-extensions" }, + { name = "uvicorn", extra = ["standard"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7f/48/11851dddeadad6abe36ee071fedc99b5bdd2c324df3afa8cb952ae02798b/chromadb-1.1.1.tar.gz", hash = "sha256:ebfce0122753e306a76f1e291d4ddaebe5f01b5979b97ae0bc80b1d4024ff223", size = 1338109, upload-time = "2025-10-05T02:49:14.834Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/59/0d881a9b7eb63d8d2446cf67fcbb53fb8ae34991759d2b6024a067e90a9a/chromadb-1.1.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:27fe0e25ef0f83fb09c30355ab084fe6f246808a7ea29e8c19e85cf45785b90d", size = 19175479, upload-time = "2025-10-05T02:49:12.525Z" }, + { url = "https://files.pythonhosted.org/packages/94/4f/5a9fa317c84c98e70af48f74b00aa25589626c03a0428b4381b2095f3d73/chromadb-1.1.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:95aed58869683f12e7dcbf68b039fe5f576dbe9d1b86b8f4d014c9d077ccafd2", size = 18267188, upload-time = "2025-10-05T02:49:09.236Z" }, + { url = "https://files.pythonhosted.org/packages/45/1a/02defe2f1c8d1daedb084bbe85f5b6083510a3ba192ed57797a3649a4310/chromadb-1.1.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06776dad41389a00e7d63d936c3a15c179d502becaf99f75745ee11b062c9b6a", size = 18855754, upload-time = "2025-10-05T02:49:03.299Z" }, + { url = "https://files.pythonhosted.org/packages/5a/0d/80be82717e5dc19839af24558494811b6f2af2b261a8f21c51b872193b09/chromadb-1.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bba0096a7f5e975875ead23a91c0d41d977fbd3767f60d3305a011b0ace7afd3", size = 19893681, upload-time = "2025-10-05T02:49:06.481Z" }, + { url = "https://files.pythonhosted.org/packages/2d/6e/956e62975305a4e31daf6114a73b3b0683a8f36f8d70b20aabd466770edb/chromadb-1.1.1-cp39-abi3-win_amd64.whl", hash = "sha256:a77aa026a73a18181fd89bbbdb86191c9a82fd42aa0b549ff18d8cae56394c8b", size = 19844042, upload-time = "2025-10-05T02:49:16.925Z" }, +] + [[package]] name = "click" version = "8.3.1" @@ -64,6 +560,157 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] +[[package]] +name = "crewai" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appdirs" }, + { name = "chromadb" }, + { name = "click" }, + { name = "instructor" }, + { name = "json-repair" }, + { name = "json5" }, + { name = "jsonref" }, + { name = "mcp" }, + { name = "openai" }, + { name = "openpyxl" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-http" }, + { name = "opentelemetry-sdk" }, + { name = "pdfplumber" }, + { name = "portalocker" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pyjwt" }, + { name = "python-dotenv" }, + { name = "regex" }, + { name = "tokenizers" }, + { name = "tomli" }, + { name = "tomli-w" }, + { name = "uv" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1e/c4/37f5e8e0ccb2804a3e2acc0ccf58f82dc9415a08fad71a3868cdf830c669/crewai-1.6.1.tar.gz", hash = "sha256:b7d73a8a333abf71b30ab20c54086004cd0c016dfd86bba9c035ad5eb31e22a7", size = 4177912, upload-time = "2025-11-29T01:58:25.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/87/8ab9924b79025165ed7f1b04a90f9b80137d18ceae9b8e34445a8495320c/crewai-1.6.1-py3-none-any.whl", hash = "sha256:8cec403ab89183bda28b830c722b6bc22457a2151a6aa46f07730e6fe7ab2723", size = 642861, upload-time = "2025-11-29T01:58:23.232Z" }, +] + +[package.optional-dependencies] +tools = [ + { name = "crewai-tools" }, +] + +[[package]] +name = "crewai-tools" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "crewai" }, + { name = "docker" }, + { name = "lancedb" }, + { name = "pymupdf" }, + { name = "python-docx" }, + { name = "pytube" }, + { name = "requests" }, + { name = "tiktoken" }, + { name = "youtube-transcript-api" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f4/e2/039d47c1d5266a807c9f4f8d4b927fab1ebfb60989ec6b65fcd88070a510/crewai_tools-1.6.1.tar.gz", hash = "sha256:8724400b85b0a97de09fe681b1d0bf4334e3e68bcf5ede8a056e2beed0227907", size = 805758, upload-time = "2025-11-29T01:58:29.613Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/d1/38d0bc01712cf086cd80fe778ed15ff9b57dc5cf4c0b11f1f40d88d4b50a/crewai_tools-1.6.1-py3-none-any.whl", hash = "sha256:62996840db257af9c471f9f4191b4268cb4dd7006b381670b968ac55973e08af", size = 764950, upload-time = "2025-11-29T01:58:27.441Z" }, +] + +[[package]] +name = "cryptography" +version = "46.0.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/60/04/ee2a9e8542e4fa2773b81771ff8349ff19cdd56b7258a0cc442639052edb/cryptography-46.0.5.tar.gz", hash = "sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d", size = 750064, upload-time = "2026-02-10T19:18:38.255Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/81/b0bb27f2ba931a65409c6b8a8b358a7f03c0e46eceacddff55f7c84b1f3b/cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad", size = 7176289, upload-time = "2026-02-10T19:17:08.274Z" }, + { url = "https://files.pythonhosted.org/packages/ff/9e/6b4397a3e3d15123de3b1806ef342522393d50736c13b20ec4c9ea6693a6/cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b", size = 4275637, upload-time = "2026-02-10T19:17:10.53Z" }, + { url = "https://files.pythonhosted.org/packages/63/e7/471ab61099a3920b0c77852ea3f0ea611c9702f651600397ac567848b897/cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b", size = 4424742, upload-time = "2026-02-10T19:17:12.388Z" }, + { url = "https://files.pythonhosted.org/packages/37/53/a18500f270342d66bf7e4d9f091114e31e5ee9e7375a5aba2e85a91e0044/cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263", size = 4277528, upload-time = "2026-02-10T19:17:13.853Z" }, + { url = "https://files.pythonhosted.org/packages/22/29/c2e812ebc38c57b40e7c583895e73c8c5adb4d1e4a0cc4c5a4fdab2b1acc/cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d", size = 4947993, upload-time = "2026-02-10T19:17:15.618Z" }, + { url = "https://files.pythonhosted.org/packages/6b/e7/237155ae19a9023de7e30ec64e5d99a9431a567407ac21170a046d22a5a3/cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed", size = 4456855, upload-time = "2026-02-10T19:17:17.221Z" }, + { url = "https://files.pythonhosted.org/packages/2d/87/fc628a7ad85b81206738abbd213b07702bcbdada1dd43f72236ef3cffbb5/cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2", size = 3984635, upload-time = "2026-02-10T19:17:18.792Z" }, + { url = "https://files.pythonhosted.org/packages/84/29/65b55622bde135aedf4565dc509d99b560ee4095e56989e815f8fd2aa910/cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2", size = 4277038, upload-time = "2026-02-10T19:17:20.256Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/45e76c68d7311432741faf1fbf7fac8a196a0a735ca21f504c75d37e2558/cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0", size = 4912181, upload-time = "2026-02-10T19:17:21.825Z" }, + { url = "https://files.pythonhosted.org/packages/6d/1a/c1ba8fead184d6e3d5afcf03d569acac5ad063f3ac9fb7258af158f7e378/cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731", size = 4456482, upload-time = "2026-02-10T19:17:25.133Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e5/3fb22e37f66827ced3b902cf895e6a6bc1d095b5b26be26bd13c441fdf19/cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82", size = 4405497, upload-time = "2026-02-10T19:17:26.66Z" }, + { url = "https://files.pythonhosted.org/packages/1a/df/9d58bb32b1121a8a2f27383fabae4d63080c7ca60b9b5c88be742be04ee7/cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1", size = 4667819, upload-time = "2026-02-10T19:17:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/ea/ed/325d2a490c5e94038cdb0117da9397ece1f11201f425c4e9c57fe5b9f08b/cryptography-46.0.5-cp311-abi3-win32.whl", hash = "sha256:60ee7e19e95104d4c03871d7d7dfb3d22ef8a9b9c6778c94e1c8fcc8365afd48", size = 3028230, upload-time = "2026-02-10T19:17:30.518Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5a/ac0f49e48063ab4255d9e3b79f5def51697fce1a95ea1370f03dc9db76f6/cryptography-46.0.5-cp311-abi3-win_amd64.whl", hash = "sha256:38946c54b16c885c72c4f59846be9743d699eee2b69b6988e0a00a01f46a61a4", size = 3480909, upload-time = "2026-02-10T19:17:32.083Z" }, + { url = "https://files.pythonhosted.org/packages/00/13/3d278bfa7a15a96b9dc22db5a12ad1e48a9eb3d40e1827ef66a5df75d0d0/cryptography-46.0.5-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:94a76daa32eb78d61339aff7952ea819b1734b46f73646a07decb40e5b3448e2", size = 7119287, upload-time = "2026-02-10T19:17:33.801Z" }, + { url = "https://files.pythonhosted.org/packages/67/c8/581a6702e14f0898a0848105cbefd20c058099e2c2d22ef4e476dfec75d7/cryptography-46.0.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5be7bf2fb40769e05739dd0046e7b26f9d4670badc7b032d6ce4db64dddc0678", size = 4265728, upload-time = "2026-02-10T19:17:35.569Z" }, + { url = "https://files.pythonhosted.org/packages/dd/4a/ba1a65ce8fc65435e5a849558379896c957870dd64fecea97b1ad5f46a37/cryptography-46.0.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe346b143ff9685e40192a4960938545c699054ba11d4f9029f94751e3f71d87", size = 4408287, upload-time = "2026-02-10T19:17:36.938Z" }, + { url = "https://files.pythonhosted.org/packages/f8/67/8ffdbf7b65ed1ac224d1c2df3943553766914a8ca718747ee3871da6107e/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:c69fd885df7d089548a42d5ec05be26050ebcd2283d89b3d30676eb32ff87dee", size = 4270291, upload-time = "2026-02-10T19:17:38.748Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/f52377ee93bc2f2bba55a41a886fd208c15276ffbd2569f2ddc89d50e2c5/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:8293f3dea7fc929ef7240796ba231413afa7b68ce38fd21da2995549f5961981", size = 4927539, upload-time = "2026-02-10T19:17:40.241Z" }, + { url = "https://files.pythonhosted.org/packages/3b/02/cfe39181b02419bbbbcf3abdd16c1c5c8541f03ca8bda240debc467d5a12/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:1abfdb89b41c3be0365328a410baa9df3ff8a9110fb75e7b52e66803ddabc9a9", size = 4442199, upload-time = "2026-02-10T19:17:41.789Z" }, + { url = "https://files.pythonhosted.org/packages/c0/96/2fcaeb4873e536cf71421a388a6c11b5bc846e986b2b069c79363dc1648e/cryptography-46.0.5-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:d66e421495fdb797610a08f43b05269e0a5ea7f5e652a89bfd5a7d3c1dee3648", size = 3960131, upload-time = "2026-02-10T19:17:43.379Z" }, + { url = "https://files.pythonhosted.org/packages/d8/d2/b27631f401ddd644e94c5cf33c9a4069f72011821cf3dc7309546b0642a0/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:4e817a8920bfbcff8940ecfd60f23d01836408242b30f1a708d93198393a80b4", size = 4270072, upload-time = "2026-02-10T19:17:45.481Z" }, + { url = "https://files.pythonhosted.org/packages/f4/a7/60d32b0370dae0b4ebe55ffa10e8599a2a59935b5ece1b9f06edb73abdeb/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:68f68d13f2e1cb95163fa3b4db4bf9a159a418f5f6e7242564fc75fcae667fd0", size = 4892170, upload-time = "2026-02-10T19:17:46.997Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b9/cf73ddf8ef1164330eb0b199a589103c363afa0cf794218c24d524a58eab/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:a3d1fae9863299076f05cb8a778c467578262fae09f9dc0ee9b12eb4268ce663", size = 4441741, upload-time = "2026-02-10T19:17:48.661Z" }, + { url = "https://files.pythonhosted.org/packages/5f/eb/eee00b28c84c726fe8fa0158c65afe312d9c3b78d9d01daf700f1f6e37ff/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4143987a42a2397f2fc3b4d7e3a7d313fbe684f67ff443999e803dd75a76826", size = 4396728, upload-time = "2026-02-10T19:17:50.058Z" }, + { url = "https://files.pythonhosted.org/packages/65/f4/6bc1a9ed5aef7145045114b75b77c2a8261b4d38717bd8dea111a63c3442/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7d731d4b107030987fd61a7f8ab512b25b53cef8f233a97379ede116f30eb67d", size = 4652001, upload-time = "2026-02-10T19:17:51.54Z" }, + { url = "https://files.pythonhosted.org/packages/86/ef/5d00ef966ddd71ac2e6951d278884a84a40ffbd88948ef0e294b214ae9e4/cryptography-46.0.5-cp314-cp314t-win32.whl", hash = "sha256:c3bcce8521d785d510b2aad26ae2c966092b7daa8f45dd8f44734a104dc0bc1a", size = 3003637, upload-time = "2026-02-10T19:17:52.997Z" }, + { url = "https://files.pythonhosted.org/packages/b7/57/f3f4160123da6d098db78350fdfd9705057aad21de7388eacb2401dceab9/cryptography-46.0.5-cp314-cp314t-win_amd64.whl", hash = "sha256:4d8ae8659ab18c65ced284993c2265910f6c9e650189d4e3f68445ef82a810e4", size = 3469487, upload-time = "2026-02-10T19:17:54.549Z" }, + { url = "https://files.pythonhosted.org/packages/e2/fa/a66aa722105ad6a458bebd64086ca2b72cdd361fed31763d20390f6f1389/cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31", size = 7170514, upload-time = "2026-02-10T19:17:56.267Z" }, + { url = "https://files.pythonhosted.org/packages/0f/04/c85bdeab78c8bc77b701bf0d9bdcf514c044e18a46dcff330df5448631b0/cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18", size = 4275349, upload-time = "2026-02-10T19:17:58.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/32/9b87132a2f91ee7f5223b091dc963055503e9b442c98fc0b8a5ca765fab0/cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235", size = 4420667, upload-time = "2026-02-10T19:18:00.619Z" }, + { url = "https://files.pythonhosted.org/packages/a1/a6/a7cb7010bec4b7c5692ca6f024150371b295ee1c108bdc1c400e4c44562b/cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a", size = 4276980, upload-time = "2026-02-10T19:18:02.379Z" }, + { url = "https://files.pythonhosted.org/packages/8e/7c/c4f45e0eeff9b91e3f12dbd0e165fcf2a38847288fcfd889deea99fb7b6d/cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76", size = 4939143, upload-time = "2026-02-10T19:18:03.964Z" }, + { url = "https://files.pythonhosted.org/packages/37/19/e1b8f964a834eddb44fa1b9a9976f4e414cbb7aa62809b6760c8803d22d1/cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614", size = 4453674, upload-time = "2026-02-10T19:18:05.588Z" }, + { url = "https://files.pythonhosted.org/packages/db/ed/db15d3956f65264ca204625597c410d420e26530c4e2943e05a0d2f24d51/cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229", size = 3978801, upload-time = "2026-02-10T19:18:07.167Z" }, + { url = "https://files.pythonhosted.org/packages/41/e2/df40a31d82df0a70a0daf69791f91dbb70e47644c58581d654879b382d11/cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1", size = 4276755, upload-time = "2026-02-10T19:18:09.813Z" }, + { url = "https://files.pythonhosted.org/packages/33/45/726809d1176959f4a896b86907b98ff4391a8aa29c0aaaf9450a8a10630e/cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d", size = 4901539, upload-time = "2026-02-10T19:18:11.263Z" }, + { url = "https://files.pythonhosted.org/packages/99/0f/a3076874e9c88ecb2ecc31382f6e7c21b428ede6f55aafa1aa272613e3cd/cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c", size = 4452794, upload-time = "2026-02-10T19:18:12.914Z" }, + { url = "https://files.pythonhosted.org/packages/02/ef/ffeb542d3683d24194a38f66ca17c0a4b8bf10631feef44a7ef64e631b1a/cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4", size = 4404160, upload-time = "2026-02-10T19:18:14.375Z" }, + { url = "https://files.pythonhosted.org/packages/96/93/682d2b43c1d5f1406ed048f377c0fc9fc8f7b0447a478d5c65ab3d3a66eb/cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9", size = 4667123, upload-time = "2026-02-10T19:18:15.886Z" }, + { url = "https://files.pythonhosted.org/packages/45/2d/9c5f2926cb5300a8eefc3f4f0b3f3df39db7f7ce40c8365444c49363cbda/cryptography-46.0.5-cp38-abi3-win32.whl", hash = "sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72", size = 3010220, upload-time = "2026-02-10T19:18:17.361Z" }, + { url = "https://files.pythonhosted.org/packages/48/ef/0c2f4a8e31018a986949d34a01115dd057bf536905dca38897bacd21fac3/cryptography-46.0.5-cp38-abi3-win_amd64.whl", hash = "sha256:556e106ee01aa13484ce9b0239bca667be5004efb0aabbed28d353df86445595", size = 3467050, upload-time = "2026-02-10T19:18:18.899Z" }, + { url = "https://files.pythonhosted.org/packages/eb/dd/2d9fdb07cebdf3d51179730afb7d5e576153c6744c3ff8fded23030c204e/cryptography-46.0.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c", size = 3476964, upload-time = "2026-02-10T19:18:20.687Z" }, + { url = "https://files.pythonhosted.org/packages/e9/6f/6cc6cc9955caa6eaf83660b0da2b077c7fe8ff9950a3c5e45d605038d439/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a", size = 4218321, upload-time = "2026-02-10T19:18:22.349Z" }, + { url = "https://files.pythonhosted.org/packages/3e/5d/c4da701939eeee699566a6c1367427ab91a8b7088cc2328c09dbee940415/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356", size = 4381786, upload-time = "2026-02-10T19:18:24.529Z" }, + { url = "https://files.pythonhosted.org/packages/ac/97/a538654732974a94ff96c1db621fa464f455c02d4bb7d2652f4edc21d600/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da", size = 4217990, upload-time = "2026-02-10T19:18:25.957Z" }, + { url = "https://files.pythonhosted.org/packages/ae/11/7e500d2dd3ba891197b9efd2da5454b74336d64a7cc419aa7327ab74e5f6/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257", size = 4381252, upload-time = "2026-02-10T19:18:27.496Z" }, + { url = "https://files.pythonhosted.org/packages/bc/58/6b3d24e6b9bc474a2dcdee65dfd1f008867015408a271562e4b690561a4d/cryptography-46.0.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8456928655f856c6e1533ff59d5be76578a7157224dbd9ce6872f25055ab9ab7", size = 3407605, upload-time = "2026-02-10T19:18:29.233Z" }, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" }, +] + +[[package]] +name = "deprecation" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/d3/8ae2869247df154b64c1884d7346d412fed0c49df84db635aab2d1c40e62/deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff", size = 173788, upload-time = "2020-04-20T14:23:38.738Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a", size = 11178, upload-time = "2020-04-20T14:23:36.581Z" }, +] + +[[package]] +name = "diskcache" +version = "5.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916, upload-time = "2023-08-31T06:12:00.316Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550, upload-time = "2023-08-31T06:11:58.822Z" }, +] + [[package]] name = "distro" version = "1.9.0" @@ -73,6 +720,47 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, ] +[[package]] +name = "docker" +version = "7.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "requests" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/9b/4a2ea29aeba62471211598dac5d96825bb49348fa07e906ea930394a83ce/docker-7.1.0.tar.gz", hash = "sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c", size = 117834, upload-time = "2024-05-23T11:13:57.216Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/26/57c6fb270950d476074c087527a558ccb6f4436657314bfb6cdf484114c4/docker-7.1.0-py3-none-any.whl", hash = "sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0", size = 147774, upload-time = "2024-05-23T11:13:55.01Z" }, +] + +[[package]] +name = "docstring-parser" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442, upload-time = "2025-07-21T07:35:01.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896, upload-time = "2025-07-21T07:35:00.684Z" }, +] + +[[package]] +name = "durationpy" +version = "0.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/a4/e44218c2b394e31a6dd0d6b095c4e1f32d0be54c2a4b250032d717647bab/durationpy-0.10.tar.gz", hash = "sha256:1fa6893409a6e739c9c72334fc65cca1f355dbdd93405d30f726deb5bde42fba", size = 3335, upload-time = "2025-05-17T13:52:37.26Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/0d/9feae160378a3553fa9a339b0e9c1a048e147a4127210e286ef18b730f03/durationpy-0.10-py3-none-any.whl", hash = "sha256:3b41e1b601234296b4fb368338fdcd3e13e0b4fb5b67345948f4f2bf9868b286", size = 3922, upload-time = "2025-05-17T13:52:36.463Z" }, +] + +[[package]] +name = "et-xmlfile" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 17234, upload-time = "2024-10-25T17:25:40.039Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = 18059, upload-time = "2024-10-25T17:25:39.051Z" }, +] + [[package]] name = "exceptiongroup" version = "1.3.1" @@ -100,6 +788,226 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/34/2f/ff2fcc98f500713368d8b650e1bbc4a0b3ebcdd3e050dcdaad5f5a13fd7e/fastapi-0.125.0-py3-none-any.whl", hash = "sha256:2570ec4f3aecf5cca8f0428aed2398b774fcdfee6c2116f86e80513f2f86a7a1", size = 112888, upload-time = "2025-12-17T21:41:41.286Z" }, ] +[[package]] +name = "filelock" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/f7/5e0dec5165ca52203d9f2c248db0a72dd31d6f15aad0b1e4a874f2187452/filelock-3.23.0.tar.gz", hash = "sha256:f64442f6f4707b9385049bb490be0bc48e3ab8e74ad27d4063435252917f4d4b", size = 32798, upload-time = "2026-02-14T02:53:58.703Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/10/da216e25ef2f3c9dfa75574aa27f5f4c7e5fb5540308f04e4d8c4d834ecb/filelock-3.23.0-py3-none-any.whl", hash = "sha256:4203c3f43983c7c95e4bbb68786f184f6acb7300899bf99d686bb82d526bdf62", size = 22227, upload-time = "2026-02-14T02:53:56.122Z" }, +] + +[[package]] +name = "flatbuffers" +version = "25.12.19" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/2d/d2a548598be01649e2d46231d151a6c56d10b964d94043a335ae56ea2d92/flatbuffers-25.12.19-py2.py3-none-any.whl", hash = "sha256:7634f50c427838bb021c2d66a3d1168e9d199b0607e6329399f04846d42e20b4", size = 26661, upload-time = "2025-12-19T23:16:13.622Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/4a/557715d5047da48d54e659203b9335be7bfaafda2c3f627b7c47e0b3aaf3/frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011", size = 86230, upload-time = "2025-10-06T05:35:23.699Z" }, + { url = "https://files.pythonhosted.org/packages/a2/fb/c85f9fed3ea8fe8740e5b46a59cc141c23b842eca617da8876cfce5f760e/frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565", size = 49621, upload-time = "2025-10-06T05:35:25.341Z" }, + { url = "https://files.pythonhosted.org/packages/63/70/26ca3f06aace16f2352796b08704338d74b6d1a24ca38f2771afbb7ed915/frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a88f062f072d1589b7b46e951698950e7da00442fc1cacbe17e19e025dc327ad", size = 49889, upload-time = "2025-10-06T05:35:26.797Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f57fb59d9f385710aa7060e89410aeb5058b99e62f4d16b08b91986b9a2140c2", size = 219464, upload-time = "2025-10-06T05:35:28.254Z" }, + { url = "https://files.pythonhosted.org/packages/6b/83/4d587dccbfca74cb8b810472392ad62bfa100bf8108c7223eb4c4fa2f7b3/frozenlist-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:799345ab092bee59f01a915620b5d014698547afd011e691a208637312db9186", size = 221649, upload-time = "2025-10-06T05:35:29.454Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c6/fd3b9cd046ec5fff9dab66831083bc2077006a874a2d3d9247dea93ddf7e/frozenlist-1.8.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c23c3ff005322a6e16f71bf8692fcf4d5a304aaafe1e262c98c6d4adc7be863e", size = 219188, upload-time = "2025-10-06T05:35:30.951Z" }, + { url = "https://files.pythonhosted.org/packages/ce/80/6693f55eb2e085fc8afb28cf611448fb5b90e98e068fa1d1b8d8e66e5c7d/frozenlist-1.8.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a76ea0f0b9dfa06f254ee06053d93a600865b3274358ca48a352ce4f0798450", size = 231748, upload-time = "2025-10-06T05:35:32.101Z" }, + { url = "https://files.pythonhosted.org/packages/97/d6/e9459f7c5183854abd989ba384fe0cc1a0fb795a83c033f0571ec5933ca4/frozenlist-1.8.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c7366fe1418a6133d5aa824ee53d406550110984de7637d65a178010f759c6ef", size = 236351, upload-time = "2025-10-06T05:35:33.834Z" }, + { url = "https://files.pythonhosted.org/packages/97/92/24e97474b65c0262e9ecd076e826bfd1d3074adcc165a256e42e7b8a7249/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:13d23a45c4cebade99340c4165bd90eeb4a56c6d8a9d8aa49568cac19a6d0dc4", size = 218767, upload-time = "2025-10-06T05:35:35.205Z" }, + { url = "https://files.pythonhosted.org/packages/ee/bf/dc394a097508f15abff383c5108cb8ad880d1f64a725ed3b90d5c2fbf0bb/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4a3408834f65da56c83528fb52ce7911484f0d1eaf7b761fc66001db1646eff", size = 235887, upload-time = "2025-10-06T05:35:36.354Z" }, + { url = "https://files.pythonhosted.org/packages/40/90/25b201b9c015dbc999a5baf475a257010471a1fa8c200c843fd4abbee725/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:42145cd2748ca39f32801dad54aeea10039da6f86e303659db90db1c4b614c8c", size = 228785, upload-time = "2025-10-06T05:35:37.949Z" }, + { url = "https://files.pythonhosted.org/packages/84/f4/b5bc148df03082f05d2dd30c089e269acdbe251ac9a9cf4e727b2dbb8a3d/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e2de870d16a7a53901e41b64ffdf26f2fbb8917b3e6ebf398098d72c5b20bd7f", size = 230312, upload-time = "2025-10-06T05:35:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/db/4b/87e95b5d15097c302430e647136b7d7ab2398a702390cf4c8601975709e7/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:20e63c9493d33ee48536600d1a5c95eefc870cd71e7ab037763d1fbb89cc51e7", size = 217650, upload-time = "2025-10-06T05:35:40.377Z" }, + { url = "https://files.pythonhosted.org/packages/e5/70/78a0315d1fea97120591a83e0acd644da638c872f142fd72a6cebee825f3/frozenlist-1.8.0-cp310-cp310-win32.whl", hash = "sha256:adbeebaebae3526afc3c96fad434367cafbfd1b25d72369a9e5858453b1bb71a", size = 39659, upload-time = "2025-10-06T05:35:41.863Z" }, + { url = "https://files.pythonhosted.org/packages/66/aa/3f04523fb189a00e147e60c5b2205126118f216b0aa908035c45336e27e4/frozenlist-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:667c3777ca571e5dbeb76f331562ff98b957431df140b54c85fd4d52eea8d8f6", size = 43837, upload-time = "2025-10-06T05:35:43.205Z" }, + { url = "https://files.pythonhosted.org/packages/39/75/1135feecdd7c336938bd55b4dc3b0dfc46d85b9be12ef2628574b28de776/frozenlist-1.8.0-cp310-cp310-win_arm64.whl", hash = "sha256:80f85f0a7cc86e7a54c46d99c9e1318ff01f4687c172ede30fd52d19d1da1c8e", size = 39989, upload-time = "2025-10-06T05:35:44.596Z" }, + { url = "https://files.pythonhosted.org/packages/bc/03/077f869d540370db12165c0aa51640a873fb661d8b315d1d4d67b284d7ac/frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84", size = 86912, upload-time = "2025-10-06T05:35:45.98Z" }, + { url = "https://files.pythonhosted.org/packages/df/b5/7610b6bd13e4ae77b96ba85abea1c8cb249683217ef09ac9e0ae93f25a91/frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9", size = 50046, upload-time = "2025-10-06T05:35:47.009Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ef/0e8f1fe32f8a53dd26bdd1f9347efe0778b0fddf62789ea683f4cc7d787d/frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93", size = 50119, upload-time = "2025-10-06T05:35:48.38Z" }, + { url = "https://files.pythonhosted.org/packages/11/b1/71a477adc7c36e5fb628245dfbdea2166feae310757dea848d02bd0689fd/frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f", size = 231067, upload-time = "2025-10-06T05:35:49.97Z" }, + { url = "https://files.pythonhosted.org/packages/45/7e/afe40eca3a2dc19b9904c0f5d7edfe82b5304cb831391edec0ac04af94c2/frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695", size = 233160, upload-time = "2025-10-06T05:35:51.729Z" }, + { url = "https://files.pythonhosted.org/packages/a6/aa/7416eac95603ce428679d273255ffc7c998d4132cfae200103f164b108aa/frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52", size = 228544, upload-time = "2025-10-06T05:35:53.246Z" }, + { url = "https://files.pythonhosted.org/packages/8b/3d/2a2d1f683d55ac7e3875e4263d28410063e738384d3adc294f5ff3d7105e/frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581", size = 243797, upload-time = "2025-10-06T05:35:54.497Z" }, + { url = "https://files.pythonhosted.org/packages/78/1e/2d5565b589e580c296d3bb54da08d206e797d941a83a6fdea42af23be79c/frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567", size = 247923, upload-time = "2025-10-06T05:35:55.861Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/65872fcf1d326a7f101ad4d86285c403c87be7d832b7470b77f6d2ed5ddc/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b", size = 230886, upload-time = "2025-10-06T05:35:57.399Z" }, + { url = "https://files.pythonhosted.org/packages/a0/76/ac9ced601d62f6956f03cc794f9e04c81719509f85255abf96e2510f4265/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92", size = 245731, upload-time = "2025-10-06T05:35:58.563Z" }, + { url = "https://files.pythonhosted.org/packages/b9/49/ecccb5f2598daf0b4a1415497eba4c33c1e8ce07495eb07d2860c731b8d5/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d", size = 241544, upload-time = "2025-10-06T05:35:59.719Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/ddf24113323c0bbcc54cb38c8b8916f1da7165e07b8e24a717b4a12cbf10/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd", size = 241806, upload-time = "2025-10-06T05:36:00.959Z" }, + { url = "https://files.pythonhosted.org/packages/a7/fb/9b9a084d73c67175484ba2789a59f8eebebd0827d186a8102005ce41e1ba/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967", size = 229382, upload-time = "2025-10-06T05:36:02.22Z" }, + { url = "https://files.pythonhosted.org/packages/95/a3/c8fb25aac55bf5e12dae5c5aa6a98f85d436c1dc658f21c3ac73f9fa95e5/frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25", size = 39647, upload-time = "2025-10-06T05:36:03.409Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f5/603d0d6a02cfd4c8f2a095a54672b3cf967ad688a60fb9faf04fc4887f65/frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b", size = 44064, upload-time = "2025-10-06T05:36:04.368Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/c2c9ab44e181f043a86f9a8f84d5124b62dbcb3a02c0977ec72b9ac1d3e0/frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a", size = 39937, upload-time = "2025-10-06T05:36:05.669Z" }, + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" }, + { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload-time = "2025-10-06T05:36:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload-time = "2025-10-06T05:36:28.855Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload-time = "2025-10-06T05:36:29.877Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload-time = "2025-10-06T05:36:31.301Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload-time = "2025-10-06T05:36:32.531Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload-time = "2025-10-06T05:36:33.706Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload-time = "2025-10-06T05:36:34.947Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload-time = "2025-10-06T05:36:36.534Z" }, + { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload-time = "2025-10-06T05:36:38.582Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload-time = "2025-10-06T05:36:40.152Z" }, + { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload-time = "2025-10-06T05:36:41.355Z" }, + { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload-time = "2025-10-06T05:36:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload-time = "2025-10-06T05:36:44.251Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload-time = "2025-10-06T05:36:45.423Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload-time = "2025-10-06T05:36:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload-time = "2025-10-06T05:36:47.8Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload-time = "2025-10-06T05:36:48.78Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload-time = "2025-10-06T05:36:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload-time = "2025-10-06T05:36:50.851Z" }, + { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload-time = "2025-10-06T05:36:51.898Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload-time = "2025-10-06T05:36:53.101Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload-time = "2025-10-06T05:36:54.309Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload-time = "2025-10-06T05:36:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload-time = "2025-10-06T05:36:56.758Z" }, + { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload-time = "2025-10-06T05:36:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload-time = "2025-10-06T05:36:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload-time = "2025-10-06T05:37:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload-time = "2025-10-06T05:37:02.115Z" }, + { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload-time = "2025-10-06T05:37:03.711Z" }, + { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload-time = "2025-10-06T05:37:04.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload-time = "2025-10-06T05:37:06.343Z" }, + { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload-time = "2025-10-06T05:37:07.431Z" }, + { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127, upload-time = "2025-10-06T05:37:08.438Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698, upload-time = "2025-10-06T05:37:09.48Z" }, + { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749, upload-time = "2025-10-06T05:37:10.569Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298, upload-time = "2025-10-06T05:37:11.993Z" }, + { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015, upload-time = "2025-10-06T05:37:13.194Z" }, + { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038, upload-time = "2025-10-06T05:37:14.577Z" }, + { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130, upload-time = "2025-10-06T05:37:15.781Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845, upload-time = "2025-10-06T05:37:17.037Z" }, + { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131, upload-time = "2025-10-06T05:37:18.221Z" }, + { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542, upload-time = "2025-10-06T05:37:19.771Z" }, + { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308, upload-time = "2025-10-06T05:37:20.969Z" }, + { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210, upload-time = "2025-10-06T05:37:22.252Z" }, + { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972, upload-time = "2025-10-06T05:37:23.5Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536, upload-time = "2025-10-06T05:37:25.581Z" }, + { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330, upload-time = "2025-10-06T05:37:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627, upload-time = "2025-10-06T05:37:28.075Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238, upload-time = "2025-10-06T05:37:29.373Z" }, + { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738, upload-time = "2025-10-06T05:37:30.792Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739, upload-time = "2025-10-06T05:37:32.127Z" }, + { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186, upload-time = "2025-10-06T05:37:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196, upload-time = "2025-10-06T05:37:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830, upload-time = "2025-10-06T05:37:37.663Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289, upload-time = "2025-10-06T05:37:39.261Z" }, + { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318, upload-time = "2025-10-06T05:37:43.213Z" }, + { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814, upload-time = "2025-10-06T05:37:45.337Z" }, + { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762, upload-time = "2025-10-06T05:37:46.657Z" }, + { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470, upload-time = "2025-10-06T05:37:47.946Z" }, + { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042, upload-time = "2025-10-06T05:37:49.499Z" }, + { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148, upload-time = "2025-10-06T05:37:50.745Z" }, + { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676, upload-time = "2025-10-06T05:37:52.222Z" }, + { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451, upload-time = "2025-10-06T05:37:53.425Z" }, + { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507, upload-time = "2025-10-06T05:37:54.513Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" }, +] + +[[package]] +name = "fsspec" +version = "2026.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/51/7c/f60c259dcbf4f0c47cc4ddb8f7720d2dcdc8888c8e5ad84c73ea4531cc5b/fsspec-2026.2.0.tar.gz", hash = "sha256:6544e34b16869f5aacd5b90bdf1a71acb37792ea3ddf6125ee69a22a53fb8bff", size = 313441, upload-time = "2026-02-05T21:50:53.743Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl", hash = "sha256:98de475b5cb3bd66bedd5c4679e87b4fdfe1a3bf4d707b151b3c07e58c9a2437", size = 202505, upload-time = "2026-02-05T21:50:51.819Z" }, +] + +[[package]] +name = "googleapis-common-protos" +version = "1.72.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e5/7b/adfd75544c415c487b33061fe7ae526165241c1ea133f9a9125a56b39fd8/googleapis_common_protos-1.72.0.tar.gz", hash = "sha256:e55a601c1b32b52d7a3e65f43563e2aa61bcd737998ee672ac9b951cd49319f5", size = 147433, upload-time = "2025-11-06T18:29:24.087Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/ab/09169d5a4612a5f92490806649ac8d41e3ec9129c636754575b3553f4ea4/googleapis_common_protos-1.72.0-py3-none-any.whl", hash = "sha256:4299c5a82d5ae1a9702ada957347726b167f9f8d1fc352477702a1e851ff4038", size = 297515, upload-time = "2025-11-06T18:29:13.14Z" }, +] + +[[package]] +name = "grpcio" +version = "1.78.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/8a/3d098f35c143a89520e568e6539cc098fcd294495910e359889ce8741c84/grpcio-1.78.0.tar.gz", hash = "sha256:7382b95189546f375c174f53a5fa873cef91c4b8005faa05cc5b3beea9c4f1c5", size = 12852416, upload-time = "2026-02-06T09:57:18.093Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/a8/690a085b4d1fe066130de97a87de32c45062cf2ecd218df9675add895550/grpcio-1.78.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:7cc47943d524ee0096f973e1081cb8f4f17a4615f2116882a5f1416e4cfe92b5", size = 5946986, upload-time = "2026-02-06T09:54:34.043Z" }, + { url = "https://files.pythonhosted.org/packages/c7/1b/e5213c5c0ced9d2d92778d30529ad5bb2dcfb6c48c4e2d01b1f302d33d64/grpcio-1.78.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:c3f293fdc675ccba4db5a561048cca627b5e7bd1c8a6973ffedabe7d116e22e2", size = 11816533, upload-time = "2026-02-06T09:54:37.04Z" }, + { url = "https://files.pythonhosted.org/packages/18/37/1ba32dccf0a324cc5ace744c44331e300b000a924bf14840f948c559ede7/grpcio-1.78.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:10a9a644b5dd5aec3b82b5b0b90d41c0fa94c85ef42cb42cf78a23291ddb5e7d", size = 6519964, upload-time = "2026-02-06T09:54:40.268Z" }, + { url = "https://files.pythonhosted.org/packages/ed/f5/c0e178721b818072f2e8b6fde13faaba942406c634009caf065121ce246b/grpcio-1.78.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4c5533d03a6cbd7f56acfc9cfb44ea64f63d29091e40e44010d34178d392d7eb", size = 7198058, upload-time = "2026-02-06T09:54:42.389Z" }, + { url = "https://files.pythonhosted.org/packages/5b/b2/40d43c91ae9cd667edc960135f9f08e58faa1576dc95af29f66ec912985f/grpcio-1.78.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ff870aebe9a93a85283837801d35cd5f8814fe2ad01e606861a7fb47c762a2b7", size = 6727212, upload-time = "2026-02-06T09:54:44.91Z" }, + { url = "https://files.pythonhosted.org/packages/ed/88/9da42eed498f0efcfcd9156e48ae63c0cde3bea398a16c99fb5198c885b6/grpcio-1.78.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:391e93548644e6b2726f1bb84ed60048d4bcc424ce5e4af0843d28ca0b754fec", size = 7300845, upload-time = "2026-02-06T09:54:47.562Z" }, + { url = "https://files.pythonhosted.org/packages/23/3f/1c66b7b1b19a8828890e37868411a6e6925df5a9030bfa87ab318f34095d/grpcio-1.78.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:df2c8f3141f7cbd112a6ebbd760290b5849cda01884554f7c67acc14e7b1758a", size = 8284605, upload-time = "2026-02-06T09:54:50.475Z" }, + { url = "https://files.pythonhosted.org/packages/94/c4/ca1bd87394f7b033e88525384b4d1e269e8424ab441ea2fba1a0c5b50986/grpcio-1.78.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bd8cb8026e5f5b50498a3c4f196f57f9db344dad829ffae16b82e4fdbaea2813", size = 7726672, upload-time = "2026-02-06T09:54:53.11Z" }, + { url = "https://files.pythonhosted.org/packages/41/09/f16e487d4cc65ccaf670f6ebdd1a17566b965c74fc3d93999d3b2821e052/grpcio-1.78.0-cp310-cp310-win32.whl", hash = "sha256:f8dff3d9777e5d2703a962ee5c286c239bf0ba173877cc68dc02c17d042e29de", size = 4076715, upload-time = "2026-02-06T09:54:55.549Z" }, + { url = "https://files.pythonhosted.org/packages/2a/32/4ce60d94e242725fd3bcc5673c04502c82a8e87b21ea411a63992dc39f8f/grpcio-1.78.0-cp310-cp310-win_amd64.whl", hash = "sha256:94f95cf5d532d0e717eed4fc1810e8e6eded04621342ec54c89a7c2f14b581bf", size = 4799157, upload-time = "2026-02-06T09:54:59.838Z" }, + { url = "https://files.pythonhosted.org/packages/86/c7/d0b780a29b0837bf4ca9580904dfb275c1fc321ded7897d620af7047ec57/grpcio-1.78.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:2777b783f6c13b92bd7b716667452c329eefd646bfb3f2e9dabea2e05dbd34f6", size = 5951525, upload-time = "2026-02-06T09:55:01.989Z" }, + { url = "https://files.pythonhosted.org/packages/c5/b1/96920bf2ee61df85a9503cb6f733fe711c0ff321a5a697d791b075673281/grpcio-1.78.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:9dca934f24c732750389ce49d638069c3892ad065df86cb465b3fa3012b70c9e", size = 11830418, upload-time = "2026-02-06T09:55:04.462Z" }, + { url = "https://files.pythonhosted.org/packages/83/0c/7c1528f098aeb75a97de2bae18c530f56959fb7ad6c882db45d9884d6edc/grpcio-1.78.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:459ab414b35f4496138d0ecd735fed26f1318af5e52cb1efbc82a09f0d5aa911", size = 6524477, upload-time = "2026-02-06T09:55:07.111Z" }, + { url = "https://files.pythonhosted.org/packages/8d/52/e7c1f3688f949058e19a011c4e0dec973da3d0ae5e033909677f967ae1f4/grpcio-1.78.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:082653eecbdf290e6e3e2c276ab2c54b9e7c299e07f4221872380312d8cf395e", size = 7198266, upload-time = "2026-02-06T09:55:10.016Z" }, + { url = "https://files.pythonhosted.org/packages/e5/61/8ac32517c1e856677282c34f2e7812d6c328fa02b8f4067ab80e77fdc9c9/grpcio-1.78.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:85f93781028ec63f383f6bc90db785a016319c561cc11151fbb7b34e0d012303", size = 6730552, upload-time = "2026-02-06T09:55:12.207Z" }, + { url = "https://files.pythonhosted.org/packages/bd/98/b8ee0158199250220734f620b12e4a345955ac7329cfd908d0bf0fda77f0/grpcio-1.78.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f12857d24d98441af6a1d5c87442d624411db486f7ba12550b07788f74b67b04", size = 7304296, upload-time = "2026-02-06T09:55:15.044Z" }, + { url = "https://files.pythonhosted.org/packages/bd/0f/7b72762e0d8840b58032a56fdbd02b78fc645b9fa993d71abf04edbc54f4/grpcio-1.78.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5397fff416b79e4b284959642a4e95ac4b0f1ece82c9993658e0e477d40551ec", size = 8288298, upload-time = "2026-02-06T09:55:17.276Z" }, + { url = "https://files.pythonhosted.org/packages/24/ae/ae4ce56bc5bb5caa3a486d60f5f6083ac3469228faa734362487176c15c5/grpcio-1.78.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:fbe6e89c7ffb48518384068321621b2a69cab509f58e40e4399fdd378fa6d074", size = 7730953, upload-time = "2026-02-06T09:55:19.545Z" }, + { url = "https://files.pythonhosted.org/packages/b5/6e/8052e3a28eb6a820c372b2eb4b5e32d195c661e137d3eca94d534a4cfd8a/grpcio-1.78.0-cp311-cp311-win32.whl", hash = "sha256:6092beabe1966a3229f599d7088b38dfc8ffa1608b5b5cdda31e591e6500f856", size = 4076503, upload-time = "2026-02-06T09:55:21.521Z" }, + { url = "https://files.pythonhosted.org/packages/08/62/f22c98c5265dfad327251fa2f840b591b1df5f5e15d88b19c18c86965b27/grpcio-1.78.0-cp311-cp311-win_amd64.whl", hash = "sha256:1afa62af6e23f88629f2b29ec9e52ec7c65a7176c1e0a83292b93c76ca882558", size = 4799767, upload-time = "2026-02-06T09:55:24.107Z" }, + { url = "https://files.pythonhosted.org/packages/4e/f4/7384ed0178203d6074446b3c4f46c90a22ddf7ae0b3aee521627f54cfc2a/grpcio-1.78.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:f9ab915a267fc47c7e88c387a3a28325b58c898e23d4995f765728f4e3dedb97", size = 5913985, upload-time = "2026-02-06T09:55:26.832Z" }, + { url = "https://files.pythonhosted.org/packages/81/ed/be1caa25f06594463f685b3790b320f18aea49b33166f4141bfdc2bfb236/grpcio-1.78.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3f8904a8165ab21e07e58bf3e30a73f4dffc7a1e0dbc32d51c61b5360d26f43e", size = 11811853, upload-time = "2026-02-06T09:55:29.224Z" }, + { url = "https://files.pythonhosted.org/packages/24/a7/f06d151afc4e64b7e3cc3e872d331d011c279aaab02831e40a81c691fb65/grpcio-1.78.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:859b13906ce098c0b493af92142ad051bf64c7870fa58a123911c88606714996", size = 6475766, upload-time = "2026-02-06T09:55:31.825Z" }, + { url = "https://files.pythonhosted.org/packages/8a/a8/4482922da832ec0082d0f2cc3a10976d84a7424707f25780b82814aafc0a/grpcio-1.78.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b2342d87af32790f934a79c3112641e7b27d63c261b8b4395350dad43eff1dc7", size = 7170027, upload-time = "2026-02-06T09:55:34.7Z" }, + { url = "https://files.pythonhosted.org/packages/54/bf/f4a3b9693e35d25b24b0b39fa46d7d8a3c439e0a3036c3451764678fec20/grpcio-1.78.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:12a771591ae40bc65ba67048fa52ef4f0e6db8279e595fd349f9dfddeef571f9", size = 6690766, upload-time = "2026-02-06T09:55:36.902Z" }, + { url = "https://files.pythonhosted.org/packages/c7/b9/521875265cc99fe5ad4c5a17010018085cae2810a928bf15ebe7d8bcd9cc/grpcio-1.78.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:185dea0d5260cbb2d224c507bf2a5444d5abbb1fa3594c1ed7e4c709d5eb8383", size = 7266161, upload-time = "2026-02-06T09:55:39.824Z" }, + { url = "https://files.pythonhosted.org/packages/05/86/296a82844fd40a4ad4a95f100b55044b4f817dece732bf686aea1a284147/grpcio-1.78.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:51b13f9aed9d59ee389ad666b8c2214cc87b5de258fa712f9ab05f922e3896c6", size = 8253303, upload-time = "2026-02-06T09:55:42.353Z" }, + { url = "https://files.pythonhosted.org/packages/f3/e4/ea3c0caf5468537f27ad5aab92b681ed7cc0ef5f8c9196d3fd42c8c2286b/grpcio-1.78.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fd5f135b1bd58ab088930b3c613455796dfa0393626a6972663ccdda5b4ac6ce", size = 7698222, upload-time = "2026-02-06T09:55:44.629Z" }, + { url = "https://files.pythonhosted.org/packages/d7/47/7f05f81e4bb6b831e93271fb12fd52ba7b319b5402cbc101d588f435df00/grpcio-1.78.0-cp312-cp312-win32.whl", hash = "sha256:94309f498bcc07e5a7d16089ab984d42ad96af1d94b5a4eb966a266d9fcabf68", size = 4066123, upload-time = "2026-02-06T09:55:47.644Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e7/d6914822c88aa2974dbbd10903d801a28a19ce9cd8bad7e694cbbcf61528/grpcio-1.78.0-cp312-cp312-win_amd64.whl", hash = "sha256:9566fe4ababbb2610c39190791e5b829869351d14369603702e890ef3ad2d06e", size = 4797657, upload-time = "2026-02-06T09:55:49.86Z" }, + { url = "https://files.pythonhosted.org/packages/05/a9/8f75894993895f361ed8636cd9237f4ab39ef87fd30db17467235ed1c045/grpcio-1.78.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:ce3a90455492bf8bfa38e56fbbe1dbd4f872a3d8eeaf7337dc3b1c8aa28c271b", size = 5920143, upload-time = "2026-02-06T09:55:52.035Z" }, + { url = "https://files.pythonhosted.org/packages/55/06/0b78408e938ac424100100fd081189451b472236e8a3a1f6500390dc4954/grpcio-1.78.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:2bf5e2e163b356978b23652c4818ce4759d40f4712ee9ec5a83c4be6f8c23a3a", size = 11803926, upload-time = "2026-02-06T09:55:55.494Z" }, + { url = "https://files.pythonhosted.org/packages/88/93/b59fe7832ff6ae3c78b813ea43dac60e295fa03606d14d89d2e0ec29f4f3/grpcio-1.78.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8f2ac84905d12918e4e55a16da17939eb63e433dc11b677267c35568aa63fc84", size = 6478628, upload-time = "2026-02-06T09:55:58.533Z" }, + { url = "https://files.pythonhosted.org/packages/ed/df/e67e3734527f9926b7d9c0dde6cd998d1d26850c3ed8eeec81297967ac67/grpcio-1.78.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b58f37edab4a3881bc6c9bca52670610e0c9ca14e2ea3cf9debf185b870457fb", size = 7173574, upload-time = "2026-02-06T09:56:01.786Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/cc03fffb07bfba982a9ec097b164e8835546980aec25ecfa5f9c1a47e022/grpcio-1.78.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:735e38e176a88ce41840c21bb49098ab66177c64c82426e24e0082500cc68af5", size = 6692639, upload-time = "2026-02-06T09:56:04.529Z" }, + { url = "https://files.pythonhosted.org/packages/bf/9a/289c32e301b85bdb67d7ec68b752155e674ee3ba2173a1858f118e399ef3/grpcio-1.78.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2045397e63a7a0ee7957c25f7dbb36ddc110e0cfb418403d110c0a7a68a844e9", size = 7268838, upload-time = "2026-02-06T09:56:08.397Z" }, + { url = "https://files.pythonhosted.org/packages/0e/79/1be93f32add280461fa4773880196572563e9c8510861ac2da0ea0f892b6/grpcio-1.78.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9f136fbafe7ccf4ac7e8e0c28b31066e810be52d6e344ef954a3a70234e1702", size = 8251878, upload-time = "2026-02-06T09:56:10.914Z" }, + { url = "https://files.pythonhosted.org/packages/65/65/793f8e95296ab92e4164593674ae6291b204bb5f67f9d4a711489cd30ffa/grpcio-1.78.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:748b6138585379c737adc08aeffd21222abbda1a86a0dca2a39682feb9196c20", size = 7695412, upload-time = "2026-02-06T09:56:13.593Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9f/1e233fe697ecc82845942c2822ed06bb522e70d6771c28d5528e4c50f6a4/grpcio-1.78.0-cp313-cp313-win32.whl", hash = "sha256:271c73e6e5676afe4fc52907686670c7cea22ab2310b76a59b678403ed40d670", size = 4064899, upload-time = "2026-02-06T09:56:15.601Z" }, + { url = "https://files.pythonhosted.org/packages/4d/27/d86b89e36de8a951501fb06a0f38df19853210f341d0b28f83f4aa0ffa08/grpcio-1.78.0-cp313-cp313-win_amd64.whl", hash = "sha256:f2d4e43ee362adfc05994ed479334d5a451ab7bc3f3fee1b796b8ca66895acb4", size = 4797393, upload-time = "2026-02-06T09:56:17.882Z" }, + { url = "https://files.pythonhosted.org/packages/29/f2/b56e43e3c968bfe822fa6ce5bca10d5c723aa40875b48791ce1029bb78c7/grpcio-1.78.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:e87cbc002b6f440482b3519e36e1313eb5443e9e9e73d6a52d43bd2004fcfd8e", size = 5920591, upload-time = "2026-02-06T09:56:20.758Z" }, + { url = "https://files.pythonhosted.org/packages/5d/81/1f3b65bd30c334167bfa8b0d23300a44e2725ce39bba5b76a2460d85f745/grpcio-1.78.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:c41bc64626db62e72afec66b0c8a0da76491510015417c127bfc53b2fe6d7f7f", size = 11813685, upload-time = "2026-02-06T09:56:24.315Z" }, + { url = "https://files.pythonhosted.org/packages/0e/1c/bbe2f8216a5bd3036119c544d63c2e592bdf4a8ec6e4a1867592f4586b26/grpcio-1.78.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8dfffba826efcf366b1e3ccc37e67afe676f290e13a3b48d31a46739f80a8724", size = 6487803, upload-time = "2026-02-06T09:56:27.367Z" }, + { url = "https://files.pythonhosted.org/packages/16/5c/a6b2419723ea7ddce6308259a55e8e7593d88464ce8db9f4aa857aba96fa/grpcio-1.78.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:74be1268d1439eaaf552c698cdb11cd594f0c49295ae6bb72c34ee31abbe611b", size = 7173206, upload-time = "2026-02-06T09:56:29.876Z" }, + { url = "https://files.pythonhosted.org/packages/df/1e/b8801345629a415ea7e26c83d75eb5dbe91b07ffe5210cc517348a8d4218/grpcio-1.78.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be63c88b32e6c0f1429f1398ca5c09bc64b0d80950c8bb7807d7d7fb36fb84c7", size = 6693826, upload-time = "2026-02-06T09:56:32.305Z" }, + { url = "https://files.pythonhosted.org/packages/34/84/0de28eac0377742679a510784f049738a80424b17287739fc47d63c2439e/grpcio-1.78.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3c586ac70e855c721bda8f548d38c3ca66ac791dc49b66a8281a1f99db85e452", size = 7277897, upload-time = "2026-02-06T09:56:34.915Z" }, + { url = "https://files.pythonhosted.org/packages/ca/9c/ad8685cfe20559a9edb66f735afdcb2b7d3de69b13666fdfc542e1916ebd/grpcio-1.78.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:35eb275bf1751d2ffbd8f57cdbc46058e857cf3971041521b78b7db94bdaf127", size = 8252404, upload-time = "2026-02-06T09:56:37.553Z" }, + { url = "https://files.pythonhosted.org/packages/3c/05/33a7a4985586f27e1de4803887c417ec7ced145ebd069bc38a9607059e2b/grpcio-1.78.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:207db540302c884b8848036b80db352a832b99dfdf41db1eb554c2c2c7800f65", size = 7696837, upload-time = "2026-02-06T09:56:40.173Z" }, + { url = "https://files.pythonhosted.org/packages/73/77/7382241caf88729b106e49e7d18e3116216c778e6a7e833826eb96de22f7/grpcio-1.78.0-cp314-cp314-win32.whl", hash = "sha256:57bab6deef2f4f1ca76cc04565df38dc5713ae6c17de690721bdf30cb1e0545c", size = 4142439, upload-time = "2026-02-06T09:56:43.258Z" }, + { url = "https://files.pythonhosted.org/packages/48/b2/b096ccce418882fbfda4f7496f9357aaa9a5af1896a9a7f60d9f2b275a06/grpcio-1.78.0-cp314-cp314-win_amd64.whl", hash = "sha256:dce09d6116df20a96acfdbf85e4866258c3758180e8c49845d6ba8248b6d0bbb", size = 4929852, upload-time = "2026-02-06T09:56:45.885Z" }, +] + [[package]] name = "h11" version = "0.16.0" @@ -109,6 +1017,35 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] +[[package]] +name = "hf-xet" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/6e/0f11bacf08a67f7fb5ee09740f2ca54163863b07b70d579356e9222ce5d8/hf_xet-1.2.0.tar.gz", hash = "sha256:a8c27070ca547293b6890c4bf389f713f80e8c478631432962bb7f4bc0bd7d7f", size = 506020, upload-time = "2025-10-24T19:04:32.129Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/a5/85ef910a0aa034a2abcfadc360ab5ac6f6bc4e9112349bd40ca97551cff0/hf_xet-1.2.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:ceeefcd1b7aed4956ae8499e2199607765fbd1c60510752003b6cc0b8413b649", size = 2861870, upload-time = "2025-10-24T19:04:11.422Z" }, + { url = "https://files.pythonhosted.org/packages/ea/40/e2e0a7eb9a51fe8828ba2d47fe22a7e74914ea8a0db68a18c3aa7449c767/hf_xet-1.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b70218dd548e9840224df5638fdc94bd033552963cfa97f9170829381179c813", size = 2717584, upload-time = "2025-10-24T19:04:09.586Z" }, + { url = "https://files.pythonhosted.org/packages/a5/7d/daf7f8bc4594fdd59a8a596f9e3886133fdc68e675292218a5e4c1b7e834/hf_xet-1.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d40b18769bb9a8bc82a9ede575ce1a44c75eb80e7375a01d76259089529b5dc", size = 3315004, upload-time = "2025-10-24T19:04:00.314Z" }, + { url = "https://files.pythonhosted.org/packages/b1/ba/45ea2f605fbf6d81c8b21e4d970b168b18a53515923010c312c06cd83164/hf_xet-1.2.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:cd3a6027d59cfb60177c12d6424e31f4b5ff13d8e3a1247b3a584bf8977e6df5", size = 3222636, upload-time = "2025-10-24T19:03:58.111Z" }, + { url = "https://files.pythonhosted.org/packages/4a/1d/04513e3cab8f29ab8c109d309ddd21a2705afab9d52f2ba1151e0c14f086/hf_xet-1.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6de1fc44f58f6dd937956c8d304d8c2dea264c80680bcfa61ca4a15e7b76780f", size = 3408448, upload-time = "2025-10-24T19:04:20.951Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7c/60a2756d7feec7387db3a1176c632357632fbe7849fce576c5559d4520c7/hf_xet-1.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f182f264ed2acd566c514e45da9f2119110e48a87a327ca271027904c70c5832", size = 3503401, upload-time = "2025-10-24T19:04:22.549Z" }, + { url = "https://files.pythonhosted.org/packages/4e/64/48fffbd67fb418ab07451e4ce641a70de1c40c10a13e25325e24858ebe5a/hf_xet-1.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:293a7a3787e5c95d7be1857358a9130694a9c6021de3f27fa233f37267174382", size = 2900866, upload-time = "2025-10-24T19:04:33.461Z" }, + { url = "https://files.pythonhosted.org/packages/e2/51/f7e2caae42f80af886db414d4e9885fac959330509089f97cccb339c6b87/hf_xet-1.2.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:10bfab528b968c70e062607f663e21e34e2bba349e8038db546646875495179e", size = 2861861, upload-time = "2025-10-24T19:04:19.01Z" }, + { url = "https://files.pythonhosted.org/packages/6e/1d/a641a88b69994f9371bd347f1dd35e5d1e2e2460a2e350c8d5165fc62005/hf_xet-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2a212e842647b02eb6a911187dc878e79c4aa0aa397e88dd3b26761676e8c1f8", size = 2717699, upload-time = "2025-10-24T19:04:17.306Z" }, + { url = "https://files.pythonhosted.org/packages/df/e0/e5e9bba7d15f0318955f7ec3f4af13f92e773fbb368c0b8008a5acbcb12f/hf_xet-1.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30e06daccb3a7d4c065f34fc26c14c74f4653069bb2b194e7f18f17cbe9939c0", size = 3314885, upload-time = "2025-10-24T19:04:07.642Z" }, + { url = "https://files.pythonhosted.org/packages/21/90/b7fe5ff6f2b7b8cbdf1bd56145f863c90a5807d9758a549bf3d916aa4dec/hf_xet-1.2.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:29c8fc913a529ec0a91867ce3d119ac1aac966e098cf49501800c870328cc090", size = 3221550, upload-time = "2025-10-24T19:04:05.55Z" }, + { url = "https://files.pythonhosted.org/packages/6f/cb/73f276f0a7ce46cc6a6ec7d6c7d61cbfe5f2e107123d9bbd0193c355f106/hf_xet-1.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e159cbfcfbb29f920db2c09ed8b660eb894640d284f102ada929b6e3dc410a", size = 3408010, upload-time = "2025-10-24T19:04:28.598Z" }, + { url = "https://files.pythonhosted.org/packages/b8/1e/d642a12caa78171f4be64f7cd9c40e3ca5279d055d0873188a58c0f5fbb9/hf_xet-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9c91d5ae931510107f148874e9e2de8a16052b6f1b3ca3c1b12f15ccb491390f", size = 3503264, upload-time = "2025-10-24T19:04:30.397Z" }, + { url = "https://files.pythonhosted.org/packages/17/b5/33764714923fa1ff922770f7ed18c2daae034d21ae6e10dbf4347c854154/hf_xet-1.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:210d577732b519ac6ede149d2f2f34049d44e8622bf14eb3d63bbcd2d4b332dc", size = 2901071, upload-time = "2025-10-24T19:04:37.463Z" }, + { url = "https://files.pythonhosted.org/packages/96/2d/22338486473df5923a9ab7107d375dbef9173c338ebef5098ef593d2b560/hf_xet-1.2.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:46740d4ac024a7ca9b22bebf77460ff43332868b661186a8e46c227fdae01848", size = 2866099, upload-time = "2025-10-24T19:04:15.366Z" }, + { url = "https://files.pythonhosted.org/packages/7f/8c/c5becfa53234299bc2210ba314eaaae36c2875e0045809b82e40a9544f0c/hf_xet-1.2.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:27df617a076420d8845bea087f59303da8be17ed7ec0cd7ee3b9b9f579dff0e4", size = 2722178, upload-time = "2025-10-24T19:04:13.695Z" }, + { url = "https://files.pythonhosted.org/packages/9a/92/cf3ab0b652b082e66876d08da57fcc6fa2f0e6c70dfbbafbd470bb73eb47/hf_xet-1.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3651fd5bfe0281951b988c0facbe726aa5e347b103a675f49a3fa8144c7968fd", size = 3320214, upload-time = "2025-10-24T19:04:03.596Z" }, + { url = "https://files.pythonhosted.org/packages/46/92/3f7ec4a1b6a65bf45b059b6d4a5d38988f63e193056de2f420137e3c3244/hf_xet-1.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d06fa97c8562fb3ee7a378dd9b51e343bc5bc8190254202c9771029152f5e08c", size = 3229054, upload-time = "2025-10-24T19:04:01.949Z" }, + { url = "https://files.pythonhosted.org/packages/0b/dd/7ac658d54b9fb7999a0ccb07ad863b413cbaf5cf172f48ebcd9497ec7263/hf_xet-1.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4c1428c9ae73ec0939410ec73023c4f842927f39db09b063b9482dac5a3bb737", size = 3413812, upload-time = "2025-10-24T19:04:24.585Z" }, + { url = "https://files.pythonhosted.org/packages/92/68/89ac4e5b12a9ff6286a12174c8538a5930e2ed662091dd2572bbe0a18c8a/hf_xet-1.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a55558084c16b09b5ed32ab9ed38421e2d87cf3f1f89815764d1177081b99865", size = 3508920, upload-time = "2025-10-24T19:04:26.927Z" }, + { url = "https://files.pythonhosted.org/packages/cb/44/870d44b30e1dcfb6a65932e3e1506c103a8a5aea9103c337e7a53180322c/hf_xet-1.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:e6584a52253f72c9f52f9e549d5895ca7a471608495c4ecaa6cc73dba2b24d69", size = 2905735, upload-time = "2025-10-24T19:04:35.928Z" }, +] + [[package]] name = "httpcore" version = "1.0.9" @@ -122,6 +1059,49 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, ] +[[package]] +name = "httptools" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/46/120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993/httptools-0.7.1.tar.gz", hash = "sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9", size = 258961, upload-time = "2025-10-10T03:55:08.559Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/e5/c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60/httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78", size = 204531, upload-time = "2025-10-10T03:54:20.887Z" }, + { url = "https://files.pythonhosted.org/packages/7e/4f/35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751/httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4", size = 109408, upload-time = "2025-10-10T03:54:22.455Z" }, + { url = "https://files.pythonhosted.org/packages/f5/71/b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8/httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05", size = 440889, upload-time = "2025-10-10T03:54:23.753Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d9/2e34811397b76718750fea44658cb0205b84566e895192115252e008b152/httptools-0.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed", size = 440460, upload-time = "2025-10-10T03:54:25.313Z" }, + { url = "https://files.pythonhosted.org/packages/01/3f/a04626ebeacc489866bb4d82362c0657b2262bef381d68310134be7f40bb/httptools-0.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a", size = 425267, upload-time = "2025-10-10T03:54:26.81Z" }, + { url = "https://files.pythonhosted.org/packages/a5/99/adcd4f66614db627b587627c8ad6f4c55f18881549bab10ecf180562e7b9/httptools-0.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b", size = 424429, upload-time = "2025-10-10T03:54:28.174Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/ec8fc904a8fd30ba022dfa85f3bbc64c3c7cd75b669e24242c0658e22f3c/httptools-0.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568", size = 86173, upload-time = "2025-10-10T03:54:29.5Z" }, + { url = "https://files.pythonhosted.org/packages/9c/08/17e07e8d89ab8f343c134616d72eebfe03798835058e2ab579dcc8353c06/httptools-0.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657", size = 206521, upload-time = "2025-10-10T03:54:31.002Z" }, + { url = "https://files.pythonhosted.org/packages/aa/06/c9c1b41ff52f16aee526fd10fbda99fa4787938aa776858ddc4a1ea825ec/httptools-0.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70", size = 110375, upload-time = "2025-10-10T03:54:31.941Z" }, + { url = "https://files.pythonhosted.org/packages/cc/cc/10935db22fda0ee34c76f047590ca0a8bd9de531406a3ccb10a90e12ea21/httptools-0.7.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df", size = 456621, upload-time = "2025-10-10T03:54:33.176Z" }, + { url = "https://files.pythonhosted.org/packages/0e/84/875382b10d271b0c11aa5d414b44f92f8dd53e9b658aec338a79164fa548/httptools-0.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e", size = 454954, upload-time = "2025-10-10T03:54:34.226Z" }, + { url = "https://files.pythonhosted.org/packages/30/e1/44f89b280f7e46c0b1b2ccee5737d46b3bb13136383958f20b580a821ca0/httptools-0.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274", size = 440175, upload-time = "2025-10-10T03:54:35.942Z" }, + { url = "https://files.pythonhosted.org/packages/6f/7e/b9287763159e700e335028bc1824359dc736fa9b829dacedace91a39b37e/httptools-0.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec", size = 440310, upload-time = "2025-10-10T03:54:37.1Z" }, + { url = "https://files.pythonhosted.org/packages/b3/07/5b614f592868e07f5c94b1f301b5e14a21df4e8076215a3bccb830a687d8/httptools-0.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb", size = 86875, upload-time = "2025-10-10T03:54:38.421Z" }, + { url = "https://files.pythonhosted.org/packages/53/7f/403e5d787dc4942316e515e949b0c8a013d84078a915910e9f391ba9b3ed/httptools-0.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5", size = 206280, upload-time = "2025-10-10T03:54:39.274Z" }, + { url = "https://files.pythonhosted.org/packages/2a/0d/7f3fd28e2ce311ccc998c388dd1c53b18120fda3b70ebb022b135dc9839b/httptools-0.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5", size = 110004, upload-time = "2025-10-10T03:54:40.403Z" }, + { url = "https://files.pythonhosted.org/packages/84/a6/b3965e1e146ef5762870bbe76117876ceba51a201e18cc31f5703e454596/httptools-0.7.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03", size = 517655, upload-time = "2025-10-10T03:54:41.347Z" }, + { url = "https://files.pythonhosted.org/packages/11/7d/71fee6f1844e6fa378f2eddde6c3e41ce3a1fb4b2d81118dd544e3441ec0/httptools-0.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2", size = 511440, upload-time = "2025-10-10T03:54:42.452Z" }, + { url = "https://files.pythonhosted.org/packages/22/a5/079d216712a4f3ffa24af4a0381b108aa9c45b7a5cc6eb141f81726b1823/httptools-0.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362", size = 495186, upload-time = "2025-10-10T03:54:43.937Z" }, + { url = "https://files.pythonhosted.org/packages/e9/9e/025ad7b65278745dee3bd0ebf9314934c4592560878308a6121f7f812084/httptools-0.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c", size = 499192, upload-time = "2025-10-10T03:54:45.003Z" }, + { url = "https://files.pythonhosted.org/packages/6d/de/40a8f202b987d43afc4d54689600ff03ce65680ede2f31df348d7f368b8f/httptools-0.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321", size = 86694, upload-time = "2025-10-10T03:54:45.923Z" }, + { url = "https://files.pythonhosted.org/packages/09/8f/c77b1fcbfd262d422f12da02feb0d218fa228d52485b77b953832105bb90/httptools-0.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3", size = 202889, upload-time = "2025-10-10T03:54:47.089Z" }, + { url = "https://files.pythonhosted.org/packages/0a/1a/22887f53602feaa066354867bc49a68fc295c2293433177ee90870a7d517/httptools-0.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca", size = 108180, upload-time = "2025-10-10T03:54:48.052Z" }, + { url = "https://files.pythonhosted.org/packages/32/6a/6aaa91937f0010d288d3d124ca2946d48d60c3a5ee7ca62afe870e3ea011/httptools-0.7.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c", size = 478596, upload-time = "2025-10-10T03:54:48.919Z" }, + { url = "https://files.pythonhosted.org/packages/6d/70/023d7ce117993107be88d2cbca566a7c1323ccbaf0af7eabf2064fe356f6/httptools-0.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66", size = 473268, upload-time = "2025-10-10T03:54:49.993Z" }, + { url = "https://files.pythonhosted.org/packages/32/4d/9dd616c38da088e3f436e9a616e1d0cc66544b8cdac405cc4e81c8679fc7/httptools-0.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346", size = 455517, upload-time = "2025-10-10T03:54:51.066Z" }, + { url = "https://files.pythonhosted.org/packages/1d/3a/a6c595c310b7df958e739aae88724e24f9246a514d909547778d776799be/httptools-0.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650", size = 458337, upload-time = "2025-10-10T03:54:52.196Z" }, + { url = "https://files.pythonhosted.org/packages/fd/82/88e8d6d2c51edc1cc391b6e044c6c435b6aebe97b1abc33db1b0b24cd582/httptools-0.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6", size = 85743, upload-time = "2025-10-10T03:54:53.448Z" }, + { url = "https://files.pythonhosted.org/packages/34/50/9d095fcbb6de2d523e027a2f304d4551855c2f46e0b82befd718b8b20056/httptools-0.7.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270", size = 203619, upload-time = "2025-10-10T03:54:54.321Z" }, + { url = "https://files.pythonhosted.org/packages/07/f0/89720dc5139ae54b03f861b5e2c55a37dba9a5da7d51e1e824a1f343627f/httptools-0.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3", size = 108714, upload-time = "2025-10-10T03:54:55.163Z" }, + { url = "https://files.pythonhosted.org/packages/b3/cb/eea88506f191fb552c11787c23f9a405f4c7b0c5799bf73f2249cd4f5228/httptools-0.7.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1", size = 472909, upload-time = "2025-10-10T03:54:56.056Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4a/a548bdfae6369c0d078bab5769f7b66f17f1bfaa6fa28f81d6be6959066b/httptools-0.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b", size = 470831, upload-time = "2025-10-10T03:54:57.219Z" }, + { url = "https://files.pythonhosted.org/packages/4d/31/14df99e1c43bd132eec921c2e7e11cda7852f65619bc0fc5bdc2d0cb126c/httptools-0.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60", size = 452631, upload-time = "2025-10-10T03:54:58.219Z" }, + { url = "https://files.pythonhosted.org/packages/22/d2/b7e131f7be8d854d48cb6d048113c30f9a46dca0c9a8b08fcb3fcd588cdc/httptools-0.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca", size = 452910, upload-time = "2025-10-10T03:54:59.366Z" }, + { url = "https://files.pythonhosted.org/packages/53/cf/878f3b91e4e6e011eff6d1fa9ca39f7eb17d19c9d7971b04873734112f30/httptools-0.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96", size = 88205, upload-time = "2025-10-10T03:55:00.389Z" }, +] + [[package]] name = "httpx" version = "0.28.1" @@ -137,6 +1117,36 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, ] +[[package]] +name = "httpx-sse" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload-time = "2025-10-10T21:48:22.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload-time = "2025-10-10T21:48:21.158Z" }, +] + +[[package]] +name = "huggingface-hub" +version = "1.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, + { name = "httpx" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "shellingham" }, + { name = "tqdm" }, + { name = "typer-slim" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c4/fc/eb9bc06130e8bbda6a616e1b80a7aa127681c448d6b49806f61db2670b61/huggingface_hub-1.4.1.tar.gz", hash = "sha256:b41131ec35e631e7383ab26d6146b8d8972abc8b6309b963b306fbcca87f5ed5", size = 642156, upload-time = "2026-02-06T09:20:03.013Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/ae/2f6d96b4e6c5478d87d606a1934b5d436c4a2bce6bb7c6fdece891c128e3/huggingface_hub-1.4.1-py3-none-any.whl", hash = "sha256:9931d075fb7a79af5abc487106414ec5fba2c0ae86104c0c62fd6cae38873d18", size = 553326, upload-time = "2026-02-06T09:20:00.728Z" }, +] + [[package]] name = "idna" version = "3.11" @@ -159,100 +1169,1152 @@ wheels = [ ] [[package]] -name = "jiter" -version = "0.12.0" +name = "importlib-resources" +version = "6.5.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/45/9d/e0660989c1370e25848bb4c52d061c71837239738ad937e83edca174c273/jiter-0.12.0.tar.gz", hash = "sha256:64dfcd7d5c168b38d3f9f8bba7fc639edb3418abcc74f22fdbe6b8938293f30b", size = 168294, upload-time = "2025-11-09T20:49:23.302Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/8c/f834fbf984f691b4f7ff60f50b514cc3de5cc08abfc3295564dd89c5e2e7/importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c", size = 44693, upload-time = "2025-01-03T18:51:56.698Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/91/13cb9505f7be74a933f37da3af22e029f6ba64f5669416cb8b2774bc9682/jiter-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:e7acbaba9703d5de82a2c98ae6a0f59ab9770ab5af5fa35e43a303aee962cf65", size = 316652, upload-time = "2025-11-09T20:46:41.021Z" }, - { url = "https://files.pythonhosted.org/packages/4e/76/4e9185e5d9bb4e482cf6dec6410d5f78dfeb374cfcecbbe9888d07c52daa/jiter-0.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:364f1a7294c91281260364222f535bc427f56d4de1d8ffd718162d21fbbd602e", size = 319829, upload-time = "2025-11-09T20:46:43.281Z" }, - { url = "https://files.pythonhosted.org/packages/86/af/727de50995d3a153138139f259baae2379d8cb0522c0c00419957bc478a6/jiter-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ee4d25805d4fb23f0a5167a962ef8e002dbfb29c0989378488e32cf2744b62", size = 350568, upload-time = "2025-11-09T20:46:45.075Z" }, - { url = "https://files.pythonhosted.org/packages/6a/c1/d6e9f4b7a3d5ac63bcbdfddeb50b2dcfbdc512c86cffc008584fdc350233/jiter-0.12.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:796f466b7942107eb889c08433b6e31b9a7ed31daceaecf8af1be26fb26c0ca8", size = 369052, upload-time = "2025-11-09T20:46:46.818Z" }, - { url = "https://files.pythonhosted.org/packages/eb/be/00824cd530f30ed73fa8a4f9f3890a705519e31ccb9e929f1e22062e7c76/jiter-0.12.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:35506cb71f47dba416694e67af996bbdefb8e3608f1f78799c2e1f9058b01ceb", size = 481585, upload-time = "2025-11-09T20:46:48.319Z" }, - { url = "https://files.pythonhosted.org/packages/74/b6/2ad7990dff9504d4b5052eef64aa9574bd03d722dc7edced97aad0d47be7/jiter-0.12.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:726c764a90c9218ec9e4f99a33d6bf5ec169163f2ca0fc21b654e88c2abc0abc", size = 380541, upload-time = "2025-11-09T20:46:49.643Z" }, - { url = "https://files.pythonhosted.org/packages/b5/c7/f3c26ecbc1adbf1db0d6bba99192143d8fe8504729d9594542ecc4445784/jiter-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa47810c5565274810b726b0dc86d18dce5fd17b190ebdc3890851d7b2a0e74", size = 364423, upload-time = "2025-11-09T20:46:51.731Z" }, - { url = "https://files.pythonhosted.org/packages/18/51/eac547bf3a2d7f7e556927278e14c56a0604b8cddae75815d5739f65f81d/jiter-0.12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8ec0259d3f26c62aed4d73b198c53e316ae11f0f69c8fbe6682c6dcfa0fcce2", size = 389958, upload-time = "2025-11-09T20:46:53.432Z" }, - { url = "https://files.pythonhosted.org/packages/2c/1f/9ca592e67175f2db156cff035e0d817d6004e293ee0c1d73692d38fcb596/jiter-0.12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:79307d74ea83465b0152fa23e5e297149506435535282f979f18b9033c0bb025", size = 522084, upload-time = "2025-11-09T20:46:54.848Z" }, - { url = "https://files.pythonhosted.org/packages/83/ff/597d9cdc3028f28224f53e1a9d063628e28b7a5601433e3196edda578cdd/jiter-0.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cf6e6dd18927121fec86739f1a8906944703941d000f0639f3eb6281cc601dca", size = 513054, upload-time = "2025-11-09T20:46:56.487Z" }, - { url = "https://files.pythonhosted.org/packages/24/6d/1970bce1351bd02e3afcc5f49e4f7ef3dabd7fb688f42be7e8091a5b809a/jiter-0.12.0-cp310-cp310-win32.whl", hash = "sha256:b6ae2aec8217327d872cbfb2c1694489057b9433afce447955763e6ab015b4c4", size = 206368, upload-time = "2025-11-09T20:46:58.638Z" }, - { url = "https://files.pythonhosted.org/packages/e3/6b/eb1eb505b2d86709b59ec06681a2b14a94d0941db091f044b9f0e16badc0/jiter-0.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:c7f49ce90a71e44f7e1aa9e7ec415b9686bbc6a5961e57eab511015e6759bc11", size = 204847, upload-time = "2025-11-09T20:47:00.295Z" }, - { url = "https://files.pythonhosted.org/packages/32/f9/eaca4633486b527ebe7e681c431f529b63fe2709e7c5242fc0f43f77ce63/jiter-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8f8a7e317190b2c2d60eb2e8aa835270b008139562d70fe732e1c0020ec53c9", size = 316435, upload-time = "2025-11-09T20:47:02.087Z" }, - { url = "https://files.pythonhosted.org/packages/10/c1/40c9f7c22f5e6ff715f28113ebaba27ab85f9af2660ad6e1dd6425d14c19/jiter-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2218228a077e784c6c8f1a8e5d6b8cb1dea62ce25811c356364848554b2056cd", size = 320548, upload-time = "2025-11-09T20:47:03.409Z" }, - { url = "https://files.pythonhosted.org/packages/6b/1b/efbb68fe87e7711b00d2cfd1f26bb4bfc25a10539aefeaa7727329ffb9cb/jiter-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9354ccaa2982bf2188fd5f57f79f800ef622ec67beb8329903abf6b10da7d423", size = 351915, upload-time = "2025-11-09T20:47:05.171Z" }, - { url = "https://files.pythonhosted.org/packages/15/2d/c06e659888c128ad1e838123d0638f0efad90cc30860cb5f74dd3f2fc0b3/jiter-0.12.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f2607185ea89b4af9a604d4c7ec40e45d3ad03ee66998b031134bc510232bb7", size = 368966, upload-time = "2025-11-09T20:47:06.508Z" }, - { url = "https://files.pythonhosted.org/packages/6b/20/058db4ae5fb07cf6a4ab2e9b9294416f606d8e467fb74c2184b2a1eeacba/jiter-0.12.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a585a5e42d25f2e71db5f10b171f5e5ea641d3aa44f7df745aa965606111cc2", size = 482047, upload-time = "2025-11-09T20:47:08.382Z" }, - { url = "https://files.pythonhosted.org/packages/49/bb/dc2b1c122275e1de2eb12905015d61e8316b2f888bdaac34221c301495d6/jiter-0.12.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd9e21d34edff5a663c631f850edcb786719c960ce887a5661e9c828a53a95d9", size = 380835, upload-time = "2025-11-09T20:47:09.81Z" }, - { url = "https://files.pythonhosted.org/packages/23/7d/38f9cd337575349de16da575ee57ddb2d5a64d425c9367f5ef9e4612e32e/jiter-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a612534770470686cd5431478dc5a1b660eceb410abade6b1b74e320ca98de6", size = 364587, upload-time = "2025-11-09T20:47:11.529Z" }, - { url = "https://files.pythonhosted.org/packages/f0/a3/b13e8e61e70f0bb06085099c4e2462647f53cc2ca97614f7fedcaa2bb9f3/jiter-0.12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3985aea37d40a908f887b34d05111e0aae822943796ebf8338877fee2ab67725", size = 390492, upload-time = "2025-11-09T20:47:12.993Z" }, - { url = "https://files.pythonhosted.org/packages/07/71/e0d11422ed027e21422f7bc1883c61deba2d9752b720538430c1deadfbca/jiter-0.12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b1207af186495f48f72529f8d86671903c8c10127cac6381b11dddc4aaa52df6", size = 522046, upload-time = "2025-11-09T20:47:14.6Z" }, - { url = "https://files.pythonhosted.org/packages/9f/59/b968a9aa7102a8375dbbdfbd2aeebe563c7e5dddf0f47c9ef1588a97e224/jiter-0.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef2fb241de583934c9915a33120ecc06d94aa3381a134570f59eed784e87001e", size = 513392, upload-time = "2025-11-09T20:47:16.011Z" }, - { url = "https://files.pythonhosted.org/packages/ca/e4/7df62002499080dbd61b505c5cb351aa09e9959d176cac2aa8da6f93b13b/jiter-0.12.0-cp311-cp311-win32.whl", hash = "sha256:453b6035672fecce8007465896a25b28a6b59cfe8fbc974b2563a92f5a92a67c", size = 206096, upload-time = "2025-11-09T20:47:17.344Z" }, - { url = "https://files.pythonhosted.org/packages/bb/60/1032b30ae0572196b0de0e87dce3b6c26a1eff71aad5fe43dee3082d32e0/jiter-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:ca264b9603973c2ad9435c71a8ec8b49f8f715ab5ba421c85a51cde9887e421f", size = 204899, upload-time = "2025-11-09T20:47:19.365Z" }, - { url = "https://files.pythonhosted.org/packages/49/d5/c145e526fccdb834063fb45c071df78b0cc426bbaf6de38b0781f45d956f/jiter-0.12.0-cp311-cp311-win_arm64.whl", hash = "sha256:cb00ef392e7d684f2754598c02c409f376ddcef857aae796d559e6cacc2d78a5", size = 188070, upload-time = "2025-11-09T20:47:20.75Z" }, - { url = "https://files.pythonhosted.org/packages/92/c9/5b9f7b4983f1b542c64e84165075335e8a236fa9e2ea03a0c79780062be8/jiter-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:305e061fa82f4680607a775b2e8e0bcb071cd2205ac38e6ef48c8dd5ebe1cf37", size = 314449, upload-time = "2025-11-09T20:47:22.999Z" }, - { url = "https://files.pythonhosted.org/packages/98/6e/e8efa0e78de00db0aee82c0cf9e8b3f2027efd7f8a71f859d8f4be8e98ef/jiter-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5c1860627048e302a528333c9307c818c547f214d8659b0705d2195e1a94b274", size = 319855, upload-time = "2025-11-09T20:47:24.779Z" }, - { url = "https://files.pythonhosted.org/packages/20/26/894cd88e60b5d58af53bec5c6759d1292bd0b37a8b5f60f07abf7a63ae5f/jiter-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df37577a4f8408f7e0ec3205d2a8f87672af8f17008358063a4d6425b6081ce3", size = 350171, upload-time = "2025-11-09T20:47:26.469Z" }, - { url = "https://files.pythonhosted.org/packages/f5/27/a7b818b9979ac31b3763d25f3653ec3a954044d5e9f5d87f2f247d679fd1/jiter-0.12.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:75fdd787356c1c13a4f40b43c2156276ef7a71eb487d98472476476d803fb2cf", size = 365590, upload-time = "2025-11-09T20:47:27.918Z" }, - { url = "https://files.pythonhosted.org/packages/ba/7e/e46195801a97673a83746170b17984aa8ac4a455746354516d02ca5541b4/jiter-0.12.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1eb5db8d9c65b112aacf14fcd0faae9913d07a8afea5ed06ccdd12b724e966a1", size = 479462, upload-time = "2025-11-09T20:47:29.654Z" }, - { url = "https://files.pythonhosted.org/packages/ca/75/f833bfb009ab4bd11b1c9406d333e3b4357709ed0570bb48c7c06d78c7dd/jiter-0.12.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73c568cc27c473f82480abc15d1301adf333a7ea4f2e813d6a2c7d8b6ba8d0df", size = 378983, upload-time = "2025-11-09T20:47:31.026Z" }, - { url = "https://files.pythonhosted.org/packages/71/b3/7a69d77943cc837d30165643db753471aff5df39692d598da880a6e51c24/jiter-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4321e8a3d868919bcb1abb1db550d41f2b5b326f72df29e53b2df8b006eb9403", size = 361328, upload-time = "2025-11-09T20:47:33.286Z" }, - { url = "https://files.pythonhosted.org/packages/b0/ac/a78f90caf48d65ba70d8c6efc6f23150bc39dc3389d65bbec2a95c7bc628/jiter-0.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a51bad79f8cc9cac2b4b705039f814049142e0050f30d91695a2d9a6611f126", size = 386740, upload-time = "2025-11-09T20:47:34.703Z" }, - { url = "https://files.pythonhosted.org/packages/39/b6/5d31c2cc8e1b6a6bcf3c5721e4ca0a3633d1ab4754b09bc7084f6c4f5327/jiter-0.12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2a67b678f6a5f1dd6c36d642d7db83e456bc8b104788262aaefc11a22339f5a9", size = 520875, upload-time = "2025-11-09T20:47:36.058Z" }, - { url = "https://files.pythonhosted.org/packages/30/b5/4df540fae4e9f68c54b8dab004bd8c943a752f0b00efd6e7d64aa3850339/jiter-0.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efe1a211fe1fd14762adea941e3cfd6c611a136e28da6c39272dbb7a1bbe6a86", size = 511457, upload-time = "2025-11-09T20:47:37.932Z" }, - { url = "https://files.pythonhosted.org/packages/07/65/86b74010e450a1a77b2c1aabb91d4a91dd3cd5afce99f34d75fd1ac64b19/jiter-0.12.0-cp312-cp312-win32.whl", hash = "sha256:d779d97c834b4278276ec703dc3fc1735fca50af63eb7262f05bdb4e62203d44", size = 204546, upload-time = "2025-11-09T20:47:40.47Z" }, - { url = "https://files.pythonhosted.org/packages/1c/c7/6659f537f9562d963488e3e55573498a442503ced01f7e169e96a6110383/jiter-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e8269062060212b373316fe69236096aaf4c49022d267c6736eebd66bbbc60bb", size = 205196, upload-time = "2025-11-09T20:47:41.794Z" }, - { url = "https://files.pythonhosted.org/packages/21/f4/935304f5169edadfec7f9c01eacbce4c90bb9a82035ac1de1f3bd2d40be6/jiter-0.12.0-cp312-cp312-win_arm64.whl", hash = "sha256:06cb970936c65de926d648af0ed3d21857f026b1cf5525cb2947aa5e01e05789", size = 186100, upload-time = "2025-11-09T20:47:43.007Z" }, - { url = "https://files.pythonhosted.org/packages/3d/a6/97209693b177716e22576ee1161674d1d58029eb178e01866a0422b69224/jiter-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6cc49d5130a14b732e0612bc76ae8db3b49898732223ef8b7599aa8d9810683e", size = 313658, upload-time = "2025-11-09T20:47:44.424Z" }, - { url = "https://files.pythonhosted.org/packages/06/4d/125c5c1537c7d8ee73ad3d530a442d6c619714b95027143f1b61c0b4dfe0/jiter-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:37f27a32ce36364d2fa4f7fdc507279db604d27d239ea2e044c8f148410defe1", size = 318605, upload-time = "2025-11-09T20:47:45.973Z" }, - { url = "https://files.pythonhosted.org/packages/99/bf/a840b89847885064c41a5f52de6e312e91fa84a520848ee56c97e4fa0205/jiter-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbc0944aa3d4b4773e348cda635252824a78f4ba44328e042ef1ff3f6080d1cf", size = 349803, upload-time = "2025-11-09T20:47:47.535Z" }, - { url = "https://files.pythonhosted.org/packages/8a/88/e63441c28e0db50e305ae23e19c1d8fae012d78ed55365da392c1f34b09c/jiter-0.12.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da25c62d4ee1ffbacb97fac6dfe4dcd6759ebdc9015991e92a6eae5816287f44", size = 365120, upload-time = "2025-11-09T20:47:49.284Z" }, - { url = "https://files.pythonhosted.org/packages/0a/7c/49b02714af4343970eb8aca63396bc1c82fa01197dbb1e9b0d274b550d4e/jiter-0.12.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:048485c654b838140b007390b8182ba9774621103bd4d77c9c3f6f117474ba45", size = 479918, upload-time = "2025-11-09T20:47:50.807Z" }, - { url = "https://files.pythonhosted.org/packages/69/ba/0a809817fdd5a1db80490b9150645f3aae16afad166960bcd562be194f3b/jiter-0.12.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:635e737fbb7315bef0037c19b88b799143d2d7d3507e61a76751025226b3ac87", size = 379008, upload-time = "2025-11-09T20:47:52.211Z" }, - { url = "https://files.pythonhosted.org/packages/5f/c3/c9fc0232e736c8877d9e6d83d6eeb0ba4e90c6c073835cc2e8f73fdeef51/jiter-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e017c417b1ebda911bd13b1e40612704b1f5420e30695112efdbed8a4b389ed", size = 361785, upload-time = "2025-11-09T20:47:53.512Z" }, - { url = "https://files.pythonhosted.org/packages/96/61/61f69b7e442e97ca6cd53086ddc1cf59fb830549bc72c0a293713a60c525/jiter-0.12.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:89b0bfb8b2bf2351fba36bb211ef8bfceba73ef58e7f0c68fb67b5a2795ca2f9", size = 386108, upload-time = "2025-11-09T20:47:54.893Z" }, - { url = "https://files.pythonhosted.org/packages/e9/2e/76bb3332f28550c8f1eba3bf6e5efe211efda0ddbbaf24976bc7078d42a5/jiter-0.12.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:f5aa5427a629a824a543672778c9ce0c5e556550d1569bb6ea28a85015287626", size = 519937, upload-time = "2025-11-09T20:47:56.253Z" }, - { url = "https://files.pythonhosted.org/packages/84/d6/fa96efa87dc8bff2094fb947f51f66368fa56d8d4fc9e77b25d7fbb23375/jiter-0.12.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed53b3d6acbcb0fd0b90f20c7cb3b24c357fe82a3518934d4edfa8c6898e498c", size = 510853, upload-time = "2025-11-09T20:47:58.32Z" }, - { url = "https://files.pythonhosted.org/packages/8a/28/93f67fdb4d5904a708119a6ab58a8f1ec226ff10a94a282e0215402a8462/jiter-0.12.0-cp313-cp313-win32.whl", hash = "sha256:4747de73d6b8c78f2e253a2787930f4fffc68da7fa319739f57437f95963c4de", size = 204699, upload-time = "2025-11-09T20:47:59.686Z" }, - { url = "https://files.pythonhosted.org/packages/c4/1f/30b0eb087045a0abe2a5c9c0c0c8da110875a1d3be83afd4a9a4e548be3c/jiter-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:e25012eb0c456fcc13354255d0338cd5397cce26c77b2832b3c4e2e255ea5d9a", size = 204258, upload-time = "2025-11-09T20:48:01.01Z" }, - { url = "https://files.pythonhosted.org/packages/2c/f4/2b4daf99b96bce6fc47971890b14b2a36aef88d7beb9f057fafa032c6141/jiter-0.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:c97b92c54fe6110138c872add030a1f99aea2401ddcdaa21edf74705a646dd60", size = 185503, upload-time = "2025-11-09T20:48:02.35Z" }, - { url = "https://files.pythonhosted.org/packages/39/ca/67bb15a7061d6fe20b9b2a2fd783e296a1e0f93468252c093481a2f00efa/jiter-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:53839b35a38f56b8be26a7851a48b89bc47e5d88e900929df10ed93b95fea3d6", size = 317965, upload-time = "2025-11-09T20:48:03.783Z" }, - { url = "https://files.pythonhosted.org/packages/18/af/1788031cd22e29c3b14bc6ca80b16a39a0b10e611367ffd480c06a259831/jiter-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94f669548e55c91ab47fef8bddd9c954dab1938644e715ea49d7e117015110a4", size = 345831, upload-time = "2025-11-09T20:48:05.55Z" }, - { url = "https://files.pythonhosted.org/packages/05/17/710bf8472d1dff0d3caf4ced6031060091c1320f84ee7d5dcbed1f352417/jiter-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:351d54f2b09a41600ffea43d081522d792e81dcfb915f6d2d242744c1cc48beb", size = 361272, upload-time = "2025-11-09T20:48:06.951Z" }, - { url = "https://files.pythonhosted.org/packages/fb/f1/1dcc4618b59761fef92d10bcbb0b038b5160be653b003651566a185f1a5c/jiter-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2a5e90604620f94bf62264e7c2c038704d38217b7465b863896c6d7c902b06c7", size = 204604, upload-time = "2025-11-09T20:48:08.328Z" }, - { url = "https://files.pythonhosted.org/packages/d9/32/63cb1d9f1c5c6632a783c0052cde9ef7ba82688f7065e2f0d5f10a7e3edb/jiter-0.12.0-cp313-cp313t-win_arm64.whl", hash = "sha256:88ef757017e78d2860f96250f9393b7b577b06a956ad102c29c8237554380db3", size = 185628, upload-time = "2025-11-09T20:48:09.572Z" }, - { url = "https://files.pythonhosted.org/packages/a8/99/45c9f0dbe4a1416b2b9a8a6d1236459540f43d7fb8883cff769a8db0612d/jiter-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:c46d927acd09c67a9fb1416df45c5a04c27e83aae969267e98fba35b74e99525", size = 312478, upload-time = "2025-11-09T20:48:10.898Z" }, - { url = "https://files.pythonhosted.org/packages/4c/a7/54ae75613ba9e0f55fcb0bc5d1f807823b5167cc944e9333ff322e9f07dd/jiter-0.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:774ff60b27a84a85b27b88cd5583899c59940bcc126caca97eb2a9df6aa00c49", size = 318706, upload-time = "2025-11-09T20:48:12.266Z" }, - { url = "https://files.pythonhosted.org/packages/59/31/2aa241ad2c10774baf6c37f8b8e1f39c07db358f1329f4eb40eba179c2a2/jiter-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5433fab222fb072237df3f637d01b81f040a07dcac1cb4a5c75c7aa9ed0bef1", size = 351894, upload-time = "2025-11-09T20:48:13.673Z" }, - { url = "https://files.pythonhosted.org/packages/54/4f/0f2759522719133a9042781b18cc94e335b6d290f5e2d3e6899d6af933e3/jiter-0.12.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8c593c6e71c07866ec6bfb790e202a833eeec885022296aff6b9e0b92d6a70e", size = 365714, upload-time = "2025-11-09T20:48:15.083Z" }, - { url = "https://files.pythonhosted.org/packages/dc/6f/806b895f476582c62a2f52c453151edd8a0fde5411b0497baaa41018e878/jiter-0.12.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90d32894d4c6877a87ae00c6b915b609406819dce8bc0d4e962e4de2784e567e", size = 478989, upload-time = "2025-11-09T20:48:16.706Z" }, - { url = "https://files.pythonhosted.org/packages/86/6c/012d894dc6e1033acd8db2b8346add33e413ec1c7c002598915278a37f79/jiter-0.12.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:798e46eed9eb10c3adbbacbd3bdb5ecd4cf7064e453d00dbef08802dae6937ff", size = 378615, upload-time = "2025-11-09T20:48:18.614Z" }, - { url = "https://files.pythonhosted.org/packages/87/30/d718d599f6700163e28e2c71c0bbaf6dace692e7df2592fd793ac9276717/jiter-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3f1368f0a6719ea80013a4eb90ba72e75d7ea67cfc7846db2ca504f3df0169a", size = 364745, upload-time = "2025-11-09T20:48:20.117Z" }, - { url = "https://files.pythonhosted.org/packages/8f/85/315b45ce4b6ddc7d7fceca24068543b02bdc8782942f4ee49d652e2cc89f/jiter-0.12.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65f04a9d0b4406f7e51279710b27484af411896246200e461d80d3ba0caa901a", size = 386502, upload-time = "2025-11-09T20:48:21.543Z" }, - { url = "https://files.pythonhosted.org/packages/74/0b/ce0434fb40c5b24b368fe81b17074d2840748b4952256bab451b72290a49/jiter-0.12.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:fd990541982a24281d12b67a335e44f117e4c6cbad3c3b75c7dea68bf4ce3a67", size = 519845, upload-time = "2025-11-09T20:48:22.964Z" }, - { url = "https://files.pythonhosted.org/packages/e8/a3/7a7a4488ba052767846b9c916d208b3ed114e3eb670ee984e4c565b9cf0d/jiter-0.12.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:b111b0e9152fa7df870ecaebb0bd30240d9f7fff1f2003bcb4ed0f519941820b", size = 510701, upload-time = "2025-11-09T20:48:24.483Z" }, - { url = "https://files.pythonhosted.org/packages/c3/16/052ffbf9d0467b70af24e30f91e0579e13ded0c17bb4a8eb2aed3cb60131/jiter-0.12.0-cp314-cp314-win32.whl", hash = "sha256:a78befb9cc0a45b5a5a0d537b06f8544c2ebb60d19d02c41ff15da28a9e22d42", size = 205029, upload-time = "2025-11-09T20:48:25.749Z" }, - { url = "https://files.pythonhosted.org/packages/e4/18/3cf1f3f0ccc789f76b9a754bdb7a6977e5d1d671ee97a9e14f7eb728d80e/jiter-0.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:e1fe01c082f6aafbe5c8faf0ff074f38dfb911d53f07ec333ca03f8f6226debf", size = 204960, upload-time = "2025-11-09T20:48:27.415Z" }, - { url = "https://files.pythonhosted.org/packages/02/68/736821e52ecfdeeb0f024b8ab01b5a229f6b9293bbdb444c27efade50b0f/jiter-0.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:d72f3b5a432a4c546ea4bedc84cce0c3404874f1d1676260b9c7f048a9855451", size = 185529, upload-time = "2025-11-09T20:48:29.125Z" }, - { url = "https://files.pythonhosted.org/packages/30/61/12ed8ee7a643cce29ac97c2281f9ce3956eb76b037e88d290f4ed0d41480/jiter-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e6ded41aeba3603f9728ed2b6196e4df875348ab97b28fc8afff115ed42ba7a7", size = 318974, upload-time = "2025-11-09T20:48:30.87Z" }, - { url = "https://files.pythonhosted.org/packages/2d/c6/f3041ede6d0ed5e0e79ff0de4c8f14f401bbf196f2ef3971cdbe5fd08d1d/jiter-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a947920902420a6ada6ad51892082521978e9dd44a802663b001436e4b771684", size = 345932, upload-time = "2025-11-09T20:48:32.658Z" }, - { url = "https://files.pythonhosted.org/packages/d5/5d/4d94835889edd01ad0e2dbfc05f7bdfaed46292e7b504a6ac7839aa00edb/jiter-0.12.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:add5e227e0554d3a52cf390a7635edaffdf4f8fce4fdbcef3cc2055bb396a30c", size = 367243, upload-time = "2025-11-09T20:48:34.093Z" }, - { url = "https://files.pythonhosted.org/packages/fd/76/0051b0ac2816253a99d27baf3dda198663aff882fa6ea7deeb94046da24e/jiter-0.12.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f9b1cda8fcb736250d7e8711d4580ebf004a46771432be0ae4796944b5dfa5d", size = 479315, upload-time = "2025-11-09T20:48:35.507Z" }, - { url = "https://files.pythonhosted.org/packages/70/ae/83f793acd68e5cb24e483f44f482a1a15601848b9b6f199dacb970098f77/jiter-0.12.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:deeb12a2223fe0135c7ff1356a143d57f95bbf1f4a66584f1fc74df21d86b993", size = 380714, upload-time = "2025-11-09T20:48:40.014Z" }, - { url = "https://files.pythonhosted.org/packages/b1/5e/4808a88338ad2c228b1126b93fcd8ba145e919e886fe910d578230dabe3b/jiter-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c596cc0f4cb574877550ce4ecd51f8037469146addd676d7c1a30ebe6391923f", size = 365168, upload-time = "2025-11-09T20:48:41.462Z" }, - { url = "https://files.pythonhosted.org/packages/0c/d4/04619a9e8095b42aef436b5aeb4c0282b4ff1b27d1db1508df9f5dc82750/jiter-0.12.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ab4c823b216a4aeab3fdbf579c5843165756bd9ad87cc6b1c65919c4715f783", size = 387893, upload-time = "2025-11-09T20:48:42.921Z" }, - { url = "https://files.pythonhosted.org/packages/17/ea/d3c7e62e4546fdc39197fa4a4315a563a89b95b6d54c0d25373842a59cbe/jiter-0.12.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:e427eee51149edf962203ff8db75a7514ab89be5cb623fb9cea1f20b54f1107b", size = 520828, upload-time = "2025-11-09T20:48:44.278Z" }, - { url = "https://files.pythonhosted.org/packages/cc/0b/c6d3562a03fd767e31cb119d9041ea7958c3c80cb3d753eafb19b3b18349/jiter-0.12.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:edb868841f84c111255ba5e80339d386d937ec1fdce419518ce1bd9370fac5b6", size = 511009, upload-time = "2025-11-09T20:48:45.726Z" }, - { url = "https://files.pythonhosted.org/packages/aa/51/2cb4468b3448a8385ebcd15059d325c9ce67df4e2758d133ab9442b19834/jiter-0.12.0-cp314-cp314t-win32.whl", hash = "sha256:8bbcfe2791dfdb7c5e48baf646d37a6a3dcb5a97a032017741dea9f817dca183", size = 205110, upload-time = "2025-11-09T20:48:47.033Z" }, - { url = "https://files.pythonhosted.org/packages/b2/c5/ae5ec83dec9c2d1af805fd5fe8f74ebded9c8670c5210ec7820ce0dbeb1e/jiter-0.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2fa940963bf02e1d8226027ef461e36af472dea85d36054ff835aeed944dd873", size = 205223, upload-time = "2025-11-09T20:48:49.076Z" }, - { url = "https://files.pythonhosted.org/packages/97/9a/3c5391907277f0e55195550cf3fa8e293ae9ee0c00fb402fec1e38c0c82f/jiter-0.12.0-cp314-cp314t-win_arm64.whl", hash = "sha256:506c9708dd29b27288f9f8f1140c3cb0e3d8ddb045956d7757b1fa0e0f39a473", size = 185564, upload-time = "2025-11-09T20:48:50.376Z" }, - { url = "https://files.pythonhosted.org/packages/fe/54/5339ef1ecaa881c6948669956567a64d2670941925f245c434f494ffb0e5/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:4739a4657179ebf08f85914ce50332495811004cc1747852e8b2041ed2aab9b8", size = 311144, upload-time = "2025-11-09T20:49:10.503Z" }, - { url = "https://files.pythonhosted.org/packages/27/74/3446c652bffbd5e81ab354e388b1b5fc1d20daac34ee0ed11ff096b1b01a/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:41da8def934bf7bec16cb24bd33c0ca62126d2d45d81d17b864bd5ad721393c3", size = 305877, upload-time = "2025-11-09T20:49:12.269Z" }, - { url = "https://files.pythonhosted.org/packages/a1/f4/ed76ef9043450f57aac2d4fbeb27175aa0eb9c38f833be6ef6379b3b9a86/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c44ee814f499c082e69872d426b624987dbc5943ab06e9bbaa4f81989fdb79e", size = 340419, upload-time = "2025-11-09T20:49:13.803Z" }, - { url = "https://files.pythonhosted.org/packages/21/01/857d4608f5edb0664aa791a3d45702e1a5bcfff9934da74035e7b9803846/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd2097de91cf03eaa27b3cbdb969addf83f0179c6afc41bbc4513705e013c65d", size = 347212, upload-time = "2025-11-09T20:49:15.643Z" }, - { url = "https://files.pythonhosted.org/packages/cb/f5/12efb8ada5f5c9edc1d4555fe383c1fb2eac05ac5859258a72d61981d999/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:e8547883d7b96ef2e5fe22b88f8a4c8725a56e7f4abafff20fd5272d634c7ecb", size = 309974, upload-time = "2025-11-09T20:49:17.187Z" }, - { url = "https://files.pythonhosted.org/packages/85/15/d6eb3b770f6a0d332675141ab3962fd4a7c270ede3515d9f3583e1d28276/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:89163163c0934854a668ed783a2546a0617f71706a2551a4a0666d91ab365d6b", size = 304233, upload-time = "2025-11-09T20:49:18.734Z" }, - { url = "https://files.pythonhosted.org/packages/8c/3e/e7e06743294eea2cf02ced6aa0ff2ad237367394e37a0e2b4a1108c67a36/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d96b264ab7d34bbb2312dedc47ce07cd53f06835eacbc16dde3761f47c3a9e7f", size = 338537, upload-time = "2025-11-09T20:49:20.317Z" }, - { url = "https://files.pythonhosted.org/packages/2f/9c/6753e6522b8d0ef07d3a3d239426669e984fb0eba15a315cdbc1253904e4/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24e864cb30ab82311c6425655b0cdab0a98c5d973b065c66a3f020740c2324c", size = 346110, upload-time = "2025-11-09T20:49:21.817Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ed/1f1afb2e9e7f38a545d628f864d562a5ae64fe6f7a10e28ffb9b185b4e89/importlib_resources-6.5.2-py3-none-any.whl", hash = "sha256:789cfdc3ed28c78b67a06acb8126751ced69a3d5f79c095a98298cd8a760ccec", size = 37461, upload-time = "2025-01-03T18:51:54.306Z" }, +] + +[[package]] +name = "instructor" +version = "1.14.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "diskcache" }, + { name = "docstring-parser" }, + { name = "jinja2" }, + { name = "jiter" }, + { name = "openai" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "requests" }, + { name = "rich" }, + { name = "tenacity" }, + { name = "typer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0b/ef/986d059424db204ed57b29d8c07fda35de2a2c72dee8ea7994bc90a6f767/instructor-1.14.5.tar.gz", hash = "sha256:fcb6432867f2fe4a5986e8bf389dcc64ed2ad4039a12a2dff85464e51c2f171a", size = 69950754, upload-time = "2026-01-29T14:18:50.454Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/04/e442e1356c97b03a6d30d2b462f7c0bdfbf207e75f6833815fd1225a75b4/instructor-1.14.5-py3-none-any.whl", hash = "sha256:2a5a31222b008c0989be1cc001e33a237f49506e80ac5833f6d36d7690bae7b1", size = 177445, upload-time = "2026-01-29T14:18:53.641Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jiter" +version = "0.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/68/0357982493a7b20925aece061f7fb7a2678e3b232f8d73a6edb7e5304443/jiter-0.11.1.tar.gz", hash = "sha256:849dcfc76481c0ea0099391235b7ca97d7279e0fa4c86005457ac7c88e8b76dc", size = 168385, upload-time = "2025-10-17T11:31:15.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/10/d099def5716452c8d5ffa527405373a44ddaf8e3c9d4f6de1e1344cffd90/jiter-0.11.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ed58841a491bbbf3f7c55a6b68fff568439ab73b2cce27ace0e169057b5851df", size = 310078, upload-time = "2025-10-17T11:28:36.186Z" }, + { url = "https://files.pythonhosted.org/packages/fe/56/b81d010b0031ffa96dfb590628562ac5f513ce56aa2ab451d29fb3fedeb9/jiter-0.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:499beb9b2d7e51d61095a8de39ebcab1d1778f2a74085f8305a969f6cee9f3e4", size = 317138, upload-time = "2025-10-17T11:28:38.294Z" }, + { url = "https://files.pythonhosted.org/packages/89/12/31ea12af9d79671cc7bd893bf0ccaf3467624c0fc7146a0cbfe7b549bcfa/jiter-0.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b87b2821795e28cc990939b68ce7a038edea680a24910bd68a79d54ff3f03c02", size = 348964, upload-time = "2025-10-17T11:28:40.103Z" }, + { url = "https://files.pythonhosted.org/packages/bc/d2/95cb6dc5ff962410667a29708c7a6c0691cc3c4866a0bfa79d085b56ebd6/jiter-0.11.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:83f6fa494d8bba14ab100417c80e70d32d737e805cb85be2052d771c76fcd1f8", size = 363289, upload-time = "2025-10-17T11:28:41.49Z" }, + { url = "https://files.pythonhosted.org/packages/b8/3e/37006ad5843a0bc3a3ec3a6c44710d7a154113befaf5f26d2fe190668b63/jiter-0.11.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5fbc6aea1daa2ec6f5ed465f0c5e7b0607175062ceebbea5ca70dd5ddab58083", size = 487243, upload-time = "2025-10-17T11:28:43.209Z" }, + { url = "https://files.pythonhosted.org/packages/80/5c/d38c8c801a322a0c0de47b9618c16fd766366f087ce37c4e55ae8e3c8b03/jiter-0.11.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:302288e2edc43174bb2db838e94688d724f9aad26c5fb9a74f7a5fb427452a6a", size = 376139, upload-time = "2025-10-17T11:28:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/b0/cd/442ad2389a5570b0ee673f93e14bbe8cdecd3e08a9ba7756081d84065e4c/jiter-0.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85db563fe3b367bb568af5d29dea4d4066d923b8e01f3417d25ebecd958de815", size = 359279, upload-time = "2025-10-17T11:28:46.152Z" }, + { url = "https://files.pythonhosted.org/packages/9a/35/8f5810d0e7d00bc395889085dbc1ccc36d454b56f28b2a5359dfd1bab48d/jiter-0.11.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f1c1ba2b6b22f775444ef53bc2d5778396d3520abc7b2e1da8eb0c27cb3ffb10", size = 384911, upload-time = "2025-10-17T11:28:48.03Z" }, + { url = "https://files.pythonhosted.org/packages/3c/bd/8c069ceb0bafcf6b4aa5de0c27f02faf50468df39564a02e1a12389ad6c2/jiter-0.11.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:523be464b14f8fd0cc78da6964b87b5515a056427a2579f9085ce30197a1b54a", size = 517879, upload-time = "2025-10-17T11:28:49.902Z" }, + { url = "https://files.pythonhosted.org/packages/bc/3c/9163efcf762f79f47433078b4f0a1bddc56096082c02c6cae2f47f07f56f/jiter-0.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:25b99b3f04cd2a38fefb22e822e35eb203a2cd37d680dbbc0c0ba966918af336", size = 508739, upload-time = "2025-10-17T11:28:51.785Z" }, + { url = "https://files.pythonhosted.org/packages/44/07/50690f257935845d3114b95b5dd03749eeaab5e395cbb522f9e957da4551/jiter-0.11.1-cp310-cp310-win32.whl", hash = "sha256:47a79e90545a596bb9104109777894033347b11180d4751a216afef14072dbe7", size = 203948, upload-time = "2025-10-17T11:28:54.368Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3a/5964a944bf2e98ffd566153fdc2a6a368fcb11b58cc46832ca8c75808dba/jiter-0.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:cace75621ae9bd66878bf69fbd4dfc1a28ef8661e0c2d0eb72d3d6f1268eddf5", size = 207522, upload-time = "2025-10-17T11:28:56.79Z" }, + { url = "https://files.pythonhosted.org/packages/8b/34/c9e6cfe876f9a24f43ed53fe29f052ce02bd8d5f5a387dbf46ad3764bef0/jiter-0.11.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9b0088ff3c374ce8ce0168523ec8e97122ebb788f950cf7bb8e39c7dc6a876a2", size = 310160, upload-time = "2025-10-17T11:28:59.174Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9f/b06ec8181d7165858faf2ac5287c54fe52b2287760b7fe1ba9c06890255f/jiter-0.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74433962dd3c3090655e02e461267095d6c84f0741c7827de11022ef8d7ff661", size = 316573, upload-time = "2025-10-17T11:29:00.905Z" }, + { url = "https://files.pythonhosted.org/packages/66/49/3179d93090f2ed0c6b091a9c210f266d2d020d82c96f753260af536371d0/jiter-0.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d98030e345e6546df2cc2c08309c502466c66c4747b043f1a0d415fada862b8", size = 348998, upload-time = "2025-10-17T11:29:02.321Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/63db2c8eabda7a9cad65a2e808ca34aaa8689d98d498f5a2357d7a2e2cec/jiter-0.11.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1d6db0b2e788db46bec2cf729a88b6dd36959af2abd9fa2312dfba5acdd96dcb", size = 363413, upload-time = "2025-10-17T11:29:03.787Z" }, + { url = "https://files.pythonhosted.org/packages/25/ff/3e6b3170c5053053c7baddb8d44e2bf11ff44cd71024a280a8438ae6ba32/jiter-0.11.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55678fbbda261eafe7289165dd2ddd0e922df5f9a1ae46d7c79a5a15242bd7d1", size = 487144, upload-time = "2025-10-17T11:29:05.37Z" }, + { url = "https://files.pythonhosted.org/packages/b0/50/b63fcadf699893269b997f4c2e88400bc68f085c6db698c6e5e69d63b2c1/jiter-0.11.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a6b74fae8e40497653b52ce6ca0f1b13457af769af6fb9c1113efc8b5b4d9be", size = 376215, upload-time = "2025-10-17T11:29:07.123Z" }, + { url = "https://files.pythonhosted.org/packages/39/8c/57a8a89401134167e87e73471b9cca321cf651c1fd78c45f3a0f16932213/jiter-0.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a55a453f8b035eb4f7852a79a065d616b7971a17f5e37a9296b4b38d3b619e4", size = 359163, upload-time = "2025-10-17T11:29:09.047Z" }, + { url = "https://files.pythonhosted.org/packages/4b/96/30b0cdbffbb6f753e25339d3dbbe26890c9ef119928314578201c758aace/jiter-0.11.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2638148099022e6bdb3f42904289cd2e403609356fb06eb36ddec2d50958bc29", size = 385344, upload-time = "2025-10-17T11:29:10.69Z" }, + { url = "https://files.pythonhosted.org/packages/c6/d5/31dae27c1cc9410ad52bb514f11bfa4f286f7d6ef9d287b98b8831e156ec/jiter-0.11.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:252490567a5d990986f83b95a5f1ca1bf205ebd27b3e9e93bb7c2592380e29b9", size = 517972, upload-time = "2025-10-17T11:29:12.174Z" }, + { url = "https://files.pythonhosted.org/packages/61/1e/5905a7a3aceab80de13ab226fd690471a5e1ee7e554dc1015e55f1a6b896/jiter-0.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d431d52b0ca2436eea6195f0f48528202100c7deda354cb7aac0a302167594d5", size = 508408, upload-time = "2025-10-17T11:29:13.597Z" }, + { url = "https://files.pythonhosted.org/packages/91/12/1c49b97aa49077e136e8591cef7162f0d3e2860ae457a2d35868fd1521ef/jiter-0.11.1-cp311-cp311-win32.whl", hash = "sha256:db6f41e40f8bae20c86cb574b48c4fd9f28ee1c71cb044e9ec12e78ab757ba3a", size = 203937, upload-time = "2025-10-17T11:29:14.894Z" }, + { url = "https://files.pythonhosted.org/packages/6d/9d/2255f7c17134ee9892c7e013c32d5bcf4bce64eb115402c9fe5e727a67eb/jiter-0.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0cc407b8e6cdff01b06bb80f61225c8b090c3df108ebade5e0c3c10993735b19", size = 207589, upload-time = "2025-10-17T11:29:16.166Z" }, + { url = "https://files.pythonhosted.org/packages/3c/28/6307fc8f95afef84cae6caf5429fee58ef16a582c2ff4db317ceb3e352fa/jiter-0.11.1-cp311-cp311-win_arm64.whl", hash = "sha256:fe04ea475392a91896d1936367854d346724a1045a247e5d1c196410473b8869", size = 188391, upload-time = "2025-10-17T11:29:17.488Z" }, + { url = "https://files.pythonhosted.org/packages/15/8b/318e8af2c904a9d29af91f78c1e18f0592e189bbdb8a462902d31fe20682/jiter-0.11.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c92148eec91052538ce6823dfca9525f5cfc8b622d7f07e9891a280f61b8c96c", size = 305655, upload-time = "2025-10-17T11:29:18.859Z" }, + { url = "https://files.pythonhosted.org/packages/f7/29/6c7de6b5d6e511d9e736312c0c9bfcee8f9b6bef68182a08b1d78767e627/jiter-0.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ecd4da91b5415f183a6be8f7158d127bdd9e6a3174138293c0d48d6ea2f2009d", size = 315645, upload-time = "2025-10-17T11:29:20.889Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5f/ef9e5675511ee0eb7f98dd8c90509e1f7743dbb7c350071acae87b0145f3/jiter-0.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7e3ac25c00b9275684d47aa42febaa90a9958e19fd1726c4ecf755fbe5e553b", size = 348003, upload-time = "2025-10-17T11:29:22.712Z" }, + { url = "https://files.pythonhosted.org/packages/56/1b/abe8c4021010b0a320d3c62682769b700fb66f92c6db02d1a1381b3db025/jiter-0.11.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:57d7305c0a841858f866cd459cd9303f73883fb5e097257f3d4a3920722c69d4", size = 365122, upload-time = "2025-10-17T11:29:24.408Z" }, + { url = "https://files.pythonhosted.org/packages/2a/2d/4a18013939a4f24432f805fbd5a19893e64650b933edb057cd405275a538/jiter-0.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e86fa10e117dce22c547f31dd6d2a9a222707d54853d8de4e9a2279d2c97f239", size = 488360, upload-time = "2025-10-17T11:29:25.724Z" }, + { url = "https://files.pythonhosted.org/packages/f0/77/38124f5d02ac4131f0dfbcfd1a19a0fac305fa2c005bc4f9f0736914a1a4/jiter-0.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ae5ef1d48aec7e01ee8420155d901bb1d192998fa811a65ebb82c043ee186711", size = 376884, upload-time = "2025-10-17T11:29:27.056Z" }, + { url = "https://files.pythonhosted.org/packages/7b/43/59fdc2f6267959b71dd23ce0bd8d4aeaf55566aa435a5d00f53d53c7eb24/jiter-0.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb68e7bf65c990531ad8715e57d50195daf7c8e6f1509e617b4e692af1108939", size = 358827, upload-time = "2025-10-17T11:29:28.698Z" }, + { url = "https://files.pythonhosted.org/packages/7d/d0/b3cc20ff5340775ea3bbaa0d665518eddecd4266ba7244c9cb480c0c82ec/jiter-0.11.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43b30c8154ded5845fa454ef954ee67bfccce629b2dea7d01f795b42bc2bda54", size = 385171, upload-time = "2025-10-17T11:29:30.078Z" }, + { url = "https://files.pythonhosted.org/packages/d2/bc/94dd1f3a61f4dc236f787a097360ec061ceeebebf4ea120b924d91391b10/jiter-0.11.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:586cafbd9dd1f3ce6a22b4a085eaa6be578e47ba9b18e198d4333e598a91db2d", size = 518359, upload-time = "2025-10-17T11:29:31.464Z" }, + { url = "https://files.pythonhosted.org/packages/7e/8c/12ee132bd67e25c75f542c227f5762491b9a316b0dad8e929c95076f773c/jiter-0.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:677cc2517d437a83bb30019fd4cf7cad74b465914c56ecac3440d597ac135250", size = 509205, upload-time = "2025-10-17T11:29:32.895Z" }, + { url = "https://files.pythonhosted.org/packages/39/d5/9de848928ce341d463c7e7273fce90ea6d0ea4343cd761f451860fa16b59/jiter-0.11.1-cp312-cp312-win32.whl", hash = "sha256:fa992af648fcee2b850a3286a35f62bbbaeddbb6dbda19a00d8fbc846a947b6e", size = 205448, upload-time = "2025-10-17T11:29:34.217Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b0/8002d78637e05009f5e3fb5288f9d57d65715c33b5d6aa20fd57670feef5/jiter-0.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:88b5cae9fa51efeb3d4bd4e52bfd4c85ccc9cac44282e2a9640893a042ba4d87", size = 204285, upload-time = "2025-10-17T11:29:35.446Z" }, + { url = "https://files.pythonhosted.org/packages/9f/a2/bb24d5587e4dff17ff796716542f663deee337358006a80c8af43ddc11e5/jiter-0.11.1-cp312-cp312-win_arm64.whl", hash = "sha256:9a6cae1ab335551917f882f2c3c1efe7617b71b4c02381e4382a8fc80a02588c", size = 188712, upload-time = "2025-10-17T11:29:37.027Z" }, + { url = "https://files.pythonhosted.org/packages/7c/4b/e4dd3c76424fad02a601d570f4f2a8438daea47ba081201a721a903d3f4c/jiter-0.11.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:71b6a920a5550f057d49d0e8bcc60945a8da998019e83f01adf110e226267663", size = 305272, upload-time = "2025-10-17T11:29:39.249Z" }, + { url = "https://files.pythonhosted.org/packages/67/83/2cd3ad5364191130f4de80eacc907f693723beaab11a46c7d155b07a092c/jiter-0.11.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b3de72e925388453a5171be83379549300db01284f04d2a6f244d1d8de36f94", size = 314038, upload-time = "2025-10-17T11:29:40.563Z" }, + { url = "https://files.pythonhosted.org/packages/d3/3c/8e67d9ba524e97d2f04c8f406f8769a23205026b13b0938d16646d6e2d3e/jiter-0.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc19dd65a2bd3d9c044c5b4ebf657ca1e6003a97c0fc10f555aa4f7fb9821c00", size = 345977, upload-time = "2025-10-17T11:29:42.009Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a5/489ce64d992c29bccbffabb13961bbb0435e890d7f2d266d1f3df5e917d2/jiter-0.11.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d58faaa936743cd1464540562f60b7ce4fd927e695e8bc31b3da5b914baa9abd", size = 364503, upload-time = "2025-10-17T11:29:43.459Z" }, + { url = "https://files.pythonhosted.org/packages/d4/c0/e321dd83ee231d05c8fe4b1a12caf1f0e8c7a949bf4724d58397104f10f2/jiter-0.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:902640c3103625317291cb73773413b4d71847cdf9383ba65528745ff89f1d14", size = 487092, upload-time = "2025-10-17T11:29:44.835Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5e/8f24ec49c8d37bd37f34ec0112e0b1a3b4b5a7b456c8efff1df5e189ad43/jiter-0.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:30405f726e4c2ed487b176c09f8b877a957f535d60c1bf194abb8dadedb5836f", size = 376328, upload-time = "2025-10-17T11:29:46.175Z" }, + { url = "https://files.pythonhosted.org/packages/7f/70/ded107620e809327cf7050727e17ccfa79d6385a771b7fe38fb31318ef00/jiter-0.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3217f61728b0baadd2551844870f65219ac4a1285d5e1a4abddff3d51fdabe96", size = 356632, upload-time = "2025-10-17T11:29:47.454Z" }, + { url = "https://files.pythonhosted.org/packages/19/53/c26f7251613f6a9079275ee43c89b8a973a95ff27532c421abc2a87afb04/jiter-0.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1364cc90c03a8196f35f396f84029f12abe925415049204446db86598c8b72c", size = 384358, upload-time = "2025-10-17T11:29:49.377Z" }, + { url = "https://files.pythonhosted.org/packages/84/16/e0f2cc61e9c4d0b62f6c1bd9b9781d878a427656f88293e2a5335fa8ff07/jiter-0.11.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:53a54bf8e873820ab186b2dca9f6c3303f00d65ae5e7b7d6bda1b95aa472d646", size = 517279, upload-time = "2025-10-17T11:29:50.968Z" }, + { url = "https://files.pythonhosted.org/packages/60/5c/4cd095eaee68961bca3081acbe7c89e12ae24a5dae5fd5d2a13e01ed2542/jiter-0.11.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7e29aca023627b0e0c2392d4248f6414d566ff3974fa08ff2ac8dbb96dfee92a", size = 508276, upload-time = "2025-10-17T11:29:52.619Z" }, + { url = "https://files.pythonhosted.org/packages/4f/25/f459240e69b0e09a7706d96ce203ad615ca36b0fe832308d2b7123abf2d0/jiter-0.11.1-cp313-cp313-win32.whl", hash = "sha256:f153e31d8bca11363751e875c0a70b3d25160ecbaee7b51e457f14498fb39d8b", size = 205593, upload-time = "2025-10-17T11:29:53.938Z" }, + { url = "https://files.pythonhosted.org/packages/7c/16/461bafe22bae79bab74e217a09c907481a46d520c36b7b9fe71ee8c9e983/jiter-0.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:f773f84080b667c69c4ea0403fc67bb08b07e2b7ce1ef335dea5868451e60fed", size = 203518, upload-time = "2025-10-17T11:29:55.216Z" }, + { url = "https://files.pythonhosted.org/packages/7b/72/c45de6e320edb4fa165b7b1a414193b3cae302dd82da2169d315dcc78b44/jiter-0.11.1-cp313-cp313-win_arm64.whl", hash = "sha256:635ecd45c04e4c340d2187bcb1cea204c7cc9d32c1364d251564bf42e0e39c2d", size = 188062, upload-time = "2025-10-17T11:29:56.631Z" }, + { url = "https://files.pythonhosted.org/packages/65/9b/4a57922437ca8753ef823f434c2dec5028b237d84fa320f06a3ba1aec6e8/jiter-0.11.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d892b184da4d94d94ddb4031296931c74ec8b325513a541ebfd6dfb9ae89904b", size = 313814, upload-time = "2025-10-17T11:29:58.509Z" }, + { url = "https://files.pythonhosted.org/packages/76/50/62a0683dadca25490a4bedc6a88d59de9af2a3406dd5a576009a73a1d392/jiter-0.11.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa22c223a3041dacb2fcd37c70dfd648b44662b4a48e242592f95bda5ab09d58", size = 344987, upload-time = "2025-10-17T11:30:00.208Z" }, + { url = "https://files.pythonhosted.org/packages/da/00/2355dbfcbf6cdeaddfdca18287f0f38ae49446bb6378e4a5971e9356fc8a/jiter-0.11.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330e8e6a11ad4980cd66a0f4a3e0e2e0f646c911ce047014f984841924729789", size = 356399, upload-time = "2025-10-17T11:30:02.084Z" }, + { url = "https://files.pythonhosted.org/packages/c9/07/c2bd748d578fa933d894a55bff33f983bc27f75fc4e491b354bef7b78012/jiter-0.11.1-cp313-cp313t-win_amd64.whl", hash = "sha256:09e2e386ebf298547ca3a3704b729471f7ec666c2906c5c26c1a915ea24741ec", size = 203289, upload-time = "2025-10-17T11:30:03.656Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ee/ace64a853a1acbd318eb0ca167bad1cf5ee037207504b83a868a5849747b/jiter-0.11.1-cp313-cp313t-win_arm64.whl", hash = "sha256:fe4a431c291157e11cee7c34627990ea75e8d153894365a3bc84b7a959d23ca8", size = 188284, upload-time = "2025-10-17T11:30:05.046Z" }, + { url = "https://files.pythonhosted.org/packages/8d/00/d6006d069e7b076e4c66af90656b63da9481954f290d5eca8c715f4bf125/jiter-0.11.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:0fa1f70da7a8a9713ff8e5f75ec3f90c0c870be6d526aa95e7c906f6a1c8c676", size = 304624, upload-time = "2025-10-17T11:30:06.678Z" }, + { url = "https://files.pythonhosted.org/packages/fc/45/4a0e31eb996b9ccfddbae4d3017b46f358a599ccf2e19fbffa5e531bd304/jiter-0.11.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:569ee559e5046a42feb6828c55307cf20fe43308e3ae0d8e9e4f8d8634d99944", size = 315042, upload-time = "2025-10-17T11:30:08.87Z" }, + { url = "https://files.pythonhosted.org/packages/e7/91/22f5746f5159a28c76acdc0778801f3c1181799aab196dbea2d29e064968/jiter-0.11.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f69955fa1d92e81987f092b233f0be49d4c937da107b7f7dcf56306f1d3fcce9", size = 346357, upload-time = "2025-10-17T11:30:10.222Z" }, + { url = "https://files.pythonhosted.org/packages/f5/4f/57620857d4e1dc75c8ff4856c90cb6c135e61bff9b4ebfb5dc86814e82d7/jiter-0.11.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:090f4c9d4a825e0fcbd0a2647c9a88a0f366b75654d982d95a9590745ff0c48d", size = 365057, upload-time = "2025-10-17T11:30:11.585Z" }, + { url = "https://files.pythonhosted.org/packages/ce/34/caf7f9cc8ae0a5bb25a5440cc76c7452d264d1b36701b90fdadd28fe08ec/jiter-0.11.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbf3d8cedf9e9d825233e0dcac28ff15c47b7c5512fdfe2e25fd5bbb6e6b0cee", size = 487086, upload-time = "2025-10-17T11:30:13.052Z" }, + { url = "https://files.pythonhosted.org/packages/50/17/85b5857c329d533d433fedf98804ebec696004a1f88cabad202b2ddc55cf/jiter-0.11.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2aa9b1958f9c30d3d1a558b75f0626733c60eb9b7774a86b34d88060be1e67fe", size = 376083, upload-time = "2025-10-17T11:30:14.416Z" }, + { url = "https://files.pythonhosted.org/packages/85/d3/2d9f973f828226e6faebdef034097a2918077ea776fb4d88489949024787/jiter-0.11.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42d1ca16590b768c5e7d723055acd2633908baacb3628dd430842e2e035aa90", size = 357825, upload-time = "2025-10-17T11:30:15.765Z" }, + { url = "https://files.pythonhosted.org/packages/f4/55/848d4dabf2c2c236a05468c315c2cb9dc736c5915e65449ccecdba22fb6f/jiter-0.11.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5db4c2486a023820b701a17aec9c5a6173c5ba4393f26662f032f2de9c848b0f", size = 383933, upload-time = "2025-10-17T11:30:17.34Z" }, + { url = "https://files.pythonhosted.org/packages/0b/6c/204c95a4fbb0e26dfa7776c8ef4a878d0c0b215868011cc904bf44f707e2/jiter-0.11.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:4573b78777ccfac954859a6eff45cbd9d281d80c8af049d0f1a3d9fc323d5c3a", size = 517118, upload-time = "2025-10-17T11:30:18.684Z" }, + { url = "https://files.pythonhosted.org/packages/88/25/09956644ea5a2b1e7a2a0f665cb69a973b28f4621fa61fc0c0f06ff40a31/jiter-0.11.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:7593ac6f40831d7961cb67633c39b9fef6689a211d7919e958f45710504f52d3", size = 508194, upload-time = "2025-10-17T11:30:20.719Z" }, + { url = "https://files.pythonhosted.org/packages/09/49/4d1657355d7f5c9e783083a03a3f07d5858efa6916a7d9634d07db1c23bd/jiter-0.11.1-cp314-cp314-win32.whl", hash = "sha256:87202ec6ff9626ff5f9351507def98fcf0df60e9a146308e8ab221432228f4ea", size = 203961, upload-time = "2025-10-17T11:30:22.073Z" }, + { url = "https://files.pythonhosted.org/packages/76/bd/f063bd5cc2712e7ca3cf6beda50894418fc0cfeb3f6ff45a12d87af25996/jiter-0.11.1-cp314-cp314-win_amd64.whl", hash = "sha256:a5dd268f6531a182c89d0dd9a3f8848e86e92dfff4201b77a18e6b98aa59798c", size = 202804, upload-time = "2025-10-17T11:30:23.452Z" }, + { url = "https://files.pythonhosted.org/packages/52/ca/4d84193dfafef1020bf0bedd5e1a8d0e89cb67c54b8519040effc694964b/jiter-0.11.1-cp314-cp314-win_arm64.whl", hash = "sha256:5d761f863f912a44748a21b5c4979c04252588ded8d1d2760976d2e42cd8d991", size = 188001, upload-time = "2025-10-17T11:30:24.915Z" }, + { url = "https://files.pythonhosted.org/packages/d5/fa/3b05e5c9d32efc770a8510eeb0b071c42ae93a5b576fd91cee9af91689a1/jiter-0.11.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2cc5a3965285ddc33e0cab933e96b640bc9ba5940cea27ebbbf6695e72d6511c", size = 312561, upload-time = "2025-10-17T11:30:26.742Z" }, + { url = "https://files.pythonhosted.org/packages/50/d3/335822eb216154ddb79a130cbdce88fdf5c3e2b43dc5dba1fd95c485aaf5/jiter-0.11.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b572b3636a784c2768b2342f36a23078c8d3aa6d8a30745398b1bab58a6f1a8", size = 344551, upload-time = "2025-10-17T11:30:28.252Z" }, + { url = "https://files.pythonhosted.org/packages/31/6d/a0bed13676b1398f9b3ba61f32569f20a3ff270291161100956a577b2dd3/jiter-0.11.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad93e3d67a981f96596d65d2298fe8d1aa649deb5374a2fb6a434410ee11915e", size = 363051, upload-time = "2025-10-17T11:30:30.009Z" }, + { url = "https://files.pythonhosted.org/packages/a4/03/313eda04aa08545a5a04ed5876e52f49ab76a4d98e54578896ca3e16313e/jiter-0.11.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a83097ce379e202dcc3fe3fc71a16d523d1ee9192c8e4e854158f96b3efe3f2f", size = 485897, upload-time = "2025-10-17T11:30:31.429Z" }, + { url = "https://files.pythonhosted.org/packages/5f/13/a1011b9d325e40b53b1b96a17c010b8646013417f3902f97a86325b19299/jiter-0.11.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7042c51e7fbeca65631eb0c332f90c0c082eab04334e7ccc28a8588e8e2804d9", size = 375224, upload-time = "2025-10-17T11:30:33.18Z" }, + { url = "https://files.pythonhosted.org/packages/92/da/1b45026b19dd39b419e917165ff0ea629dbb95f374a3a13d2df95e40a6ac/jiter-0.11.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a68d679c0e47649a61df591660507608adc2652442de7ec8276538ac46abe08", size = 356606, upload-time = "2025-10-17T11:30:34.572Z" }, + { url = "https://files.pythonhosted.org/packages/7a/0c/9acb0e54d6a8ba59ce923a180ebe824b4e00e80e56cefde86cc8e0a948be/jiter-0.11.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a1b0da75dbf4b6ec0b3c9e604d1ee8beaf15bc046fff7180f7d89e3cdbd3bb51", size = 384003, upload-time = "2025-10-17T11:30:35.987Z" }, + { url = "https://files.pythonhosted.org/packages/3f/2b/e5a5fe09d6da2145e4eed651e2ce37f3c0cf8016e48b1d302e21fb1628b7/jiter-0.11.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:69dd514bf0fa31c62147d6002e5ca2b3e7ef5894f5ac6f0a19752385f4e89437", size = 516946, upload-time = "2025-10-17T11:30:37.425Z" }, + { url = "https://files.pythonhosted.org/packages/5f/fe/db936e16e0228d48eb81f9934e8327e9fde5185e84f02174fcd22a01be87/jiter-0.11.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:bb31ac0b339efa24c0ca606febd8b77ef11c58d09af1b5f2be4c99e907b11111", size = 507614, upload-time = "2025-10-17T11:30:38.977Z" }, + { url = "https://files.pythonhosted.org/packages/86/db/c4438e8febfb303486d13c6b72f5eb71cf851e300a0c1f0b4140018dd31f/jiter-0.11.1-cp314-cp314t-win32.whl", hash = "sha256:b2ce0d6156a1d3ad41da3eec63b17e03e296b78b0e0da660876fccfada86d2f7", size = 204043, upload-time = "2025-10-17T11:30:40.308Z" }, + { url = "https://files.pythonhosted.org/packages/36/59/81badb169212f30f47f817dfaabf965bc9b8204fed906fab58104ee541f9/jiter-0.11.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f4db07d127b54c4a2d43b4cf05ff0193e4f73e0dd90c74037e16df0b29f666e1", size = 204046, upload-time = "2025-10-17T11:30:41.692Z" }, + { url = "https://files.pythonhosted.org/packages/dd/01/43f7b4eb61db3e565574c4c5714685d042fb652f9eef7e5a3de6aafa943a/jiter-0.11.1-cp314-cp314t-win_arm64.whl", hash = "sha256:28e4fdf2d7ebfc935523e50d1efa3970043cfaa161674fe66f9642409d001dfe", size = 188069, upload-time = "2025-10-17T11:30:43.23Z" }, + { url = "https://files.pythonhosted.org/packages/9d/51/bd41562dd284e2a18b6dc0a99d195fd4a3560d52ab192c42e56fe0316643/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:e642b5270e61dd02265866398707f90e365b5db2eb65a4f30c789d826682e1f6", size = 306871, upload-time = "2025-10-17T11:31:03.616Z" }, + { url = "https://files.pythonhosted.org/packages/ba/cb/64e7f21dd357e8cd6b3c919c26fac7fc198385bbd1d85bb3b5355600d787/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:464ba6d000585e4e2fd1e891f31f1231f497273414f5019e27c00a4b8f7a24ad", size = 301454, upload-time = "2025-10-17T11:31:05.338Z" }, + { url = "https://files.pythonhosted.org/packages/55/b0/54bdc00da4ef39801b1419a01035bd8857983de984fd3776b0be6b94add7/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:055568693ab35e0bf3a171b03bb40b2dcb10352359e0ab9b5ed0da2bf1eb6f6f", size = 336801, upload-time = "2025-10-17T11:31:06.893Z" }, + { url = "https://files.pythonhosted.org/packages/de/8f/87176ed071d42e9db415ed8be787ef4ef31a4fa27f52e6a4fbf34387bd28/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0c69ea798d08a915ba4478113efa9e694971e410056392f4526d796f136d3fa", size = 343452, upload-time = "2025-10-17T11:31:08.259Z" }, + { url = "https://files.pythonhosted.org/packages/a6/bc/950dd7f170c6394b6fdd73f989d9e729bd98907bcc4430ef080a72d06b77/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:0d4d6993edc83cf75e8c6828a8d6ce40a09ee87e38c7bfba6924f39e1337e21d", size = 302626, upload-time = "2025-10-17T11:31:09.645Z" }, + { url = "https://files.pythonhosted.org/packages/3a/65/43d7971ca82ee100b7b9b520573eeef7eabc0a45d490168ebb9a9b5bb8b2/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f78d151c83a87a6cf5461d5ee55bc730dd9ae227377ac6f115b922989b95f838", size = 297034, upload-time = "2025-10-17T11:31:10.975Z" }, + { url = "https://files.pythonhosted.org/packages/19/4c/000e1e0c0c67e96557a279f8969487ea2732d6c7311698819f977abae837/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9022974781155cd5521d5cb10997a03ee5e31e8454c9d999dcdccd253f2353f", size = 337328, upload-time = "2025-10-17T11:31:12.399Z" }, + { url = "https://files.pythonhosted.org/packages/d9/71/71408b02c6133153336d29fa3ba53000f1e1a3f78bb2fc2d1a1865d2e743/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18c77aaa9117510d5bdc6a946baf21b1f0cfa58ef04d31c8d016f206f2118960", size = 343697, upload-time = "2025-10-17T11:31:13.773Z" }, +] + +[[package]] +name = "json-repair" +version = "0.25.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/cb/50b0bbc3e504ef875aea0062cdc108077e4923fb8c1209c70c80dc043933/json_repair-0.25.2.tar.gz", hash = "sha256:161a56d7e6bbfd4cad3a614087e3e0dbd0e10d402dd20dc7db418432428cb32b", size = 20458, upload-time = "2024-06-27T16:26:15.492Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/43/ac6691c7b5aa7191c964a04ae926d2bb06d9297dba1f2287df5b85cb3715/json_repair-0.25.2-py3-none-any.whl", hash = "sha256:51d67295c3184b6c41a3572689661c6128cef6cfc9fb04db63130709adfc5bf0", size = 12740, upload-time = "2024-06-27T16:26:13.823Z" }, +] + +[[package]] +name = "json5" +version = "0.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/77/e8/a3f261a66e4663f22700bc8a17c08cb83e91fbf086726e7a228398968981/json5-0.13.0.tar.gz", hash = "sha256:b1edf8d487721c0bf64d83c28e91280781f6e21f4a797d3261c7c828d4c165bf", size = 52441, upload-time = "2026-01-01T19:42:14.99Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/9e/038522f50ceb7e74f1f991bf1b699f24b0c2bbe7c390dd36ad69f4582258/json5-0.13.0-py3-none-any.whl", hash = "sha256:9a08e1dd65f6a4d4c6fa82d216cf2477349ec2346a38fd70cc11d2557499fbcc", size = 36163, upload-time = "2026-01-01T19:42:13.962Z" }, +] + +[[package]] +name = "jsonpatch" +version = "1.33" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonpointer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/78/18813351fe5d63acad16aec57f94ec2b70a09e53ca98145589e185423873/jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c", size = 21699, upload-time = "2023-06-26T12:07:29.144Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade", size = 12898, upload-time = "2023-06-16T21:01:28.466Z" }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload-time = "2024-06-10T19:24:42.462Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload-time = "2024-06-10T19:24:40.698Z" }, +] + +[[package]] +name = "jsonref" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/0d/c1f3277e90ccdb50d33ed5ba1ec5b3f0a242ed8c1b1a85d3afeb68464dca/jsonref-1.1.0.tar.gz", hash = "sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552", size = 8814, upload-time = "2023-01-16T16:10:04.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/ec/e1db9922bceb168197a558a2b8c03a7963f1afe93517ddd3cf99f202f996/jsonref-1.1.0-py3-none-any.whl", hash = "sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9", size = 9425, upload-time = "2023-01-16T16:10:02.255Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "kubernetes" +version = "35.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "durationpy" }, + { name = "python-dateutil" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "requests-oauthlib" }, + { name = "six" }, + { name = "urllib3" }, + { name = "websocket-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2c/8f/85bf51ad4150f64e8c665daf0d9dfe9787ae92005efb9a4d1cba592bd79d/kubernetes-35.0.0.tar.gz", hash = "sha256:3d00d344944239821458b9efd484d6df9f011da367ecb155dadf9513f05f09ee", size = 1094642, upload-time = "2026-01-16T01:05:27.76Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/70/05b685ea2dffcb2adbf3cdcea5d8865b7bc66f67249084cf845012a0ff13/kubernetes-35.0.0-py2.py3-none-any.whl", hash = "sha256:39e2b33b46e5834ef6c3985ebfe2047ab39135d41de51ce7641a7ca5b372a13d", size = 2017602, upload-time = "2026-01-16T01:05:25.991Z" }, +] + +[[package]] +name = "lance-namespace" +version = "0.4.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lance-namespace-urllib3-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b4/b5/0c3c55cf336b1e90392c2e24ac833551659e8bb3c61644b2d94825eb31bd/lance_namespace-0.4.5.tar.gz", hash = "sha256:0aee0abed3a1fa762c2955c7d12bb3004cea5c82ba28f6fcb9fe79d0cc19e317", size = 9827, upload-time = "2026-01-07T19:20:23.005Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/88/173687dad72baf819223e3b506898e386bc88c26ff8da5e8013291e02daf/lance_namespace-0.4.5-py3-none-any.whl", hash = "sha256:cd1a4f789de03ba23a0c16f100b1464cca572a5d04e428917a54d09db912d548", size = 11703, upload-time = "2026-01-07T19:20:25.394Z" }, +] + +[[package]] +name = "lance-namespace-urllib3-client" +version = "0.4.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dateutil" }, + { name = "typing-extensions" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/97/a9/4e527c2f05704565618b239b0965f829d1a194837f01234af3f8e2f33d92/lance_namespace_urllib3_client-0.4.5.tar.gz", hash = "sha256:184deda8cf8700926d994618187053c644eb1f2866a4479e7b80843cacc92b1c", size = 159726, upload-time = "2026-01-07T19:20:24.025Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/86/0adee7190408a28dcc5a0562c674537457e3de59ee51d1c724ecdc4a9930/lance_namespace_urllib3_client-0.4.5-py3-none-any.whl", hash = "sha256:2ee154d616ba4721f0bfdf043d33c4fef2e79d380653e2f263058ab00fb4adf4", size = 277969, upload-time = "2026-01-07T19:20:26.597Z" }, +] + +[[package]] +name = "lancedb" +version = "0.29.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "deprecation" }, + { name = "lance-namespace" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "overrides", marker = "python_full_version < '3.12'" }, + { name = "packaging" }, + { name = "pyarrow" }, + { name = "pydantic" }, + { name = "tqdm" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/77/fbb25946a234928958e016c5448343fd314bd601315f9587568321591a17/lancedb-0.29.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:bc1faf2e12addb9585569d0fb114ecc25ec3867e4e1aa6934e9343cfb5265ee4", size = 42341708, upload-time = "2026-02-09T06:21:31.677Z" }, + { url = "https://files.pythonhosted.org/packages/cd/95/d3a7b6d0237e343ad5b2afef2bdb99423746d5c3e882a9cab68dc041c2d0/lancedb-0.29.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fec19cfc52a5b9d98e060bd2f02a1c9df6a0bfd15b36021b6017327a41893a3", size = 44147347, upload-time = "2026-02-09T06:31:02.567Z" }, + { url = "https://files.pythonhosted.org/packages/66/21/153a42294279c5b66d763f357808dde0899b71c5c8e41ad5ecbeeb8728df/lancedb-0.29.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636939ab9225d435020ba17c231f5eaba15312a07813bcebcd71128204cc039f", size = 47186355, upload-time = "2026-02-09T06:34:47.726Z" }, + { url = "https://files.pythonhosted.org/packages/a2/f7/f7041ae7d7730332b2754fe7adc2e0bd496f92bf526ac710b7eb3caf1d0a/lancedb-0.29.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f79b32083fcab139009db521d2f7fcd6afe4cca98a78c06c5940ff00a170cc1a", size = 44172354, upload-time = "2026-02-09T06:31:03.834Z" }, + { url = "https://files.pythonhosted.org/packages/72/6f/c152497c18cea0f36b523fc03b8e0a48be2b120276cc15a86d79b8b83cde/lancedb-0.29.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:991043a28c1f49f14df2479b554a95c759a85666dc58573cc86c1b9df05db794", size = 47228009, upload-time = "2026-02-09T06:34:40.872Z" }, + { url = "https://files.pythonhosted.org/packages/66/50/bd47bca59a87a88a4ca291a0718291422440750d84b34318048c70a537c2/lancedb-0.29.2-cp39-abi3-win_amd64.whl", hash = "sha256:101eb0ac018bb0b643dd9ea22065f6f2102e9d44c9ac58a197477ccbfbc0b9fa", size = 52028768, upload-time = "2026-02-09T07:00:02.272Z" }, +] + +[[package]] +name = "langchain" +version = "1.2.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "langgraph" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/22/a4d4ac98fc2e393537130bbfba0d71a8113e6f884d96f935923e247397fe/langchain-1.2.10.tar.gz", hash = "sha256:bdcd7218d9c79a413cf15e106e4eb94408ac0963df9333ccd095b9ed43bf3be7", size = 570071, upload-time = "2026-02-10T14:56:49.74Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/06/c3394327f815fade875724c0f6cff529777c96a1e17fea066deb997f8cf5/langchain-1.2.10-py3-none-any.whl", hash = "sha256:e07a377204451fffaed88276b8193e894893b1003e25c5bca6539288ccca3698", size = 111738, upload-time = "2026-02-10T14:56:47.985Z" }, +] + +[[package]] +name = "langchain-core" +version = "1.2.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonpatch" }, + { name = "langsmith" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "tenacity" }, + { name = "typing-extensions" }, + { name = "uuid-utils" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/1d/08e935d1532fcc90981f6e5bb6825914c9227ea7a962c62b1e18619b49e7/langchain_core-1.2.12.tar.gz", hash = "sha256:4d7fa6643d7ab06fc1905a9b7dcbe96a6f3c181046b56edf9c0c17ecd412d9e9", size = 831329, upload-time = "2026-02-12T20:53:15.01Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/a5/678ab0e5cc57794f20ae5ed12c1442506ef1108c9434f950aebc6044e5a3/langchain_core-1.2.12-py3-none-any.whl", hash = "sha256:66ca17a2a9cb007ab29021968e6adfcf4228067151dc2bd6ebfff265ffaf92f5", size = 500132, upload-time = "2026-02-12T20:53:13.806Z" }, +] + +[[package]] +name = "langchain-openai" +version = "1.1.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "openai" }, + { name = "tiktoken" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/ae/1dbeb49ab8f098f78ec52e21627e705e5d7c684dc8826c2c34cc2746233a/langchain_openai-1.1.9.tar.gz", hash = "sha256:fdee25dcf4b0685d8e2f59856f4d5405431ef9e04ab53afe19e2e8360fed8234", size = 1004828, upload-time = "2026-02-10T21:03:21.615Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/a1/8a20d19f69d022c10d34afa42d972cc50f971b880d0eb4a828cf3dd824a8/langchain_openai-1.1.9-py3-none-any.whl", hash = "sha256:ca2482b136c45fb67c0db84a9817de675e0eb8fb2203a33914c1b7a96f273940", size = 85769, upload-time = "2026-02-10T21:03:20.333Z" }, +] + +[[package]] +name = "langgraph" +version = "1.0.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "langgraph-checkpoint" }, + { name = "langgraph-prebuilt" }, + { name = "langgraph-sdk" }, + { name = "pydantic" }, + { name = "xxhash" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/49/e9551965d8a44dd9afdc55cbcdc5a9bd18bee6918cc2395b225d40adb77c/langgraph-1.0.8.tar.gz", hash = "sha256:2630fc578846995114fd659f8b14df9eff5a4e78c49413f67718725e88ceb544", size = 498708, upload-time = "2026-02-06T12:31:13.776Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/72/b0d7fc1007821a08dfc03ce232f39f209aa4aa46414ea3d125b24e35093a/langgraph-1.0.8-py3-none-any.whl", hash = "sha256:da737177c024caad7e5262642bece4f54edf4cba2c905a1d1338963f41cf0904", size = 158144, upload-time = "2026-02-06T12:31:12.489Z" }, +] + +[[package]] +name = "langgraph-checkpoint" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "ormsgpack" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/76/55a18c59dedf39688d72c4b06af73a5e3ea0d1a01bc867b88fbf0659f203/langgraph_checkpoint-4.0.0.tar.gz", hash = "sha256:814d1bd050fac029476558d8e68d87bce9009a0262d04a2c14b918255954a624", size = 137320, upload-time = "2026-01-12T20:30:26.38Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/de/ddd53b7032e623f3c7bcdab2b44e8bf635e468f62e10e5ff1946f62c9356/langgraph_checkpoint-4.0.0-py3-none-any.whl", hash = "sha256:3fa9b2635a7c5ac28b338f631abf6a030c3b508b7b9ce17c22611513b589c784", size = 46329, upload-time = "2026-01-12T20:30:25.2Z" }, +] + +[[package]] +name = "langgraph-prebuilt" +version = "1.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "langgraph-checkpoint" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/59/711aecd1a50999456850dc328f3cad72b4372d8218838d8d5326f80cb76f/langgraph_prebuilt-1.0.7.tar.gz", hash = "sha256:38e097e06de810de4d0e028ffc0e432bb56d1fb417620fb1dfdc76c5e03e4bf9", size = 163692, upload-time = "2026-01-22T16:45:22.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/49/5e37abb3f38a17a3487634abc2a5da87c208cc1d14577eb8d7184b25c886/langgraph_prebuilt-1.0.7-py3-none-any.whl", hash = "sha256:e14923516504405bb5edc3977085bc9622c35476b50c1808544490e13871fe7c", size = 35324, upload-time = "2026-01-22T16:45:21.784Z" }, +] + +[[package]] +name = "langgraph-sdk" +version = "0.3.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "orjson" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/60/2b/2dae368ac76e315197f07ab58077aadf20833c226fbfd450d71745850314/langgraph_sdk-0.3.5.tar.gz", hash = "sha256:64669e9885a908578eed921ef9a8e52b8d0cd38db1e3e5d6d299d4e6f8830ac0", size = 177470, upload-time = "2026-02-10T16:56:09.18Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/d5/a14d957c515ba7a9713bf0f03f2b9277979c403bc50f829bdfd54ae7dc9e/langgraph_sdk-0.3.5-py3-none-any.whl", hash = "sha256:bcfa1dcbddadb604076ce46f5e08969538735e5ac47fa863d4fac5a512dab5c9", size = 70851, upload-time = "2026-02-10T16:56:07.983Z" }, +] + +[[package]] +name = "langsmith" +version = "0.7.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "orjson", marker = "platform_python_implementation != 'PyPy'" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "requests-toolbelt" }, + { name = "uuid-utils" }, + { name = "xxhash" }, + { name = "zstandard" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8d/bc/8172fefad4f2da888a6d564a27d1fb7d4dbf3c640899c2b40c46235cbe98/langsmith-0.7.3.tar.gz", hash = "sha256:0223b97021af62d2cf53c8a378a27bd22e90a7327e45b353e0069ae60d5d6f9e", size = 988575, upload-time = "2026-02-13T23:25:32.916Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/9d/5a68b6b5e313ffabbb9725d18a71edb48177fd6d3ad329c07801d2a8e862/langsmith-0.7.3-py3-none-any.whl", hash = "sha256:03659bf9274e6efcead361c9c31a7849ea565ae0d6c0d73e1d8b239029eff3be", size = 325718, upload-time = "2026-02-13T23:25:31.52Z" }, +] + +[[package]] +name = "lxml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/88/262177de60548e5a2bfc46ad28232c9e9cbde697bd94132aeb80364675cb/lxml-6.0.2.tar.gz", hash = "sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62", size = 4073426, upload-time = "2025-09-22T04:04:59.287Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/8a/f8192a08237ef2fb1b19733f709db88a4c43bc8ab8357f01cb41a27e7f6a/lxml-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388", size = 8590589, upload-time = "2025-09-22T04:00:10.51Z" }, + { url = "https://files.pythonhosted.org/packages/12/64/27bcd07ae17ff5e5536e8d88f4c7d581b48963817a13de11f3ac3329bfa2/lxml-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153", size = 4629671, upload-time = "2025-09-22T04:00:15.411Z" }, + { url = "https://files.pythonhosted.org/packages/02/5a/a7d53b3291c324e0b6e48f3c797be63836cc52156ddf8f33cd72aac78866/lxml-6.0.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f952dacaa552f3bb8834908dddd500ba7d508e6ea6eb8c52eb2d28f48ca06a31", size = 4999961, upload-time = "2025-09-22T04:00:17.619Z" }, + { url = "https://files.pythonhosted.org/packages/f5/55/d465e9b89df1761674d8672bb3e4ae2c47033b01ec243964b6e334c6743f/lxml-6.0.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:71695772df6acea9f3c0e59e44ba8ac50c4f125217e84aab21074a1a55e7e5c9", size = 5157087, upload-time = "2025-09-22T04:00:19.868Z" }, + { url = "https://files.pythonhosted.org/packages/62/38/3073cd7e3e8dfc3ba3c3a139e33bee3a82de2bfb0925714351ad3d255c13/lxml-6.0.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:17f68764f35fd78d7c4cc4ef209a184c38b65440378013d24b8aecd327c3e0c8", size = 5067620, upload-time = "2025-09-22T04:00:21.877Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d3/1e001588c5e2205637b08985597827d3827dbaaece16348c8822bfe61c29/lxml-6.0.2-cp310-cp310-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:058027e261afed589eddcfe530fcc6f3402d7fd7e89bfd0532df82ebc1563dba", size = 5406664, upload-time = "2025-09-22T04:00:23.714Z" }, + { url = "https://files.pythonhosted.org/packages/20/cf/cab09478699b003857ed6ebfe95e9fb9fa3d3c25f1353b905c9b73cfb624/lxml-6.0.2-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8ffaeec5dfea5881d4c9d8913a32d10cfe3923495386106e4a24d45300ef79c", size = 5289397, upload-time = "2025-09-22T04:00:25.544Z" }, + { url = "https://files.pythonhosted.org/packages/a3/84/02a2d0c38ac9a8b9f9e5e1bbd3f24b3f426044ad618b552e9549ee91bd63/lxml-6.0.2-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:f2e3b1a6bb38de0bc713edd4d612969dd250ca8b724be8d460001a387507021c", size = 4772178, upload-time = "2025-09-22T04:00:27.602Z" }, + { url = "https://files.pythonhosted.org/packages/56/87/e1ceadcc031ec4aa605fe95476892d0b0ba3b7f8c7dcdf88fdeff59a9c86/lxml-6.0.2-cp310-cp310-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d6690ec5ec1cce0385cb20896b16be35247ac8c2046e493d03232f1c2414d321", size = 5358148, upload-time = "2025-09-22T04:00:29.323Z" }, + { url = "https://files.pythonhosted.org/packages/fe/13/5bb6cf42bb228353fd4ac5f162c6a84fd68a4d6f67c1031c8cf97e131fc6/lxml-6.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2a50c3c1d11cad0ebebbac357a97b26aa79d2bcaf46f256551152aa85d3a4d1", size = 5112035, upload-time = "2025-09-22T04:00:31.061Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e2/ea0498552102e59834e297c5c6dff8d8ded3db72ed5e8aad77871476f073/lxml-6.0.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:3efe1b21c7801ffa29a1112fab3b0f643628c30472d507f39544fd48e9549e34", size = 4799111, upload-time = "2025-09-22T04:00:33.11Z" }, + { url = "https://files.pythonhosted.org/packages/6a/9e/8de42b52a73abb8af86c66c969b3b4c2a96567b6ac74637c037d2e3baa60/lxml-6.0.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:59c45e125140b2c4b33920d21d83681940ca29f0b83f8629ea1a2196dc8cfe6a", size = 5351662, upload-time = "2025-09-22T04:00:35.237Z" }, + { url = "https://files.pythonhosted.org/packages/28/a2/de776a573dfb15114509a37351937c367530865edb10a90189d0b4b9b70a/lxml-6.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:452b899faa64f1805943ec1c0c9ebeaece01a1af83e130b69cdefeda180bb42c", size = 5314973, upload-time = "2025-09-22T04:00:37.086Z" }, + { url = "https://files.pythonhosted.org/packages/50/a0/3ae1b1f8964c271b5eec91db2043cf8c6c0bce101ebb2a633b51b044db6c/lxml-6.0.2-cp310-cp310-win32.whl", hash = "sha256:1e786a464c191ca43b133906c6903a7e4d56bef376b75d97ccbb8ec5cf1f0a4b", size = 3611953, upload-time = "2025-09-22T04:00:39.224Z" }, + { url = "https://files.pythonhosted.org/packages/d1/70/bd42491f0634aad41bdfc1e46f5cff98825fb6185688dc82baa35d509f1a/lxml-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:dacf3c64ef3f7440e3167aa4b49aa9e0fb99e0aa4f9ff03795640bf94531bcb0", size = 4032695, upload-time = "2025-09-22T04:00:41.402Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d0/05c6a72299f54c2c561a6c6cbb2f512e047fca20ea97a05e57931f194ac4/lxml-6.0.2-cp310-cp310-win_arm64.whl", hash = "sha256:45f93e6f75123f88d7f0cfd90f2d05f441b808562bf0bc01070a00f53f5028b5", size = 3680051, upload-time = "2025-09-22T04:00:43.525Z" }, + { url = "https://files.pythonhosted.org/packages/77/d5/becbe1e2569b474a23f0c672ead8a29ac50b2dc1d5b9de184831bda8d14c/lxml-6.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607", size = 8634365, upload-time = "2025-09-22T04:00:45.672Z" }, + { url = "https://files.pythonhosted.org/packages/28/66/1ced58f12e804644426b85d0bb8a4478ca77bc1761455da310505f1a3526/lxml-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938", size = 4650793, upload-time = "2025-09-22T04:00:47.783Z" }, + { url = "https://files.pythonhosted.org/packages/11/84/549098ffea39dfd167e3f174b4ce983d0eed61f9d8d25b7bf2a57c3247fc/lxml-6.0.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d", size = 4944362, upload-time = "2025-09-22T04:00:49.845Z" }, + { url = "https://files.pythonhosted.org/packages/ac/bd/f207f16abf9749d2037453d56b643a7471d8fde855a231a12d1e095c4f01/lxml-6.0.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438", size = 5083152, upload-time = "2025-09-22T04:00:51.709Z" }, + { url = "https://files.pythonhosted.org/packages/15/ae/bd813e87d8941d52ad5b65071b1affb48da01c4ed3c9c99e40abb266fbff/lxml-6.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964", size = 5023539, upload-time = "2025-09-22T04:00:53.593Z" }, + { url = "https://files.pythonhosted.org/packages/02/cd/9bfef16bd1d874fbe0cb51afb00329540f30a3283beb9f0780adbb7eec03/lxml-6.0.2-cp311-cp311-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d", size = 5344853, upload-time = "2025-09-22T04:00:55.524Z" }, + { url = "https://files.pythonhosted.org/packages/b8/89/ea8f91594bc5dbb879734d35a6f2b0ad50605d7fb419de2b63d4211765cc/lxml-6.0.2-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7", size = 5225133, upload-time = "2025-09-22T04:00:57.269Z" }, + { url = "https://files.pythonhosted.org/packages/b9/37/9c735274f5dbec726b2db99b98a43950395ba3d4a1043083dba2ad814170/lxml-6.0.2-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178", size = 4677944, upload-time = "2025-09-22T04:00:59.052Z" }, + { url = "https://files.pythonhosted.org/packages/20/28/7dfe1ba3475d8bfca3878365075abe002e05d40dfaaeb7ec01b4c587d533/lxml-6.0.2-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553", size = 5284535, upload-time = "2025-09-22T04:01:01.335Z" }, + { url = "https://files.pythonhosted.org/packages/e7/cf/5f14bc0de763498fc29510e3532bf2b4b3a1c1d5d0dff2e900c16ba021ef/lxml-6.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb", size = 5067343, upload-time = "2025-09-22T04:01:03.13Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b0/bb8275ab5472f32b28cfbbcc6db7c9d092482d3439ca279d8d6fa02f7025/lxml-6.0.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a", size = 4725419, upload-time = "2025-09-22T04:01:05.013Z" }, + { url = "https://files.pythonhosted.org/packages/25/4c/7c222753bc72edca3b99dbadba1b064209bc8ed4ad448af990e60dcce462/lxml-6.0.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c", size = 5275008, upload-time = "2025-09-22T04:01:07.327Z" }, + { url = "https://files.pythonhosted.org/packages/6c/8c/478a0dc6b6ed661451379447cdbec77c05741a75736d97e5b2b729687828/lxml-6.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7", size = 5248906, upload-time = "2025-09-22T04:01:09.452Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d9/5be3a6ab2784cdf9accb0703b65e1b64fcdd9311c9f007630c7db0cfcce1/lxml-6.0.2-cp311-cp311-win32.whl", hash = "sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46", size = 3610357, upload-time = "2025-09-22T04:01:11.102Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7d/ca6fb13349b473d5732fb0ee3eec8f6c80fc0688e76b7d79c1008481bf1f/lxml-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078", size = 4036583, upload-time = "2025-09-22T04:01:12.766Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a2/51363b5ecd3eab46563645f3a2c3836a2fc67d01a1b87c5017040f39f567/lxml-6.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285", size = 3680591, upload-time = "2025-09-22T04:01:14.874Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c8/8ff2bc6b920c84355146cd1ab7d181bc543b89241cfb1ebee824a7c81457/lxml-6.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456", size = 8661887, upload-time = "2025-09-22T04:01:17.265Z" }, + { url = "https://files.pythonhosted.org/packages/37/6f/9aae1008083bb501ef63284220ce81638332f9ccbfa53765b2b7502203cf/lxml-6.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924", size = 4667818, upload-time = "2025-09-22T04:01:19.688Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ca/31fb37f99f37f1536c133476674c10b577e409c0a624384147653e38baf2/lxml-6.0.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f", size = 4950807, upload-time = "2025-09-22T04:01:21.487Z" }, + { url = "https://files.pythonhosted.org/packages/da/87/f6cb9442e4bada8aab5ae7e1046264f62fdbeaa6e3f6211b93f4c0dd97f1/lxml-6.0.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534", size = 5109179, upload-time = "2025-09-22T04:01:23.32Z" }, + { url = "https://files.pythonhosted.org/packages/c8/20/a7760713e65888db79bbae4f6146a6ae5c04e4a204a3c48896c408cd6ed2/lxml-6.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564", size = 5023044, upload-time = "2025-09-22T04:01:25.118Z" }, + { url = "https://files.pythonhosted.org/packages/a2/b0/7e64e0460fcb36471899f75831509098f3fd7cd02a3833ac517433cb4f8f/lxml-6.0.2-cp312-cp312-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f", size = 5359685, upload-time = "2025-09-22T04:01:27.398Z" }, + { url = "https://files.pythonhosted.org/packages/b9/e1/e5df362e9ca4e2f48ed6411bd4b3a0ae737cc842e96877f5bf9428055ab4/lxml-6.0.2-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0", size = 5654127, upload-time = "2025-09-22T04:01:29.629Z" }, + { url = "https://files.pythonhosted.org/packages/c6/d1/232b3309a02d60f11e71857778bfcd4acbdb86c07db8260caf7d008b08f8/lxml-6.0.2-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192", size = 5253958, upload-time = "2025-09-22T04:01:31.535Z" }, + { url = "https://files.pythonhosted.org/packages/35/35/d955a070994725c4f7d80583a96cab9c107c57a125b20bb5f708fe941011/lxml-6.0.2-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0", size = 4711541, upload-time = "2025-09-22T04:01:33.801Z" }, + { url = "https://files.pythonhosted.org/packages/1e/be/667d17363b38a78c4bd63cfd4b4632029fd68d2c2dc81f25ce9eb5224dd5/lxml-6.0.2-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092", size = 5267426, upload-time = "2025-09-22T04:01:35.639Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/62c70aa4a1c26569bc958c9ca86af2bb4e1f614e8c04fb2989833874f7ae/lxml-6.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f", size = 5064917, upload-time = "2025-09-22T04:01:37.448Z" }, + { url = "https://files.pythonhosted.org/packages/bd/55/6ceddaca353ebd0f1908ef712c597f8570cc9c58130dbb89903198e441fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8", size = 4788795, upload-time = "2025-09-22T04:01:39.165Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e8/fd63e15da5e3fd4c2146f8bbb3c14e94ab850589beab88e547b2dbce22e1/lxml-6.0.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f", size = 5676759, upload-time = "2025-09-22T04:01:41.506Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/b3ec58dc5c374697f5ba37412cd2728f427d056315d124dd4b61da381877/lxml-6.0.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6", size = 5255666, upload-time = "2025-09-22T04:01:43.363Z" }, + { url = "https://files.pythonhosted.org/packages/19/93/03ba725df4c3d72afd9596eef4a37a837ce8e4806010569bedfcd2cb68fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322", size = 5277989, upload-time = "2025-09-22T04:01:45.215Z" }, + { url = "https://files.pythonhosted.org/packages/c6/80/c06de80bfce881d0ad738576f243911fccf992687ae09fd80b734712b39c/lxml-6.0.2-cp312-cp312-win32.whl", hash = "sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849", size = 3611456, upload-time = "2025-09-22T04:01:48.243Z" }, + { url = "https://files.pythonhosted.org/packages/f7/d7/0cdfb6c3e30893463fb3d1e52bc5f5f99684a03c29a0b6b605cfae879cd5/lxml-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f", size = 4011793, upload-time = "2025-09-22T04:01:50.042Z" }, + { url = "https://files.pythonhosted.org/packages/ea/7b/93c73c67db235931527301ed3785f849c78991e2e34f3fd9a6663ffda4c5/lxml-6.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6", size = 3672836, upload-time = "2025-09-22T04:01:52.145Z" }, + { url = "https://files.pythonhosted.org/packages/53/fd/4e8f0540608977aea078bf6d79f128e0e2c2bba8af1acf775c30baa70460/lxml-6.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77", size = 8648494, upload-time = "2025-09-22T04:01:54.242Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f4/2a94a3d3dfd6c6b433501b8d470a1960a20ecce93245cf2db1706adf6c19/lxml-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f", size = 4661146, upload-time = "2025-09-22T04:01:56.282Z" }, + { url = "https://files.pythonhosted.org/packages/25/2e/4efa677fa6b322013035d38016f6ae859d06cac67437ca7dc708a6af7028/lxml-6.0.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452", size = 4946932, upload-time = "2025-09-22T04:01:58.989Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0f/526e78a6d38d109fdbaa5049c62e1d32fdd70c75fb61c4eadf3045d3d124/lxml-6.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048", size = 5100060, upload-time = "2025-09-22T04:02:00.812Z" }, + { url = "https://files.pythonhosted.org/packages/81/76/99de58d81fa702cc0ea7edae4f4640416c2062813a00ff24bd70ac1d9c9b/lxml-6.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df", size = 5019000, upload-time = "2025-09-22T04:02:02.671Z" }, + { url = "https://files.pythonhosted.org/packages/b5/35/9e57d25482bc9a9882cb0037fdb9cc18f4b79d85df94fa9d2a89562f1d25/lxml-6.0.2-cp313-cp313-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1", size = 5348496, upload-time = "2025-09-22T04:02:04.904Z" }, + { url = "https://files.pythonhosted.org/packages/a6/8e/cb99bd0b83ccc3e8f0f528e9aa1f7a9965dfec08c617070c5db8d63a87ce/lxml-6.0.2-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916", size = 5643779, upload-time = "2025-09-22T04:02:06.689Z" }, + { url = "https://files.pythonhosted.org/packages/d0/34/9e591954939276bb679b73773836c6684c22e56d05980e31d52a9a8deb18/lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd", size = 5244072, upload-time = "2025-09-22T04:02:08.587Z" }, + { url = "https://files.pythonhosted.org/packages/8d/27/b29ff065f9aaca443ee377aff699714fcbffb371b4fce5ac4ca759e436d5/lxml-6.0.2-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6", size = 4718675, upload-time = "2025-09-22T04:02:10.783Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/f756f9c2cd27caa1a6ef8c32ae47aadea697f5c2c6d07b0dae133c244fbe/lxml-6.0.2-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a", size = 5255171, upload-time = "2025-09-22T04:02:12.631Z" }, + { url = "https://files.pythonhosted.org/packages/61/46/bb85ea42d2cb1bd8395484fd72f38e3389611aa496ac7772da9205bbda0e/lxml-6.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679", size = 5057175, upload-time = "2025-09-22T04:02:14.718Z" }, + { url = "https://files.pythonhosted.org/packages/95/0c/443fc476dcc8e41577f0af70458c50fe299a97bb6b7505bb1ae09aa7f9ac/lxml-6.0.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659", size = 4785688, upload-time = "2025-09-22T04:02:16.957Z" }, + { url = "https://files.pythonhosted.org/packages/48/78/6ef0b359d45bb9697bc5a626e1992fa5d27aa3f8004b137b2314793b50a0/lxml-6.0.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484", size = 5660655, upload-time = "2025-09-22T04:02:18.815Z" }, + { url = "https://files.pythonhosted.org/packages/ff/ea/e1d33808f386bc1339d08c0dcada6e4712d4ed8e93fcad5f057070b7988a/lxml-6.0.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2", size = 5247695, upload-time = "2025-09-22T04:02:20.593Z" }, + { url = "https://files.pythonhosted.org/packages/4f/47/eba75dfd8183673725255247a603b4ad606f4ae657b60c6c145b381697da/lxml-6.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314", size = 5269841, upload-time = "2025-09-22T04:02:22.489Z" }, + { url = "https://files.pythonhosted.org/packages/76/04/5c5e2b8577bc936e219becb2e98cdb1aca14a4921a12995b9d0c523502ae/lxml-6.0.2-cp313-cp313-win32.whl", hash = "sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2", size = 3610700, upload-time = "2025-09-22T04:02:24.465Z" }, + { url = "https://files.pythonhosted.org/packages/fe/0a/4643ccc6bb8b143e9f9640aa54e38255f9d3b45feb2cbe7ae2ca47e8782e/lxml-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7", size = 4010347, upload-time = "2025-09-22T04:02:26.286Z" }, + { url = "https://files.pythonhosted.org/packages/31/ef/dcf1d29c3f530577f61e5fe2f1bd72929acf779953668a8a47a479ae6f26/lxml-6.0.2-cp313-cp313-win_arm64.whl", hash = "sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf", size = 3671248, upload-time = "2025-09-22T04:02:27.918Z" }, + { url = "https://files.pythonhosted.org/packages/03/15/d4a377b385ab693ce97b472fe0c77c2b16ec79590e688b3ccc71fba19884/lxml-6.0.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:b0c732aa23de8f8aec23f4b580d1e52905ef468afb4abeafd3fec77042abb6fe", size = 8659801, upload-time = "2025-09-22T04:02:30.113Z" }, + { url = "https://files.pythonhosted.org/packages/c8/e8/c128e37589463668794d503afaeb003987373c5f94d667124ffd8078bbd9/lxml-6.0.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:4468e3b83e10e0317a89a33d28f7aeba1caa4d1a6fd457d115dd4ffe90c5931d", size = 4659403, upload-time = "2025-09-22T04:02:32.119Z" }, + { url = "https://files.pythonhosted.org/packages/00/ce/74903904339decdf7da7847bb5741fc98a5451b42fc419a86c0c13d26fe2/lxml-6.0.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:abd44571493973bad4598a3be7e1d807ed45aa2adaf7ab92ab7c62609569b17d", size = 4966974, upload-time = "2025-09-22T04:02:34.155Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d3/131dec79ce61c5567fecf82515bd9bc36395df42501b50f7f7f3bd065df0/lxml-6.0.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:370cd78d5855cfbffd57c422851f7d3864e6ae72d0da615fca4dad8c45d375a5", size = 5102953, upload-time = "2025-09-22T04:02:36.054Z" }, + { url = "https://files.pythonhosted.org/packages/3a/ea/a43ba9bb750d4ffdd885f2cd333572f5bb900cd2408b67fdda07e85978a0/lxml-6.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:901e3b4219fa04ef766885fb40fa516a71662a4c61b80c94d25336b4934b71c0", size = 5055054, upload-time = "2025-09-22T04:02:38.154Z" }, + { url = "https://files.pythonhosted.org/packages/60/23/6885b451636ae286c34628f70a7ed1fcc759f8d9ad382d132e1c8d3d9bfd/lxml-6.0.2-cp314-cp314-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:a4bf42d2e4cf52c28cc1812d62426b9503cdb0c87a6de81442626aa7d69707ba", size = 5352421, upload-time = "2025-09-22T04:02:40.413Z" }, + { url = "https://files.pythonhosted.org/packages/48/5b/fc2ddfc94ddbe3eebb8e9af6e3fd65e2feba4967f6a4e9683875c394c2d8/lxml-6.0.2-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2c7fdaa4d7c3d886a42534adec7cfac73860b89b4e5298752f60aa5984641a0", size = 5673684, upload-time = "2025-09-22T04:02:42.288Z" }, + { url = "https://files.pythonhosted.org/packages/29/9c/47293c58cc91769130fbf85531280e8cc7868f7fbb6d92f4670071b9cb3e/lxml-6.0.2-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:98a5e1660dc7de2200b00d53fa00bcd3c35a3608c305d45a7bbcaf29fa16e83d", size = 5252463, upload-time = "2025-09-22T04:02:44.165Z" }, + { url = "https://files.pythonhosted.org/packages/9b/da/ba6eceb830c762b48e711ded880d7e3e89fc6c7323e587c36540b6b23c6b/lxml-6.0.2-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:dc051506c30b609238d79eda75ee9cab3e520570ec8219844a72a46020901e37", size = 4698437, upload-time = "2025-09-22T04:02:46.524Z" }, + { url = "https://files.pythonhosted.org/packages/a5/24/7be3f82cb7990b89118d944b619e53c656c97dc89c28cfb143fdb7cd6f4d/lxml-6.0.2-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8799481bbdd212470d17513a54d568f44416db01250f49449647b5ab5b5dccb9", size = 5269890, upload-time = "2025-09-22T04:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/1b/bd/dcfb9ea1e16c665efd7538fc5d5c34071276ce9220e234217682e7d2c4a5/lxml-6.0.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9261bb77c2dab42f3ecd9103951aeca2c40277701eb7e912c545c1b16e0e4917", size = 5097185, upload-time = "2025-09-22T04:02:50.746Z" }, + { url = "https://files.pythonhosted.org/packages/21/04/a60b0ff9314736316f28316b694bccbbabe100f8483ad83852d77fc7468e/lxml-6.0.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:65ac4a01aba353cfa6d5725b95d7aed6356ddc0a3cd734de00124d285b04b64f", size = 4745895, upload-time = "2025-09-22T04:02:52.968Z" }, + { url = "https://files.pythonhosted.org/packages/d6/bd/7d54bd1846e5a310d9c715921c5faa71cf5c0853372adf78aee70c8d7aa2/lxml-6.0.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:b22a07cbb82fea98f8a2fd814f3d1811ff9ed76d0fc6abc84eb21527596e7cc8", size = 5695246, upload-time = "2025-09-22T04:02:54.798Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/5643d6ab947bc371da21323acb2a6e603cedbe71cb4c99c8254289ab6f4e/lxml-6.0.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:d759cdd7f3e055d6bc8d9bec3ad905227b2e4c785dc16c372eb5b5e83123f48a", size = 5260797, upload-time = "2025-09-22T04:02:57.058Z" }, + { url = "https://files.pythonhosted.org/packages/33/da/34c1ec4cff1eea7d0b4cd44af8411806ed943141804ac9c5d565302afb78/lxml-6.0.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:945da35a48d193d27c188037a05fec5492937f66fb1958c24fc761fb9d40d43c", size = 5277404, upload-time = "2025-09-22T04:02:58.966Z" }, + { url = "https://files.pythonhosted.org/packages/82/57/4eca3e31e54dc89e2c3507e1cd411074a17565fa5ffc437c4ae0a00d439e/lxml-6.0.2-cp314-cp314-win32.whl", hash = "sha256:be3aaa60da67e6153eb15715cc2e19091af5dc75faef8b8a585aea372507384b", size = 3670072, upload-time = "2025-09-22T04:03:38.05Z" }, + { url = "https://files.pythonhosted.org/packages/e3/e0/c96cf13eccd20c9421ba910304dae0f619724dcf1702864fd59dd386404d/lxml-6.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:fa25afbadead523f7001caf0c2382afd272c315a033a7b06336da2637d92d6ed", size = 4080617, upload-time = "2025-09-22T04:03:39.835Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5d/b3f03e22b3d38d6f188ef044900a9b29b2fe0aebb94625ce9fe244011d34/lxml-6.0.2-cp314-cp314-win_arm64.whl", hash = "sha256:063eccf89df5b24e361b123e257e437f9e9878f425ee9aae3144c77faf6da6d8", size = 3754930, upload-time = "2025-09-22T04:03:41.565Z" }, + { url = "https://files.pythonhosted.org/packages/5e/5c/42c2c4c03554580708fc738d13414801f340c04c3eff90d8d2d227145275/lxml-6.0.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:6162a86d86893d63084faaf4ff937b3daea233e3682fb4474db07395794fa80d", size = 8910380, upload-time = "2025-09-22T04:03:01.645Z" }, + { url = "https://files.pythonhosted.org/packages/bf/4f/12df843e3e10d18d468a7557058f8d3733e8b6e12401f30b1ef29360740f/lxml-6.0.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:414aaa94e974e23a3e92e7ca5b97d10c0cf37b6481f50911032c69eeb3991bba", size = 4775632, upload-time = "2025-09-22T04:03:03.814Z" }, + { url = "https://files.pythonhosted.org/packages/e4/0c/9dc31e6c2d0d418483cbcb469d1f5a582a1cd00a1f4081953d44051f3c50/lxml-6.0.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:48461bd21625458dd01e14e2c38dd0aea69addc3c4f960c30d9f59d7f93be601", size = 4975171, upload-time = "2025-09-22T04:03:05.651Z" }, + { url = "https://files.pythonhosted.org/packages/e7/2b/9b870c6ca24c841bdd887504808f0417aa9d8d564114689266f19ddf29c8/lxml-6.0.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:25fcc59afc57d527cfc78a58f40ab4c9b8fd096a9a3f964d2781ffb6eb33f4ed", size = 5110109, upload-time = "2025-09-22T04:03:07.452Z" }, + { url = "https://files.pythonhosted.org/packages/bf/0c/4f5f2a4dd319a178912751564471355d9019e220c20d7db3fb8307ed8582/lxml-6.0.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5179c60288204e6ddde3f774a93350177e08876eaf3ab78aa3a3649d43eb7d37", size = 5041061, upload-time = "2025-09-22T04:03:09.297Z" }, + { url = "https://files.pythonhosted.org/packages/12/64/554eed290365267671fe001a20d72d14f468ae4e6acef1e179b039436967/lxml-6.0.2-cp314-cp314t-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:967aab75434de148ec80597b75062d8123cadf2943fb4281f385141e18b21338", size = 5306233, upload-time = "2025-09-22T04:03:11.651Z" }, + { url = "https://files.pythonhosted.org/packages/7a/31/1d748aa275e71802ad9722df32a7a35034246b42c0ecdd8235412c3396ef/lxml-6.0.2-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d100fcc8930d697c6561156c6810ab4a508fb264c8b6779e6e61e2ed5e7558f9", size = 5604739, upload-time = "2025-09-22T04:03:13.592Z" }, + { url = "https://files.pythonhosted.org/packages/8f/41/2c11916bcac09ed561adccacceaedd2bf0e0b25b297ea92aab99fd03d0fa/lxml-6.0.2-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ca59e7e13e5981175b8b3e4ab84d7da57993eeff53c07764dcebda0d0e64ecd", size = 5225119, upload-time = "2025-09-22T04:03:15.408Z" }, + { url = "https://files.pythonhosted.org/packages/99/05/4e5c2873d8f17aa018e6afde417c80cc5d0c33be4854cce3ef5670c49367/lxml-6.0.2-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:957448ac63a42e2e49531b9d6c0fa449a1970dbc32467aaad46f11545be9af1d", size = 4633665, upload-time = "2025-09-22T04:03:17.262Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c9/dcc2da1bebd6275cdc723b515f93edf548b82f36a5458cca3578bc899332/lxml-6.0.2-cp314-cp314t-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b7fc49c37f1786284b12af63152fe1d0990722497e2d5817acfe7a877522f9a9", size = 5234997, upload-time = "2025-09-22T04:03:19.14Z" }, + { url = "https://files.pythonhosted.org/packages/9c/e2/5172e4e7468afca64a37b81dba152fc5d90e30f9c83c7c3213d6a02a5ce4/lxml-6.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e19e0643cc936a22e837f79d01a550678da8377d7d801a14487c10c34ee49c7e", size = 5090957, upload-time = "2025-09-22T04:03:21.436Z" }, + { url = "https://files.pythonhosted.org/packages/a5/b3/15461fd3e5cd4ddcb7938b87fc20b14ab113b92312fc97afe65cd7c85de1/lxml-6.0.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:1db01e5cf14345628e0cbe71067204db658e2fb8e51e7f33631f5f4735fefd8d", size = 4764372, upload-time = "2025-09-22T04:03:23.27Z" }, + { url = "https://files.pythonhosted.org/packages/05/33/f310b987c8bf9e61c4dd8e8035c416bd3230098f5e3cfa69fc4232de7059/lxml-6.0.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:875c6b5ab39ad5291588aed6925fac99d0097af0dd62f33c7b43736043d4a2ec", size = 5634653, upload-time = "2025-09-22T04:03:25.767Z" }, + { url = "https://files.pythonhosted.org/packages/70/ff/51c80e75e0bc9382158133bdcf4e339b5886c6ee2418b5199b3f1a61ed6d/lxml-6.0.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:cdcbed9ad19da81c480dfd6dd161886db6096083c9938ead313d94b30aadf272", size = 5233795, upload-time = "2025-09-22T04:03:27.62Z" }, + { url = "https://files.pythonhosted.org/packages/56/4d/4856e897df0d588789dd844dbed9d91782c4ef0b327f96ce53c807e13128/lxml-6.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:80dadc234ebc532e09be1975ff538d154a7fa61ea5031c03d25178855544728f", size = 5257023, upload-time = "2025-09-22T04:03:30.056Z" }, + { url = "https://files.pythonhosted.org/packages/0f/85/86766dfebfa87bea0ab78e9ff7a4b4b45225df4b4d3b8cc3c03c5cd68464/lxml-6.0.2-cp314-cp314t-win32.whl", hash = "sha256:da08e7bb297b04e893d91087df19638dc7a6bb858a954b0cc2b9f5053c922312", size = 3911420, upload-time = "2025-09-22T04:03:32.198Z" }, + { url = "https://files.pythonhosted.org/packages/fe/1a/b248b355834c8e32614650b8008c69ffeb0ceb149c793961dd8c0b991bb3/lxml-6.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:252a22982dca42f6155125ac76d3432e548a7625d56f5a273ee78a5057216eca", size = 4406837, upload-time = "2025-09-22T04:03:34.027Z" }, + { url = "https://files.pythonhosted.org/packages/92/aa/df863bcc39c5e0946263454aba394de8a9084dbaff8ad143846b0d844739/lxml-6.0.2-cp314-cp314t-win_arm64.whl", hash = "sha256:bb4c1847b303835d89d785a18801a883436cdfd5dc3d62947f9c49e24f0f5a2c", size = 3822205, upload-time = "2025-09-22T04:03:36.249Z" }, + { url = "https://files.pythonhosted.org/packages/e7/9c/780c9a8fce3f04690b374f72f41306866b0400b9d0fdf3e17aaa37887eed/lxml-6.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e748d4cf8fef2526bb2a589a417eba0c8674e29ffcb570ce2ceca44f1e567bf6", size = 3939264, upload-time = "2025-09-22T04:04:32.892Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5a/1ab260c00adf645d8bf7dec7f920f744b032f69130c681302821d5debea6/lxml-6.0.2-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4ddb1049fa0579d0cbd00503ad8c58b9ab34d1254c77bc6a5576d96ec7853dba", size = 4216435, upload-time = "2025-09-22T04:04:34.907Z" }, + { url = "https://files.pythonhosted.org/packages/f2/37/565f3b3d7ffede22874b6d86be1a1763d00f4ea9fc5b9b6ccb11e4ec8612/lxml-6.0.2-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cb233f9c95f83707dae461b12b720c1af9c28c2d19208e1be03387222151daf5", size = 4325913, upload-time = "2025-09-22T04:04:37.205Z" }, + { url = "https://files.pythonhosted.org/packages/22/ec/f3a1b169b2fb9d03467e2e3c0c752ea30e993be440a068b125fc7dd248b0/lxml-6.0.2-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc456d04db0515ce3320d714a1eac7a97774ff0849e7718b492d957da4631dd4", size = 4269357, upload-time = "2025-09-22T04:04:39.322Z" }, + { url = "https://files.pythonhosted.org/packages/77/a2/585a28fe3e67daa1cf2f06f34490d556d121c25d500b10082a7db96e3bcd/lxml-6.0.2-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2613e67de13d619fd283d58bda40bff0ee07739f624ffee8b13b631abf33083d", size = 4412295, upload-time = "2025-09-22T04:04:41.647Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d9/a57dd8bcebd7c69386c20263830d4fa72d27e6b72a229ef7a48e88952d9a/lxml-6.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:24a8e756c982c001ca8d59e87c80c4d9dcd4d9b44a4cbeb8d9be4482c514d41d", size = 3516913, upload-time = "2025-09-22T04:04:43.602Z" }, + { url = "https://files.pythonhosted.org/packages/0b/11/29d08bc103a62c0eba8016e7ed5aeebbf1e4312e83b0b1648dd203b0e87d/lxml-6.0.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700", size = 3949829, upload-time = "2025-09-22T04:04:45.608Z" }, + { url = "https://files.pythonhosted.org/packages/12/b3/52ab9a3b31e5ab8238da241baa19eec44d2ab426532441ee607165aebb52/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee", size = 4226277, upload-time = "2025-09-22T04:04:47.754Z" }, + { url = "https://files.pythonhosted.org/packages/a0/33/1eaf780c1baad88224611df13b1c2a9dfa460b526cacfe769103ff50d845/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f", size = 4330433, upload-time = "2025-09-22T04:04:49.907Z" }, + { url = "https://files.pythonhosted.org/packages/7a/c1/27428a2ff348e994ab4f8777d3a0ad510b6b92d37718e5887d2da99952a2/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9", size = 4272119, upload-time = "2025-09-22T04:04:51.801Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d0/3020fa12bcec4ab62f97aab026d57c2f0cfd480a558758d9ca233bb6a79d/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a", size = 4417314, upload-time = "2025-09-22T04:04:55.024Z" }, + { url = "https://files.pythonhosted.org/packages/6c/77/d7f491cbc05303ac6801651aabeb262d43f319288c1ea96c66b1d2692ff3/lxml-6.0.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e", size = 3518768, upload-time = "2025-09-22T04:04:57.097Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "mcp" +version = "1.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "jsonschema" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "python-multipart" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/6d/62e76bbb8144d6ed86e202b5edd8a4cb631e7c8130f3f4893c3f90262b10/mcp-1.26.0.tar.gz", hash = "sha256:db6e2ef491eecc1a0d93711a76f28dec2e05999f93afd48795da1c1137142c66", size = 608005, upload-time = "2026-01-24T19:40:32.468Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/d9/eaa1f80170d2b7c5ba23f3b59f766f3a0bb41155fbc32a69adfa1adaaef9/mcp-1.26.0-py3-none-any.whl", hash = "sha256:904a21c33c25aa98ddbeb47273033c435e595bbacfdb177f4bd87f6dceebe1ca", size = 233615, upload-time = "2026-01-24T19:40:30.652Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "mmh3" +version = "5.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/af/f28c2c2f51f31abb4725f9a64bc7863d5f491f6539bd26aee2a1d21a649e/mmh3-5.2.0.tar.gz", hash = "sha256:1efc8fec8478e9243a78bb993422cf79f8ff85cb4cf6b79647480a31e0d950a8", size = 33582, upload-time = "2025-07-29T07:43:48.49Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/2b/870f0ff5ecf312c58500f45950751f214b7068665e66e9bfd8bc2595587c/mmh3-5.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:81c504ad11c588c8629536b032940f2a359dda3b6cbfd4ad8f74cb24dcd1b0bc", size = 56119, upload-time = "2025-07-29T07:41:39.117Z" }, + { url = "https://files.pythonhosted.org/packages/3b/88/eb9a55b3f3cf43a74d6bfa8db0e2e209f966007777a1dc897c52c008314c/mmh3-5.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0b898cecff57442724a0f52bf42c2de42de63083a91008fb452887e372f9c328", size = 40634, upload-time = "2025-07-29T07:41:40.626Z" }, + { url = "https://files.pythonhosted.org/packages/d1/4c/8e4b3878bf8435c697d7ce99940a3784eb864521768069feaccaff884a17/mmh3-5.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be1374df449465c9f2500e62eee73a39db62152a8bdfbe12ec5b5c1cd451344d", size = 40080, upload-time = "2025-07-29T07:41:41.791Z" }, + { url = "https://files.pythonhosted.org/packages/45/ac/0a254402c8c5ca424a0a9ebfe870f5665922f932830f0a11a517b6390a09/mmh3-5.2.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b0d753ad566c721faa33db7e2e0eddd74b224cdd3eaf8481d76c926603c7a00e", size = 95321, upload-time = "2025-07-29T07:41:42.659Z" }, + { url = "https://files.pythonhosted.org/packages/39/8e/29306d5eca6dfda4b899d22c95b5420db4e0ffb7e0b6389b17379654ece5/mmh3-5.2.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:dfbead5575f6470c17e955b94f92d62a03dfc3d07f2e6f817d9b93dc211a1515", size = 101220, upload-time = "2025-07-29T07:41:43.572Z" }, + { url = "https://files.pythonhosted.org/packages/49/f7/0dd1368e531e52a17b5b8dd2f379cce813bff2d0978a7748a506f1231152/mmh3-5.2.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7434a27754049144539d2099a6d2da5d88b8bdeedf935180bf42ad59b3607aa3", size = 103991, upload-time = "2025-07-29T07:41:44.914Z" }, + { url = "https://files.pythonhosted.org/packages/35/06/abc7122c40f4abbfcef01d2dac6ec0b77ede9757e5be8b8a40a6265b1274/mmh3-5.2.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cadc16e8ea64b5d9a47363013e2bea469e121e6e7cb416a7593aeb24f2ad122e", size = 110894, upload-time = "2025-07-29T07:41:45.849Z" }, + { url = "https://files.pythonhosted.org/packages/f4/2f/837885759afa4baccb8e40456e1cf76a4f3eac835b878c727ae1286c5f82/mmh3-5.2.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d765058da196f68dc721116cab335e696e87e76720e6ef8ee5a24801af65e63d", size = 118327, upload-time = "2025-07-29T07:41:47.224Z" }, + { url = "https://files.pythonhosted.org/packages/40/cc/5683ba20a21bcfb3f1605b1c474f46d30354f728a7412201f59f453d405a/mmh3-5.2.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8b0c53fe0994beade1ad7c0f13bd6fec980a0664bfbe5a6a7d64500b9ab76772", size = 101701, upload-time = "2025-07-29T07:41:48.259Z" }, + { url = "https://files.pythonhosted.org/packages/0e/24/99ab3fb940150aec8a26dbdfc39b200b5592f6aeb293ec268df93e054c30/mmh3-5.2.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:49037d417419863b222ae47ee562b2de9c3416add0a45c8d7f4e864be8dc4f89", size = 96712, upload-time = "2025-07-29T07:41:49.467Z" }, + { url = "https://files.pythonhosted.org/packages/61/04/d7c4cb18f1f001ede2e8aed0f9dbbfad03d161c9eea4fffb03f14f4523e5/mmh3-5.2.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:6ecb4e750d712abde046858ee6992b65c93f1f71b397fce7975c3860c07365d2", size = 110302, upload-time = "2025-07-29T07:41:50.387Z" }, + { url = "https://files.pythonhosted.org/packages/d8/bf/4dac37580cfda74425a4547500c36fa13ef581c8a756727c37af45e11e9a/mmh3-5.2.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:382a6bb3f8c6532ea084e7acc5be6ae0c6effa529240836d59352398f002e3fc", size = 111929, upload-time = "2025-07-29T07:41:51.348Z" }, + { url = "https://files.pythonhosted.org/packages/eb/b1/49f0a582c7a942fb71ddd1ec52b7d21d2544b37d2b2d994551346a15b4f6/mmh3-5.2.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7733ec52296fc1ba22e9b90a245c821adbb943e98c91d8a330a2254612726106", size = 100111, upload-time = "2025-07-29T07:41:53.139Z" }, + { url = "https://files.pythonhosted.org/packages/dc/94/ccec09f438caeb2506f4c63bb3b99aa08a9e09880f8fc047295154756210/mmh3-5.2.0-cp310-cp310-win32.whl", hash = "sha256:127c95336f2a98c51e7682341ab7cb0be3adb9df0819ab8505a726ed1801876d", size = 40783, upload-time = "2025-07-29T07:41:54.463Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f4/8d39a32c8203c1cdae88fdb04d1ea4aa178c20f159df97f4c5a2eaec702c/mmh3-5.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:419005f84ba1cab47a77465a2a843562dadadd6671b8758bf179d82a15ca63eb", size = 41549, upload-time = "2025-07-29T07:41:55.295Z" }, + { url = "https://files.pythonhosted.org/packages/cc/a1/30efb1cd945e193f62574144dd92a0c9ee6463435e4e8ffce9b9e9f032f0/mmh3-5.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:d22c9dcafed659fadc605538946c041722b6d1104fe619dbf5cc73b3c8a0ded8", size = 39335, upload-time = "2025-07-29T07:41:56.194Z" }, + { url = "https://files.pythonhosted.org/packages/f7/87/399567b3796e134352e11a8b973cd470c06b2ecfad5468fe580833be442b/mmh3-5.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7901c893e704ee3c65f92d39b951f8f34ccf8e8566768c58103fb10e55afb8c1", size = 56107, upload-time = "2025-07-29T07:41:57.07Z" }, + { url = "https://files.pythonhosted.org/packages/c3/09/830af30adf8678955b247d97d3d9543dd2fd95684f3cd41c0cd9d291da9f/mmh3-5.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4a5f5536b1cbfa72318ab3bfc8a8188b949260baed186b75f0abc75b95d8c051", size = 40635, upload-time = "2025-07-29T07:41:57.903Z" }, + { url = "https://files.pythonhosted.org/packages/07/14/eaba79eef55b40d653321765ac5e8f6c9ac38780b8a7c2a2f8df8ee0fb72/mmh3-5.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cedac4f4054b8f7859e5aed41aaa31ad03fce6851901a7fdc2af0275ac533c10", size = 40078, upload-time = "2025-07-29T07:41:58.772Z" }, + { url = "https://files.pythonhosted.org/packages/bb/26/83a0f852e763f81b2265d446b13ed6d49ee49e1fc0c47b9655977e6f3d81/mmh3-5.2.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:eb756caf8975882630ce4e9fbbeb9d3401242a72528230422c9ab3a0d278e60c", size = 97262, upload-time = "2025-07-29T07:41:59.678Z" }, + { url = "https://files.pythonhosted.org/packages/00/7d/b7133b10d12239aeaebf6878d7eaf0bf7d3738c44b4aba3c564588f6d802/mmh3-5.2.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:097e13c8b8a66c5753c6968b7640faefe85d8e38992703c1f666eda6ef4c3762", size = 103118, upload-time = "2025-07-29T07:42:01.197Z" }, + { url = "https://files.pythonhosted.org/packages/7b/3e/62f0b5dce2e22fd5b7d092aba285abd7959ea2b17148641e029f2eab1ffa/mmh3-5.2.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a7c0c7845566b9686480e6a7e9044db4afb60038d5fabd19227443f0104eeee4", size = 106072, upload-time = "2025-07-29T07:42:02.601Z" }, + { url = "https://files.pythonhosted.org/packages/66/84/ea88bb816edfe65052c757a1c3408d65c4201ddbd769d4a287b0f1a628b2/mmh3-5.2.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:61ac226af521a572700f863d6ecddc6ece97220ce7174e311948ff8c8919a363", size = 112925, upload-time = "2025-07-29T07:42:03.632Z" }, + { url = "https://files.pythonhosted.org/packages/2e/13/c9b1c022807db575fe4db806f442d5b5784547e2e82cff36133e58ea31c7/mmh3-5.2.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:582f9dbeefe15c32a5fa528b79b088b599a1dfe290a4436351c6090f90ddebb8", size = 120583, upload-time = "2025-07-29T07:42:04.991Z" }, + { url = "https://files.pythonhosted.org/packages/8a/5f/0e2dfe1a38f6a78788b7eb2b23432cee24623aeabbc907fed07fc17d6935/mmh3-5.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2ebfc46b39168ab1cd44670a32ea5489bcbc74a25795c61b6d888c5c2cf654ed", size = 99127, upload-time = "2025-07-29T07:42:05.929Z" }, + { url = "https://files.pythonhosted.org/packages/77/27/aefb7d663b67e6a0c4d61a513c83e39ba2237e8e4557fa7122a742a23de5/mmh3-5.2.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1556e31e4bd0ac0c17eaf220be17a09c171d7396919c3794274cb3415a9d3646", size = 98544, upload-time = "2025-07-29T07:42:06.87Z" }, + { url = "https://files.pythonhosted.org/packages/ab/97/a21cc9b1a7c6e92205a1b5fa030cdf62277d177570c06a239eca7bd6dd32/mmh3-5.2.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:81df0dae22cd0da87f1c978602750f33d17fb3d21fb0f326c89dc89834fea79b", size = 106262, upload-time = "2025-07-29T07:42:07.804Z" }, + { url = "https://files.pythonhosted.org/packages/43/18/db19ae82ea63c8922a880e1498a75342311f8aa0c581c4dd07711473b5f7/mmh3-5.2.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:eba01ec3bd4a49b9ac5ca2bc6a73ff5f3af53374b8556fcc2966dd2af9eb7779", size = 109824, upload-time = "2025-07-29T07:42:08.735Z" }, + { url = "https://files.pythonhosted.org/packages/9f/f5/41dcf0d1969125fc6f61d8618b107c79130b5af50b18a4651210ea52ab40/mmh3-5.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e9a011469b47b752e7d20de296bb34591cdfcbe76c99c2e863ceaa2aa61113d2", size = 97255, upload-time = "2025-07-29T07:42:09.706Z" }, + { url = "https://files.pythonhosted.org/packages/32/b3/cce9eaa0efac1f0e735bb178ef9d1d2887b4927fe0ec16609d5acd492dda/mmh3-5.2.0-cp311-cp311-win32.whl", hash = "sha256:bc44fc2b886243d7c0d8daeb37864e16f232e5b56aaec27cc781d848264cfd28", size = 40779, upload-time = "2025-07-29T07:42:10.546Z" }, + { url = "https://files.pythonhosted.org/packages/7c/e9/3fa0290122e6d5a7041b50ae500b8a9f4932478a51e48f209a3879fe0b9b/mmh3-5.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:8ebf241072cf2777a492d0e09252f8cc2b3edd07dfdb9404b9757bffeb4f2cee", size = 41549, upload-time = "2025-07-29T07:42:11.399Z" }, + { url = "https://files.pythonhosted.org/packages/3a/54/c277475b4102588e6f06b2e9095ee758dfe31a149312cdbf62d39a9f5c30/mmh3-5.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:b5f317a727bba0e633a12e71228bc6a4acb4f471a98b1c003163b917311ea9a9", size = 39336, upload-time = "2025-07-29T07:42:12.209Z" }, + { url = "https://files.pythonhosted.org/packages/bf/6a/d5aa7edb5c08e0bd24286c7d08341a0446f9a2fbbb97d96a8a6dd81935ee/mmh3-5.2.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:384eda9361a7bf83a85e09447e1feafe081034af9dd428893701b959230d84be", size = 56141, upload-time = "2025-07-29T07:42:13.456Z" }, + { url = "https://files.pythonhosted.org/packages/08/49/131d0fae6447bc4a7299ebdb1a6fb9d08c9f8dcf97d75ea93e8152ddf7ab/mmh3-5.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2c9da0d568569cc87315cb063486d761e38458b8ad513fedd3dc9263e1b81bcd", size = 40681, upload-time = "2025-07-29T07:42:14.306Z" }, + { url = "https://files.pythonhosted.org/packages/8f/6f/9221445a6bcc962b7f5ff3ba18ad55bba624bacdc7aa3fc0a518db7da8ec/mmh3-5.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86d1be5d63232e6eb93c50881aea55ff06eb86d8e08f9b5417c8c9b10db9db96", size = 40062, upload-time = "2025-07-29T07:42:15.08Z" }, + { url = "https://files.pythonhosted.org/packages/1e/d4/6bb2d0fef81401e0bb4c297d1eb568b767de4ce6fc00890bc14d7b51ecc4/mmh3-5.2.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bf7bee43e17e81671c447e9c83499f53d99bf440bc6d9dc26a841e21acfbe094", size = 97333, upload-time = "2025-07-29T07:42:16.436Z" }, + { url = "https://files.pythonhosted.org/packages/44/e0/ccf0daff8134efbb4fbc10a945ab53302e358c4b016ada9bf97a6bdd50c1/mmh3-5.2.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7aa18cdb58983ee660c9c400b46272e14fa253c675ed963d3812487f8ca42037", size = 103310, upload-time = "2025-07-29T07:42:17.796Z" }, + { url = "https://files.pythonhosted.org/packages/02/63/1965cb08a46533faca0e420e06aff8bbaf9690a6f0ac6ae6e5b2e4544687/mmh3-5.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae9d032488fcec32d22be6542d1a836f00247f40f320844dbb361393b5b22773", size = 106178, upload-time = "2025-07-29T07:42:19.281Z" }, + { url = "https://files.pythonhosted.org/packages/c2/41/c883ad8e2c234013f27f92061200afc11554ea55edd1bcf5e1accd803a85/mmh3-5.2.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1861fb6b1d0453ed7293200139c0a9011eeb1376632e048e3766945b13313c5", size = 113035, upload-time = "2025-07-29T07:42:20.356Z" }, + { url = "https://files.pythonhosted.org/packages/df/b5/1ccade8b1fa625d634a18bab7bf08a87457e09d5ec8cf83ca07cbea9d400/mmh3-5.2.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:99bb6a4d809aa4e528ddfe2c85dd5239b78b9dd14be62cca0329db78505e7b50", size = 120784, upload-time = "2025-07-29T07:42:21.377Z" }, + { url = "https://files.pythonhosted.org/packages/77/1c/919d9171fcbdcdab242e06394464ccf546f7d0f3b31e0d1e3a630398782e/mmh3-5.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1f8d8b627799f4e2fcc7c034fed8f5f24dc7724ff52f69838a3d6d15f1ad4765", size = 99137, upload-time = "2025-07-29T07:42:22.344Z" }, + { url = "https://files.pythonhosted.org/packages/66/8a/1eebef5bd6633d36281d9fc83cf2e9ba1ba0e1a77dff92aacab83001cee4/mmh3-5.2.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b5995088dd7023d2d9f310a0c67de5a2b2e06a570ecfd00f9ff4ab94a67cde43", size = 98664, upload-time = "2025-07-29T07:42:23.269Z" }, + { url = "https://files.pythonhosted.org/packages/13/41/a5d981563e2ee682b21fb65e29cc0f517a6734a02b581359edd67f9d0360/mmh3-5.2.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1a5f4d2e59d6bba8ef01b013c472741835ad961e7c28f50c82b27c57748744a4", size = 106459, upload-time = "2025-07-29T07:42:24.238Z" }, + { url = "https://files.pythonhosted.org/packages/24/31/342494cd6ab792d81e083680875a2c50fa0c5df475ebf0b67784f13e4647/mmh3-5.2.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fd6e6c3d90660d085f7e73710eab6f5545d4854b81b0135a3526e797009dbda3", size = 110038, upload-time = "2025-07-29T07:42:25.629Z" }, + { url = "https://files.pythonhosted.org/packages/28/44/efda282170a46bb4f19c3e2b90536513b1d821c414c28469a227ca5a1789/mmh3-5.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c4a2f3d83879e3de2eb8cbf562e71563a8ed15ee9b9c2e77ca5d9f73072ac15c", size = 97545, upload-time = "2025-07-29T07:42:27.04Z" }, + { url = "https://files.pythonhosted.org/packages/68/8f/534ae319c6e05d714f437e7206f78c17e66daca88164dff70286b0e8ea0c/mmh3-5.2.0-cp312-cp312-win32.whl", hash = "sha256:2421b9d665a0b1ad724ec7332fb5a98d075f50bc51a6ff854f3a1882bd650d49", size = 40805, upload-time = "2025-07-29T07:42:28.032Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f6/f6abdcfefcedab3c964868048cfe472764ed358c2bf6819a70dd4ed4ed3a/mmh3-5.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:72d80005b7634a3a2220f81fbeb94775ebd12794623bb2e1451701ea732b4aa3", size = 41597, upload-time = "2025-07-29T07:42:28.894Z" }, + { url = "https://files.pythonhosted.org/packages/15/fd/f7420e8cbce45c259c770cac5718badf907b302d3a99ec587ba5ce030237/mmh3-5.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:3d6bfd9662a20c054bc216f861fa330c2dac7c81e7fb8307b5e32ab5b9b4d2e0", size = 39350, upload-time = "2025-07-29T07:42:29.794Z" }, + { url = "https://files.pythonhosted.org/packages/d8/fa/27f6ab93995ef6ad9f940e96593c5dd24744d61a7389532b0fec03745607/mmh3-5.2.0-cp313-cp313-android_21_arm64_v8a.whl", hash = "sha256:e79c00eba78f7258e5b354eccd4d7907d60317ced924ea4a5f2e9d83f5453065", size = 40874, upload-time = "2025-07-29T07:42:30.662Z" }, + { url = "https://files.pythonhosted.org/packages/11/9c/03d13bcb6a03438bc8cac3d2e50f80908d159b31a4367c2e1a7a077ded32/mmh3-5.2.0-cp313-cp313-android_21_x86_64.whl", hash = "sha256:956127e663d05edbeec54df38885d943dfa27406594c411139690485128525de", size = 42012, upload-time = "2025-07-29T07:42:31.539Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/0865d9765408a7d504f1789944e678f74e0888b96a766d578cb80b040999/mmh3-5.2.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:c3dca4cb5b946ee91b3d6bb700d137b1cd85c20827f89fdf9c16258253489044", size = 39197, upload-time = "2025-07-29T07:42:32.374Z" }, + { url = "https://files.pythonhosted.org/packages/3e/12/76c3207bd186f98b908b6706c2317abb73756d23a4e68ea2bc94825b9015/mmh3-5.2.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:e651e17bfde5840e9e4174b01e9e080ce49277b70d424308b36a7969d0d1af73", size = 39840, upload-time = "2025-07-29T07:42:33.227Z" }, + { url = "https://files.pythonhosted.org/packages/5d/0d/574b6cce5555c9f2b31ea189ad44986755eb14e8862db28c8b834b8b64dc/mmh3-5.2.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:9f64bf06f4bf623325fda3a6d02d36cd69199b9ace99b04bb2d7fd9f89688504", size = 40644, upload-time = "2025-07-29T07:42:34.099Z" }, + { url = "https://files.pythonhosted.org/packages/52/82/3731f8640b79c46707f53ed72034a58baad400be908c87b0088f1f89f986/mmh3-5.2.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ddc63328889bcaee77b743309e5c7d2d52cee0d7d577837c91b6e7cc9e755e0b", size = 56153, upload-time = "2025-07-29T07:42:35.031Z" }, + { url = "https://files.pythonhosted.org/packages/4f/34/e02dca1d4727fd9fdeaff9e2ad6983e1552804ce1d92cc796e5b052159bb/mmh3-5.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bb0fdc451fb6d86d81ab8f23d881b8d6e37fc373a2deae1c02d27002d2ad7a05", size = 40684, upload-time = "2025-07-29T07:42:35.914Z" }, + { url = "https://files.pythonhosted.org/packages/8f/36/3dee40767356e104967e6ed6d102ba47b0b1ce2a89432239b95a94de1b89/mmh3-5.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b29044e1ffdb84fe164d0a7ea05c7316afea93c00f8ed9449cf357c36fc4f814", size = 40057, upload-time = "2025-07-29T07:42:36.755Z" }, + { url = "https://files.pythonhosted.org/packages/31/58/228c402fccf76eb39a0a01b8fc470fecf21965584e66453b477050ee0e99/mmh3-5.2.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:58981d6ea9646dbbf9e59a30890cbf9f610df0e4a57dbfe09215116fd90b0093", size = 97344, upload-time = "2025-07-29T07:42:37.675Z" }, + { url = "https://files.pythonhosted.org/packages/34/82/fc5ce89006389a6426ef28e326fc065b0fbaaed230373b62d14c889f47ea/mmh3-5.2.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7e5634565367b6d98dc4aa2983703526ef556b3688ba3065edb4b9b90ede1c54", size = 103325, upload-time = "2025-07-29T07:42:38.591Z" }, + { url = "https://files.pythonhosted.org/packages/09/8c/261e85777c6aee1ebd53f2f17e210e7481d5b0846cd0b4a5c45f1e3761b8/mmh3-5.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0271ac12415afd3171ab9a3c7cbfc71dee2c68760a7dc9d05bf8ed6ddfa3a7a", size = 106240, upload-time = "2025-07-29T07:42:39.563Z" }, + { url = "https://files.pythonhosted.org/packages/70/73/2f76b3ad8a3d431824e9934403df36c0ddacc7831acf82114bce3c4309c8/mmh3-5.2.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:45b590e31bc552c6f8e2150ff1ad0c28dd151e9f87589e7eaf508fbdd8e8e908", size = 113060, upload-time = "2025-07-29T07:42:40.585Z" }, + { url = "https://files.pythonhosted.org/packages/9f/b9/7ea61a34e90e50a79a9d87aa1c0b8139a7eaf4125782b34b7d7383472633/mmh3-5.2.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bdde97310d59604f2a9119322f61b31546748499a21b44f6715e8ced9308a6c5", size = 120781, upload-time = "2025-07-29T07:42:41.618Z" }, + { url = "https://files.pythonhosted.org/packages/0f/5b/ae1a717db98c7894a37aeedbd94b3f99e6472a836488f36b6849d003485b/mmh3-5.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc9c5f280438cf1c1a8f9abb87dc8ce9630a964120cfb5dd50d1e7ce79690c7a", size = 99174, upload-time = "2025-07-29T07:42:42.587Z" }, + { url = "https://files.pythonhosted.org/packages/e3/de/000cce1d799fceebb6d4487ae29175dd8e81b48e314cba7b4da90bcf55d7/mmh3-5.2.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c903e71fd8debb35ad2a4184c1316b3cb22f64ce517b4e6747f25b0a34e41266", size = 98734, upload-time = "2025-07-29T07:42:43.996Z" }, + { url = "https://files.pythonhosted.org/packages/79/19/0dc364391a792b72fbb22becfdeacc5add85cc043cd16986e82152141883/mmh3-5.2.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:eed4bba7ff8a0d37106ba931ab03bdd3915fbb025bcf4e1f0aa02bc8114960c5", size = 106493, upload-time = "2025-07-29T07:42:45.07Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b1/bc8c28e4d6e807bbb051fefe78e1156d7f104b89948742ad310612ce240d/mmh3-5.2.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1fdb36b940e9261aff0b5177c5b74a36936b902f473180f6c15bde26143681a9", size = 110089, upload-time = "2025-07-29T07:42:46.122Z" }, + { url = "https://files.pythonhosted.org/packages/3b/a2/d20f3f5c95e9c511806686c70d0a15479cc3941c5f322061697af1c1ff70/mmh3-5.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7303aab41e97adcf010a09efd8f1403e719e59b7705d5e3cfed3dd7571589290", size = 97571, upload-time = "2025-07-29T07:42:47.18Z" }, + { url = "https://files.pythonhosted.org/packages/7b/23/665296fce4f33488deec39a750ffd245cfc07aafb0e3ef37835f91775d14/mmh3-5.2.0-cp313-cp313-win32.whl", hash = "sha256:03e08c6ebaf666ec1e3d6ea657a2d363bb01effd1a9acfe41f9197decaef0051", size = 40806, upload-time = "2025-07-29T07:42:48.166Z" }, + { url = "https://files.pythonhosted.org/packages/59/b0/92e7103f3b20646e255b699e2d0327ce53a3f250e44367a99dc8be0b7c7a/mmh3-5.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:7fddccd4113e7b736706e17a239a696332360cbaddf25ae75b57ba1acce65081", size = 41600, upload-time = "2025-07-29T07:42:49.371Z" }, + { url = "https://files.pythonhosted.org/packages/99/22/0b2bd679a84574647de538c5b07ccaa435dbccc37815067fe15b90fe8dad/mmh3-5.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:fa0c966ee727aad5406d516375593c5f058c766b21236ab8985693934bb5085b", size = 39349, upload-time = "2025-07-29T07:42:50.268Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ca/a20db059a8a47048aaf550da14a145b56e9c7386fb8280d3ce2962dcebf7/mmh3-5.2.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:e5015f0bb6eb50008bed2d4b1ce0f2a294698a926111e4bb202c0987b4f89078", size = 39209, upload-time = "2025-07-29T07:42:51.559Z" }, + { url = "https://files.pythonhosted.org/packages/98/dd/e5094799d55c7482d814b979a0fd608027d0af1b274bfb4c3ea3e950bfd5/mmh3-5.2.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:e0f3ed828d709f5b82d8bfe14f8856120718ec4bd44a5b26102c3030a1e12501", size = 39843, upload-time = "2025-07-29T07:42:52.536Z" }, + { url = "https://files.pythonhosted.org/packages/f4/6b/7844d7f832c85400e7cc89a1348e4e1fdd38c5a38415bb5726bbb8fcdb6c/mmh3-5.2.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:f35727c5118aba95f0397e18a1a5b8405425581bfe53e821f0fb444cbdc2bc9b", size = 40648, upload-time = "2025-07-29T07:42:53.392Z" }, + { url = "https://files.pythonhosted.org/packages/1f/bf/71f791f48a21ff3190ba5225807cbe4f7223360e96862c376e6e3fb7efa7/mmh3-5.2.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3bc244802ccab5220008cb712ca1508cb6a12f0eb64ad62997156410579a1770", size = 56164, upload-time = "2025-07-29T07:42:54.267Z" }, + { url = "https://files.pythonhosted.org/packages/70/1f/f87e3d34d83032b4f3f0f528c6d95a98290fcacf019da61343a49dccfd51/mmh3-5.2.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ff3d50dc3fe8a98059f99b445dfb62792b5d006c5e0b8f03c6de2813b8376110", size = 40692, upload-time = "2025-07-29T07:42:55.234Z" }, + { url = "https://files.pythonhosted.org/packages/a6/e2/db849eaed07117086f3452feca8c839d30d38b830ac59fe1ce65af8be5ad/mmh3-5.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:37a358cc881fe796e099c1db6ce07ff757f088827b4e8467ac52b7a7ffdca647", size = 40068, upload-time = "2025-07-29T07:42:56.158Z" }, + { url = "https://files.pythonhosted.org/packages/df/6b/209af927207af77425b044e32f77f49105a0b05d82ff88af6971d8da4e19/mmh3-5.2.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:b9a87025121d1c448f24f27ff53a5fe7b6ef980574b4a4f11acaabe702420d63", size = 97367, upload-time = "2025-07-29T07:42:57.037Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e0/78adf4104c425606a9ce33fb351f790c76a6c2314969c4a517d1ffc92196/mmh3-5.2.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1ba55d6ca32eeef8b2625e1e4bfc3b3db52bc63014bd7e5df8cc11bf2b036b12", size = 103306, upload-time = "2025-07-29T07:42:58.522Z" }, + { url = "https://files.pythonhosted.org/packages/a3/79/c2b89f91b962658b890104745b1b6c9ce38d50a889f000b469b91eeb1b9e/mmh3-5.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9ff37ba9f15637e424c2ab57a1a590c52897c845b768e4e0a4958084ec87f22", size = 106312, upload-time = "2025-07-29T07:42:59.552Z" }, + { url = "https://files.pythonhosted.org/packages/4b/14/659d4095528b1a209be90934778c5ffe312177d51e365ddcbca2cac2ec7c/mmh3-5.2.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a094319ec0db52a04af9fdc391b4d39a1bc72bc8424b47c4411afb05413a44b5", size = 113135, upload-time = "2025-07-29T07:43:00.745Z" }, + { url = "https://files.pythonhosted.org/packages/8d/6f/cd7734a779389a8a467b5c89a48ff476d6f2576e78216a37551a97e9e42a/mmh3-5.2.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c5584061fd3da584659b13587f26c6cad25a096246a481636d64375d0c1f6c07", size = 120775, upload-time = "2025-07-29T07:43:02.124Z" }, + { url = "https://files.pythonhosted.org/packages/1d/ca/8256e3b96944408940de3f9291d7e38a283b5761fe9614d4808fcf27bd62/mmh3-5.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ecbfc0437ddfdced5e7822d1ce4855c9c64f46819d0fdc4482c53f56c707b935", size = 99178, upload-time = "2025-07-29T07:43:03.182Z" }, + { url = "https://files.pythonhosted.org/packages/8a/32/39e2b3cf06b6e2eb042c984dab8680841ac2a0d3ca6e0bea30db1f27b565/mmh3-5.2.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:7b986d506a8e8ea345791897ba5d8ba0d9d8820cd4fc3e52dbe6de19388de2e7", size = 98738, upload-time = "2025-07-29T07:43:04.207Z" }, + { url = "https://files.pythonhosted.org/packages/61/d3/7bbc8e0e8cf65ebbe1b893ffa0467b7ecd1bd07c3bbf6c9db4308ada22ec/mmh3-5.2.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:38d899a156549da8ef6a9f1d6f7ef231228d29f8f69bce2ee12f5fba6d6fd7c5", size = 106510, upload-time = "2025-07-29T07:43:05.656Z" }, + { url = "https://files.pythonhosted.org/packages/10/99/b97e53724b52374e2f3859046f0eb2425192da356cb19784d64bc17bb1cf/mmh3-5.2.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d86651fa45799530885ba4dab3d21144486ed15285e8784181a0ab37a4552384", size = 110053, upload-time = "2025-07-29T07:43:07.204Z" }, + { url = "https://files.pythonhosted.org/packages/ac/62/3688c7d975ed195155671df68788c83fed6f7909b6ec4951724c6860cb97/mmh3-5.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c463d7c1c4cfc9d751efeaadd936bbba07b5b0ed81a012b3a9f5a12f0872bd6e", size = 97546, upload-time = "2025-07-29T07:43:08.226Z" }, + { url = "https://files.pythonhosted.org/packages/ca/3b/c6153250f03f71a8b7634cded82939546cdfba02e32f124ff51d52c6f991/mmh3-5.2.0-cp314-cp314-win32.whl", hash = "sha256:bb4fe46bdc6104fbc28db7a6bacb115ee6368ff993366bbd8a2a7f0076e6f0c0", size = 41422, upload-time = "2025-07-29T07:43:09.216Z" }, + { url = "https://files.pythonhosted.org/packages/74/01/a27d98bab083a435c4c07e9d1d720d4c8a578bf4c270bae373760b1022be/mmh3-5.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:7c7f0b342fd06044bedd0b6e72177ddc0076f54fd89ee239447f8b271d919d9b", size = 42135, upload-time = "2025-07-29T07:43:10.183Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c9/dbba5507e95429b8b380e2ba091eff5c20a70a59560934dff0ad8392b8c8/mmh3-5.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:3193752fc05ea72366c2b63ff24b9a190f422e32d75fdeae71087c08fff26115", size = 39879, upload-time = "2025-07-29T07:43:11.106Z" }, + { url = "https://files.pythonhosted.org/packages/b5/d1/c8c0ef839c17258b9de41b84f663574fabcf8ac2007b7416575e0f65ff6e/mmh3-5.2.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:69fc339d7202bea69ef9bd7c39bfdf9fdabc8e6822a01eba62fb43233c1b3932", size = 57696, upload-time = "2025-07-29T07:43:11.989Z" }, + { url = "https://files.pythonhosted.org/packages/2f/55/95e2b9ff201e89f9fe37036037ab61a6c941942b25cdb7b6a9df9b931993/mmh3-5.2.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:12da42c0a55c9d86ab566395324213c319c73ecb0c239fad4726324212b9441c", size = 41421, upload-time = "2025-07-29T07:43:13.269Z" }, + { url = "https://files.pythonhosted.org/packages/77/79/9be23ad0b7001a4b22752e7693be232428ecc0a35068a4ff5c2f14ef8b20/mmh3-5.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f7f9034c7cf05ddfaac8d7a2e63a3c97a840d4615d0a0e65ba8bdf6f8576e3be", size = 40853, upload-time = "2025-07-29T07:43:14.888Z" }, + { url = "https://files.pythonhosted.org/packages/ac/1b/96b32058eda1c1dee8264900c37c359a7325c1f11f5ff14fd2be8e24eff9/mmh3-5.2.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:11730eeb16dfcf9674fdea9bb6b8e6dd9b40813b7eb839bc35113649eef38aeb", size = 109694, upload-time = "2025-07-29T07:43:15.816Z" }, + { url = "https://files.pythonhosted.org/packages/8d/6f/a2ae44cd7dad697b6dea48390cbc977b1e5ca58fda09628cbcb2275af064/mmh3-5.2.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:932a6eec1d2e2c3c9e630d10f7128d80e70e2d47fe6b8c7ea5e1afbd98733e65", size = 117438, upload-time = "2025-07-29T07:43:16.865Z" }, + { url = "https://files.pythonhosted.org/packages/a0/08/bfb75451c83f05224a28afeaf3950c7b793c0b71440d571f8e819cfb149a/mmh3-5.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ca975c51c5028947bbcfc24966517aac06a01d6c921e30f7c5383c195f87991", size = 120409, upload-time = "2025-07-29T07:43:18.207Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ea/8b118b69b2ff8df568f742387d1a159bc654a0f78741b31437dd047ea28e/mmh3-5.2.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5b0b58215befe0f0e120b828f7645e97719bbba9f23b69e268ed0ac7adde8645", size = 125909, upload-time = "2025-07-29T07:43:19.39Z" }, + { url = "https://files.pythonhosted.org/packages/3e/11/168cc0b6a30650032e351a3b89b8a47382da541993a03af91e1ba2501234/mmh3-5.2.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29c2b9ce61886809d0492a274a5a53047742dea0f703f9c4d5d223c3ea6377d3", size = 135331, upload-time = "2025-07-29T07:43:20.435Z" }, + { url = "https://files.pythonhosted.org/packages/31/05/e3a9849b1c18a7934c64e831492c99e67daebe84a8c2f2c39a7096a830e3/mmh3-5.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:a367d4741ac0103f8198c82f429bccb9359f543ca542b06a51f4f0332e8de279", size = 110085, upload-time = "2025-07-29T07:43:21.92Z" }, + { url = "https://files.pythonhosted.org/packages/d9/d5/a96bcc306e3404601418b2a9a370baec92af84204528ba659fdfe34c242f/mmh3-5.2.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:5a5dba98e514fb26241868f6eb90a7f7ca0e039aed779342965ce24ea32ba513", size = 111195, upload-time = "2025-07-29T07:43:23.066Z" }, + { url = "https://files.pythonhosted.org/packages/af/29/0fd49801fec5bff37198684e0849b58e0dab3a2a68382a357cfffb0fafc3/mmh3-5.2.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:941603bfd75a46023807511c1ac2f1b0f39cccc393c15039969806063b27e6db", size = 116919, upload-time = "2025-07-29T07:43:24.178Z" }, + { url = "https://files.pythonhosted.org/packages/2d/04/4f3c32b0a2ed762edca45d8b46568fc3668e34f00fb1e0a3b5451ec1281c/mmh3-5.2.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:132dd943451a7c7546978863d2f5a64977928410782e1a87d583cb60eb89e667", size = 123160, upload-time = "2025-07-29T07:43:25.26Z" }, + { url = "https://files.pythonhosted.org/packages/91/76/3d29eaa38821730633d6a240d36fa8ad2807e9dfd432c12e1a472ed211eb/mmh3-5.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f698733a8a494466432d611a8f0d1e026f5286dee051beea4b3c3146817e35d5", size = 110206, upload-time = "2025-07-29T07:43:26.699Z" }, + { url = "https://files.pythonhosted.org/packages/44/1c/ccf35892684d3a408202e296e56843743e0b4fb1629e59432ea88cdb3909/mmh3-5.2.0-cp314-cp314t-win32.whl", hash = "sha256:6d541038b3fc360ec538fc116de87462627944765a6750308118f8b509a8eec7", size = 41970, upload-time = "2025-07-29T07:43:27.666Z" }, + { url = "https://files.pythonhosted.org/packages/75/b2/b9e4f1e5adb5e21eb104588fcee2cd1eaa8308255173481427d5ecc4284e/mmh3-5.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:e912b19cf2378f2967d0c08e86ff4c6c360129887f678e27e4dde970d21b3f4d", size = 43063, upload-time = "2025-07-29T07:43:28.582Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fc/0e61d9a4e29c8679356795a40e48f647b4aad58d71bfc969f0f8f56fb912/mmh3-5.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:e7884931fe5e788163e7b3c511614130c2c59feffdc21112290a194487efb2e9", size = 40455, upload-time = "2025-07-29T07:43:29.563Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, +] + +[[package]] +name = "multi-framework-agents" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "click" }, + { name = "crewai", extra = ["tools"] }, + { name = "fastapi" }, + { name = "httpx" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "openai" }, + { name = "opentelemetry-api" }, + { name = "pydantic" }, + { name = "uvicorn" }, +] + +[package.metadata] +requires-dist = [ + { name = "click", specifier = ">=8.2.1" }, + { name = "crewai", extras = ["tools"], specifier = ">=0.70.0" }, + { name = "fastapi", specifier = ">=0.115.0" }, + { name = "httpx", specifier = ">=0.24.0" }, + { name = "langchain", specifier = ">=1.0.0" }, + { name = "langchain-core", specifier = ">=1.0.0" }, + { name = "langchain-openai", specifier = ">=0.3.0" }, + { name = "openai", specifier = ">=1.0.0" }, + { name = "opentelemetry-api", specifier = ">=1.20.0" }, + { name = "pydantic", specifier = ">=2.11.7" }, + { name = "uvicorn", specifier = ">=0.30.0" }, +] + +[[package]] +name = "multidict" +version = "6.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010, upload-time = "2026-01-26T02:46:45.979Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/0b/19348d4c98980c4851d2f943f8ebafdece2ae7ef737adcfa5994ce8e5f10/multidict-6.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c93c3db7ea657dd4637d57e74ab73de31bccefe144d3d4ce370052035bc85fb5", size = 77176, upload-time = "2026-01-26T02:42:59.784Z" }, + { url = "https://files.pythonhosted.org/packages/ef/04/9de3f8077852e3d438215c81e9b691244532d2e05b4270e89ce67b7d103c/multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:974e72a2474600827abaeda71af0c53d9ebbc3c2eb7da37b37d7829ae31232d8", size = 44996, upload-time = "2026-01-26T02:43:01.674Z" }, + { url = "https://files.pythonhosted.org/packages/31/5c/08c7f7fe311f32e83f7621cd3f99d805f45519cd06fafb247628b861da7d/multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdea2e7b2456cfb6694fb113066fd0ec7ea4d67e3a35e1f4cbeea0b448bf5872", size = 44631, upload-time = "2026-01-26T02:43:03.169Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7f/0e3b1390ae772f27501199996b94b52ceeb64fe6f9120a32c6c3f6b781be/multidict-6.7.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17207077e29342fdc2c9a82e4b306f1127bf1ea91f8b71e02d4798a70bb99991", size = 242561, upload-time = "2026-01-26T02:43:04.733Z" }, + { url = "https://files.pythonhosted.org/packages/dd/f4/8719f4f167586af317b69dd3e90f913416c91ca610cac79a45c53f590312/multidict-6.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4f49cb5661344764e4c7c7973e92a47a59b8fc19b6523649ec9dc4960e58a03", size = 242223, upload-time = "2026-01-26T02:43:06.695Z" }, + { url = "https://files.pythonhosted.org/packages/47/ab/7c36164cce64a6ad19c6d9a85377b7178ecf3b89f8fd589c73381a5eedfd/multidict-6.7.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a9fc4caa29e2e6ae408d1c450ac8bf19892c5fca83ee634ecd88a53332c59981", size = 222322, upload-time = "2026-01-26T02:43:08.472Z" }, + { url = "https://files.pythonhosted.org/packages/f5/79/a25add6fb38035b5337bc5734f296d9afc99163403bbcf56d4170f97eb62/multidict-6.7.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c5f0c21549ab432b57dcc82130f388d84ad8179824cc3f223d5e7cfbfd4143f6", size = 254005, upload-time = "2026-01-26T02:43:10.127Z" }, + { url = "https://files.pythonhosted.org/packages/4a/7b/64a87cf98e12f756fc8bd444b001232ffff2be37288f018ad0d3f0aae931/multidict-6.7.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7dfb78d966b2c906ae1d28ccf6e6712a3cd04407ee5088cd276fe8cb42186190", size = 251173, upload-time = "2026-01-26T02:43:11.731Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ac/b605473de2bb404e742f2cc3583d12aedb2352a70e49ae8fce455b50c5aa/multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b0d9b91d1aa44db9c1f1ecd0d9d2ae610b2f4f856448664e01a3b35899f3f92", size = 243273, upload-time = "2026-01-26T02:43:13.063Z" }, + { url = "https://files.pythonhosted.org/packages/03/65/11492d6a0e259783720f3bc1d9ea55579a76f1407e31ed44045c99542004/multidict-6.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dd96c01a9dcd4889dcfcf9eb5544ca0c77603f239e3ffab0524ec17aea9a93ee", size = 238956, upload-time = "2026-01-26T02:43:14.843Z" }, + { url = "https://files.pythonhosted.org/packages/5f/a7/7ee591302af64e7c196fb63fe856c788993c1372df765102bd0448e7e165/multidict-6.7.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:067343c68cd6612d375710f895337b3a98a033c94f14b9a99eff902f205424e2", size = 233477, upload-time = "2026-01-26T02:43:16.025Z" }, + { url = "https://files.pythonhosted.org/packages/9c/99/c109962d58756c35fd9992fed7f2355303846ea2ff054bb5f5e9d6b888de/multidict-6.7.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5884a04f4ff56c6120f6ccf703bdeb8b5079d808ba604d4d53aec0d55dc33568", size = 243615, upload-time = "2026-01-26T02:43:17.84Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5f/1973e7c771c86e93dcfe1c9cc55a5481b610f6614acfc28c0d326fe6bfad/multidict-6.7.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8affcf1c98b82bc901702eb73b6947a1bfa170823c153fe8a47b5f5f02e48e40", size = 249930, upload-time = "2026-01-26T02:43:19.06Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a5/f170fc2268c3243853580203378cd522446b2df632061e0a5409817854c7/multidict-6.7.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0d17522c37d03e85c8098ec8431636309b2682cf12e58f4dbc76121fb50e4962", size = 243807, upload-time = "2026-01-26T02:43:20.286Z" }, + { url = "https://files.pythonhosted.org/packages/de/01/73856fab6d125e5bc652c3986b90e8699a95e84b48d72f39ade6c0e74a8c/multidict-6.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24c0cf81544ca5e17cfcb6e482e7a82cd475925242b308b890c9452a074d4505", size = 239103, upload-time = "2026-01-26T02:43:21.508Z" }, + { url = "https://files.pythonhosted.org/packages/e7/46/f1220bd9944d8aa40d8ccff100eeeee19b505b857b6f603d6078cb5315b0/multidict-6.7.1-cp310-cp310-win32.whl", hash = "sha256:d82dd730a95e6643802f4454b8fdecdf08667881a9c5670db85bc5a56693f122", size = 41416, upload-time = "2026-01-26T02:43:22.703Z" }, + { url = "https://files.pythonhosted.org/packages/68/00/9b38e272a770303692fc406c36e1a4c740f401522d5787691eb38a8925a8/multidict-6.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf37cbe5ced48d417ba045aca1b21bafca67489452debcde94778a576666a1df", size = 46022, upload-time = "2026-01-26T02:43:23.77Z" }, + { url = "https://files.pythonhosted.org/packages/64/65/d8d42490c02ee07b6bbe00f7190d70bb4738b3cce7629aaf9f213ef730dd/multidict-6.7.1-cp310-cp310-win_arm64.whl", hash = "sha256:59bc83d3f66b41dac1e7460aac1d196edc70c9ba3094965c467715a70ecb46db", size = 43238, upload-time = "2026-01-26T02:43:24.882Z" }, + { url = "https://files.pythonhosted.org/packages/ce/f1/a90635c4f88fb913fbf4ce660b83b7445b7a02615bda034b2f8eb38fd597/multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d", size = 76626, upload-time = "2026-01-26T02:43:26.485Z" }, + { url = "https://files.pythonhosted.org/packages/a6/9b/267e64eaf6fc637a15b35f5de31a566634a2740f97d8d094a69d34f524a4/multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e", size = 44706, upload-time = "2026-01-26T02:43:27.607Z" }, + { url = "https://files.pythonhosted.org/packages/dd/a4/d45caf2b97b035c57267791ecfaafbd59c68212004b3842830954bb4b02e/multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855", size = 44356, upload-time = "2026-01-26T02:43:28.661Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d2/0a36c8473f0cbaeadd5db6c8b72d15bbceeec275807772bfcd059bef487d/multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3", size = 244355, upload-time = "2026-01-26T02:43:31.165Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/8c65be997fd7dd311b7d39c7b6e71a0cb449bad093761481eccbbe4b42a2/multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e", size = 246433, upload-time = "2026-01-26T02:43:32.581Z" }, + { url = "https://files.pythonhosted.org/packages/01/fb/4dbd7e848d2799c6a026ec88ad39cf2b8416aa167fcc903baa55ecaa045c/multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a", size = 225376, upload-time = "2026-01-26T02:43:34.417Z" }, + { url = "https://files.pythonhosted.org/packages/b6/8a/4a3a6341eac3830f6053062f8fbc9a9e54407c80755b3f05bc427295c2d0/multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8", size = 257365, upload-time = "2026-01-26T02:43:35.741Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a2/dd575a69c1aa206e12d27d0770cdf9b92434b48a9ef0cd0d1afdecaa93c4/multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0", size = 254747, upload-time = "2026-01-26T02:43:36.976Z" }, + { url = "https://files.pythonhosted.org/packages/5a/56/21b27c560c13822ed93133f08aa6372c53a8e067f11fbed37b4adcdac922/multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144", size = 246293, upload-time = "2026-01-26T02:43:38.258Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a4/23466059dc3854763423d0ad6c0f3683a379d97673b1b89ec33826e46728/multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49", size = 242962, upload-time = "2026-01-26T02:43:40.034Z" }, + { url = "https://files.pythonhosted.org/packages/1f/67/51dd754a3524d685958001e8fa20a0f5f90a6a856e0a9dcabff69be3dbb7/multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71", size = 237360, upload-time = "2026-01-26T02:43:41.752Z" }, + { url = "https://files.pythonhosted.org/packages/64/3f/036dfc8c174934d4b55d86ff4f978e558b0e585cef70cfc1ad01adc6bf18/multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3", size = 245940, upload-time = "2026-01-26T02:43:43.042Z" }, + { url = "https://files.pythonhosted.org/packages/3d/20/6214d3c105928ebc353a1c644a6ef1408bc5794fcb4f170bb524a3c16311/multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c", size = 253502, upload-time = "2026-01-26T02:43:44.371Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e2/c653bc4ae1be70a0f836b82172d643fcf1dade042ba2676ab08ec08bff0f/multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0", size = 247065, upload-time = "2026-01-26T02:43:45.745Z" }, + { url = "https://files.pythonhosted.org/packages/c8/11/a854b4154cd3bd8b1fd375e8a8ca9d73be37610c361543d56f764109509b/multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa", size = 241870, upload-time = "2026-01-26T02:43:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/13/bf/9676c0392309b5fdae322333d22a829715b570edb9baa8016a517b55b558/multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a", size = 41302, upload-time = "2026-01-26T02:43:48.753Z" }, + { url = "https://files.pythonhosted.org/packages/c9/68/f16a3a8ba6f7b6dc92a1f19669c0810bd2c43fc5a02da13b1cbf8e253845/multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b", size = 45981, upload-time = "2026-01-26T02:43:49.921Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ad/9dd5305253fa00cd3c7555dbef69d5bf4133debc53b87ab8d6a44d411665/multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6", size = 43159, upload-time = "2026-01-26T02:43:51.635Z" }, + { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893, upload-time = "2026-01-26T02:43:52.754Z" }, + { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456, upload-time = "2026-01-26T02:43:53.893Z" }, + { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872, upload-time = "2026-01-26T02:43:55.041Z" }, + { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018, upload-time = "2026-01-26T02:43:56.198Z" }, + { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883, upload-time = "2026-01-26T02:43:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413, upload-time = "2026-01-26T02:43:58.755Z" }, + { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404, upload-time = "2026-01-26T02:44:00.216Z" }, + { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456, upload-time = "2026-01-26T02:44:02.202Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322, upload-time = "2026-01-26T02:44:03.56Z" }, + { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955, upload-time = "2026-01-26T02:44:04.845Z" }, + { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254, upload-time = "2026-01-26T02:44:06.133Z" }, + { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059, upload-time = "2026-01-26T02:44:07.518Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588, upload-time = "2026-01-26T02:44:09.382Z" }, + { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642, upload-time = "2026-01-26T02:44:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377, upload-time = "2026-01-26T02:44:12.042Z" }, + { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887, upload-time = "2026-01-26T02:44:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053, upload-time = "2026-01-26T02:44:15.371Z" }, + { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307, upload-time = "2026-01-26T02:44:16.852Z" }, + { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174, upload-time = "2026-01-26T02:44:18.509Z" }, + { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116, upload-time = "2026-01-26T02:44:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524, upload-time = "2026-01-26T02:44:21.571Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368, upload-time = "2026-01-26T02:44:22.803Z" }, + { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952, upload-time = "2026-01-26T02:44:24.306Z" }, + { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317, upload-time = "2026-01-26T02:44:25.772Z" }, + { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132, upload-time = "2026-01-26T02:44:27.648Z" }, + { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140, upload-time = "2026-01-26T02:44:29.588Z" }, + { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277, upload-time = "2026-01-26T02:44:30.902Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291, upload-time = "2026-01-26T02:44:32.31Z" }, + { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156, upload-time = "2026-01-26T02:44:33.734Z" }, + { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742, upload-time = "2026-01-26T02:44:35.222Z" }, + { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221, upload-time = "2026-01-26T02:44:36.604Z" }, + { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664, upload-time = "2026-01-26T02:44:38.008Z" }, + { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490, upload-time = "2026-01-26T02:44:39.386Z" }, + { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695, upload-time = "2026-01-26T02:44:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884, upload-time = "2026-01-26T02:44:42.488Z" }, + { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122, upload-time = "2026-01-26T02:44:43.664Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175, upload-time = "2026-01-26T02:44:44.894Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460, upload-time = "2026-01-26T02:44:46.106Z" }, + { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930, upload-time = "2026-01-26T02:44:47.278Z" }, + { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582, upload-time = "2026-01-26T02:44:48.604Z" }, + { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031, upload-time = "2026-01-26T02:44:50.544Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596, upload-time = "2026-01-26T02:44:51.951Z" }, + { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492, upload-time = "2026-01-26T02:44:53.902Z" }, + { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899, upload-time = "2026-01-26T02:44:55.316Z" }, + { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970, upload-time = "2026-01-26T02:44:56.783Z" }, + { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060, upload-time = "2026-01-26T02:44:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888, upload-time = "2026-01-26T02:44:59.57Z" }, + { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554, upload-time = "2026-01-26T02:45:01.054Z" }, + { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341, upload-time = "2026-01-26T02:45:02.484Z" }, + { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391, upload-time = "2026-01-26T02:45:03.862Z" }, + { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422, upload-time = "2026-01-26T02:45:05.296Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770, upload-time = "2026-01-26T02:45:06.754Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109, upload-time = "2026-01-26T02:45:08.044Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573, upload-time = "2026-01-26T02:45:09.349Z" }, + { url = "https://files.pythonhosted.org/packages/91/cc/db74228a8be41884a567e88a62fd589a913708fcf180d029898c17a9a371/multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee", size = 75190, upload-time = "2026-01-26T02:45:10.651Z" }, + { url = "https://files.pythonhosted.org/packages/d5/22/492f2246bb5b534abd44804292e81eeaf835388901f0c574bac4eeec73c5/multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2", size = 44486, upload-time = "2026-01-26T02:45:11.938Z" }, + { url = "https://files.pythonhosted.org/packages/f1/4f/733c48f270565d78b4544f2baddc2fb2a245e5a8640254b12c36ac7ac68e/multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1", size = 43219, upload-time = "2026-01-26T02:45:14.346Z" }, + { url = "https://files.pythonhosted.org/packages/24/bb/2c0c2287963f4259c85e8bcbba9182ced8d7fca65c780c38e99e61629d11/multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d", size = 245132, upload-time = "2026-01-26T02:45:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f9/44d4b3064c65079d2467888794dea218d1601898ac50222ab8a9a8094460/multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31", size = 252420, upload-time = "2026-01-26T02:45:17.293Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/78f7275e73fa17b24c9a51b0bd9d73ba64bb32d0ed51b02a746eb876abe7/multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048", size = 233510, upload-time = "2026-01-26T02:45:19.356Z" }, + { url = "https://files.pythonhosted.org/packages/4b/25/8167187f62ae3cbd52da7893f58cb036b47ea3fb67138787c76800158982/multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362", size = 264094, upload-time = "2026-01-26T02:45:20.834Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e7/69a3a83b7b030cf283fb06ce074a05a02322359783424d7edf0f15fe5022/multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37", size = 260786, upload-time = "2026-01-26T02:45:22.818Z" }, + { url = "https://files.pythonhosted.org/packages/fe/3b/8ec5074bcfc450fe84273713b4b0a0dd47c0249358f5d82eb8104ffe2520/multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709", size = 248483, upload-time = "2026-01-26T02:45:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/48/5a/d5a99e3acbca0e29c5d9cba8f92ceb15dce78bab963b308ae692981e3a5d/multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0", size = 248403, upload-time = "2026-01-26T02:45:25.982Z" }, + { url = "https://files.pythonhosted.org/packages/35/48/e58cd31f6c7d5102f2a4bf89f96b9cf7e00b6c6f3d04ecc44417c00a5a3c/multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb", size = 240315, upload-time = "2026-01-26T02:45:27.487Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/1cd210229559cb90b6786c30676bb0c58249ff42f942765f88793b41fdce/multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd", size = 245528, upload-time = "2026-01-26T02:45:28.991Z" }, + { url = "https://files.pythonhosted.org/packages/64/f2/6e1107d226278c876c783056b7db43d800bb64c6131cec9c8dfb6903698e/multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601", size = 258784, upload-time = "2026-01-26T02:45:30.503Z" }, + { url = "https://files.pythonhosted.org/packages/4d/c1/11f664f14d525e4a1b5327a82d4de61a1db604ab34c6603bb3c2cc63ad34/multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1", size = 251980, upload-time = "2026-01-26T02:45:32.603Z" }, + { url = "https://files.pythonhosted.org/packages/e1/9f/75a9ac888121d0c5bbd4ecf4eead45668b1766f6baabfb3b7f66a410e231/multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b", size = 243602, upload-time = "2026-01-26T02:45:34.043Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e7/50bf7b004cc8525d80dbbbedfdc7aed3e4c323810890be4413e589074032/multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d", size = 40930, upload-time = "2026-01-26T02:45:36.278Z" }, + { url = "https://files.pythonhosted.org/packages/e0/bf/52f25716bbe93745595800f36fb17b73711f14da59ed0bb2eba141bc9f0f/multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f", size = 45074, upload-time = "2026-01-26T02:45:37.546Z" }, + { url = "https://files.pythonhosted.org/packages/97/ab/22803b03285fa3a525f48217963da3a65ae40f6a1b6f6cf2768879e208f9/multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5", size = 42471, upload-time = "2026-01-26T02:45:38.889Z" }, + { url = "https://files.pythonhosted.org/packages/e0/6d/f9293baa6146ba9507e360ea0292b6422b016907c393e2f63fc40ab7b7b5/multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581", size = 82401, upload-time = "2026-01-26T02:45:40.254Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/53b5494738d83558d87c3c71a486504d8373421c3e0dbb6d0db48ad42ee0/multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a", size = 48143, upload-time = "2026-01-26T02:45:41.635Z" }, + { url = "https://files.pythonhosted.org/packages/37/e8/5284c53310dcdc99ce5d66563f6e5773531a9b9fe9ec7a615e9bc306b05f/multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c", size = 46507, upload-time = "2026-01-26T02:45:42.99Z" }, + { url = "https://files.pythonhosted.org/packages/e4/fc/6800d0e5b3875568b4083ecf5f310dcf91d86d52573160834fb4bfcf5e4f/multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262", size = 239358, upload-time = "2026-01-26T02:45:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/41/75/4ad0973179361cdf3a113905e6e088173198349131be2b390f9fa4da5fc6/multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59", size = 246884, upload-time = "2026-01-26T02:45:47.167Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9c/095bb28b5da139bd41fb9a5d5caff412584f377914bd8787c2aa98717130/multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889", size = 225878, upload-time = "2026-01-26T02:45:48.698Z" }, + { url = "https://files.pythonhosted.org/packages/07/d0/c0a72000243756e8f5a277b6b514fa005f2c73d481b7d9e47cd4568aa2e4/multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4", size = 253542, upload-time = "2026-01-26T02:45:50.164Z" }, + { url = "https://files.pythonhosted.org/packages/c0/6b/f69da15289e384ecf2a68837ec8b5ad8c33e973aa18b266f50fe55f24b8c/multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d", size = 252403, upload-time = "2026-01-26T02:45:51.779Z" }, + { url = "https://files.pythonhosted.org/packages/a2/76/b9669547afa5a1a25cd93eaca91c0da1c095b06b6d2d8ec25b713588d3a1/multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609", size = 244889, upload-time = "2026-01-26T02:45:53.27Z" }, + { url = "https://files.pythonhosted.org/packages/7e/a9/a50d2669e506dad33cfc45b5d574a205587b7b8a5f426f2fbb2e90882588/multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489", size = 241982, upload-time = "2026-01-26T02:45:54.919Z" }, + { url = "https://files.pythonhosted.org/packages/c5/bb/1609558ad8b456b4827d3c5a5b775c93b87878fd3117ed3db3423dfbce1b/multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c", size = 232415, upload-time = "2026-01-26T02:45:56.981Z" }, + { url = "https://files.pythonhosted.org/packages/d8/59/6f61039d2aa9261871e03ab9dc058a550d240f25859b05b67fd70f80d4b3/multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e", size = 240337, upload-time = "2026-01-26T02:45:58.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/29/fdc6a43c203890dc2ae9249971ecd0c41deaedfe00d25cb6564b2edd99eb/multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c", size = 248788, upload-time = "2026-01-26T02:46:00.862Z" }, + { url = "https://files.pythonhosted.org/packages/a9/14/a153a06101323e4cf086ecee3faadba52ff71633d471f9685c42e3736163/multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9", size = 242842, upload-time = "2026-01-26T02:46:02.824Z" }, + { url = "https://files.pythonhosted.org/packages/41/5f/604ae839e64a4a6efc80db94465348d3b328ee955e37acb24badbcd24d83/multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2", size = 240237, upload-time = "2026-01-26T02:46:05.898Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/c3a5187bf66f6fb546ff4ab8fb5a077cbdd832d7b1908d4365c7f74a1917/multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7", size = 48008, upload-time = "2026-01-26T02:46:07.468Z" }, + { url = "https://files.pythonhosted.org/packages/0c/f7/addf1087b860ac60e6f382240f64fb99f8bfb532bb06f7c542b83c29ca61/multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5", size = 53542, upload-time = "2026-01-26T02:46:08.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/81/4629d0aa32302ef7b2ec65c75a728cc5ff4fa410c50096174c1632e70b3e/multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2", size = 44719, upload-time = "2026-01-26T02:46:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319, upload-time = "2026-01-26T02:46:44.004Z" }, +] + +[[package]] +name = "numpy" +version = "2.2.6" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.2" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.13'", + "python_full_version >= '3.11' and python_full_version < '3.13'", +] +sdist = { url = "https://files.pythonhosted.org/packages/57/fd/0005efbd0af48e55eb3c7208af93f2862d4b1a56cd78e84309a2d959208d/numpy-2.4.2.tar.gz", hash = "sha256:659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae", size = 20723651, upload-time = "2026-01-31T23:13:10.135Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/44/71852273146957899753e69986246d6a176061ea183407e95418c2aa4d9a/numpy-2.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7e88598032542bd49af7c4747541422884219056c268823ef6e5e89851c8825", size = 16955478, upload-time = "2026-01-31T23:10:25.623Z" }, + { url = "https://files.pythonhosted.org/packages/74/41/5d17d4058bd0cd96bcbd4d9ff0fb2e21f52702aab9a72e4a594efa18692f/numpy-2.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7edc794af8b36ca37ef5fcb5e0d128c7e0595c7b96a2318d1badb6fcd8ee86b1", size = 14965467, upload-time = "2026-01-31T23:10:28.186Z" }, + { url = "https://files.pythonhosted.org/packages/49/48/fb1ce8136c19452ed15f033f8aee91d5defe515094e330ce368a0647846f/numpy-2.4.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:6e9f61981ace1360e42737e2bae58b27bf28a1b27e781721047d84bd754d32e7", size = 5475172, upload-time = "2026-01-31T23:10:30.848Z" }, + { url = "https://files.pythonhosted.org/packages/40/a9/3feb49f17bbd1300dd2570432961f5c8a4ffeff1db6f02c7273bd020a4c9/numpy-2.4.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:cb7bbb88aa74908950d979eeaa24dbdf1a865e3c7e45ff0121d8f70387b55f73", size = 6805145, upload-time = "2026-01-31T23:10:32.352Z" }, + { url = "https://files.pythonhosted.org/packages/3f/39/fdf35cbd6d6e2fcad42fcf85ac04a85a0d0fbfbf34b30721c98d602fd70a/numpy-2.4.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f069069931240b3fc703f1e23df63443dbd6390614c8c44a87d96cd0ec81eb1", size = 15966084, upload-time = "2026-01-31T23:10:34.502Z" }, + { url = "https://files.pythonhosted.org/packages/1b/46/6fa4ea94f1ddf969b2ee941290cca6f1bfac92b53c76ae5f44afe17ceb69/numpy-2.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c02ef4401a506fb60b411467ad501e1429a3487abca4664871d9ae0b46c8ba32", size = 16899477, upload-time = "2026-01-31T23:10:37.075Z" }, + { url = "https://files.pythonhosted.org/packages/09/a1/2a424e162b1a14a5bd860a464ab4e07513916a64ab1683fae262f735ccd2/numpy-2.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2653de5c24910e49c2b106499803124dde62a5a1fe0eedeaecf4309a5f639390", size = 17323429, upload-time = "2026-01-31T23:10:39.704Z" }, + { url = "https://files.pythonhosted.org/packages/ce/a2/73014149ff250628df72c58204822ac01d768697913881aacf839ff78680/numpy-2.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1ae241bbfc6ae276f94a170b14785e561cb5e7f626b6688cf076af4110887413", size = 18635109, upload-time = "2026-01-31T23:10:41.924Z" }, + { url = "https://files.pythonhosted.org/packages/6c/0c/73e8be2f1accd56df74abc1c5e18527822067dced5ec0861b5bb882c2ce0/numpy-2.4.2-cp311-cp311-win32.whl", hash = "sha256:df1b10187212b198dd45fa943d8985a3c8cf854aed4923796e0e019e113a1bda", size = 6237915, upload-time = "2026-01-31T23:10:45.26Z" }, + { url = "https://files.pythonhosted.org/packages/76/ae/e0265e0163cf127c24c3969d29f1c4c64551a1e375d95a13d32eab25d364/numpy-2.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:b9c618d56a29c9cb1c4da979e9899be7578d2e0b3c24d52079c166324c9e8695", size = 12607972, upload-time = "2026-01-31T23:10:47.021Z" }, + { url = "https://files.pythonhosted.org/packages/29/a5/c43029af9b8014d6ea157f192652c50042e8911f4300f8f6ed3336bf437f/numpy-2.4.2-cp311-cp311-win_arm64.whl", hash = "sha256:47c5a6ed21d9452b10227e5e8a0e1c22979811cad7dcc19d8e3e2fb8fa03f1a3", size = 10485763, upload-time = "2026-01-31T23:10:50.087Z" }, + { url = "https://files.pythonhosted.org/packages/51/6e/6f394c9c77668153e14d4da83bcc247beb5952f6ead7699a1a2992613bea/numpy-2.4.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:21982668592194c609de53ba4933a7471880ccbaadcc52352694a59ecc860b3a", size = 16667963, upload-time = "2026-01-31T23:10:52.147Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/55483431f2b2fd015ae6ed4fe62288823ce908437ed49db5a03d15151678/numpy-2.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40397bda92382fcec844066efb11f13e1c9a3e2a8e8f318fb72ed8b6db9f60f1", size = 14693571, upload-time = "2026-01-31T23:10:54.789Z" }, + { url = "https://files.pythonhosted.org/packages/2f/20/18026832b1845cdc82248208dd929ca14c9d8f2bac391f67440707fff27c/numpy-2.4.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:b3a24467af63c67829bfaa61eecf18d5432d4f11992688537be59ecd6ad32f5e", size = 5203469, upload-time = "2026-01-31T23:10:57.343Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/2eb97c8a77daaba34eaa3fa7241a14ac5f51c46a6bd5911361b644c4a1e2/numpy-2.4.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:805cc8de9fd6e7a22da5aed858e0ab16be5a4db6c873dde1d7451c541553aa27", size = 6550820, upload-time = "2026-01-31T23:10:59.429Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/b97fdfd12dc75b02c44e26c6638241cc004d4079a0321a69c62f51470c4c/numpy-2.4.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d82351358ffbcdcd7b686b90742a9b86632d6c1c051016484fa0b326a0a1548", size = 15663067, upload-time = "2026-01-31T23:11:01.291Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c6/a18e59f3f0b8071cc85cbc8d80cd02d68aa9710170b2553a117203d46936/numpy-2.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e35d3e0144137d9fdae62912e869136164534d64a169f86438bc9561b6ad49f", size = 16619782, upload-time = "2026-01-31T23:11:03.669Z" }, + { url = "https://files.pythonhosted.org/packages/b7/83/9751502164601a79e18847309f5ceec0b1446d7b6aa12305759b72cf98b2/numpy-2.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adb6ed2ad29b9e15321d167d152ee909ec73395901b70936f029c3bc6d7f4460", size = 17013128, upload-time = "2026-01-31T23:11:05.913Z" }, + { url = "https://files.pythonhosted.org/packages/61/c4/c4066322256ec740acc1c8923a10047818691d2f8aec254798f3dd90f5f2/numpy-2.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8906e71fd8afcb76580404e2a950caef2685df3d2a57fe82a86ac8d33cc007ba", size = 18345324, upload-time = "2026-01-31T23:11:08.248Z" }, + { url = "https://files.pythonhosted.org/packages/ab/af/6157aa6da728fa4525a755bfad486ae7e3f76d4c1864138003eb84328497/numpy-2.4.2-cp312-cp312-win32.whl", hash = "sha256:ec055f6dae239a6299cace477b479cca2fc125c5675482daf1dd886933a1076f", size = 5960282, upload-time = "2026-01-31T23:11:10.497Z" }, + { url = "https://files.pythonhosted.org/packages/92/0f/7ceaaeaacb40567071e94dbf2c9480c0ae453d5bb4f52bea3892c39dc83c/numpy-2.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:209fae046e62d0ce6435fcfe3b1a10537e858249b3d9b05829e2a05218296a85", size = 12314210, upload-time = "2026-01-31T23:11:12.176Z" }, + { url = "https://files.pythonhosted.org/packages/2f/a3/56c5c604fae6dd40fa2ed3040d005fca97e91bd320d232ac9931d77ba13c/numpy-2.4.2-cp312-cp312-win_arm64.whl", hash = "sha256:fbde1b0c6e81d56f5dccd95dd4a711d9b95df1ae4009a60887e56b27e8d903fa", size = 10220171, upload-time = "2026-01-31T23:11:14.684Z" }, + { url = "https://files.pythonhosted.org/packages/a1/22/815b9fe25d1d7ae7d492152adbc7226d3eff731dffc38fe970589fcaaa38/numpy-2.4.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25f2059807faea4b077a2b6837391b5d830864b3543627f381821c646f31a63c", size = 16663696, upload-time = "2026-01-31T23:11:17.516Z" }, + { url = "https://files.pythonhosted.org/packages/09/f0/817d03a03f93ba9c6c8993de509277d84e69f9453601915e4a69554102a1/numpy-2.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bd3a7a9f5847d2fb8c2c6d1c862fa109c31a9abeca1a3c2bd5a64572955b2979", size = 14688322, upload-time = "2026-01-31T23:11:19.883Z" }, + { url = "https://files.pythonhosted.org/packages/da/b4/f805ab79293c728b9a99438775ce51885fd4f31b76178767cfc718701a39/numpy-2.4.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8e4549f8a3c6d13d55041925e912bfd834285ef1dd64d6bc7d542583355e2e98", size = 5198157, upload-time = "2026-01-31T23:11:22.375Z" }, + { url = "https://files.pythonhosted.org/packages/74/09/826e4289844eccdcd64aac27d13b0fd3f32039915dd5b9ba01baae1f436c/numpy-2.4.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:aea4f66ff44dfddf8c2cffd66ba6538c5ec67d389285292fe428cb2c738c8aef", size = 6546330, upload-time = "2026-01-31T23:11:23.958Z" }, + { url = "https://files.pythonhosted.org/packages/19/fb/cbfdbfa3057a10aea5422c558ac57538e6acc87ec1669e666d32ac198da7/numpy-2.4.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3cd545784805de05aafe1dde61752ea49a359ccba9760c1e5d1c88a93bbf2b7", size = 15660968, upload-time = "2026-01-31T23:11:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0d9b7c93578baafcbc5f0b83eaf17b79d345c6f36917ba0c67f45226911d499", size = 16607311, upload-time = "2026-01-31T23:11:28.117Z" }, + { url = "https://files.pythonhosted.org/packages/14/d9/4b5adfc39a43fa6bf918c6d544bc60c05236cc2f6339847fc5b35e6cb5b0/numpy-2.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f74f0f7779cc7ae07d1810aab8ac6b1464c3eafb9e283a40da7309d5e6e48fbb", size = 17012850, upload-time = "2026-01-31T23:11:30.888Z" }, + { url = "https://files.pythonhosted.org/packages/b7/20/adb6e6adde6d0130046e6fdfb7675cc62bc2f6b7b02239a09eb58435753d/numpy-2.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7ac672d699bf36275c035e16b65539931347d68b70667d28984c9fb34e07fa7", size = 18334210, upload-time = "2026-01-31T23:11:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/78/0e/0a73b3dff26803a8c02baa76398015ea2a5434d9b8265a7898a6028c1591/numpy-2.4.2-cp313-cp313-win32.whl", hash = "sha256:8e9afaeb0beff068b4d9cd20d322ba0ee1cecfb0b08db145e4ab4dd44a6b5110", size = 5958199, upload-time = "2026-01-31T23:11:35.385Z" }, + { url = "https://files.pythonhosted.org/packages/43/bc/6352f343522fcb2c04dbaf94cb30cca6fd32c1a750c06ad6231b4293708c/numpy-2.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:7df2de1e4fba69a51c06c28f5a3de36731eb9639feb8e1cf7e4a7b0daf4cf622", size = 12310848, upload-time = "2026-01-31T23:11:38.001Z" }, + { url = "https://files.pythonhosted.org/packages/6e/8d/6da186483e308da5da1cc6918ce913dcfe14ffde98e710bfeff2a6158d4e/numpy-2.4.2-cp313-cp313-win_arm64.whl", hash = "sha256:0fece1d1f0a89c16b03442eae5c56dc0be0c7883b5d388e0c03f53019a4bfd71", size = 10221082, upload-time = "2026-01-31T23:11:40.392Z" }, + { url = "https://files.pythonhosted.org/packages/25/a1/9510aa43555b44781968935c7548a8926274f815de42ad3997e9e83680dd/numpy-2.4.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5633c0da313330fd20c484c78cdd3f9b175b55e1a766c4a174230c6b70ad8262", size = 14815866, upload-time = "2026-01-31T23:11:42.495Z" }, + { url = "https://files.pythonhosted.org/packages/36/30/6bbb5e76631a5ae46e7923dd16ca9d3f1c93cfa8d4ed79a129814a9d8db3/numpy-2.4.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d9f64d786b3b1dd742c946c42d15b07497ed14af1a1f3ce840cce27daa0ce913", size = 5325631, upload-time = "2026-01-31T23:11:44.7Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/3a490938800c1923b567b3a15cd17896e68052e2145d8662aaf3e1ffc58f/numpy-2.4.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:b21041e8cb6a1eb5312dd1d2f80a94d91efffb7a06b70597d44f1bd2dfc315ab", size = 6646254, upload-time = "2026-01-31T23:11:46.341Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e9/fac0890149898a9b609caa5af7455a948b544746e4b8fe7c212c8edd71f8/numpy-2.4.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:00ab83c56211a1d7c07c25e3217ea6695e50a3e2f255053686b081dc0b091a82", size = 15720138, upload-time = "2026-01-31T23:11:48.082Z" }, + { url = "https://files.pythonhosted.org/packages/ea/5c/08887c54e68e1e28df53709f1893ce92932cc6f01f7c3d4dc952f61ffd4e/numpy-2.4.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fb882da679409066b4603579619341c6d6898fc83a8995199d5249f986e8e8f", size = 16655398, upload-time = "2026-01-31T23:11:50.293Z" }, + { url = "https://files.pythonhosted.org/packages/4d/89/253db0fa0e66e9129c745e4ef25631dc37d5f1314dad2b53e907b8538e6d/numpy-2.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66cb9422236317f9d44b67b4d18f44efe6e9c7f8794ac0462978513359461554", size = 17079064, upload-time = "2026-01-31T23:11:52.927Z" }, + { url = "https://files.pythonhosted.org/packages/2a/d5/cbade46ce97c59c6c3da525e8d95b7abe8a42974a1dc5c1d489c10433e88/numpy-2.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0f01dcf33e73d80bd8dc0f20a71303abbafa26a19e23f6b68d1aa9990af90257", size = 18379680, upload-time = "2026-01-31T23:11:55.22Z" }, + { url = "https://files.pythonhosted.org/packages/40/62/48f99ae172a4b63d981babe683685030e8a3df4f246c893ea5c6ef99f018/numpy-2.4.2-cp313-cp313t-win32.whl", hash = "sha256:52b913ec40ff7ae845687b0b34d8d93b60cb66dcee06996dd5c99f2fc9328657", size = 6082433, upload-time = "2026-01-31T23:11:58.096Z" }, + { url = "https://files.pythonhosted.org/packages/07/38/e054a61cfe48ad9f1ed0d188e78b7e26859d0b60ef21cd9de4897cdb5326/numpy-2.4.2-cp313-cp313t-win_amd64.whl", hash = "sha256:5eea80d908b2c1f91486eb95b3fb6fab187e569ec9752ab7d9333d2e66bf2d6b", size = 12451181, upload-time = "2026-01-31T23:11:59.782Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a4/a05c3a6418575e185dd84d0b9680b6bb2e2dc3e4202f036b7b4e22d6e9dc/numpy-2.4.2-cp313-cp313t-win_arm64.whl", hash = "sha256:fd49860271d52127d61197bb50b64f58454e9f578cb4b2c001a6de8b1f50b0b1", size = 10290756, upload-time = "2026-01-31T23:12:02.438Z" }, + { url = "https://files.pythonhosted.org/packages/18/88/b7df6050bf18fdcfb7046286c6535cabbdd2064a3440fca3f069d319c16e/numpy-2.4.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:444be170853f1f9d528428eceb55f12918e4fda5d8805480f36a002f1415e09b", size = 16663092, upload-time = "2026-01-31T23:12:04.521Z" }, + { url = "https://files.pythonhosted.org/packages/25/7a/1fee4329abc705a469a4afe6e69b1ef7e915117747886327104a8493a955/numpy-2.4.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d1240d50adff70c2a88217698ca844723068533f3f5c5fa6ee2e3220e3bdb000", size = 14698770, upload-time = "2026-01-31T23:12:06.96Z" }, + { url = "https://files.pythonhosted.org/packages/fb/0b/f9e49ba6c923678ad5bc38181c08ac5e53b7a5754dbca8e581aa1a56b1ff/numpy-2.4.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:7cdde6de52fb6664b00b056341265441192d1291c130e99183ec0d4b110ff8b1", size = 5208562, upload-time = "2026-01-31T23:12:09.632Z" }, + { url = "https://files.pythonhosted.org/packages/7d/12/d7de8f6f53f9bb76997e5e4c069eda2051e3fe134e9181671c4391677bb2/numpy-2.4.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:cda077c2e5b780200b6b3e09d0b42205a3d1c68f30c6dceb90401c13bff8fe74", size = 6543710, upload-time = "2026-01-31T23:12:11.969Z" }, + { url = "https://files.pythonhosted.org/packages/09/63/c66418c2e0268a31a4cf8a8b512685748200f8e8e8ec6c507ce14e773529/numpy-2.4.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d30291931c915b2ab5717c2974bb95ee891a1cf22ebc16a8006bd59cd210d40a", size = 15677205, upload-time = "2026-01-31T23:12:14.33Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6c/7f237821c9642fb2a04d2f1e88b4295677144ca93285fd76eff3bcba858d/numpy-2.4.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bba37bc29d4d85761deed3954a1bc62be7cf462b9510b51d367b769a8c8df325", size = 16611738, upload-time = "2026-01-31T23:12:16.525Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/39c4cdda9f019b609b5c473899d87abff092fc908cfe4d1ecb2fcff453b0/numpy-2.4.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b2f0073ed0868db1dcd86e052d37279eef185b9c8db5bf61f30f46adac63c909", size = 17028888, upload-time = "2026-01-31T23:12:19.306Z" }, + { url = "https://files.pythonhosted.org/packages/da/b3/e84bb64bdfea967cc10950d71090ec2d84b49bc691df0025dddb7c26e8e3/numpy-2.4.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7f54844851cdb630ceb623dcec4db3240d1ac13d4990532446761baede94996a", size = 18339556, upload-time = "2026-01-31T23:12:21.816Z" }, + { url = "https://files.pythonhosted.org/packages/88/f5/954a291bc1192a27081706862ac62bb5920fbecfbaa302f64682aa90beed/numpy-2.4.2-cp314-cp314-win32.whl", hash = "sha256:12e26134a0331d8dbd9351620f037ec470b7c75929cb8a1537f6bfe411152a1a", size = 6006899, upload-time = "2026-01-31T23:12:24.14Z" }, + { url = "https://files.pythonhosted.org/packages/05/cb/eff72a91b2efdd1bc98b3b8759f6a1654aa87612fc86e3d87d6fe4f948c4/numpy-2.4.2-cp314-cp314-win_amd64.whl", hash = "sha256:068cdb2d0d644cdb45670810894f6a0600797a69c05f1ac478e8d31670b8ee75", size = 12443072, upload-time = "2026-01-31T23:12:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/37/75/62726948db36a56428fce4ba80a115716dc4fad6a3a4352487f8bb950966/numpy-2.4.2-cp314-cp314-win_arm64.whl", hash = "sha256:6ed0be1ee58eef41231a5c943d7d1375f093142702d5723ca2eb07db9b934b05", size = 10494886, upload-time = "2026-01-31T23:12:28.488Z" }, + { url = "https://files.pythonhosted.org/packages/36/2f/ee93744f1e0661dc267e4b21940870cabfae187c092e1433b77b09b50ac4/numpy-2.4.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:98f16a80e917003a12c0580f97b5f875853ebc33e2eaa4bccfc8201ac6869308", size = 14818567, upload-time = "2026-01-31T23:12:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/a7/24/6535212add7d76ff938d8bdc654f53f88d35cddedf807a599e180dcb8e66/numpy-2.4.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:20abd069b9cda45874498b245c8015b18ace6de8546bf50dfa8cea1696ed06ef", size = 5328372, upload-time = "2026-01-31T23:12:32.962Z" }, + { url = "https://files.pythonhosted.org/packages/5e/9d/c48f0a035725f925634bf6b8994253b43f2047f6778a54147d7e213bc5a7/numpy-2.4.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:e98c97502435b53741540a5717a6749ac2ada901056c7db951d33e11c885cc7d", size = 6649306, upload-time = "2026-01-31T23:12:34.797Z" }, + { url = "https://files.pythonhosted.org/packages/81/05/7c73a9574cd4a53a25907bad38b59ac83919c0ddc8234ec157f344d57d9a/numpy-2.4.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da6cad4e82cb893db4b69105c604d805e0c3ce11501a55b5e9f9083b47d2ffe8", size = 15722394, upload-time = "2026-01-31T23:12:36.565Z" }, + { url = "https://files.pythonhosted.org/packages/35/fa/4de10089f21fc7d18442c4a767ab156b25c2a6eaf187c0db6d9ecdaeb43f/numpy-2.4.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e4424677ce4b47fe73c8b5556d876571f7c6945d264201180db2dc34f676ab5", size = 16653343, upload-time = "2026-01-31T23:12:39.188Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f9/d33e4ffc857f3763a57aa85650f2e82486832d7492280ac21ba9efda80da/numpy-2.4.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2b8f157c8a6f20eb657e240f8985cc135598b2b46985c5bccbde7616dc9c6b1e", size = 17078045, upload-time = "2026-01-31T23:12:42.041Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b8/54bdb43b6225badbea6389fa038c4ef868c44f5890f95dd530a218706da3/numpy-2.4.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5daf6f3914a733336dab21a05cdec343144600e964d2fcdabaac0c0269874b2a", size = 18380024, upload-time = "2026-01-31T23:12:44.331Z" }, + { url = "https://files.pythonhosted.org/packages/a5/55/6e1a61ded7af8df04016d81b5b02daa59f2ea9252ee0397cb9f631efe9e5/numpy-2.4.2-cp314-cp314t-win32.whl", hash = "sha256:8c50dd1fc8826f5b26a5ee4d77ca55d88a895f4e4819c7ecc2a9f5905047a443", size = 6153937, upload-time = "2026-01-31T23:12:47.229Z" }, + { url = "https://files.pythonhosted.org/packages/45/aa/fa6118d1ed6d776b0983f3ceac9b1a5558e80df9365b1c3aa6d42bf9eee4/numpy-2.4.2-cp314-cp314t-win_amd64.whl", hash = "sha256:fcf92bee92742edd401ba41135185866f7026c502617f422eb432cfeca4fe236", size = 12631844, upload-time = "2026-01-31T23:12:48.997Z" }, + { url = "https://files.pythonhosted.org/packages/32/0a/2ec5deea6dcd158f254a7b372fb09cfba5719419c8d66343bab35237b3fb/numpy-2.4.2-cp314-cp314t-win_arm64.whl", hash = "sha256:1f92f53998a17265194018d1cc321b2e96e900ca52d54c7c77837b71b9465181", size = 10565379, upload-time = "2026-01-31T23:12:51.345Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f8/50e14d36d915ef64d8f8bc4a087fc8264d82c785eda6711f80ab7e620335/numpy-2.4.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:89f7268c009bc492f506abd6f5265defa7cb3f7487dc21d357c3d290add45082", size = 16833179, upload-time = "2026-01-31T23:12:53.5Z" }, + { url = "https://files.pythonhosted.org/packages/17/17/809b5cad63812058a8189e91a1e2d55a5a18fd04611dbad244e8aeae465c/numpy-2.4.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6dee3bb76aa4009d5a912180bf5b2de012532998d094acee25d9cb8dee3e44a", size = 14889755, upload-time = "2026-01-31T23:12:55.933Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ea/181b9bcf7627fc8371720316c24db888dcb9829b1c0270abf3d288b2e29b/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:cd2bd2bbed13e213d6b55dc1d035a4f91748a7d3edc9480c13898b0353708920", size = 5399500, upload-time = "2026-01-31T23:12:58.671Z" }, + { url = "https://files.pythonhosted.org/packages/33/9f/413adf3fc955541ff5536b78fcf0754680b3c6d95103230252a2c9408d23/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:cf28c0c1d4c4bf00f509fa7eb02c58d7caf221b50b467bcb0d9bbf1584d5c821", size = 6714252, upload-time = "2026-01-31T23:13:00.518Z" }, + { url = "https://files.pythonhosted.org/packages/91/da/643aad274e29ccbdf42ecd94dafe524b81c87bcb56b83872d54827f10543/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e04ae107ac591763a47398bb45b568fc38f02dbc4aa44c063f67a131f99346cb", size = 15797142, upload-time = "2026-01-31T23:13:02.219Z" }, + { url = "https://files.pythonhosted.org/packages/66/27/965b8525e9cb5dc16481b30a1b3c21e50c7ebf6e9dbd48d0c4d0d5089c7e/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:602f65afdef699cda27ec0b9224ae5dc43e328f4c24c689deaf77133dbee74d0", size = 16727979, upload-time = "2026-01-31T23:13:04.62Z" }, + { url = "https://files.pythonhosted.org/packages/de/e5/b7d20451657664b07986c2f6e3be564433f5dcaf3482d68eaecd79afaf03/numpy-2.4.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be71bf1edb48ebbbf7f6337b5bfd2f895d1902f6335a5830b20141fc126ffba0", size = 12502577, upload-time = "2026-01-31T23:13:07.08Z" }, +] + +[[package]] +name = "oauthlib" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/5f/19930f824ffeb0ad4372da4812c50edbd1434f678c90c2733e1188edfc63/oauthlib-3.3.1.tar.gz", hash = "sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9", size = 185918, upload-time = "2025-06-19T22:48:08.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl", hash = "sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1", size = 160065, upload-time = "2025-06-19T22:48:06.508Z" }, +] + +[[package]] +name = "onnxruntime" +version = "1.24.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flatbuffers" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "sympy" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/88/d9757c62a0f96b5193f8d447a141eefd14498c404cc5caf1a6f3233cf102/onnxruntime-1.24.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:79b3119ab9f4f3817062e6dbe7f4a44937de93905e3a31ba34313d18cb49e7be", size = 17212018, upload-time = "2026-02-05T17:32:13.986Z" }, + { url = "https://files.pythonhosted.org/packages/7b/61/b3305c39144e19dbe8791802076b29b4b592b09de03d0e340c1314bfd408/onnxruntime-1.24.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:86bc43e922b1f581b3de26a3dc402149c70e5542fceb5bec6b3a85542dbeb164", size = 15018703, upload-time = "2026-02-05T17:30:53.846Z" }, + { url = "https://files.pythonhosted.org/packages/94/d6/d273b75fe7825ea3feed321dd540aef33d8a1380ddd8ac3bb70a8ed000fe/onnxruntime-1.24.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1cabe71ca14dcfbf812d312aab0a704507ac909c137ee6e89e4908755d0fc60e", size = 17096352, upload-time = "2026-02-05T17:31:29.057Z" }, + { url = "https://files.pythonhosted.org/packages/21/3f/0616101a3938bfe2918ea60b581a9bbba61ffc255c63388abb0885f7ce18/onnxruntime-1.24.1-cp311-cp311-win_amd64.whl", hash = "sha256:3273c330f5802b64b4103e87b5bbc334c0355fff1b8935d8910b0004ce2f20c8", size = 12493235, upload-time = "2026-02-05T17:32:04.451Z" }, + { url = "https://files.pythonhosted.org/packages/c8/30/437de870e4e1c6d237a2ca5e11f54153531270cb5c745c475d6e3d5c5dcf/onnxruntime-1.24.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:7307aab9e2e879c0171f37e0eb2808a5b4aec7ba899bb17c5f0cedfc301a8ac2", size = 17211043, upload-time = "2026-02-05T17:32:16.909Z" }, + { url = "https://files.pythonhosted.org/packages/21/60/004401cd86525101ad8aa9eec301327426555d7a77fac89fd991c3c7aae6/onnxruntime-1.24.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:780add442ce2d4175fafb6f3102cdc94243acffa3ab16eacc03dd627cc7b1b54", size = 15016224, upload-time = "2026-02-05T17:30:56.791Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a1/43ad01b806a1821d1d6f98725edffcdbad54856775643718e9124a09bfbe/onnxruntime-1.24.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34b6119526eda12613f0d0498e2ae59563c247c370c9cef74c2fc93133dde157", size = 17098191, upload-time = "2026-02-05T17:31:31.87Z" }, + { url = "https://files.pythonhosted.org/packages/ff/37/5beb65270864037d5c8fb25cfe6b23c48b618d1f4d06022d425cbf29bd9c/onnxruntime-1.24.1-cp312-cp312-win_amd64.whl", hash = "sha256:df0af2f1cfcfff9094971c7eb1d1dfae7ccf81af197493c4dc4643e4342c0946", size = 12493108, upload-time = "2026-02-05T17:32:07.076Z" }, + { url = "https://files.pythonhosted.org/packages/95/77/7172ecfcbdabd92f338e694f38c325f6fab29a38fa0a8c3d1c85b9f4617c/onnxruntime-1.24.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:82e367770e8fba8a87ba9f4c04bb527e6d4d7204540f1390f202c27a3b759fb4", size = 17211381, upload-time = "2026-02-05T17:31:09.601Z" }, + { url = "https://files.pythonhosted.org/packages/79/5b/532a0d75b93bbd0da0e108b986097ebe164b84fbecfdf2ddbf7c8a3a2e83/onnxruntime-1.24.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1099f3629832580fedf415cfce2462a56cc9ca2b560d6300c24558e2ac049134", size = 15016000, upload-time = "2026-02-05T17:31:00.116Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b5/40606c7bce0702975a077bc6668cd072cd77695fc5c0b3fcf59bdb1fe65e/onnxruntime-1.24.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6361dda4270f3939a625670bd67ae0982a49b7f923207450e28433abc9c3a83b", size = 17097637, upload-time = "2026-02-05T17:31:34.787Z" }, + { url = "https://files.pythonhosted.org/packages/d5/a0/9e8f7933796b466241b934585723c700d8fb6bde2de856e65335193d7c93/onnxruntime-1.24.1-cp313-cp313-win_amd64.whl", hash = "sha256:bd1e4aefe73b6b99aa303cd72562ab6de3cccb09088100f8ad1c974be13079c7", size = 12492467, upload-time = "2026-02-05T17:32:09.834Z" }, + { url = "https://files.pythonhosted.org/packages/fb/8a/ee07d86e35035f9fed42497af76435f5a613d4e8b6c537ea0f8ef9fa85da/onnxruntime-1.24.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88a2b54dca00c90fca6303eedf13d49b5b4191d031372c2e85f5cffe4d86b79e", size = 15025407, upload-time = "2026-02-05T17:31:02.251Z" }, + { url = "https://files.pythonhosted.org/packages/fd/9e/ab3e1dda4b126313d240e1aaa87792ddb1f5ba6d03ca2f093a7c4af8c323/onnxruntime-1.24.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2dfbba602da840615ed5b431facda4b3a43b5d8276cf9e0dbf13d842df105838", size = 17099810, upload-time = "2026-02-05T17:31:37.537Z" }, + { url = "https://files.pythonhosted.org/packages/87/23/167d964414cee2af9c72af323b28d2c4cb35beed855c830a23f198265c79/onnxruntime-1.24.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:890c503ca187bc883c3aa72c53f2a604ec8e8444bdd1bf6ac243ec6d5e085202", size = 17214004, upload-time = "2026-02-05T17:31:11.917Z" }, + { url = "https://files.pythonhosted.org/packages/b4/24/6e5558fdd51027d6830cf411bc003ae12c64054826382e2fab89e99486a0/onnxruntime-1.24.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4da1b84b3bdeec543120df169e5e62a1445bf732fc2c7fb036c2f8a4090455e8", size = 15017034, upload-time = "2026-02-05T17:31:04.331Z" }, + { url = "https://files.pythonhosted.org/packages/91/d4/3cb1c9eaae1103265ed7eb00a3eaeb0d9ba51dc88edc398b7071c9553bed/onnxruntime-1.24.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:557753ec345efa227c6a65139f3d29c76330fcbd54cc10dd1b64232ebb939c13", size = 17097531, upload-time = "2026-02-05T17:31:40.303Z" }, + { url = "https://files.pythonhosted.org/packages/0f/da/4522b199c12db7c5b46aaf265ee0d741abe65ea912f6c0aaa2cc18a4654d/onnxruntime-1.24.1-cp314-cp314-win_amd64.whl", hash = "sha256:ea4942104805e868f3ddddfa1fbb58b04503a534d489ab2d1452bbfa345c78c2", size = 12795556, upload-time = "2026-02-05T17:32:11.886Z" }, + { url = "https://files.pythonhosted.org/packages/a1/53/3b8969417276b061ff04502ccdca9db4652d397abbeb06c9f6ae05cec9ca/onnxruntime-1.24.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ea8963a99e0f10489acdf00ef3383c3232b7e44aa497b063c63be140530d9f85", size = 15025434, upload-time = "2026-02-05T17:31:06.942Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a2/cfcf009eb38d90cc628c087b6506b3dfe1263387f3cbbf8d272af4fef957/onnxruntime-1.24.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34488aa760fb5c2e6d06a7ca9241124eb914a6a06f70936a14c669d1b3df9598", size = 17099815, upload-time = "2026-02-05T17:31:43.092Z" }, ] [[package]] @@ -274,6 +2336,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bb/d5/eb52edff49d3d5ea116e225538c118699ddeb7c29fa17ec28af14bc10033/openai-2.13.0-py3-none-any.whl", hash = "sha256:746521065fed68df2f9c2d85613bb50844343ea81f60009b60e6a600c9352c79", size = 1066837, upload-time = "2025-12-16T18:19:43.124Z" }, ] +[[package]] +name = "openpyxl" +version = "3.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "et-xmlfile" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186464, upload-time = "2024-06-28T14:03:44.161Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size = 250910, upload-time = "2024-06-28T14:03:41.161Z" }, +] + [[package]] name = "opentelemetry-api" version = "1.39.1" @@ -287,6 +2361,769 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload-time = "2025-12-11T13:32:17.304Z" }, ] +[[package]] +name = "opentelemetry-exporter-otlp-proto-common" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-proto" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/9d/22d241b66f7bbde88a3bfa6847a351d2c46b84de23e71222c6aae25c7050/opentelemetry_exporter_otlp_proto_common-1.39.1.tar.gz", hash = "sha256:763370d4737a59741c89a67b50f9e39271639ee4afc999dadfe768541c027464", size = 20409, upload-time = "2025-12-11T13:32:40.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/02/ffc3e143d89a27ac21fd557365b98bd0653b98de8a101151d5805b5d4c33/opentelemetry_exporter_otlp_proto_common-1.39.1-py3-none-any.whl", hash = "sha256:08f8a5862d64cc3435105686d0216c1365dc5701f86844a8cd56597d0c764fde", size = 18366, upload-time = "2025-12-11T13:32:20.2Z" }, +] + +[[package]] +name = "opentelemetry-exporter-otlp-proto-grpc" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "googleapis-common-protos" }, + { name = "grpcio" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-common" }, + { name = "opentelemetry-proto" }, + { name = "opentelemetry-sdk" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/53/48/b329fed2c610c2c32c9366d9dc597202c9d1e58e631c137ba15248d8850f/opentelemetry_exporter_otlp_proto_grpc-1.39.1.tar.gz", hash = "sha256:772eb1c9287485d625e4dbe9c879898e5253fea111d9181140f51291b5fec3ad", size = 24650, upload-time = "2025-12-11T13:32:41.429Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/a3/cc9b66575bd6597b98b886a2067eea2693408d2d5f39dad9ab7fc264f5f3/opentelemetry_exporter_otlp_proto_grpc-1.39.1-py3-none-any.whl", hash = "sha256:fa1c136a05c7e9b4c09f739469cbdb927ea20b34088ab1d959a849b5cc589c18", size = 19766, upload-time = "2025-12-11T13:32:21.027Z" }, +] + +[[package]] +name = "opentelemetry-exporter-otlp-proto-http" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "googleapis-common-protos" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-common" }, + { name = "opentelemetry-proto" }, + { name = "opentelemetry-sdk" }, + { name = "requests" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/80/04/2a08fa9c0214ae38880df01e8bfae12b067ec0793446578575e5080d6545/opentelemetry_exporter_otlp_proto_http-1.39.1.tar.gz", hash = "sha256:31bdab9745c709ce90a49a0624c2bd445d31a28ba34275951a6a362d16a0b9cb", size = 17288, upload-time = "2025-12-11T13:32:42.029Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/f1/b27d3e2e003cd9a3592c43d099d2ed8d0a947c15281bf8463a256db0b46c/opentelemetry_exporter_otlp_proto_http-1.39.1-py3-none-any.whl", hash = "sha256:d9f5207183dd752a412c4cd564ca8875ececba13be6e9c6c370ffb752fd59985", size = 19641, upload-time = "2025-12-11T13:32:22.248Z" }, +] + +[[package]] +name = "opentelemetry-proto" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/1d/f25d76d8260c156c40c97c9ed4511ec0f9ce353f8108ca6e7561f82a06b2/opentelemetry_proto-1.39.1.tar.gz", hash = "sha256:6c8e05144fc0d3ed4d22c2289c6b126e03bcd0e6a7da0f16cedd2e1c2772e2c8", size = 46152, upload-time = "2025-12-11T13:32:48.681Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/95/b40c96a7b5203005a0b03d8ce8cd212ff23f1793d5ba289c87a097571b18/opentelemetry_proto-1.39.1-py3-none-any.whl", hash = "sha256:22cdc78efd3b3765d09e68bfbd010d4fc254c9818afd0b6b423387d9dee46007", size = 72535, upload-time = "2025-12-11T13:32:33.866Z" }, +] + +[[package]] +name = "opentelemetry-sdk" +version = "1.39.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460, upload-time = "2025-12-11T13:32:49.369Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565, upload-time = "2025-12-11T13:32:35.069Z" }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.60b1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935, upload-time = "2025-12-11T13:32:50.487Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982, upload-time = "2025-12-11T13:32:36.955Z" }, +] + +[[package]] +name = "orjson" +version = "3.11.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/45/b268004f745ede84e5798b48ee12b05129d19235d0e15267aa57dcdb400b/orjson-3.11.7.tar.gz", hash = "sha256:9b1a67243945819ce55d24a30b59d6a168e86220452d2c96f4d1f093e71c0c49", size = 6144992, upload-time = "2026-02-02T15:38:49.29Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/1a/a373746fa6d0e116dd9e54371a7b54622c44d12296d5d0f3ad5e3ff33490/orjson-3.11.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a02c833f38f36546ba65a452127633afce4cf0dd7296b753d3bb54e55e5c0174", size = 229140, upload-time = "2026-02-02T15:37:06.082Z" }, + { url = "https://files.pythonhosted.org/packages/52/a2/fa129e749d500f9b183e8a3446a193818a25f60261e9ce143ad61e975208/orjson-3.11.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63c6e6738d7c3470ad01601e23376aa511e50e1f3931395b9f9c722406d1a67", size = 128670, upload-time = "2026-02-02T15:37:08.002Z" }, + { url = "https://files.pythonhosted.org/packages/08/93/1e82011cd1e0bd051ef9d35bed1aa7fb4ea1f0a055dc2c841b46b43a9ebd/orjson-3.11.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:043d3006b7d32c7e233b8cfb1f01c651013ea079e08dcef7189a29abd8befe11", size = 123832, upload-time = "2026-02-02T15:37:09.191Z" }, + { url = "https://files.pythonhosted.org/packages/fe/d8/a26b431ef962c7d55736674dddade876822f3e33223c1f47a36879350d04/orjson-3.11.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57036b27ac8a25d81112eb0cc9835cd4833c5b16e1467816adc0015f59e870dc", size = 129171, upload-time = "2026-02-02T15:37:11.112Z" }, + { url = "https://files.pythonhosted.org/packages/a7/19/f47819b84a580f490da260c3ee9ade214cf4cf78ac9ce8c1c758f80fdfc9/orjson-3.11.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:733ae23ada68b804b222c44affed76b39e30806d38660bf1eb200520d259cc16", size = 141967, upload-time = "2026-02-02T15:37:12.282Z" }, + { url = "https://files.pythonhosted.org/packages/5b/cd/37ece39a0777ba077fdcdbe4cccae3be8ed00290c14bf8afdc548befc260/orjson-3.11.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5fdfad2093bdd08245f2e204d977facd5f871c88c4a71230d5bcbd0e43bf6222", size = 130991, upload-time = "2026-02-02T15:37:13.465Z" }, + { url = "https://files.pythonhosted.org/packages/8f/ed/f2b5d66aa9b6b5c02ff5f120efc7b38c7c4962b21e6be0f00fd99a5c348e/orjson-3.11.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cededd6738e1c153530793998e31c05086582b08315db48ab66649768f326baa", size = 133674, upload-time = "2026-02-02T15:37:14.694Z" }, + { url = "https://files.pythonhosted.org/packages/c4/6e/baa83e68d1aa09fa8c3e5b2c087d01d0a0bd45256de719ed7bc22c07052d/orjson-3.11.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:14f440c7268c8f8633d1b3d443a434bd70cb15686117ea6beff8fdc8f5917a1e", size = 138722, upload-time = "2026-02-02T15:37:16.501Z" }, + { url = "https://files.pythonhosted.org/packages/0c/47/7f8ef4963b772cd56999b535e553f7eb5cd27e9dd6c049baee6f18bfa05d/orjson-3.11.7-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:3a2479753bbb95b0ebcf7969f562cdb9668e6d12416a35b0dda79febf89cdea2", size = 409056, upload-time = "2026-02-02T15:37:17.895Z" }, + { url = "https://files.pythonhosted.org/packages/38/eb/2df104dd2244b3618f25325a656f85cc3277f74bbd91224752410a78f3c7/orjson-3.11.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:71924496986275a737f38e3f22b4e0878882b3f7a310d2ff4dc96e812789120c", size = 144196, upload-time = "2026-02-02T15:37:19.349Z" }, + { url = "https://files.pythonhosted.org/packages/b6/2a/ee41de0aa3a6686598661eae2b4ebdff1340c65bfb17fcff8b87138aab21/orjson-3.11.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b4a9eefdc70bf8bf9857f0290f973dec534ac84c35cd6a7f4083be43e7170a8f", size = 134979, upload-time = "2026-02-02T15:37:20.906Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fa/92fc5d3d402b87a8b28277a9ed35386218a6a5287c7fe5ee9b9f02c53fb2/orjson-3.11.7-cp310-cp310-win32.whl", hash = "sha256:ae9e0b37a834cef7ce8f99de6498f8fad4a2c0bf6bfc3d02abd8ed56aa15b2de", size = 127968, upload-time = "2026-02-02T15:37:23.178Z" }, + { url = "https://files.pythonhosted.org/packages/07/29/a576bf36d73d60df06904d3844a9df08e25d59eba64363aaf8ec2f9bff41/orjson-3.11.7-cp310-cp310-win_amd64.whl", hash = "sha256:d772afdb22555f0c58cfc741bdae44180122b3616faa1ecadb595cd526e4c993", size = 125128, upload-time = "2026-02-02T15:37:24.329Z" }, + { url = "https://files.pythonhosted.org/packages/37/02/da6cb01fc6087048d7f61522c327edf4250f1683a58a839fdcc435746dd5/orjson-3.11.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9487abc2c2086e7c8eb9a211d2ce8855bae0e92586279d0d27b341d5ad76c85c", size = 228664, upload-time = "2026-02-02T15:37:25.542Z" }, + { url = "https://files.pythonhosted.org/packages/c1/c2/5885e7a5881dba9a9af51bc564e8967225a642b3e03d089289a35054e749/orjson-3.11.7-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:79cacb0b52f6004caf92405a7e1f11e6e2de8bdf9019e4f76b44ba045125cd6b", size = 125344, upload-time = "2026-02-02T15:37:26.92Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1d/4e7688de0a92d1caf600dfd5fb70b4c5bfff51dfa61ac555072ef2d0d32a/orjson-3.11.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2e85fe4698b6a56d5e2ebf7ae87544d668eb6bde1ad1226c13f44663f20ec9e", size = 128404, upload-time = "2026-02-02T15:37:28.108Z" }, + { url = "https://files.pythonhosted.org/packages/2f/b2/ec04b74ae03a125db7bd69cffd014b227b7f341e3261bf75b5eb88a1aa92/orjson-3.11.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8d14b71c0b12963fe8a62aac87119f1afdf4cb88a400f61ca5ae581449efcb5", size = 123677, upload-time = "2026-02-02T15:37:30.287Z" }, + { url = "https://files.pythonhosted.org/packages/4c/69/f95bdf960605f08f827f6e3291fe243d8aa9c5c9ff017a8d7232209184c3/orjson-3.11.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91c81ef070c8f3220054115e1ef468b1c9ce8497b4e526cb9f68ab4dc0a7ac62", size = 128950, upload-time = "2026-02-02T15:37:31.595Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1b/de59c57bae1d148ef298852abd31909ac3089cff370dfd4cd84cc99cbc42/orjson-3.11.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:411ebaf34d735e25e358a6d9e7978954a9c9d58cfb47bc6683cdc3964cd2f910", size = 141756, upload-time = "2026-02-02T15:37:32.985Z" }, + { url = "https://files.pythonhosted.org/packages/ee/9e/9decc59f4499f695f65c650f6cfa6cd4c37a3fbe8fa235a0a3614cb54386/orjson-3.11.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a16bcd08ab0bcdfc7e8801d9c4a9cc17e58418e4d48ddc6ded4e9e4b1a94062b", size = 130812, upload-time = "2026-02-02T15:37:34.204Z" }, + { url = "https://files.pythonhosted.org/packages/28/e6/59f932bcabd1eac44e334fe8e3281a92eacfcb450586e1f4bde0423728d8/orjson-3.11.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c0b51672e466fd7e56230ffbae7f1639e18d0ce023351fb75da21b71bc2c960", size = 133444, upload-time = "2026-02-02T15:37:35.446Z" }, + { url = "https://files.pythonhosted.org/packages/f1/36/b0f05c0eaa7ca30bc965e37e6a2956b0d67adb87a9872942d3568da846ae/orjson-3.11.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:136dcd6a2e796dfd9ffca9fc027d778567b0b7c9968d092842d3c323cef88aa8", size = 138609, upload-time = "2026-02-02T15:37:36.657Z" }, + { url = "https://files.pythonhosted.org/packages/b8/03/58ec7d302b8d86944c60c7b4b82975d5161fcce4c9bc8c6cb1d6741b6115/orjson-3.11.7-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:7ba61079379b0ae29e117db13bda5f28d939766e410d321ec1624afc6a0b0504", size = 408918, upload-time = "2026-02-02T15:37:38.076Z" }, + { url = "https://files.pythonhosted.org/packages/06/3a/868d65ef9a8b99be723bd510de491349618abd9f62c826cf206d962db295/orjson-3.11.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0527a4510c300e3b406591b0ba69b5dc50031895b0a93743526a3fc45f59d26e", size = 143998, upload-time = "2026-02-02T15:37:39.706Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c7/1e18e1c83afe3349f4f6dc9e14910f0ae5f82eac756d1412ea4018938535/orjson-3.11.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a709e881723c9b18acddcfb8ba357322491ad553e277cf467e1e7e20e2d90561", size = 134802, upload-time = "2026-02-02T15:37:41.002Z" }, + { url = "https://files.pythonhosted.org/packages/d4/0b/ccb7ee1a65b37e8eeb8b267dc953561d72370e85185e459616d4345bab34/orjson-3.11.7-cp311-cp311-win32.whl", hash = "sha256:c43b8b5bab288b6b90dac410cca7e986a4fa747a2e8f94615aea407da706980d", size = 127828, upload-time = "2026-02-02T15:37:42.241Z" }, + { url = "https://files.pythonhosted.org/packages/af/9e/55c776dffda3f381e0f07d010a4f5f3902bf48eaba1bb7684d301acd4924/orjson-3.11.7-cp311-cp311-win_amd64.whl", hash = "sha256:6543001328aa857187f905308a028935864aefe9968af3848401b6fe80dbb471", size = 124941, upload-time = "2026-02-02T15:37:43.444Z" }, + { url = "https://files.pythonhosted.org/packages/aa/8e/424a620fa7d263b880162505fb107ef5e0afaa765b5b06a88312ac291560/orjson-3.11.7-cp311-cp311-win_arm64.whl", hash = "sha256:1ee5cc7160a821dfe14f130bc8e63e7611051f964b463d9e2a3a573204446a4d", size = 126245, upload-time = "2026-02-02T15:37:45.18Z" }, + { url = "https://files.pythonhosted.org/packages/80/bf/76f4f1665f6983385938f0e2a5d7efa12a58171b8456c252f3bae8a4cf75/orjson-3.11.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bd03ea7606833655048dab1a00734a2875e3e86c276e1d772b2a02556f0d895f", size = 228545, upload-time = "2026-02-02T15:37:46.376Z" }, + { url = "https://files.pythonhosted.org/packages/79/53/6c72c002cb13b5a978a068add59b25a8bdf2800ac1c9c8ecdb26d6d97064/orjson-3.11.7-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:89e440ebc74ce8ab5c7bc4ce6757b4a6b1041becb127df818f6997b5c71aa60b", size = 125224, upload-time = "2026-02-02T15:37:47.697Z" }, + { url = "https://files.pythonhosted.org/packages/2c/83/10e48852865e5dd151bdfe652c06f7da484578ed02c5fca938e3632cb0b8/orjson-3.11.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ede977b5fe5ac91b1dffc0a517ca4542d2ec8a6a4ff7b2652d94f640796342a", size = 128154, upload-time = "2026-02-02T15:37:48.954Z" }, + { url = "https://files.pythonhosted.org/packages/6e/52/a66e22a2b9abaa374b4a081d410edab6d1e30024707b87eab7c734afe28d/orjson-3.11.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b7b1dae39230a393df353827c855a5f176271c23434cfd2db74e0e424e693e10", size = 123548, upload-time = "2026-02-02T15:37:50.187Z" }, + { url = "https://files.pythonhosted.org/packages/de/38/605d371417021359f4910c496f764c48ceb8997605f8c25bf1dfe58c0ebe/orjson-3.11.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed46f17096e28fb28d2975834836a639af7278aa87c84f68ab08fbe5b8bd75fa", size = 129000, upload-time = "2026-02-02T15:37:51.426Z" }, + { url = "https://files.pythonhosted.org/packages/44/98/af32e842b0ffd2335c89714d48ca4e3917b42f5d6ee5537832e069a4b3ac/orjson-3.11.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3726be79e36e526e3d9c1aceaadbfb4a04ee80a72ab47b3f3c17fefb9812e7b8", size = 141686, upload-time = "2026-02-02T15:37:52.607Z" }, + { url = "https://files.pythonhosted.org/packages/96/0b/fc793858dfa54be6feee940c1463370ece34b3c39c1ca0aa3845f5ba9892/orjson-3.11.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0724e265bc548af1dedebd9cb3d24b4e1c1e685a343be43e87ba922a5c5fff2f", size = 130812, upload-time = "2026-02-02T15:37:53.944Z" }, + { url = "https://files.pythonhosted.org/packages/dc/91/98a52415059db3f374757d0b7f0f16e3b5cd5976c90d1c2b56acaea039e6/orjson-3.11.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7745312efa9e11c17fbd3cb3097262d079da26930ae9ae7ba28fb738367cbad", size = 133440, upload-time = "2026-02-02T15:37:55.615Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/cb540117bda61791f46381f8c26c8f93e802892830a6055748d3bb1925ab/orjson-3.11.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f904c24bdeabd4298f7a977ef14ca2a022ca921ed670b92ecd16ab6f3d01f867", size = 138386, upload-time = "2026-02-02T15:37:56.814Z" }, + { url = "https://files.pythonhosted.org/packages/63/1a/50a3201c334a7f17c231eee5f841342190723794e3b06293f26e7cf87d31/orjson-3.11.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b9fc4d0f81f394689e0814617aadc4f2ea0e8025f38c226cbf22d3b5ddbf025d", size = 408853, upload-time = "2026-02-02T15:37:58.291Z" }, + { url = "https://files.pythonhosted.org/packages/87/cd/8de1c67d0be44fdc22701e5989c0d015a2adf391498ad42c4dc589cd3013/orjson-3.11.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:849e38203e5be40b776ed2718e587faf204d184fc9a008ae441f9442320c0cab", size = 144130, upload-time = "2026-02-02T15:38:00.163Z" }, + { url = "https://files.pythonhosted.org/packages/0f/fe/d605d700c35dd55f51710d159fc54516a280923cd1b7e47508982fbb387d/orjson-3.11.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4682d1db3bcebd2b64757e0ddf9e87ae5f00d29d16c5cdf3a62f561d08cc3dd2", size = 134818, upload-time = "2026-02-02T15:38:01.507Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e4/15ecc67edb3ddb3e2f46ae04475f2d294e8b60c1825fbe28a428b93b3fbd/orjson-3.11.7-cp312-cp312-win32.whl", hash = "sha256:f4f7c956b5215d949a1f65334cf9d7612dde38f20a95f2315deef167def91a6f", size = 127923, upload-time = "2026-02-02T15:38:02.75Z" }, + { url = "https://files.pythonhosted.org/packages/34/70/2e0855361f76198a3965273048c8e50a9695d88cd75811a5b46444895845/orjson-3.11.7-cp312-cp312-win_amd64.whl", hash = "sha256:bf742e149121dc5648ba0a08ea0871e87b660467ef168a3a5e53bc1fbd64bb74", size = 125007, upload-time = "2026-02-02T15:38:04.032Z" }, + { url = "https://files.pythonhosted.org/packages/68/40/c2051bd19fc467610fed469dc29e43ac65891571138f476834ca192bc290/orjson-3.11.7-cp312-cp312-win_arm64.whl", hash = "sha256:26c3b9132f783b7d7903bf1efb095fed8d4a3a85ec0d334ee8beff3d7a4749d5", size = 126089, upload-time = "2026-02-02T15:38:05.297Z" }, + { url = "https://files.pythonhosted.org/packages/89/25/6e0e52cac5aab51d7b6dcd257e855e1dec1c2060f6b28566c509b4665f62/orjson-3.11.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1d98b30cc1313d52d4af17d9c3d307b08389752ec5f2e5febdfada70b0f8c733", size = 228390, upload-time = "2026-02-02T15:38:06.8Z" }, + { url = "https://files.pythonhosted.org/packages/a5/29/a77f48d2fc8a05bbc529e5ff481fb43d914f9e383ea2469d4f3d51df3d00/orjson-3.11.7-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:d897e81f8d0cbd2abb82226d1860ad2e1ab3ff16d7b08c96ca00df9d45409ef4", size = 125189, upload-time = "2026-02-02T15:38:08.181Z" }, + { url = "https://files.pythonhosted.org/packages/89/25/0a16e0729a0e6a1504f9d1a13cdd365f030068aab64cec6958396b9969d7/orjson-3.11.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:814be4b49b228cfc0b3c565acf642dd7d13538f966e3ccde61f4f55be3e20785", size = 128106, upload-time = "2026-02-02T15:38:09.41Z" }, + { url = "https://files.pythonhosted.org/packages/66/da/a2e505469d60666a05ab373f1a6322eb671cb2ba3a0ccfc7d4bc97196787/orjson-3.11.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d06e5c5fed5caedd2e540d62e5b1c25e8c82431b9e577c33537e5fa4aa909539", size = 123363, upload-time = "2026-02-02T15:38:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/23/bf/ed73f88396ea35c71b38961734ea4a4746f7ca0768bf28fd551d37e48dd0/orjson-3.11.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31c80ce534ac4ea3739c5ee751270646cbc46e45aea7576a38ffec040b4029a1", size = 129007, upload-time = "2026-02-02T15:38:12.138Z" }, + { url = "https://files.pythonhosted.org/packages/73/3c/b05d80716f0225fc9008fbf8ab22841dcc268a626aa550561743714ce3bf/orjson-3.11.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f50979824bde13d32b4320eedd513431c921102796d86be3eee0b58e58a3ecd1", size = 141667, upload-time = "2026-02-02T15:38:13.398Z" }, + { url = "https://files.pythonhosted.org/packages/61/e8/0be9b0addd9bf86abfc938e97441dcd0375d494594b1c8ad10fe57479617/orjson-3.11.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e54f3808e2b6b945078c41aa8d9b5834b28c50843846e97807e5adb75fa9705", size = 130832, upload-time = "2026-02-02T15:38:14.698Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ec/c68e3b9021a31d9ec15a94931db1410136af862955854ed5dd7e7e4f5bff/orjson-3.11.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12b80df61aab7b98b490fe9e4879925ba666fccdfcd175252ce4d9035865ace", size = 133373, upload-time = "2026-02-02T15:38:16.109Z" }, + { url = "https://files.pythonhosted.org/packages/d2/45/f3466739aaafa570cc8e77c6dbb853c48bf56e3b43738020e2661e08b0ac/orjson-3.11.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:996b65230271f1a97026fd0e6a753f51fbc0c335d2ad0c6201f711b0da32693b", size = 138307, upload-time = "2026-02-02T15:38:17.453Z" }, + { url = "https://files.pythonhosted.org/packages/e1/84/9f7f02288da1ffb31405c1be07657afd1eecbcb4b64ee2817b6fe0f785fa/orjson-3.11.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ab49d4b2a6a1d415ddb9f37a21e02e0d5dbfe10b7870b21bf779fc21e9156157", size = 408695, upload-time = "2026-02-02T15:38:18.831Z" }, + { url = "https://files.pythonhosted.org/packages/18/07/9dd2f0c0104f1a0295ffbe912bc8d63307a539b900dd9e2c48ef7810d971/orjson-3.11.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:390a1dce0c055ddf8adb6aa94a73b45a4a7d7177b5c584b8d1c1947f2ba60fb3", size = 144099, upload-time = "2026-02-02T15:38:20.28Z" }, + { url = "https://files.pythonhosted.org/packages/a5/66/857a8e4a3292e1f7b1b202883bcdeb43a91566cf59a93f97c53b44bd6801/orjson-3.11.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1eb80451a9c351a71dfaf5b7ccc13ad065405217726b59fdbeadbcc544f9d223", size = 134806, upload-time = "2026-02-02T15:38:22.186Z" }, + { url = "https://files.pythonhosted.org/packages/0a/5b/6ebcf3defc1aab3a338ca777214966851e92efb1f30dc7fc8285216e6d1b/orjson-3.11.7-cp313-cp313-win32.whl", hash = "sha256:7477aa6a6ec6139c5cb1cc7b214643592169a5494d200397c7fc95d740d5fcf3", size = 127914, upload-time = "2026-02-02T15:38:23.511Z" }, + { url = "https://files.pythonhosted.org/packages/00/04/c6f72daca5092e3117840a1b1e88dfc809cc1470cf0734890d0366b684a1/orjson-3.11.7-cp313-cp313-win_amd64.whl", hash = "sha256:b9f95dcdea9d4f805daa9ddf02617a89e484c6985fa03055459f90e87d7a0757", size = 124986, upload-time = "2026-02-02T15:38:24.836Z" }, + { url = "https://files.pythonhosted.org/packages/03/ba/077a0f6f1085d6b806937246860fafbd5b17f3919c70ee3f3d8d9c713f38/orjson-3.11.7-cp313-cp313-win_arm64.whl", hash = "sha256:800988273a014a0541483dc81021247d7eacb0c845a9d1a34a422bc718f41539", size = 126045, upload-time = "2026-02-02T15:38:26.216Z" }, + { url = "https://files.pythonhosted.org/packages/e9/1e/745565dca749813db9a093c5ebc4bac1a9475c64d54b95654336ac3ed961/orjson-3.11.7-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:de0a37f21d0d364954ad5de1970491d7fbd0fb1ef7417d4d56a36dc01ba0c0a0", size = 228391, upload-time = "2026-02-02T15:38:27.757Z" }, + { url = "https://files.pythonhosted.org/packages/46/19/e40f6225da4d3aa0c8dc6e5219c5e87c2063a560fe0d72a88deb59776794/orjson-3.11.7-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:c2428d358d85e8da9d37cba18b8c4047c55222007a84f97156a5b22028dfbfc0", size = 125188, upload-time = "2026-02-02T15:38:29.241Z" }, + { url = "https://files.pythonhosted.org/packages/9d/7e/c4de2babef2c0817fd1f048fd176aa48c37bec8aef53d2fa932983032cce/orjson-3.11.7-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c4bc6c6ac52cdaa267552544c73e486fecbd710b7ac09bc024d5a78555a22f6", size = 128097, upload-time = "2026-02-02T15:38:30.618Z" }, + { url = "https://files.pythonhosted.org/packages/eb/74/233d360632bafd2197f217eee7fb9c9d0229eac0c18128aee5b35b0014fe/orjson-3.11.7-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd0d68edd7dfca1b2eca9361a44ac9f24b078de3481003159929a0573f21a6bf", size = 123364, upload-time = "2026-02-02T15:38:32.363Z" }, + { url = "https://files.pythonhosted.org/packages/79/51/af79504981dd31efe20a9e360eb49c15f06df2b40e7f25a0a52d9ae888e8/orjson-3.11.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:623ad1b9548ef63886319c16fa317848e465a21513b31a6ad7b57443c3e0dcf5", size = 129076, upload-time = "2026-02-02T15:38:33.68Z" }, + { url = "https://files.pythonhosted.org/packages/67/e2/da898eb68b72304f8de05ca6715870d09d603ee98d30a27e8a9629abc64b/orjson-3.11.7-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6e776b998ac37c0396093d10290e60283f59cfe0fc3fccbd0ccc4bd04dd19892", size = 141705, upload-time = "2026-02-02T15:38:34.989Z" }, + { url = "https://files.pythonhosted.org/packages/c5/89/15364d92acb3d903b029e28d834edb8780c2b97404cbf7929aa6b9abdb24/orjson-3.11.7-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:652c6c3af76716f4a9c290371ba2e390ede06f6603edb277b481daf37f6f464e", size = 130855, upload-time = "2026-02-02T15:38:36.379Z" }, + { url = "https://files.pythonhosted.org/packages/c2/8b/ecdad52d0b38d4b8f514be603e69ccd5eacf4e7241f972e37e79792212ec/orjson-3.11.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a56df3239294ea5964adf074c54bcc4f0ccd21636049a2cf3ca9cf03b5d03cf1", size = 133386, upload-time = "2026-02-02T15:38:37.704Z" }, + { url = "https://files.pythonhosted.org/packages/b9/0e/45e1dcf10e17d0924b7c9162f87ec7b4ca79e28a0548acf6a71788d3e108/orjson-3.11.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bda117c4148e81f746655d5a3239ae9bd00cb7bc3ca178b5fc5a5997e9744183", size = 138295, upload-time = "2026-02-02T15:38:39.096Z" }, + { url = "https://files.pythonhosted.org/packages/63/d7/4d2e8b03561257af0450f2845b91fbd111d7e526ccdf737267108075e0ba/orjson-3.11.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:23d6c20517a97a9daf1d48b580fcdc6f0516c6f4b5038823426033690b4d2650", size = 408720, upload-time = "2026-02-02T15:38:40.634Z" }, + { url = "https://files.pythonhosted.org/packages/78/cf/d45343518282108b29c12a65892445fc51f9319dc3c552ceb51bb5905ed2/orjson-3.11.7-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:8ff206156006da5b847c9304b6308a01e8cdbc8cce824e2779a5ba71c3def141", size = 144152, upload-time = "2026-02-02T15:38:42.262Z" }, + { url = "https://files.pythonhosted.org/packages/a9/3a/d6001f51a7275aacd342e77b735c71fa04125a3f93c36fee4526bc8c654e/orjson-3.11.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:962d046ee1765f74a1da723f4b33e3b228fe3a48bd307acce5021dfefe0e29b2", size = 134814, upload-time = "2026-02-02T15:38:43.627Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d3/f19b47ce16820cc2c480f7f1723e17f6d411b3a295c60c8ad3aa9ff1c96a/orjson-3.11.7-cp314-cp314-win32.whl", hash = "sha256:89e13dd3f89f1c38a9c9eba5fbf7cdc2d1feca82f5f290864b4b7a6aac704576", size = 127997, upload-time = "2026-02-02T15:38:45.06Z" }, + { url = "https://files.pythonhosted.org/packages/12/df/172771902943af54bf661a8d102bdf2e7f932127968080632bda6054b62c/orjson-3.11.7-cp314-cp314-win_amd64.whl", hash = "sha256:845c3e0d8ded9c9271cd79596b9b552448b885b97110f628fb687aee2eed11c1", size = 124985, upload-time = "2026-02-02T15:38:46.388Z" }, + { url = "https://files.pythonhosted.org/packages/6f/1c/f2a8d8a1b17514660a614ce5f7aac74b934e69f5abc2700cc7ced882a009/orjson-3.11.7-cp314-cp314-win_arm64.whl", hash = "sha256:4a2e9c5be347b937a2e0203866f12bba36082e89b402ddb9e927d5822e43088d", size = 126038, upload-time = "2026-02-02T15:38:47.703Z" }, +] + +[[package]] +name = "ormsgpack" +version = "1.12.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/12/0c/f1761e21486942ab9bb6feaebc610fa074f7c5e496e6962dea5873348077/ormsgpack-1.12.2.tar.gz", hash = "sha256:944a2233640273bee67521795a73cf1e959538e0dfb7ac635505010455e53b33", size = 39031, upload-time = "2026-01-18T20:55:28.023Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/fa/a91f70829ebccf6387c4946e0a1a109f6ba0d6a28d65f628bedfad94b890/ormsgpack-1.12.2-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:c1429217f8f4d7fcb053523bbbac6bed5e981af0b85ba616e6df7cce53c19657", size = 378262, upload-time = "2026-01-18T20:55:22.284Z" }, + { url = "https://files.pythonhosted.org/packages/5f/62/3698a9a0c487252b5c6a91926e5654e79e665708ea61f67a8bdeceb022bf/ormsgpack-1.12.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f13034dc6c84a6280c6c33db7ac420253852ea233fc3ee27c8875f8dd651163", size = 203034, upload-time = "2026-01-18T20:55:53.324Z" }, + { url = "https://files.pythonhosted.org/packages/66/3a/f716f64edc4aec2744e817660b317e2f9bb8de372338a95a96198efa1ac1/ormsgpack-1.12.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:59f5da97000c12bc2d50e988bdc8576b21f6ab4e608489879d35b2c07a8ab51a", size = 210538, upload-time = "2026-01-18T20:55:20.097Z" }, + { url = "https://files.pythonhosted.org/packages/72/30/a436be9ce27d693d4e19fa94900028067133779f09fc45776db3f689c822/ormsgpack-1.12.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e4459c3f27066beadb2b81ea48a076a417aafffff7df1d3c11c519190ed44f2", size = 212401, upload-time = "2026-01-18T20:55:46.447Z" }, + { url = "https://files.pythonhosted.org/packages/10/c5/cde98300fd33fee84ca71de4751b19aeeca675f0cf3c0ec4b043f40f3b76/ormsgpack-1.12.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a1c460655d7288407ffa09065e322a7231997c0d62ce914bf3a96ad2dc6dedd", size = 387080, upload-time = "2026-01-18T20:56:00.884Z" }, + { url = "https://files.pythonhosted.org/packages/6a/31/30bf445ef827546747c10889dd254b3d84f92b591300efe4979d792f4c41/ormsgpack-1.12.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:458e4568be13d311ef7d8877275e7ccbe06c0e01b39baaac874caaa0f46d826c", size = 482346, upload-time = "2026-01-18T20:55:39.831Z" }, + { url = "https://files.pythonhosted.org/packages/2e/f5/e1745ddf4fa246c921b5ca253636c4c700ff768d78032f79171289159f6e/ormsgpack-1.12.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8cde5eaa6c6cbc8622db71e4a23de56828e3d876aeb6460ffbcb5b8aff91093b", size = 425178, upload-time = "2026-01-18T20:55:27.106Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a2/e6532ed7716aed03dede8df2d0d0d4150710c2122647d94b474147ccd891/ormsgpack-1.12.2-cp310-cp310-win_amd64.whl", hash = "sha256:dc7a33be14c347893edbb1ceda89afbf14c467d593a5ee92c11de4f1666b4d4f", size = 117183, upload-time = "2026-01-18T20:55:55.52Z" }, + { url = "https://files.pythonhosted.org/packages/4b/08/8b68f24b18e69d92238aa8f258218e6dfeacf4381d9d07ab8df303f524a9/ormsgpack-1.12.2-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:bd5f4bf04c37888e864f08e740c5a573c4017f6fd6e99fa944c5c935fabf2dd9", size = 378266, upload-time = "2026-01-18T20:55:59.876Z" }, + { url = "https://files.pythonhosted.org/packages/0d/24/29fc13044ecb7c153523ae0a1972269fcd613650d1fa1a9cec1044c6b666/ormsgpack-1.12.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34d5b28b3570e9fed9a5a76528fc7230c3c76333bc214798958e58e9b79cc18a", size = 203035, upload-time = "2026-01-18T20:55:30.59Z" }, + { url = "https://files.pythonhosted.org/packages/ad/c2/00169fb25dd8f9213f5e8a549dfb73e4d592009ebc85fbbcd3e1dcac575b/ormsgpack-1.12.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3708693412c28f3538fb5a65da93787b6bbab3484f6bc6e935bfb77a62400ae5", size = 210539, upload-time = "2026-01-18T20:55:48.569Z" }, + { url = "https://files.pythonhosted.org/packages/1b/33/543627f323ff3c73091f51d6a20db28a1a33531af30873ea90c5ac95a9b5/ormsgpack-1.12.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43013a3f3e2e902e1d05e72c0f1aeb5bedbb8e09240b51e26792a3c89267e181", size = 212401, upload-time = "2026-01-18T20:56:10.101Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5d/f70e2c3da414f46186659d24745483757bcc9adccb481a6eb93e2b729301/ormsgpack-1.12.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7c8b1667a72cbba74f0ae7ecf3105a5e01304620ed14528b2cb4320679d2869b", size = 387082, upload-time = "2026-01-18T20:56:12.047Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d6/06e8dc920c7903e051f30934d874d4afccc9bb1c09dcaf0bc03a7de4b343/ormsgpack-1.12.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:df6961442140193e517303d0b5d7bc2e20e69a879c2d774316125350c4a76b92", size = 482346, upload-time = "2026-01-18T20:56:05.152Z" }, + { url = "https://files.pythonhosted.org/packages/66/c4/f337ac0905eed9c393ef990c54565cd33644918e0a8031fe48c098c71dbf/ormsgpack-1.12.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c6a4c34ddef109647c769d69be65fa1de7a6022b02ad45546a69b3216573eb4a", size = 425181, upload-time = "2026-01-18T20:55:37.83Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/6d5758fabef3babdf4bbbc453738cc7de9cd3334e4c38dd5737e27b85653/ormsgpack-1.12.2-cp311-cp311-win_amd64.whl", hash = "sha256:73670ed0375ecc303858e3613f407628dd1fca18fe6ac57b7b7ce66cc7bb006c", size = 117182, upload-time = "2026-01-18T20:55:31.472Z" }, + { url = "https://files.pythonhosted.org/packages/c4/57/17a15549233c37e7fd054c48fe9207492e06b026dbd872b826a0b5f833b6/ormsgpack-1.12.2-cp311-cp311-win_arm64.whl", hash = "sha256:c2be829954434e33601ae5da328cccce3266b098927ca7a30246a0baec2ce7bd", size = 111464, upload-time = "2026-01-18T20:55:38.811Z" }, + { url = "https://files.pythonhosted.org/packages/4c/36/16c4b1921c308a92cef3bf6663226ae283395aa0ff6e154f925c32e91ff5/ormsgpack-1.12.2-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7a29d09b64b9694b588ff2f80e9826bdceb3a2b91523c5beae1fab27d5c940e7", size = 378618, upload-time = "2026-01-18T20:55:50.835Z" }, + { url = "https://files.pythonhosted.org/packages/c0/68/468de634079615abf66ed13bb5c34ff71da237213f29294363beeeca5306/ormsgpack-1.12.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b39e629fd2e1c5b2f46f99778450b59454d1f901bc507963168985e79f09c5d", size = 203186, upload-time = "2026-01-18T20:56:11.163Z" }, + { url = "https://files.pythonhosted.org/packages/73/a9/d756e01961442688b7939bacd87ce13bfad7d26ce24f910f6028178b2cc8/ormsgpack-1.12.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:958dcb270d30a7cb633a45ee62b9444433fa571a752d2ca484efdac07480876e", size = 210738, upload-time = "2026-01-18T20:56:09.181Z" }, + { url = "https://files.pythonhosted.org/packages/7b/ba/795b1036888542c9113269a3f5690ab53dd2258c6fb17676ac4bd44fcf94/ormsgpack-1.12.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d379d72b6c5e964851c77cfedfb386e474adee4fd39791c2c5d9efb53505cc", size = 212569, upload-time = "2026-01-18T20:56:06.135Z" }, + { url = "https://files.pythonhosted.org/packages/6c/aa/bff73c57497b9e0cba8837c7e4bcab584b1a6dbc91a5dd5526784a5030c8/ormsgpack-1.12.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8463a3fc5f09832e67bdb0e2fda6d518dc4281b133166146a67f54c08496442e", size = 387166, upload-time = "2026-01-18T20:55:36.738Z" }, + { url = "https://files.pythonhosted.org/packages/d3/cf/f8283cba44bcb7b14f97b6274d449db276b3a86589bdb363169b51bc12de/ormsgpack-1.12.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:eddffb77eff0bad4e67547d67a130604e7e2dfbb7b0cde0796045be4090f35c6", size = 482498, upload-time = "2026-01-18T20:55:29.626Z" }, + { url = "https://files.pythonhosted.org/packages/05/be/71e37b852d723dfcbe952ad04178c030df60d6b78eba26bfd14c9a40575e/ormsgpack-1.12.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fcd55e5f6ba0dbce624942adf9f152062135f991a0126064889f68eb850de0dd", size = 425518, upload-time = "2026-01-18T20:55:49.556Z" }, + { url = "https://files.pythonhosted.org/packages/7a/0c/9803aa883d18c7ef197213cd2cbf73ba76472a11fe100fb7dab2884edf48/ormsgpack-1.12.2-cp312-cp312-win_amd64.whl", hash = "sha256:d024b40828f1dde5654faebd0d824f9cc29ad46891f626272dd5bfd7af2333a4", size = 117462, upload-time = "2026-01-18T20:55:47.726Z" }, + { url = "https://files.pythonhosted.org/packages/c8/9e/029e898298b2cc662f10d7a15652a53e3b525b1e7f07e21fef8536a09bb8/ormsgpack-1.12.2-cp312-cp312-win_arm64.whl", hash = "sha256:da538c542bac7d1c8f3f2a937863dba36f013108ce63e55745941dda4b75dbb6", size = 111559, upload-time = "2026-01-18T20:55:54.273Z" }, + { url = "https://files.pythonhosted.org/packages/eb/29/bb0eba3288c0449efbb013e9c6f58aea79cf5cb9ee1921f8865f04c1a9d7/ormsgpack-1.12.2-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:5ea60cb5f210b1cfbad8c002948d73447508e629ec375acb82910e3efa8ff355", size = 378661, upload-time = "2026-01-18T20:55:57.765Z" }, + { url = "https://files.pythonhosted.org/packages/6e/31/5efa31346affdac489acade2926989e019e8ca98129658a183e3add7af5e/ormsgpack-1.12.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3601f19afdbea273ed70b06495e5794606a8b690a568d6c996a90d7255e51c1", size = 203194, upload-time = "2026-01-18T20:56:08.252Z" }, + { url = "https://files.pythonhosted.org/packages/eb/56/d0087278beef833187e0167f8527235ebe6f6ffc2a143e9de12a98b1ce87/ormsgpack-1.12.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:29a9f17a3dac6054c0dce7925e0f4995c727f7c41859adf9b5572180f640d172", size = 210778, upload-time = "2026-01-18T20:55:17.694Z" }, + { url = "https://files.pythonhosted.org/packages/1c/a2/072343e1413d9443e5a252a8eb591c2d5b1bffbe5e7bfc78c069361b92eb/ormsgpack-1.12.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39c1bd2092880e413902910388be8715f70b9f15f20779d44e673033a6146f2d", size = 212592, upload-time = "2026-01-18T20:55:32.747Z" }, + { url = "https://files.pythonhosted.org/packages/a2/8b/a0da3b98a91d41187a63b02dda14267eefc2a74fcb43cc2701066cf1510e/ormsgpack-1.12.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:50b7249244382209877deedeee838aef1542f3d0fc28b8fe71ca9d7e1896a0d7", size = 387164, upload-time = "2026-01-18T20:55:40.853Z" }, + { url = "https://files.pythonhosted.org/packages/19/bb/6d226bc4cf9fc20d8eb1d976d027a3f7c3491e8f08289a2e76abe96a65f3/ormsgpack-1.12.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:5af04800d844451cf102a59c74a841324868d3f1625c296a06cc655c542a6685", size = 482516, upload-time = "2026-01-18T20:55:42.033Z" }, + { url = "https://files.pythonhosted.org/packages/fb/f1/bb2c7223398543dedb3dbf8bb93aaa737b387de61c5feaad6f908841b782/ormsgpack-1.12.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cec70477d4371cd524534cd16472d8b9cc187e0e3043a8790545a9a9b296c258", size = 425539, upload-time = "2026-01-18T20:55:24.727Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e8/0fb45f57a2ada1fed374f7494c8cd55e2f88ccd0ab0a669aa3468716bf5f/ormsgpack-1.12.2-cp313-cp313-win_amd64.whl", hash = "sha256:21f4276caca5c03a818041d637e4019bc84f9d6ca8baa5ea03e5cc8bf56140e9", size = 117459, upload-time = "2026-01-18T20:55:56.876Z" }, + { url = "https://files.pythonhosted.org/packages/7a/d4/0cfeea1e960d550a131001a7f38a5132c7ae3ebde4c82af1f364ccc5d904/ormsgpack-1.12.2-cp313-cp313-win_arm64.whl", hash = "sha256:baca4b6773d20a82e36d6fd25f341064244f9f86a13dead95dd7d7f996f51709", size = 111577, upload-time = "2026-01-18T20:55:43.605Z" }, + { url = "https://files.pythonhosted.org/packages/94/16/24d18851334be09c25e87f74307c84950f18c324a4d3c0b41dabdbf19c29/ormsgpack-1.12.2-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:bc68dd5915f4acf66ff2010ee47c8906dc1cf07399b16f4089f8c71733f6e36c", size = 378717, upload-time = "2026-01-18T20:55:26.164Z" }, + { url = "https://files.pythonhosted.org/packages/b5/a2/88b9b56f83adae8032ac6a6fa7f080c65b3baf9b6b64fd3d37bd202991d4/ormsgpack-1.12.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46d084427b4132553940070ad95107266656cb646ea9da4975f85cb1a6676553", size = 203183, upload-time = "2026-01-18T20:55:18.815Z" }, + { url = "https://files.pythonhosted.org/packages/a9/80/43e4555963bf602e5bdc79cbc8debd8b6d5456c00d2504df9775e74b450b/ormsgpack-1.12.2-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c010da16235806cf1d7bc4c96bf286bfa91c686853395a299b3ddb49499a3e13", size = 210814, upload-time = "2026-01-18T20:55:33.973Z" }, + { url = "https://files.pythonhosted.org/packages/78/e1/7cfbf28de8bca6efe7e525b329c31277d1b64ce08dcba723971c241a9d60/ormsgpack-1.12.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18867233df592c997154ff942a6503df274b5ac1765215bceba7a231bea2745d", size = 212634, upload-time = "2026-01-18T20:55:28.634Z" }, + { url = "https://files.pythonhosted.org/packages/95/f8/30ae5716e88d792a4e879debee195653c26ddd3964c968594ddef0a3cc7e/ormsgpack-1.12.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b009049086ddc6b8f80c76b3955df1aa22a5fbd7673c525cd63bf91f23122ede", size = 387139, upload-time = "2026-01-18T20:56:02.013Z" }, + { url = "https://files.pythonhosted.org/packages/dc/81/aee5b18a3e3a0e52f718b37ab4b8af6fae0d9d6a65103036a90c2a8ffb5d/ormsgpack-1.12.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:1dcc17d92b6390d4f18f937cf0b99054824a7815818012ddca925d6e01c2e49e", size = 482578, upload-time = "2026-01-18T20:55:35.117Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/71c9ba472d5d45f7546317f467a5fc941929cd68fb32796ca3d13dcbaec2/ormsgpack-1.12.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f04b5e896d510b07c0ad733d7fce2d44b260c5e6c402d272128f8941984e4285", size = 425539, upload-time = "2026-01-18T20:56:04.009Z" }, + { url = "https://files.pythonhosted.org/packages/2e/a6/ac99cd7fe77e822fed5250ff4b86fa66dd4238937dd178d2299f10b69816/ormsgpack-1.12.2-cp314-cp314-win_amd64.whl", hash = "sha256:ae3aba7eed4ca7cb79fd3436eddd29140f17ea254b91604aa1eb19bfcedb990f", size = 117493, upload-time = "2026-01-18T20:56:07.343Z" }, + { url = "https://files.pythonhosted.org/packages/3a/67/339872846a1ae4592535385a1c1f93614138566d7af094200c9c3b45d1e5/ormsgpack-1.12.2-cp314-cp314-win_arm64.whl", hash = "sha256:118576ea6006893aea811b17429bfc561b4778fad393f5f538c84af70b01260c", size = 111579, upload-time = "2026-01-18T20:55:21.161Z" }, + { url = "https://files.pythonhosted.org/packages/49/c2/6feb972dc87285ad381749d3882d8aecbde9f6ecf908dd717d33d66df095/ormsgpack-1.12.2-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7121b3d355d3858781dc40dafe25a32ff8a8242b9d80c692fd548a4b1f7fd3c8", size = 378721, upload-time = "2026-01-18T20:55:52.12Z" }, + { url = "https://files.pythonhosted.org/packages/a3/9a/900a6b9b413e0f8a471cf07830f9cf65939af039a362204b36bd5b581d8b/ormsgpack-1.12.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ee766d2e78251b7a63daf1cddfac36a73562d3ddef68cacfb41b2af64698033", size = 203170, upload-time = "2026-01-18T20:55:44.469Z" }, + { url = "https://files.pythonhosted.org/packages/87/4c/27a95466354606b256f24fad464d7c97ab62bce6cc529dd4673e1179b8fb/ormsgpack-1.12.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:292410a7d23de9b40444636b9b8f1e4e4b814af7f1ef476e44887e52a123f09d", size = 212816, upload-time = "2026-01-18T20:55:23.501Z" }, + { url = "https://files.pythonhosted.org/packages/73/cd/29cee6007bddf7a834e6cd6f536754c0535fcb939d384f0f37a38b1cddb8/ormsgpack-1.12.2-cp314-cp314t-win_amd64.whl", hash = "sha256:837dd316584485b72ef451d08dd3e96c4a11d12e4963aedb40e08f89685d8ec2", size = 117232, upload-time = "2026-01-18T20:55:45.448Z" }, +] + +[[package]] +name = "overrides" +version = "7.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/36/86/b585f53236dec60aba864e050778b25045f857e17f6e5ea0ae95fe80edd2/overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a", size = 22812, upload-time = "2024-01-27T21:01:33.423Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/ab/fc8290c6a4c722e5514d80f62b2dc4c4df1a68a41d1364e625c35990fcf3/overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49", size = 17832, upload-time = "2024-01-27T21:01:31.393Z" }, +] + +[[package]] +name = "packaging" +version = "26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, +] + +[[package]] +name = "pdfminer-six" +version = "20251230" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "charset-normalizer" }, + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/9a/d79d8fa6d47a0338846bb558b39b9963b8eb2dfedec61867c138c1b17eeb/pdfminer_six-20251230.tar.gz", hash = "sha256:e8f68a14c57e00c2d7276d26519ea64be1b48f91db1cdc776faa80528ca06c1e", size = 8511285, upload-time = "2025-12-30T15:49:13.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/d7/b288ea32deb752a09aab73c75e1e7572ab2a2b56c3124a5d1eb24c62ceb3/pdfminer_six-20251230-py3-none-any.whl", hash = "sha256:9ff2e3466a7dfc6de6fd779478850b6b7c2d9e9405aa2a5869376a822771f485", size = 6591909, upload-time = "2025-12-30T15:49:10.76Z" }, +] + +[[package]] +name = "pdfplumber" +version = "0.11.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pdfminer-six" }, + { name = "pillow" }, + { name = "pypdfium2" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/37/9ca3519e92a8434eb93be570b131476cc0a4e840bb39c62ddb7813a39d53/pdfplumber-0.11.9.tar.gz", hash = "sha256:481224b678b2bbdbf376e2c39bf914144eef7c3d301b4a28eebf0f7f6109d6dc", size = 102768, upload-time = "2026-01-05T08:10:29.072Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/c8/cdbc975f5b634e249cfa6597e37c50f3078412474f21c015e508bfbfe3c3/pdfplumber-0.11.9-py3-none-any.whl", hash = "sha256:33ec5580959ba524e9100138746e090879504c42955df1b8a997604dd326c443", size = 60045, upload-time = "2026-01-05T08:10:27.512Z" }, +] + +[[package]] +name = "pillow" +version = "12.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1f/42/5c74462b4fd957fcd7b13b04fb3205ff8349236ea74c7c375766d6c82288/pillow-12.1.1.tar.gz", hash = "sha256:9ad8fa5937ab05218e2b6a4cff30295ad35afd2f83ac592e68c0d871bb0fdbc4", size = 46980264, upload-time = "2026-02-11T04:23:07.146Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/30/5bd3d794762481f8c8ae9c80e7b76ecea73b916959eb587521358ef0b2f9/pillow-12.1.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1f1625b72740fdda5d77b4def688eb8fd6490975d06b909fd19f13f391e077e0", size = 5304099, upload-time = "2026-02-11T04:20:06.13Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c1/aab9e8f3eeb4490180e357955e15c2ef74b31f64790ff356c06fb6cf6d84/pillow-12.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:178aa072084bd88ec759052feca8e56cbb14a60b39322b99a049e58090479713", size = 4657880, upload-time = "2026-02-11T04:20:09.291Z" }, + { url = "https://files.pythonhosted.org/packages/f1/0a/9879e30d56815ad529d3985aeff5af4964202425c27261a6ada10f7cbf53/pillow-12.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b66e95d05ba806247aaa1561f080abc7975daf715c30780ff92a20e4ec546e1b", size = 6222587, upload-time = "2026-02-11T04:20:10.82Z" }, + { url = "https://files.pythonhosted.org/packages/5a/5f/a1b72ff7139e4f89014e8d451442c74a774d5c43cd938fb0a9f878576b37/pillow-12.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:89c7e895002bbe49cdc5426150377cbbc04767d7547ed145473f496dfa40408b", size = 8027678, upload-time = "2026-02-11T04:20:12.455Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c2/c7cb187dac79a3d22c3ebeae727abee01e077c8c7d930791dc592f335153/pillow-12.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a5cbdcddad0af3da87cb16b60d23648bc3b51967eb07223e9fed77a82b457c4", size = 6335777, upload-time = "2026-02-11T04:20:14.441Z" }, + { url = "https://files.pythonhosted.org/packages/0c/7b/f9b09a7804ec7336effb96c26d37c29d27225783dc1501b7d62dcef6ae25/pillow-12.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9f51079765661884a486727f0729d29054242f74b46186026582b4e4769918e4", size = 7027140, upload-time = "2026-02-11T04:20:16.387Z" }, + { url = "https://files.pythonhosted.org/packages/98/b2/2fa3c391550bd421b10849d1a2144c44abcd966daadd2f7c12e19ea988c4/pillow-12.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:99c1506ea77c11531d75e3a412832a13a71c7ebc8192ab9e4b2e355555920e3e", size = 6449855, upload-time = "2026-02-11T04:20:18.554Z" }, + { url = "https://files.pythonhosted.org/packages/96/ff/9caf4b5b950c669263c39e96c78c0d74a342c71c4f43fd031bb5cb7ceac9/pillow-12.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:36341d06738a9f66c8287cf8b876d24b18db9bd8740fa0672c74e259ad408cff", size = 7151329, upload-time = "2026-02-11T04:20:20.646Z" }, + { url = "https://files.pythonhosted.org/packages/7b/f8/4b24841f582704da675ca535935bccb32b00a6da1226820845fac4a71136/pillow-12.1.1-cp310-cp310-win32.whl", hash = "sha256:6c52f062424c523d6c4db85518774cc3d50f5539dd6eed32b8f6229b26f24d40", size = 6325574, upload-time = "2026-02-11T04:20:22.43Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f9/9f6b01c0881d7036063aa6612ef04c0e2cad96be21325a1e92d0203f8e91/pillow-12.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:c6008de247150668a705a6338156efb92334113421ceecf7438a12c9a12dab23", size = 7032347, upload-time = "2026-02-11T04:20:23.932Z" }, + { url = "https://files.pythonhosted.org/packages/79/13/c7922edded3dcdaf10c59297540b72785620abc0538872c819915746757d/pillow-12.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:1a9b0ee305220b392e1124a764ee4265bd063e54a751a6b62eff69992f457fa9", size = 2453457, upload-time = "2026-02-11T04:20:25.392Z" }, + { url = "https://files.pythonhosted.org/packages/2b/46/5da1ec4a5171ee7bf1a0efa064aba70ba3d6e0788ce3f5acd1375d23c8c0/pillow-12.1.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e879bb6cd5c73848ef3b2b48b8af9ff08c5b71ecda8048b7dd22d8a33f60be32", size = 5304084, upload-time = "2026-02-11T04:20:27.501Z" }, + { url = "https://files.pythonhosted.org/packages/78/93/a29e9bc02d1cf557a834da780ceccd54e02421627200696fcf805ebdc3fb/pillow-12.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:365b10bb9417dd4498c0e3b128018c4a624dc11c7b97d8cc54effe3b096f4c38", size = 4657866, upload-time = "2026-02-11T04:20:29.827Z" }, + { url = "https://files.pythonhosted.org/packages/13/84/583a4558d492a179d31e4aae32eadce94b9acf49c0337c4ce0b70e0a01f2/pillow-12.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d4ce8e329c93845720cd2014659ca67eac35f6433fd3050393d85f3ecef0dad5", size = 6232148, upload-time = "2026-02-11T04:20:31.329Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e2/53c43334bbbb2d3b938978532fbda8e62bb6e0b23a26ce8592f36bcc4987/pillow-12.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc354a04072b765eccf2204f588a7a532c9511e8b9c7f900e1b64e3e33487090", size = 8038007, upload-time = "2026-02-11T04:20:34.225Z" }, + { url = "https://files.pythonhosted.org/packages/b8/a6/3d0e79c8a9d58150dd98e199d7c1c56861027f3829a3a60b3c2784190180/pillow-12.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e7976bf1910a8116b523b9f9f58bf410f3e8aa330cd9a2bb2953f9266ab49af", size = 6345418, upload-time = "2026-02-11T04:20:35.858Z" }, + { url = "https://files.pythonhosted.org/packages/a2/c8/46dfeac5825e600579157eea177be43e2f7ff4a99da9d0d0a49533509ac5/pillow-12.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:597bd9c8419bc7c6af5604e55847789b69123bbe25d65cc6ad3012b4f3c98d8b", size = 7034590, upload-time = "2026-02-11T04:20:37.91Z" }, + { url = "https://files.pythonhosted.org/packages/af/bf/e6f65d3db8a8bbfeaf9e13cc0417813f6319863a73de934f14b2229ada18/pillow-12.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2c1fc0f2ca5f96a3c8407e41cca26a16e46b21060fe6d5b099d2cb01412222f5", size = 6458655, upload-time = "2026-02-11T04:20:39.496Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c2/66091f3f34a25894ca129362e510b956ef26f8fb67a0e6417bc5744e56f1/pillow-12.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:578510d88c6229d735855e1f278aa305270438d36a05031dfaae5067cc8eb04d", size = 7159286, upload-time = "2026-02-11T04:20:41.139Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5a/24bc8eb526a22f957d0cec6243146744966d40857e3d8deb68f7902ca6c1/pillow-12.1.1-cp311-cp311-win32.whl", hash = "sha256:7311c0a0dcadb89b36b7025dfd8326ecfa36964e29913074d47382706e516a7c", size = 6328663, upload-time = "2026-02-11T04:20:43.184Z" }, + { url = "https://files.pythonhosted.org/packages/31/03/bef822e4f2d8f9d7448c133d0a18185d3cce3e70472774fffefe8b0ed562/pillow-12.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:fbfa2a7c10cc2623f412753cddf391c7f971c52ca40a3f65dc5039b2939e8563", size = 7031448, upload-time = "2026-02-11T04:20:44.696Z" }, + { url = "https://files.pythonhosted.org/packages/49/70/f76296f53610bd17b2e7d31728b8b7825e3ac3b5b3688b51f52eab7c0818/pillow-12.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:b81b5e3511211631b3f672a595e3221252c90af017e399056d0faabb9538aa80", size = 2453651, upload-time = "2026-02-11T04:20:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/07/d3/8df65da0d4df36b094351dce696f2989bec731d4f10e743b1c5f4da4d3bf/pillow-12.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ab323b787d6e18b3d91a72fc99b1a2c28651e4358749842b8f8dfacd28ef2052", size = 5262803, upload-time = "2026-02-11T04:20:47.653Z" }, + { url = "https://files.pythonhosted.org/packages/d6/71/5026395b290ff404b836e636f51d7297e6c83beceaa87c592718747e670f/pillow-12.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:adebb5bee0f0af4909c30db0d890c773d1a92ffe83da908e2e9e720f8edf3984", size = 4657601, upload-time = "2026-02-11T04:20:49.328Z" }, + { url = "https://files.pythonhosted.org/packages/b1/2e/1001613d941c67442f745aff0f7cc66dd8df9a9c084eb497e6a543ee6f7e/pillow-12.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb66b7cc26f50977108790e2456b7921e773f23db5630261102233eb355a3b79", size = 6234995, upload-time = "2026-02-11T04:20:51.032Z" }, + { url = "https://files.pythonhosted.org/packages/07/26/246ab11455b2549b9233dbd44d358d033a2f780fa9007b61a913c5b2d24e/pillow-12.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aee2810642b2898bb187ced9b349e95d2a7272930796e022efaf12e99dccd293", size = 8045012, upload-time = "2026-02-11T04:20:52.882Z" }, + { url = "https://files.pythonhosted.org/packages/b2/8b/07587069c27be7535ac1fe33874e32de118fbd34e2a73b7f83436a88368c/pillow-12.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a0b1cd6232e2b618adcc54d9882e4e662a089d5768cd188f7c245b4c8c44a397", size = 6349638, upload-time = "2026-02-11T04:20:54.444Z" }, + { url = "https://files.pythonhosted.org/packages/ff/79/6df7b2ee763d619cda2fb4fea498e5f79d984dae304d45a8999b80d6cf5c/pillow-12.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7aac39bcf8d4770d089588a2e1dd111cbaa42df5a94be3114222057d68336bd0", size = 7041540, upload-time = "2026-02-11T04:20:55.97Z" }, + { url = "https://files.pythonhosted.org/packages/2c/5e/2ba19e7e7236d7529f4d873bdaf317a318896bac289abebd4bb00ef247f0/pillow-12.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ab174cd7d29a62dd139c44bf74b698039328f45cb03b4596c43473a46656b2f3", size = 6462613, upload-time = "2026-02-11T04:20:57.542Z" }, + { url = "https://files.pythonhosted.org/packages/03/03/31216ec124bb5c3dacd74ce8efff4cc7f52643653bad4825f8f08c697743/pillow-12.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:339ffdcb7cbeaa08221cd401d517d4b1fe7a9ed5d400e4a8039719238620ca35", size = 7166745, upload-time = "2026-02-11T04:20:59.196Z" }, + { url = "https://files.pythonhosted.org/packages/1f/e7/7c4552d80052337eb28653b617eafdef39adfb137c49dd7e831b8dc13bc5/pillow-12.1.1-cp312-cp312-win32.whl", hash = "sha256:5d1f9575a12bed9e9eedd9a4972834b08c97a352bd17955ccdebfeca5913fa0a", size = 6328823, upload-time = "2026-02-11T04:21:01.385Z" }, + { url = "https://files.pythonhosted.org/packages/3d/17/688626d192d7261bbbf98846fc98995726bddc2c945344b65bec3a29d731/pillow-12.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:21329ec8c96c6e979cd0dfd29406c40c1d52521a90544463057d2aaa937d66a6", size = 7033367, upload-time = "2026-02-11T04:21:03.536Z" }, + { url = "https://files.pythonhosted.org/packages/ed/fe/a0ef1f73f939b0eca03ee2c108d0043a87468664770612602c63266a43c4/pillow-12.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:af9a332e572978f0218686636610555ae3defd1633597be015ed50289a03c523", size = 2453811, upload-time = "2026-02-11T04:21:05.116Z" }, + { url = "https://files.pythonhosted.org/packages/d5/11/6db24d4bd7685583caeae54b7009584e38da3c3d4488ed4cd25b439de486/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d242e8ac078781f1de88bf823d70c1a9b3c7950a44cdf4b7c012e22ccbcd8e4e", size = 4062689, upload-time = "2026-02-11T04:21:06.804Z" }, + { url = "https://files.pythonhosted.org/packages/33/c0/ce6d3b1fe190f0021203e0d9b5b99e57843e345f15f9ef22fcd43842fd21/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:02f84dfad02693676692746df05b89cf25597560db2857363a208e393429f5e9", size = 4138535, upload-time = "2026-02-11T04:21:08.452Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c6/d5eb6a4fb32a3f9c21a8c7613ec706534ea1cf9f4b3663e99f0d83f6fca8/pillow-12.1.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:e65498daf4b583091ccbb2556c7000abf0f3349fcd57ef7adc9a84a394ed29f6", size = 3601364, upload-time = "2026-02-11T04:21:10.194Z" }, + { url = "https://files.pythonhosted.org/packages/14/a1/16c4b823838ba4c9c52c0e6bbda903a3fe5a1bdbf1b8eb4fff7156f3e318/pillow-12.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c6db3b84c87d48d0088943bf33440e0c42370b99b1c2a7989216f7b42eede60", size = 5262561, upload-time = "2026-02-11T04:21:11.742Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ad/ad9dc98ff24f485008aa5cdedaf1a219876f6f6c42a4626c08bc4e80b120/pillow-12.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b7e5304e34942bf62e15184219a7b5ad4ff7f3bb5cca4d984f37df1a0e1aee2", size = 4657460, upload-time = "2026-02-11T04:21:13.786Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1b/f1a4ea9a895b5732152789326202a82464d5254759fbacae4deea3069334/pillow-12.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:18e5bddd742a44b7e6b1e773ab5db102bd7a94c32555ba656e76d319d19c3850", size = 6232698, upload-time = "2026-02-11T04:21:15.949Z" }, + { url = "https://files.pythonhosted.org/packages/95/f4/86f51b8745070daf21fd2e5b1fe0eb35d4db9ca26e6d58366562fb56a743/pillow-12.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc44ef1f3de4f45b50ccf9136999d71abb99dca7706bc75d222ed350b9fd2289", size = 8041706, upload-time = "2026-02-11T04:21:17.723Z" }, + { url = "https://files.pythonhosted.org/packages/29/9b/d6ecd956bb1266dd1045e995cce9b8d77759e740953a1c9aad9502a0461e/pillow-12.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a8eb7ed8d4198bccbd07058416eeec51686b498e784eda166395a23eb99138e", size = 6346621, upload-time = "2026-02-11T04:21:19.547Z" }, + { url = "https://files.pythonhosted.org/packages/71/24/538bff45bde96535d7d998c6fed1a751c75ac7c53c37c90dc2601b243893/pillow-12.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47b94983da0c642de92ced1702c5b6c292a84bd3a8e1d1702ff923f183594717", size = 7038069, upload-time = "2026-02-11T04:21:21.378Z" }, + { url = "https://files.pythonhosted.org/packages/94/0e/58cb1a6bc48f746bc4cb3adb8cabff73e2742c92b3bf7a220b7cf69b9177/pillow-12.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:518a48c2aab7ce596d3bf79d0e275661b846e86e4d0e7dec34712c30fe07f02a", size = 6460040, upload-time = "2026-02-11T04:21:23.148Z" }, + { url = "https://files.pythonhosted.org/packages/6c/57/9045cb3ff11eeb6c1adce3b2d60d7d299d7b273a2e6c8381a524abfdc474/pillow-12.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a550ae29b95c6dc13cf69e2c9dc5747f814c54eeb2e32d683e5e93af56caa029", size = 7164523, upload-time = "2026-02-11T04:21:25.01Z" }, + { url = "https://files.pythonhosted.org/packages/73/f2/9be9cb99f2175f0d4dbadd6616ce1bf068ee54a28277ea1bf1fbf729c250/pillow-12.1.1-cp313-cp313-win32.whl", hash = "sha256:a003d7422449f6d1e3a34e3dd4110c22148336918ddbfc6a32581cd54b2e0b2b", size = 6332552, upload-time = "2026-02-11T04:21:27.238Z" }, + { url = "https://files.pythonhosted.org/packages/3f/eb/b0834ad8b583d7d9d42b80becff092082a1c3c156bb582590fcc973f1c7c/pillow-12.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:344cf1e3dab3be4b1fa08e449323d98a2a3f819ad20f4b22e77a0ede31f0faa1", size = 7040108, upload-time = "2026-02-11T04:21:29.462Z" }, + { url = "https://files.pythonhosted.org/packages/d5/7d/fc09634e2aabdd0feabaff4a32f4a7d97789223e7c2042fd805ea4b4d2c2/pillow-12.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:5c0dd1636633e7e6a0afe7bf6a51a14992b7f8e60de5789018ebbdfae55b040a", size = 2453712, upload-time = "2026-02-11T04:21:31.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/2a/b9d62794fc8a0dd14c1943df68347badbd5511103e0d04c035ffe5cf2255/pillow-12.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0330d233c1a0ead844fc097a7d16c0abff4c12e856c0b325f231820fee1f39da", size = 5264880, upload-time = "2026-02-11T04:21:32.865Z" }, + { url = "https://files.pythonhosted.org/packages/26/9d/e03d857d1347fa5ed9247e123fcd2a97b6220e15e9cb73ca0a8d91702c6e/pillow-12.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5dae5f21afb91322f2ff791895ddd8889e5e947ff59f71b46041c8ce6db790bc", size = 4660616, upload-time = "2026-02-11T04:21:34.97Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ec/8a6d22afd02570d30954e043f09c32772bfe143ba9285e2fdb11284952cd/pillow-12.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2e0c664be47252947d870ac0d327fea7e63985a08794758aa8af5b6cb6ec0c9c", size = 6269008, upload-time = "2026-02-11T04:21:36.623Z" }, + { url = "https://files.pythonhosted.org/packages/3d/1d/6d875422c9f28a4a361f495a5f68d9de4a66941dc2c619103ca335fa6446/pillow-12.1.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:691ab2ac363b8217f7d31b3497108fb1f50faab2f75dfb03284ec2f217e87bf8", size = 8073226, upload-time = "2026-02-11T04:21:38.585Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cd/134b0b6ee5eda6dc09e25e24b40fdafe11a520bc725c1d0bbaa5e00bf95b/pillow-12.1.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9e8064fb1cc019296958595f6db671fba95209e3ceb0c4734c9baf97de04b20", size = 6380136, upload-time = "2026-02-11T04:21:40.562Z" }, + { url = "https://files.pythonhosted.org/packages/7a/a9/7628f013f18f001c1b98d8fffe3452f306a70dc6aba7d931019e0492f45e/pillow-12.1.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:472a8d7ded663e6162dafdf20015c486a7009483ca671cece7a9279b512fcb13", size = 7067129, upload-time = "2026-02-11T04:21:42.521Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f8/66ab30a2193b277785601e82ee2d49f68ea575d9637e5e234faaa98efa4c/pillow-12.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:89b54027a766529136a06cfebeecb3a04900397a3590fd252160b888479517bf", size = 6491807, upload-time = "2026-02-11T04:21:44.22Z" }, + { url = "https://files.pythonhosted.org/packages/da/0b/a877a6627dc8318fdb84e357c5e1a758c0941ab1ddffdafd231983788579/pillow-12.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:86172b0831b82ce4f7877f280055892b31179e1576aa00d0df3bb1bbf8c3e524", size = 7190954, upload-time = "2026-02-11T04:21:46.114Z" }, + { url = "https://files.pythonhosted.org/packages/83/43/6f732ff85743cf746b1361b91665d9f5155e1483817f693f8d57ea93147f/pillow-12.1.1-cp313-cp313t-win32.whl", hash = "sha256:44ce27545b6efcf0fdbdceb31c9a5bdea9333e664cda58a7e674bb74608b3986", size = 6336441, upload-time = "2026-02-11T04:21:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/3b/44/e865ef3986611bb75bfabdf94a590016ea327833f434558801122979cd0e/pillow-12.1.1-cp313-cp313t-win_amd64.whl", hash = "sha256:a285e3eb7a5a45a2ff504e31f4a8d1b12ef62e84e5411c6804a42197c1cf586c", size = 7045383, upload-time = "2026-02-11T04:21:50.015Z" }, + { url = "https://files.pythonhosted.org/packages/a8/c6/f4fb24268d0c6908b9f04143697ea18b0379490cb74ba9e8d41b898bd005/pillow-12.1.1-cp313-cp313t-win_arm64.whl", hash = "sha256:cc7d296b5ea4d29e6570dabeaed58d31c3fea35a633a69679fb03d7664f43fb3", size = 2456104, upload-time = "2026-02-11T04:21:51.633Z" }, + { url = "https://files.pythonhosted.org/packages/03/d0/bebb3ffbf31c5a8e97241476c4cf8b9828954693ce6744b4a2326af3e16b/pillow-12.1.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:417423db963cb4be8bac3fc1204fe61610f6abeed1580a7a2cbb2fbda20f12af", size = 4062652, upload-time = "2026-02-11T04:21:53.19Z" }, + { url = "https://files.pythonhosted.org/packages/2d/c0/0e16fb0addda4851445c28f8350d8c512f09de27bbb0d6d0bbf8b6709605/pillow-12.1.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:b957b71c6b2387610f556a7eb0828afbe40b4a98036fc0d2acfa5a44a0c2036f", size = 4138823, upload-time = "2026-02-11T04:22:03.088Z" }, + { url = "https://files.pythonhosted.org/packages/6b/fb/6170ec655d6f6bb6630a013dd7cf7bc218423d7b5fa9071bf63dc32175ae/pillow-12.1.1-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:097690ba1f2efdeb165a20469d59d8bb03c55fb6621eb2041a060ae8ea3e9642", size = 3601143, upload-time = "2026-02-11T04:22:04.909Z" }, + { url = "https://files.pythonhosted.org/packages/59/04/dc5c3f297510ba9a6837cbb318b87dd2b8f73eb41a43cc63767f65cb599c/pillow-12.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2815a87ab27848db0321fb78c7f0b2c8649dee134b7f2b80c6a45c6831d75ccd", size = 5266254, upload-time = "2026-02-11T04:22:07.656Z" }, + { url = "https://files.pythonhosted.org/packages/05/30/5db1236b0d6313f03ebf97f5e17cda9ca060f524b2fcc875149a8360b21c/pillow-12.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f7ed2c6543bad5a7d5530eb9e78c53132f93dfa44a28492db88b41cdab885202", size = 4657499, upload-time = "2026-02-11T04:22:09.613Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/008d2ca0eb612e81968e8be0bbae5051efba24d52debf930126d7eaacbba/pillow-12.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:652a2c9ccfb556235b2b501a3a7cf3742148cd22e04b5625c5fe057ea3e3191f", size = 6232137, upload-time = "2026-02-11T04:22:11.434Z" }, + { url = "https://files.pythonhosted.org/packages/70/f1/f14d5b8eeb4b2cd62b9f9f847eb6605f103df89ef619ac68f92f748614ea/pillow-12.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d6e4571eedf43af33d0fc233a382a76e849badbccdf1ac438841308652a08e1f", size = 8042721, upload-time = "2026-02-11T04:22:13.321Z" }, + { url = "https://files.pythonhosted.org/packages/5a/d6/17824509146e4babbdabf04d8171491fa9d776f7061ff6e727522df9bd03/pillow-12.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b574c51cf7d5d62e9be37ba446224b59a2da26dc4c1bb2ecbe936a4fb1a7cb7f", size = 6347798, upload-time = "2026-02-11T04:22:15.449Z" }, + { url = "https://files.pythonhosted.org/packages/d1/ee/c85a38a9ab92037a75615aba572c85ea51e605265036e00c5b67dfafbfe2/pillow-12.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a37691702ed687799de29a518d63d4682d9016932db66d4e90c345831b02fb4e", size = 7039315, upload-time = "2026-02-11T04:22:17.24Z" }, + { url = "https://files.pythonhosted.org/packages/ec/f3/bc8ccc6e08a148290d7523bde4d9a0d6c981db34631390dc6e6ec34cacf6/pillow-12.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f95c00d5d6700b2b890479664a06e754974848afaae5e21beb4d83c106923fd0", size = 6462360, upload-time = "2026-02-11T04:22:19.111Z" }, + { url = "https://files.pythonhosted.org/packages/f6/ab/69a42656adb1d0665ab051eec58a41f169ad295cf81ad45406963105408f/pillow-12.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:559b38da23606e68681337ad74622c4dbba02254fc9cb4488a305dd5975c7eeb", size = 7165438, upload-time = "2026-02-11T04:22:21.041Z" }, + { url = "https://files.pythonhosted.org/packages/02/46/81f7aa8941873f0f01d4b55cc543b0a3d03ec2ee30d617a0448bf6bd6dec/pillow-12.1.1-cp314-cp314-win32.whl", hash = "sha256:03edcc34d688572014ff223c125a3f77fb08091e4607e7745002fc214070b35f", size = 6431503, upload-time = "2026-02-11T04:22:22.833Z" }, + { url = "https://files.pythonhosted.org/packages/40/72/4c245f7d1044b67affc7f134a09ea619d4895333d35322b775b928180044/pillow-12.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:50480dcd74fa63b8e78235957d302d98d98d82ccbfac4c7e12108ba9ecbdba15", size = 7176748, upload-time = "2026-02-11T04:22:24.64Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ad/8a87bdbe038c5c698736e3348af5c2194ffb872ea52f11894c95f9305435/pillow-12.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:5cb1785d97b0c3d1d1a16bc1d710c4a0049daefc4935f3a8f31f827f4d3d2e7f", size = 2544314, upload-time = "2026-02-11T04:22:26.685Z" }, + { url = "https://files.pythonhosted.org/packages/6c/9d/efd18493f9de13b87ede7c47e69184b9e859e4427225ea962e32e56a49bc/pillow-12.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1f90cff8aa76835cba5769f0b3121a22bd4eb9e6884cfe338216e557a9a548b8", size = 5268612, upload-time = "2026-02-11T04:22:29.884Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f1/4f42eb2b388eb2ffc660dcb7f7b556c1015c53ebd5f7f754965ef997585b/pillow-12.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1f1be78ce9466a7ee64bfda57bdba0f7cc499d9794d518b854816c41bf0aa4e9", size = 4660567, upload-time = "2026-02-11T04:22:31.799Z" }, + { url = "https://files.pythonhosted.org/packages/01/54/df6ef130fa43e4b82e32624a7b821a2be1c5653a5fdad8469687a7db4e00/pillow-12.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:42fc1f4677106188ad9a55562bbade416f8b55456f522430fadab3cef7cd4e60", size = 6269951, upload-time = "2026-02-11T04:22:33.921Z" }, + { url = "https://files.pythonhosted.org/packages/a9/48/618752d06cc44bb4aae8ce0cd4e6426871929ed7b46215638088270d9b34/pillow-12.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:98edb152429ab62a1818039744d8fbb3ccab98a7c29fc3d5fcef158f3f1f68b7", size = 8074769, upload-time = "2026-02-11T04:22:35.877Z" }, + { url = "https://files.pythonhosted.org/packages/c3/bd/f1d71eb39a72fa088d938655afba3e00b38018d052752f435838961127d8/pillow-12.1.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d470ab1178551dd17fdba0fef463359c41aaa613cdcd7ff8373f54be629f9f8f", size = 6381358, upload-time = "2026-02-11T04:22:37.698Z" }, + { url = "https://files.pythonhosted.org/packages/64/ef/c784e20b96674ed36a5af839305f55616f8b4f8aa8eeccf8531a6e312243/pillow-12.1.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6408a7b064595afcab0a49393a413732a35788f2a5092fdc6266952ed67de586", size = 7068558, upload-time = "2026-02-11T04:22:39.597Z" }, + { url = "https://files.pythonhosted.org/packages/73/cb/8059688b74422ae61278202c4e1ad992e8a2e7375227be0a21c6b87ca8d5/pillow-12.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5d8c41325b382c07799a3682c1c258469ea2ff97103c53717b7893862d0c98ce", size = 6493028, upload-time = "2026-02-11T04:22:42.73Z" }, + { url = "https://files.pythonhosted.org/packages/c6/da/e3c008ed7d2dd1f905b15949325934510b9d1931e5df999bb15972756818/pillow-12.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c7697918b5be27424e9ce568193efd13d925c4481dd364e43f5dff72d33e10f8", size = 7191940, upload-time = "2026-02-11T04:22:44.543Z" }, + { url = "https://files.pythonhosted.org/packages/01/4a/9202e8d11714c1fc5951f2e1ef362f2d7fbc595e1f6717971d5dd750e969/pillow-12.1.1-cp314-cp314t-win32.whl", hash = "sha256:d2912fd8114fc5545aa3a4b5576512f64c55a03f3ebcca4c10194d593d43ea36", size = 6438736, upload-time = "2026-02-11T04:22:46.347Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ca/cbce2327eb9885476b3957b2e82eb12c866a8b16ad77392864ad601022ce/pillow-12.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:4ceb838d4bd9dab43e06c363cab2eebf63846d6a4aeaea283bbdfd8f1a8ed58b", size = 7182894, upload-time = "2026-02-11T04:22:48.114Z" }, + { url = "https://files.pythonhosted.org/packages/ec/d2/de599c95ba0a973b94410477f8bf0b6f0b5e67360eb89bcb1ad365258beb/pillow-12.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:7b03048319bfc6170e93bd60728a1af51d3dd7704935feb228c4d4faab35d334", size = 2546446, upload-time = "2026-02-11T04:22:50.342Z" }, + { url = "https://files.pythonhosted.org/packages/56/11/5d43209aa4cb58e0cc80127956ff1796a68b928e6324bbf06ef4db34367b/pillow-12.1.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:600fd103672b925fe62ed08e0d874ea34d692474df6f4bf7ebe148b30f89f39f", size = 5228606, upload-time = "2026-02-11T04:22:52.106Z" }, + { url = "https://files.pythonhosted.org/packages/5f/d5/3b005b4e4fda6698b371fa6c21b097d4707585d7db99e98d9b0b87ac612a/pillow-12.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:665e1b916b043cef294bc54d47bf02d87e13f769bc4bc5fa225a24b3a6c5aca9", size = 4622321, upload-time = "2026-02-11T04:22:53.827Z" }, + { url = "https://files.pythonhosted.org/packages/df/36/ed3ea2d594356fd8037e5a01f6156c74bc8d92dbb0fa60746cc96cabb6e8/pillow-12.1.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:495c302af3aad1ca67420ddd5c7bd480c8867ad173528767d906428057a11f0e", size = 5247579, upload-time = "2026-02-11T04:22:56.094Z" }, + { url = "https://files.pythonhosted.org/packages/54/9a/9cc3e029683cf6d20ae5085da0dafc63148e3252c2f13328e553aaa13cfb/pillow-12.1.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8fd420ef0c52c88b5a035a0886f367748c72147b2b8f384c9d12656678dfdfa9", size = 6989094, upload-time = "2026-02-11T04:22:58.288Z" }, + { url = "https://files.pythonhosted.org/packages/00/98/fc53ab36da80b88df0967896b6c4b4cd948a0dc5aa40a754266aa3ae48b3/pillow-12.1.1-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f975aa7ef9684ce7e2c18a3aa8f8e2106ce1e46b94ab713d156b2898811651d3", size = 5313850, upload-time = "2026-02-11T04:23:00.554Z" }, + { url = "https://files.pythonhosted.org/packages/30/02/00fa585abfd9fe9d73e5f6e554dc36cc2b842898cbfc46d70353dae227f8/pillow-12.1.1-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8089c852a56c2966cf18835db62d9b34fef7ba74c726ad943928d494fa7f4735", size = 5963343, upload-time = "2026-02-11T04:23:02.934Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/c56ce33ca856e358d27fda9676c055395abddb82c35ac0f593877ed4562e/pillow-12.1.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:cb9bb857b2d057c6dfc72ac5f3b44836924ba15721882ef103cecb40d002d80e", size = 7029880, upload-time = "2026-02-11T04:23:04.783Z" }, +] + +[[package]] +name = "portalocker" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywin32", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/f8/969e6f280201b40b31bcb62843c619f343dcc351dff83a5891530c9dd60e/portalocker-2.7.0.tar.gz", hash = "sha256:032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51", size = 20183, upload-time = "2023-01-18T23:36:14.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/df/d4f711d168524f5aebd7fb30969eaa31e3048cf8979688cde3b08f6e5eb8/portalocker-2.7.0-py2.py3-none-any.whl", hash = "sha256:a07c5b4f3985c3cf4798369631fb7011adb498e2a46d8440efc75a8f29a0f983", size = 15502, upload-time = "2023-01-18T23:36:12.849Z" }, +] + +[[package]] +name = "posthog" +version = "5.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "backoff" }, + { name = "distro" }, + { name = "python-dateutil" }, + { name = "requests" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/20/60ae67bb9d82f00427946218d49e2e7e80fb41c15dc5019482289ec9ce8d/posthog-5.4.0.tar.gz", hash = "sha256:701669261b8d07cdde0276e5bc096b87f9e200e3b9589c5ebff14df658c5893c", size = 88076, upload-time = "2025-06-20T23:19:23.485Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/98/e480cab9a08d1c09b1c59a93dade92c1bb7544826684ff2acbfd10fcfbd4/posthog-5.4.0-py3-none-any.whl", hash = "sha256:284dfa302f64353484420b52d4ad81ff5c2c2d1d607c4e2db602ac72761831bd", size = 105364, upload-time = "2025-06-20T23:19:22.001Z" }, +] + +[[package]] +name = "propcache" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442, upload-time = "2025-10-08T19:49:02.291Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/0e/934b541323035566a9af292dba85a195f7b78179114f2c6ebb24551118a9/propcache-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db", size = 79534, upload-time = "2025-10-08T19:46:02.083Z" }, + { url = "https://files.pythonhosted.org/packages/a1/6b/db0d03d96726d995dc7171286c6ba9d8d14251f37433890f88368951a44e/propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8", size = 45526, upload-time = "2025-10-08T19:46:03.884Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c3/82728404aea669e1600f304f2609cde9e665c18df5a11cdd57ed73c1dceb/propcache-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925", size = 47263, upload-time = "2025-10-08T19:46:05.405Z" }, + { url = "https://files.pythonhosted.org/packages/df/1b/39313ddad2bf9187a1432654c38249bab4562ef535ef07f5eb6eb04d0b1b/propcache-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21", size = 201012, upload-time = "2025-10-08T19:46:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/5b/01/f1d0b57d136f294a142acf97f4ed58c8e5b974c21e543000968357115011/propcache-0.4.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5", size = 209491, upload-time = "2025-10-08T19:46:08.909Z" }, + { url = "https://files.pythonhosted.org/packages/a1/c8/038d909c61c5bb039070b3fb02ad5cccdb1dde0d714792e251cdb17c9c05/propcache-0.4.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db", size = 215319, upload-time = "2025-10-08T19:46:10.7Z" }, + { url = "https://files.pythonhosted.org/packages/08/57/8c87e93142b2c1fa2408e45695205a7ba05fb5db458c0bf5c06ba0e09ea6/propcache-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7", size = 196856, upload-time = "2025-10-08T19:46:12.003Z" }, + { url = "https://files.pythonhosted.org/packages/42/df/5615fec76aa561987a534759b3686008a288e73107faa49a8ae5795a9f7a/propcache-0.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4", size = 193241, upload-time = "2025-10-08T19:46:13.495Z" }, + { url = "https://files.pythonhosted.org/packages/d5/21/62949eb3a7a54afe8327011c90aca7e03547787a88fb8bd9726806482fea/propcache-0.4.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60", size = 190552, upload-time = "2025-10-08T19:46:14.938Z" }, + { url = "https://files.pythonhosted.org/packages/30/ee/ab4d727dd70806e5b4de96a798ae7ac6e4d42516f030ee60522474b6b332/propcache-0.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f", size = 200113, upload-time = "2025-10-08T19:46:16.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/0b/38b46208e6711b016aa8966a3ac793eee0d05c7159d8342aa27fc0bc365e/propcache-0.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900", size = 200778, upload-time = "2025-10-08T19:46:18.023Z" }, + { url = "https://files.pythonhosted.org/packages/cf/81/5abec54355ed344476bee711e9f04815d4b00a311ab0535599204eecc257/propcache-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c", size = 193047, upload-time = "2025-10-08T19:46:19.449Z" }, + { url = "https://files.pythonhosted.org/packages/ec/b6/1f237c04e32063cb034acd5f6ef34ef3a394f75502e72703545631ab1ef6/propcache-0.4.1-cp310-cp310-win32.whl", hash = "sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb", size = 38093, upload-time = "2025-10-08T19:46:20.643Z" }, + { url = "https://files.pythonhosted.org/packages/a6/67/354aac4e0603a15f76439caf0427781bcd6797f370377f75a642133bc954/propcache-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37", size = 41638, upload-time = "2025-10-08T19:46:21.935Z" }, + { url = "https://files.pythonhosted.org/packages/e0/e1/74e55b9fd1a4c209ff1a9a824bf6c8b3d1fc5a1ac3eabe23462637466785/propcache-0.4.1-cp310-cp310-win_arm64.whl", hash = "sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581", size = 38229, upload-time = "2025-10-08T19:46:23.368Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d4/4e2c9aaf7ac2242b9358f98dccd8f90f2605402f5afeff6c578682c2c491/propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf", size = 80208, upload-time = "2025-10-08T19:46:24.597Z" }, + { url = "https://files.pythonhosted.org/packages/c2/21/d7b68e911f9c8e18e4ae43bdbc1e1e9bbd971f8866eb81608947b6f585ff/propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5", size = 45777, upload-time = "2025-10-08T19:46:25.733Z" }, + { url = "https://files.pythonhosted.org/packages/d3/1d/11605e99ac8ea9435651ee71ab4cb4bf03f0949586246476a25aadfec54a/propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e", size = 47647, upload-time = "2025-10-08T19:46:27.304Z" }, + { url = "https://files.pythonhosted.org/packages/58/1a/3c62c127a8466c9c843bccb503d40a273e5cc69838805f322e2826509e0d/propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566", size = 214929, upload-time = "2025-10-08T19:46:28.62Z" }, + { url = "https://files.pythonhosted.org/packages/56/b9/8fa98f850960b367c4b8fe0592e7fc341daa7a9462e925228f10a60cf74f/propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165", size = 221778, upload-time = "2025-10-08T19:46:30.358Z" }, + { url = "https://files.pythonhosted.org/packages/46/a6/0ab4f660eb59649d14b3d3d65c439421cf2f87fe5dd68591cbe3c1e78a89/propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc", size = 228144, upload-time = "2025-10-08T19:46:32.607Z" }, + { url = "https://files.pythonhosted.org/packages/52/6a/57f43e054fb3d3a56ac9fc532bc684fc6169a26c75c353e65425b3e56eef/propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48", size = 210030, upload-time = "2025-10-08T19:46:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/40/e2/27e6feebb5f6b8408fa29f5efbb765cd54c153ac77314d27e457a3e993b7/propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570", size = 208252, upload-time = "2025-10-08T19:46:35.309Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f8/91c27b22ccda1dbc7967f921c42825564fa5336a01ecd72eb78a9f4f53c2/propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85", size = 202064, upload-time = "2025-10-08T19:46:36.993Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/7f00bd6bd1adba5aafe5f4a66390f243acab58eab24ff1a08bebb2ef9d40/propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e", size = 212429, upload-time = "2025-10-08T19:46:38.398Z" }, + { url = "https://files.pythonhosted.org/packages/84/89/fd108ba7815c1117ddca79c228f3f8a15fc82a73bca8b142eb5de13b2785/propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757", size = 216727, upload-time = "2025-10-08T19:46:39.732Z" }, + { url = "https://files.pythonhosted.org/packages/79/37/3ec3f7e3173e73f1d600495d8b545b53802cbf35506e5732dd8578db3724/propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f", size = 205097, upload-time = "2025-10-08T19:46:41.025Z" }, + { url = "https://files.pythonhosted.org/packages/61/b0/b2631c19793f869d35f47d5a3a56fb19e9160d3c119f15ac7344fc3ccae7/propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1", size = 38084, upload-time = "2025-10-08T19:46:42.693Z" }, + { url = "https://files.pythonhosted.org/packages/f4/78/6cce448e2098e9f3bfc91bb877f06aa24b6ccace872e39c53b2f707c4648/propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6", size = 41637, upload-time = "2025-10-08T19:46:43.778Z" }, + { url = "https://files.pythonhosted.org/packages/9c/e9/754f180cccd7f51a39913782c74717c581b9cc8177ad0e949f4d51812383/propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239", size = 38064, upload-time = "2025-10-08T19:46:44.872Z" }, + { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061, upload-time = "2025-10-08T19:46:46.075Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037, upload-time = "2025-10-08T19:46:47.23Z" }, + { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324, upload-time = "2025-10-08T19:46:48.384Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505, upload-time = "2025-10-08T19:46:50.055Z" }, + { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242, upload-time = "2025-10-08T19:46:51.815Z" }, + { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474, upload-time = "2025-10-08T19:46:53.208Z" }, + { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575, upload-time = "2025-10-08T19:46:54.511Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736, upload-time = "2025-10-08T19:46:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019, upload-time = "2025-10-08T19:46:57.595Z" }, + { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376, upload-time = "2025-10-08T19:46:59.067Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988, upload-time = "2025-10-08T19:47:00.544Z" }, + { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615, upload-time = "2025-10-08T19:47:01.968Z" }, + { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066, upload-time = "2025-10-08T19:47:03.503Z" }, + { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655, upload-time = "2025-10-08T19:47:04.973Z" }, + { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789, upload-time = "2025-10-08T19:47:06.077Z" }, + { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750, upload-time = "2025-10-08T19:47:07.648Z" }, + { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780, upload-time = "2025-10-08T19:47:08.851Z" }, + { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308, upload-time = "2025-10-08T19:47:09.982Z" }, + { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182, upload-time = "2025-10-08T19:47:11.319Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215, upload-time = "2025-10-08T19:47:13.146Z" }, + { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112, upload-time = "2025-10-08T19:47:14.913Z" }, + { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442, upload-time = "2025-10-08T19:47:16.277Z" }, + { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398, upload-time = "2025-10-08T19:47:17.962Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920, upload-time = "2025-10-08T19:47:19.355Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748, upload-time = "2025-10-08T19:47:21.338Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877, upload-time = "2025-10-08T19:47:23.059Z" }, + { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437, upload-time = "2025-10-08T19:47:24.445Z" }, + { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586, upload-time = "2025-10-08T19:47:25.736Z" }, + { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790, upload-time = "2025-10-08T19:47:26.847Z" }, + { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158, upload-time = "2025-10-08T19:47:27.961Z" }, + { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451, upload-time = "2025-10-08T19:47:29.445Z" }, + { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374, upload-time = "2025-10-08T19:47:30.579Z" }, + { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396, upload-time = "2025-10-08T19:47:31.79Z" }, + { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950, upload-time = "2025-10-08T19:47:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856, upload-time = "2025-10-08T19:47:34.906Z" }, + { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420, upload-time = "2025-10-08T19:47:36.338Z" }, + { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254, upload-time = "2025-10-08T19:47:37.692Z" }, + { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205, upload-time = "2025-10-08T19:47:39.659Z" }, + { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873, upload-time = "2025-10-08T19:47:41.084Z" }, + { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739, upload-time = "2025-10-08T19:47:42.51Z" }, + { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514, upload-time = "2025-10-08T19:47:43.927Z" }, + { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781, upload-time = "2025-10-08T19:47:45.448Z" }, + { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396, upload-time = "2025-10-08T19:47:47.202Z" }, + { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897, upload-time = "2025-10-08T19:47:48.336Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789, upload-time = "2025-10-08T19:47:49.876Z" }, + { url = "https://files.pythonhosted.org/packages/8e/5c/bca52d654a896f831b8256683457ceddd490ec18d9ec50e97dfd8fc726a8/propcache-0.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12", size = 78152, upload-time = "2025-10-08T19:47:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/65/9b/03b04e7d82a5f54fb16113d839f5ea1ede58a61e90edf515f6577c66fa8f/propcache-0.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c", size = 44869, upload-time = "2025-10-08T19:47:52.594Z" }, + { url = "https://files.pythonhosted.org/packages/b2/fa/89a8ef0468d5833a23fff277b143d0573897cf75bd56670a6d28126c7d68/propcache-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded", size = 46596, upload-time = "2025-10-08T19:47:54.073Z" }, + { url = "https://files.pythonhosted.org/packages/86/bd/47816020d337f4a746edc42fe8d53669965138f39ee117414c7d7a340cfe/propcache-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641", size = 206981, upload-time = "2025-10-08T19:47:55.715Z" }, + { url = "https://files.pythonhosted.org/packages/df/f6/c5fa1357cc9748510ee55f37173eb31bfde6d94e98ccd9e6f033f2fc06e1/propcache-0.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4", size = 211490, upload-time = "2025-10-08T19:47:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/80/1e/e5889652a7c4a3846683401a48f0f2e5083ce0ec1a8a5221d8058fbd1adf/propcache-0.4.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44", size = 215371, upload-time = "2025-10-08T19:47:59.317Z" }, + { url = "https://files.pythonhosted.org/packages/b2/f2/889ad4b2408f72fe1a4f6a19491177b30ea7bf1a0fd5f17050ca08cfc882/propcache-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d", size = 201424, upload-time = "2025-10-08T19:48:00.67Z" }, + { url = "https://files.pythonhosted.org/packages/27/73/033d63069b57b0812c8bd19f311faebeceb6ba31b8f32b73432d12a0b826/propcache-0.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b", size = 197566, upload-time = "2025-10-08T19:48:02.604Z" }, + { url = "https://files.pythonhosted.org/packages/dc/89/ce24f3dc182630b4e07aa6d15f0ff4b14ed4b9955fae95a0b54c58d66c05/propcache-0.4.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e", size = 193130, upload-time = "2025-10-08T19:48:04.499Z" }, + { url = "https://files.pythonhosted.org/packages/a9/24/ef0d5fd1a811fb5c609278d0209c9f10c35f20581fcc16f818da959fc5b4/propcache-0.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f", size = 202625, upload-time = "2025-10-08T19:48:06.213Z" }, + { url = "https://files.pythonhosted.org/packages/f5/02/98ec20ff5546f68d673df2f7a69e8c0d076b5abd05ca882dc7ee3a83653d/propcache-0.4.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49", size = 204209, upload-time = "2025-10-08T19:48:08.432Z" }, + { url = "https://files.pythonhosted.org/packages/a0/87/492694f76759b15f0467a2a93ab68d32859672b646aa8a04ce4864e7932d/propcache-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144", size = 197797, upload-time = "2025-10-08T19:48:09.968Z" }, + { url = "https://files.pythonhosted.org/packages/ee/36/66367de3575db1d2d3f3d177432bd14ee577a39d3f5d1b3d5df8afe3b6e2/propcache-0.4.1-cp314-cp314-win32.whl", hash = "sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f", size = 38140, upload-time = "2025-10-08T19:48:11.232Z" }, + { url = "https://files.pythonhosted.org/packages/0c/2a/a758b47de253636e1b8aef181c0b4f4f204bf0dd964914fb2af90a95b49b/propcache-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153", size = 41257, upload-time = "2025-10-08T19:48:12.707Z" }, + { url = "https://files.pythonhosted.org/packages/34/5e/63bd5896c3fec12edcbd6f12508d4890d23c265df28c74b175e1ef9f4f3b/propcache-0.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992", size = 38097, upload-time = "2025-10-08T19:48:13.923Z" }, + { url = "https://files.pythonhosted.org/packages/99/85/9ff785d787ccf9bbb3f3106f79884a130951436f58392000231b4c737c80/propcache-0.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f", size = 81455, upload-time = "2025-10-08T19:48:15.16Z" }, + { url = "https://files.pythonhosted.org/packages/90/85/2431c10c8e7ddb1445c1f7c4b54d886e8ad20e3c6307e7218f05922cad67/propcache-0.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393", size = 46372, upload-time = "2025-10-08T19:48:16.424Z" }, + { url = "https://files.pythonhosted.org/packages/01/20/b0972d902472da9bcb683fa595099911f4d2e86e5683bcc45de60dd05dc3/propcache-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0", size = 48411, upload-time = "2025-10-08T19:48:17.577Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e3/7dc89f4f21e8f99bad3d5ddb3a3389afcf9da4ac69e3deb2dcdc96e74169/propcache-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a", size = 275712, upload-time = "2025-10-08T19:48:18.901Z" }, + { url = "https://files.pythonhosted.org/packages/20/67/89800c8352489b21a8047c773067644e3897f02ecbbd610f4d46b7f08612/propcache-0.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be", size = 273557, upload-time = "2025-10-08T19:48:20.762Z" }, + { url = "https://files.pythonhosted.org/packages/e2/a1/b52b055c766a54ce6d9c16d9aca0cad8059acd9637cdf8aa0222f4a026ef/propcache-0.4.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc", size = 280015, upload-time = "2025-10-08T19:48:22.592Z" }, + { url = "https://files.pythonhosted.org/packages/48/c8/33cee30bd890672c63743049f3c9e4be087e6780906bfc3ec58528be59c1/propcache-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a", size = 262880, upload-time = "2025-10-08T19:48:23.947Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b1/8f08a143b204b418285c88b83d00edbd61afbc2c6415ffafc8905da7038b/propcache-0.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89", size = 260938, upload-time = "2025-10-08T19:48:25.656Z" }, + { url = "https://files.pythonhosted.org/packages/cf/12/96e4664c82ca2f31e1c8dff86afb867348979eb78d3cb8546a680287a1e9/propcache-0.4.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726", size = 247641, upload-time = "2025-10-08T19:48:27.207Z" }, + { url = "https://files.pythonhosted.org/packages/18/ed/e7a9cfca28133386ba52278136d42209d3125db08d0a6395f0cba0c0285c/propcache-0.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367", size = 262510, upload-time = "2025-10-08T19:48:28.65Z" }, + { url = "https://files.pythonhosted.org/packages/f5/76/16d8bf65e8845dd62b4e2b57444ab81f07f40caa5652b8969b87ddcf2ef6/propcache-0.4.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36", size = 263161, upload-time = "2025-10-08T19:48:30.133Z" }, + { url = "https://files.pythonhosted.org/packages/e7/70/c99e9edb5d91d5ad8a49fa3c1e8285ba64f1476782fed10ab251ff413ba1/propcache-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455", size = 257393, upload-time = "2025-10-08T19:48:31.567Z" }, + { url = "https://files.pythonhosted.org/packages/08/02/87b25304249a35c0915d236575bc3574a323f60b47939a2262b77632a3ee/propcache-0.4.1-cp314-cp314t-win32.whl", hash = "sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85", size = 42546, upload-time = "2025-10-08T19:48:32.872Z" }, + { url = "https://files.pythonhosted.org/packages/cb/ef/3c6ecf8b317aa982f309835e8f96987466123c6e596646d4e6a1dfcd080f/propcache-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1", size = 46259, upload-time = "2025-10-08T19:48:34.226Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2d/346e946d4951f37eca1e4f55be0f0174c52cd70720f84029b02f296f4a38/propcache-0.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9", size = 40428, upload-time = "2025-10-08T19:48:35.441Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload-time = "2025-10-08T19:49:00.792Z" }, +] + +[[package]] +name = "protobuf" +version = "6.33.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/25/7c72c307aafc96fa87062aa6291d9f7c94836e43214d43722e86037aac02/protobuf-6.33.5.tar.gz", hash = "sha256:6ddcac2a081f8b7b9642c09406bc6a4290128fce5f471cddd165960bb9119e5c", size = 444465, upload-time = "2026-01-29T21:51:33.494Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/79/af92d0a8369732b027e6d6084251dd8e782c685c72da161bd4a2e00fbabb/protobuf-6.33.5-cp310-abi3-win32.whl", hash = "sha256:d71b040839446bac0f4d162e758bea99c8251161dae9d0983a3b88dee345153b", size = 425769, upload-time = "2026-01-29T21:51:21.751Z" }, + { url = "https://files.pythonhosted.org/packages/55/75/bb9bc917d10e9ee13dee8607eb9ab963b7cf8be607c46e7862c748aa2af7/protobuf-6.33.5-cp310-abi3-win_amd64.whl", hash = "sha256:3093804752167bcab3998bec9f1048baae6e29505adaf1afd14a37bddede533c", size = 437118, upload-time = "2026-01-29T21:51:24.022Z" }, + { url = "https://files.pythonhosted.org/packages/a2/6b/e48dfc1191bc5b52950246275bf4089773e91cb5ba3592621723cdddca62/protobuf-6.33.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:a5cb85982d95d906df1e2210e58f8e4f1e3cdc088e52c921a041f9c9a0386de5", size = 427766, upload-time = "2026-01-29T21:51:25.413Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b1/c79468184310de09d75095ed1314b839eb2f72df71097db9d1404a1b2717/protobuf-6.33.5-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:9b71e0281f36f179d00cbcb119cb19dec4d14a81393e5ea220f64b286173e190", size = 324638, upload-time = "2026-01-29T21:51:26.423Z" }, + { url = "https://files.pythonhosted.org/packages/c5/f5/65d838092fd01c44d16037953fd4c2cc851e783de9b8f02b27ec4ffd906f/protobuf-6.33.5-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:8afa18e1d6d20af15b417e728e9f60f3aa108ee76f23c3b2c07a2c3b546d3afd", size = 339411, upload-time = "2026-01-29T21:51:27.446Z" }, + { url = "https://files.pythonhosted.org/packages/9b/53/a9443aa3ca9ba8724fdfa02dd1887c1bcd8e89556b715cfbacca6b63dbec/protobuf-6.33.5-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:cbf16ba3350fb7b889fca858fb215967792dc125b35c7976ca4818bee3521cf0", size = 323465, upload-time = "2026-01-29T21:51:28.925Z" }, + { url = "https://files.pythonhosted.org/packages/57/bf/2086963c69bdac3d7cff1cc7ff79b8ce5ea0bec6797a017e1be338a46248/protobuf-6.33.5-py3-none-any.whl", hash = "sha256:69915a973dd0f60f31a08b8318b73eab2bd6a392c79184b3612226b0a3f8ec02", size = 170687, upload-time = "2026-01-29T21:51:32.557Z" }, +] + +[[package]] +name = "pyarrow" +version = "23.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/33/ffd9c3eb087fa41dd79c3cf20c4c0ae3cdb877c4f8e1107a446006344924/pyarrow-23.0.0.tar.gz", hash = "sha256:180e3150e7edfcd182d3d9afba72f7cf19839a497cc76555a8dce998a8f67615", size = 1167185, upload-time = "2026-01-18T16:19:42.218Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/2f/23e042a5aa99bcb15e794e14030e8d065e00827e846e53a66faec73c7cd6/pyarrow-23.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:cbdc2bf5947aa4d462adcf8453cf04aee2f7932653cb67a27acd96e5e8528a67", size = 34281861, upload-time = "2026-01-18T16:13:34.332Z" }, + { url = "https://files.pythonhosted.org/packages/8b/65/1651933f504b335ec9cd8f99463718421eb08d883ed84f0abd2835a16cad/pyarrow-23.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:4d38c836930ce15cd31dce20114b21ba082da231c884bdc0a7b53e1477fe7f07", size = 35825067, upload-time = "2026-01-18T16:13:42.549Z" }, + { url = "https://files.pythonhosted.org/packages/84/ec/d6fceaec050c893f4e35c0556b77d4cc9973fcc24b0a358a5781b1234582/pyarrow-23.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:4222ff8f76919ecf6c716175a0e5fddb5599faeed4c56d9ea41a2c42be4998b2", size = 44458539, upload-time = "2026-01-18T16:13:52.975Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d9/369f134d652b21db62fe3ec1c5c2357e695f79eb67394b8a93f3a2b2cffa/pyarrow-23.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:87f06159cbe38125852657716889296c83c37b4d09a5e58f3d10245fd1f69795", size = 47535889, upload-time = "2026-01-18T16:14:03.693Z" }, + { url = "https://files.pythonhosted.org/packages/a3/95/f37b6a252fdbf247a67a78fb3f61a529fe0600e304c4d07741763d3522b1/pyarrow-23.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1675c374570d8b91ea6d4edd4608fa55951acd44e0c31bd146e091b4005de24f", size = 48157777, upload-time = "2026-01-18T16:14:12.483Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ab/fb94923108c9c6415dab677cf1f066d3307798eafc03f9a65ab4abc61056/pyarrow-23.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:247374428fde4f668f138b04031a7e7077ba5fa0b5b1722fdf89a017bf0b7ee0", size = 50580441, upload-time = "2026-01-18T16:14:20.187Z" }, + { url = "https://files.pythonhosted.org/packages/ae/78/897ba6337b517fc8e914891e1bd918da1c4eb8e936a553e95862e67b80f6/pyarrow-23.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:de53b1bd3b88a2ee93c9af412c903e57e738c083be4f6392288294513cd8b2c1", size = 27530028, upload-time = "2026-01-18T16:14:27.353Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c0/57fe251102ca834fee0ef69a84ad33cc0ff9d5dfc50f50b466846356ecd7/pyarrow-23.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5574d541923efcbfdf1294a2746ae3b8c2498a2dc6cd477882f6f4e7b1ac08d3", size = 34276762, upload-time = "2026-01-18T16:14:34.128Z" }, + { url = "https://files.pythonhosted.org/packages/f8/4e/24130286548a5bc250cbed0b6bbf289a2775378a6e0e6f086ae8c68fc098/pyarrow-23.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:2ef0075c2488932e9d3c2eb3482f9459c4be629aa673b725d5e3cf18f777f8e4", size = 35821420, upload-time = "2026-01-18T16:14:40.699Z" }, + { url = "https://files.pythonhosted.org/packages/ee/55/a869e8529d487aa2e842d6c8865eb1e2c9ec33ce2786eb91104d2c3e3f10/pyarrow-23.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:65666fc269669af1ef1c14478c52222a2aa5c907f28b68fb50a203c777e4f60c", size = 44457412, upload-time = "2026-01-18T16:14:49.051Z" }, + { url = "https://files.pythonhosted.org/packages/36/81/1de4f0edfa9a483bbdf0082a05790bd6a20ed2169ea12a65039753be3a01/pyarrow-23.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:4d85cb6177198f3812db4788e394b757223f60d9a9f5ad6634b3e32be1525803", size = 47534285, upload-time = "2026-01-18T16:14:56.748Z" }, + { url = "https://files.pythonhosted.org/packages/f2/04/464a052d673b5ece074518f27377861662449f3c1fdb39ce740d646fd098/pyarrow-23.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1a9ff6fa4141c24a03a1a434c63c8fa97ce70f8f36bccabc18ebba905ddf0f17", size = 48157913, upload-time = "2026-01-18T16:15:05.114Z" }, + { url = "https://files.pythonhosted.org/packages/f4/1b/32a4de9856ee6688c670ca2def588382e573cce45241a965af04c2f61687/pyarrow-23.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:84839d060a54ae734eb60a756aeacb62885244aaa282f3c968f5972ecc7b1ecc", size = 50582529, upload-time = "2026-01-18T16:15:12.846Z" }, + { url = "https://files.pythonhosted.org/packages/db/c7/d6581f03e9b9e44ea60b52d1750ee1a7678c484c06f939f45365a45f7eef/pyarrow-23.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:a149a647dbfe928ce8830a713612aa0b16e22c64feac9d1761529778e4d4eaa5", size = 27542646, upload-time = "2026-01-18T16:15:18.89Z" }, + { url = "https://files.pythonhosted.org/packages/3d/bd/c861d020831ee57609b73ea721a617985ece817684dc82415b0bc3e03ac3/pyarrow-23.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:5961a9f646c232697c24f54d3419e69b4261ba8a8b66b0ac54a1851faffcbab8", size = 34189116, upload-time = "2026-01-18T16:15:28.054Z" }, + { url = "https://files.pythonhosted.org/packages/8c/23/7725ad6cdcbaf6346221391e7b3eecd113684c805b0a95f32014e6fa0736/pyarrow-23.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:632b3e7c3d232f41d64e1a4a043fb82d44f8a349f339a1188c6a0dd9d2d47d8a", size = 35803831, upload-time = "2026-01-18T16:15:33.798Z" }, + { url = "https://files.pythonhosted.org/packages/57/06/684a421543455cdc2944d6a0c2cc3425b028a4c6b90e34b35580c4899743/pyarrow-23.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:76242c846db1411f1d6c2cc3823be6b86b40567ee24493344f8226ba34a81333", size = 44436452, upload-time = "2026-01-18T16:15:41.598Z" }, + { url = "https://files.pythonhosted.org/packages/c6/6f/8f9eb40c2328d66e8b097777ddcf38494115ff9f1b5bc9754ba46991191e/pyarrow-23.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b73519f8b52ae28127000986bf228fda781e81d3095cd2d3ece76eb5cf760e1b", size = 47557396, upload-time = "2026-01-18T16:15:51.252Z" }, + { url = "https://files.pythonhosted.org/packages/10/6e/f08075f1472e5159553501fde2cc7bc6700944bdabe49a03f8a035ee6ccd/pyarrow-23.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:068701f6823449b1b6469120f399a1239766b117d211c5d2519d4ed5861f75de", size = 48147129, upload-time = "2026-01-18T16:16:00.299Z" }, + { url = "https://files.pythonhosted.org/packages/7d/82/d5a680cd507deed62d141cc7f07f7944a6766fc51019f7f118e4d8ad0fb8/pyarrow-23.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1801ba947015d10e23bca9dd6ef5d0e9064a81569a89b6e9a63b59224fd060df", size = 50596642, upload-time = "2026-01-18T16:16:08.502Z" }, + { url = "https://files.pythonhosted.org/packages/a9/26/4f29c61b3dce9fa7780303b86895ec6a0917c9af927101daaaf118fbe462/pyarrow-23.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:52265266201ec25b6839bf6bd4ea918ca6d50f31d13e1cf200b4261cd11dc25c", size = 27660628, upload-time = "2026-01-18T16:16:15.28Z" }, + { url = "https://files.pythonhosted.org/packages/66/34/564db447d083ec7ff93e0a883a597d2f214e552823bfc178a2d0b1f2c257/pyarrow-23.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:ad96a597547af7827342ffb3c503c8316e5043bb09b47a84885ce39394c96e00", size = 34184630, upload-time = "2026-01-18T16:16:22.141Z" }, + { url = "https://files.pythonhosted.org/packages/aa/3a/3999daebcb5e6119690c92a621c4d78eef2ffba7a0a1b56386d2875fcd77/pyarrow-23.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:b9edf990df77c2901e79608f08c13fbde60202334a4fcadb15c1f57bf7afee43", size = 35796820, upload-time = "2026-01-18T16:16:29.441Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ee/39195233056c6a8d0976d7d1ac1cd4fe21fb0ec534eca76bc23ef3f60e11/pyarrow-23.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:36d1b5bc6ddcaff0083ceec7e2561ed61a51f49cce8be079ee8ed406acb6fdef", size = 44438735, upload-time = "2026-01-18T16:16:38.79Z" }, + { url = "https://files.pythonhosted.org/packages/2c/41/6a7328ee493527e7afc0c88d105ecca69a3580e29f2faaeac29308369fd7/pyarrow-23.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:4292b889cd224f403304ddda8b63a36e60f92911f89927ec8d98021845ea21be", size = 47557263, upload-time = "2026-01-18T16:16:46.248Z" }, + { url = "https://files.pythonhosted.org/packages/c6/ee/34e95b21ee84db494eae60083ddb4383477b31fb1fd19fd866d794881696/pyarrow-23.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dfd9e133e60eaa847fd80530a1b89a052f09f695d0b9c34c235ea6b2e0924cf7", size = 48153529, upload-time = "2026-01-18T16:16:53.412Z" }, + { url = "https://files.pythonhosted.org/packages/52/88/8a8d83cea30f4563efa1b7bf51d241331ee5cd1b185a7e063f5634eca415/pyarrow-23.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:832141cc09fac6aab1cd3719951d23301396968de87080c57c9a7634e0ecd068", size = 50598851, upload-time = "2026-01-18T16:17:01.133Z" }, + { url = "https://files.pythonhosted.org/packages/c6/4c/2929c4be88723ba025e7b3453047dc67e491c9422965c141d24bab6b5962/pyarrow-23.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:7a7d067c9a88faca655c71bcc30ee2782038d59c802d57950826a07f60d83c4c", size = 27577747, upload-time = "2026-01-18T16:18:02.413Z" }, + { url = "https://files.pythonhosted.org/packages/64/52/564a61b0b82d72bd68ec3aef1adda1e3eba776f89134b9ebcb5af4b13cb6/pyarrow-23.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:ce9486e0535a843cf85d990e2ec5820a47918235183a5c7b8b97ed7e92c2d47d", size = 34446038, upload-time = "2026-01-18T16:17:07.861Z" }, + { url = "https://files.pythonhosted.org/packages/cc/c9/232d4f9855fd1de0067c8a7808a363230d223c83aeee75e0fe6eab851ba9/pyarrow-23.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:075c29aeaa685fd1182992a9ed2499c66f084ee54eea47da3eb76e125e06064c", size = 35921142, upload-time = "2026-01-18T16:17:15.401Z" }, + { url = "https://files.pythonhosted.org/packages/96/f2/60af606a3748367b906bb82d41f0032e059f075444445d47e32a7ff1df62/pyarrow-23.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:799965a5379589510d888be3094c2296efd186a17ca1cef5b77703d4d5121f53", size = 44490374, upload-time = "2026-01-18T16:17:23.93Z" }, + { url = "https://files.pythonhosted.org/packages/ff/2d/7731543050a678ea3a413955a2d5d80d2a642f270aa57a3cb7d5a86e3f46/pyarrow-23.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ef7cac8fe6fccd8b9e7617bfac785b0371a7fe26af59463074e4882747145d40", size = 47527896, upload-time = "2026-01-18T16:17:33.393Z" }, + { url = "https://files.pythonhosted.org/packages/5a/90/f3342553b7ac9879413aed46500f1637296f3c8222107523a43a1c08b42a/pyarrow-23.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15a414f710dc927132dd67c361f78c194447479555af57317066ee5116b90e9e", size = 48210401, upload-time = "2026-01-18T16:17:42.012Z" }, + { url = "https://files.pythonhosted.org/packages/f3/da/9862ade205ecc46c172b6ce5038a74b5151c7401e36255f15975a45878b2/pyarrow-23.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e0d2e6915eca7d786be6a77bf227fbc06d825a75b5b5fe9bcbef121dec32685", size = 50579677, upload-time = "2026-01-18T16:17:50.241Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4c/f11f371f5d4740a5dafc2e11c76bcf42d03dfdb2d68696da97de420b6963/pyarrow-23.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4b317ea6e800b5704e5e5929acb6e2dc13e9276b708ea97a39eb8b345aa2658b", size = 27631889, upload-time = "2026-01-18T16:17:56.55Z" }, + { url = "https://files.pythonhosted.org/packages/97/bb/15aec78bcf43a0c004067bd33eb5352836a29a49db8581fc56f2b6ca88b7/pyarrow-23.0.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:20b187ed9550d233a872074159f765f52f9d92973191cd4b93f293a19efbe377", size = 34213265, upload-time = "2026-01-18T16:18:07.904Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6c/deb2c594bbba41c37c5d9aa82f510376998352aa69dfcb886cb4b18ad80f/pyarrow-23.0.0-cp314-cp314-macosx_12_0_x86_64.whl", hash = "sha256:18ec84e839b493c3886b9b5e06861962ab4adfaeb79b81c76afbd8d84c7d5fda", size = 35819211, upload-time = "2026-01-18T16:18:13.94Z" }, + { url = "https://files.pythonhosted.org/packages/e0/e5/ee82af693cb7b5b2b74f6524cdfede0e6ace779d7720ebca24d68b57c36b/pyarrow-23.0.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:e438dd3f33894e34fd02b26bd12a32d30d006f5852315f611aa4add6c7fab4bc", size = 44502313, upload-time = "2026-01-18T16:18:20.367Z" }, + { url = "https://files.pythonhosted.org/packages/9c/86/95c61ad82236495f3c31987e85135926ba3ec7f3819296b70a68d8066b49/pyarrow-23.0.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:a244279f240c81f135631be91146d7fa0e9e840e1dfed2aba8483eba25cd98e6", size = 47585886, upload-time = "2026-01-18T16:18:27.544Z" }, + { url = "https://files.pythonhosted.org/packages/bb/6e/a72d901f305201802f016d015de1e05def7706fff68a1dedefef5dc7eff7/pyarrow-23.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c4692e83e42438dba512a570c6eaa42be2f8b6c0f492aea27dec54bdc495103a", size = 48207055, upload-time = "2026-01-18T16:18:35.425Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e5/5de029c537630ca18828db45c30e2a78da03675a70ac6c3528203c416fe3/pyarrow-23.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae7f30f898dfe44ea69654a35c93e8da4cef6606dc4c72394068fd95f8e9f54a", size = 50619812, upload-time = "2026-01-18T16:18:43.553Z" }, + { url = "https://files.pythonhosted.org/packages/59/8d/2af846cd2412e67a087f5bda4a8e23dfd4ebd570f777db2e8686615dafc1/pyarrow-23.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:5b86bb649e4112fb0614294b7d0a175c7513738876b89655605ebb87c804f861", size = 28263851, upload-time = "2026-01-18T16:19:38.567Z" }, + { url = "https://files.pythonhosted.org/packages/7b/7f/caab863e587041156f6786c52e64151b7386742c8c27140f637176e9230e/pyarrow-23.0.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:ebc017d765d71d80a3f8584ca0566b53e40464586585ac64176115baa0ada7d3", size = 34463240, upload-time = "2026-01-18T16:18:49.755Z" }, + { url = "https://files.pythonhosted.org/packages/c9/fa/3a5b8c86c958e83622b40865e11af0857c48ec763c11d472c87cd518283d/pyarrow-23.0.0-cp314-cp314t-macosx_12_0_x86_64.whl", hash = "sha256:0800cc58a6d17d159df823f87ad66cefebf105b982493d4bad03ee7fab84b993", size = 35935712, upload-time = "2026-01-18T16:18:55.626Z" }, + { url = "https://files.pythonhosted.org/packages/c5/08/17a62078fc1a53decb34a9aa79cf9009efc74d63d2422e5ade9fed2f99e3/pyarrow-23.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:3a7c68c722da9bb5b0f8c10e3eae71d9825a4b429b40b32709df5d1fa55beb3d", size = 44503523, upload-time = "2026-01-18T16:19:03.958Z" }, + { url = "https://files.pythonhosted.org/packages/cc/70/84d45c74341e798aae0323d33b7c39194e23b1abc439ceaf60a68a7a969a/pyarrow-23.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:bd5556c24622df90551063ea41f559b714aa63ca953db884cfb958559087a14e", size = 47542490, upload-time = "2026-01-18T16:19:11.208Z" }, + { url = "https://files.pythonhosted.org/packages/61/d9/d1274b0e6f19e235de17441e53224f4716574b2ca837022d55702f24d71d/pyarrow-23.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:54810f6e6afc4ffee7c2e0051b61722fbea9a4961b46192dcfae8ea12fa09059", size = 48233605, upload-time = "2026-01-18T16:19:19.544Z" }, + { url = "https://files.pythonhosted.org/packages/39/07/e4e2d568cb57543d84482f61e510732820cddb0f47c4bb7df629abfed852/pyarrow-23.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:14de7d48052cf4b0ed174533eafa3cfe0711b8076ad70bede32cf59f744f0d7c", size = 50603979, upload-time = "2026-01-18T16:19:26.717Z" }, + { url = "https://files.pythonhosted.org/packages/72/9c/47693463894b610f8439b2e970b82ef81e9599c757bf2049365e40ff963c/pyarrow-23.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:427deac1f535830a744a4f04a6ac183a64fcac4341b3f618e693c41b7b98d2b0", size = 28338905, upload-time = "2026-01-18T16:19:32.93Z" }, +] + +[[package]] +name = "pybase64" +version = "1.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/b8/4ed5c7ad5ec15b08d35cc79ace6145d5c1ae426e46435f4987379439dfea/pybase64-1.4.3.tar.gz", hash = "sha256:c2ed274c9e0ba9c8f9c4083cfe265e66dd679126cd9c2027965d807352f3f053", size = 137272, upload-time = "2025-12-06T13:27:04.013Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/47/16d7af6fae7803f4c691856bc0d8d433ccf30e106432e2ef7707ee19a38a/pybase64-1.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f63aa7f29139b8a05ce5f97cdb7fad63d29071e5bdc8a638a343311fe996112a", size = 38241, upload-time = "2025-12-06T13:22:27.396Z" }, + { url = "https://files.pythonhosted.org/packages/4d/3e/268beb8d2240ab55396af4d1b45d2494935982212549b92a5f5b57079bd3/pybase64-1.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f5943ec1ae87a8b4fe310905bb57205ea4330c75e2c628433a7d9dd52295b588", size = 31672, upload-time = "2025-12-06T13:22:28.854Z" }, + { url = "https://files.pythonhosted.org/packages/80/14/4365fa33222edcc46b6db4973f9e22bda82adfb6ab2a01afff591f1e41c8/pybase64-1.4.3-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:5f2b8aef86f35cd5894c13681faf433a1fffc5b2e76544dcb5416a514a1a8347", size = 65978, upload-time = "2025-12-06T13:22:30.191Z" }, + { url = "https://files.pythonhosted.org/packages/1c/22/e89739d8bc9b96c68ead44b4eec42fe555683d9997e4ba65216d384920fc/pybase64-1.4.3-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a6ec7e53dd09b0a8116ccf5c3265c7c7fce13c980747525be76902aef36a514a", size = 68903, upload-time = "2025-12-06T13:22:31.29Z" }, + { url = "https://files.pythonhosted.org/packages/77/e1/7e59a19f8999cdefe9eb0d56bfd701dd38263b0f6fb4a4d29fce165a1b36/pybase64-1.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7528604cd69c538e1dbaafded46e9e4915a2adcd6f2a60fcef6390d87ca922ea", size = 57516, upload-time = "2025-12-06T13:22:32.395Z" }, + { url = "https://files.pythonhosted.org/packages/42/ad/f47dc7e6fe32022b176868b88b671a32dab389718c8ca905cab79280aaaf/pybase64-1.4.3-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:4ec645f32b50593879031e09158f8681a1db9f5df0f72af86b3969a1c5d1fa2b", size = 54533, upload-time = "2025-12-06T13:22:33.457Z" }, + { url = "https://files.pythonhosted.org/packages/7c/9a/7ab312b5a324833953b00e47b23eb4f83d45bd5c5c854b4b4e51b2a0cf5b/pybase64-1.4.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:634a000c5b3485ccc18bb9b244e0124f74b6fbc7f43eade815170237a7b34c64", size = 57187, upload-time = "2025-12-06T13:22:34.566Z" }, + { url = "https://files.pythonhosted.org/packages/2c/84/80acab1fcbaaae103e6b862ef5019192c8f2cd8758433595a202179a0d1d/pybase64-1.4.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:309ea32ad07639a485580af1be0ad447a434deb1924e76adced63ac2319cfe15", size = 57730, upload-time = "2025-12-06T13:22:35.581Z" }, + { url = "https://files.pythonhosted.org/packages/1f/24/84256d472400ea3163d7d69c44bb7e2e1027f0f1d4d20c47629a7dc4578e/pybase64-1.4.3-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:d10d517566b748d3f25f6ac7162af779360c1c6426ad5f962927ee205990d27c", size = 53036, upload-time = "2025-12-06T13:22:36.621Z" }, + { url = "https://files.pythonhosted.org/packages/a3/0f/33aecbed312ee0431798a73fa25e00dedbffdd91389ee23121fed397c550/pybase64-1.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a74cc0f4d835400857cc5c6d27ec854f7949491e07a04e6d66e2137812831f4c", size = 56321, upload-time = "2025-12-06T13:22:37.7Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1c/a341b050746658cbec8cab3c733aeb3ef52ce8f11e60d0d47adbdf729ebf/pybase64-1.4.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1b591d774ac09d5eb73c156a03277cb271438fbd8042bae4109ff3a827cd218c", size = 50114, upload-time = "2025-12-06T13:22:38.752Z" }, + { url = "https://files.pythonhosted.org/packages/ba/d3/f7e6680ae6dc4ddff39112ad66e0fa6b2ec346e73881bafc08498c560bc0/pybase64-1.4.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5eb588d35a04302ef6157d17db62354a787ac6f8b1585dd0b90c33d63a97a550", size = 66570, upload-time = "2025-12-06T13:22:40.221Z" }, + { url = "https://files.pythonhosted.org/packages/4c/71/774748eecc7fe23869b7e5df028e3c4c2efa16b506b83ea3fa035ea95dc2/pybase64-1.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:df8b122d5be2c96962231cc4831d9c2e1eae6736fb12850cec4356d8b06fe6f8", size = 55700, upload-time = "2025-12-06T13:22:41.289Z" }, + { url = "https://files.pythonhosted.org/packages/b3/91/dd15075bb2fe0086193e1cd4bad80a43652c38d8a572f9218d46ba721802/pybase64-1.4.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:31b7a85c661fc591bbcce82fb8adaebe2941e6a83b08444b0957b77380452a4b", size = 52491, upload-time = "2025-12-06T13:22:42.628Z" }, + { url = "https://files.pythonhosted.org/packages/7b/27/f357d63ea3774c937fc47160e040419ed528827aa3d4306d5ec9826259c0/pybase64-1.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e6d7beaae65979fef250e25e66cf81c68a8f81910bcda1a2f43297ab486a7e4e", size = 53957, upload-time = "2025-12-06T13:22:44.615Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c3/243693771701a54e67ff5ccbf4c038344f429613f5643169a7befc51f007/pybase64-1.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4a6276bc3a3962d172a2b5aba544d89881c4037ea954517b86b00892c703d007", size = 68422, upload-time = "2025-12-06T13:22:45.641Z" }, + { url = "https://files.pythonhosted.org/packages/75/95/f987081bf6bc1d1eda3012dae1b06ad427732ef9933a632cb8b58f9917f8/pybase64-1.4.3-cp310-cp310-win32.whl", hash = "sha256:4bdd07ef017515204ee6eaab17e1ad05f83c0ccb5af8ae24a0fe6d9cb5bb0b7a", size = 33622, upload-time = "2025-12-06T13:22:47.348Z" }, + { url = "https://files.pythonhosted.org/packages/79/28/c169a769fe90128f16d394aad87b2096dd4bf2f035ae0927108a46b617df/pybase64-1.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:5db0b6bbda15110db2740c61970a8fda3bf9c93c3166a3f57f87c7865ed1125c", size = 35799, upload-time = "2025-12-06T13:22:48.731Z" }, + { url = "https://files.pythonhosted.org/packages/ab/f2/bdbe6af0bd4f3fe5bc70e77ead7f7d523bb9d3ca3ad50ac42b9adbb9ca14/pybase64-1.4.3-cp310-cp310-win_arm64.whl", hash = "sha256:f96367dfc82598569aa02b1103ebd419298293e59e1151abda2b41728703284b", size = 31158, upload-time = "2025-12-06T13:22:50.021Z" }, + { url = "https://files.pythonhosted.org/packages/2b/63/21e981e9d3f1f123e0b0ee2130112b1956cad9752309f574862c7ae77c08/pybase64-1.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:70b0d4a4d54e216ce42c2655315378b8903933ecfa32fced453989a92b4317b2", size = 38237, upload-time = "2025-12-06T13:22:52.159Z" }, + { url = "https://files.pythonhosted.org/packages/92/fb/3f448e139516404d2a3963915cc10dc9dde7d3a67de4edba2f827adfef17/pybase64-1.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8127f110cdee7a70e576c5c9c1d4e17e92e76c191869085efbc50419f4ae3c72", size = 31673, upload-time = "2025-12-06T13:22:53.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/fb/bb06a5b9885e7d853ac1e801c4d8abfdb4c8506deee33e53d55aa6690e67/pybase64-1.4.3-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:f9ef0388878bc15a084bd9bf73ec1b2b4ee513d11009b1506375e10a7aae5032", size = 68331, upload-time = "2025-12-06T13:22:54.197Z" }, + { url = "https://files.pythonhosted.org/packages/64/15/8d60b9ec5e658185fc2ee3333e01a6e30d717cf677b24f47cbb3a859d13c/pybase64-1.4.3-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95a57cccf106352a72ed8bc8198f6820b16cc7d55aa3867a16dea7011ae7c218", size = 71370, upload-time = "2025-12-06T13:22:55.517Z" }, + { url = "https://files.pythonhosted.org/packages/ac/29/a3e5c1667cc8c38d025a4636855de0fc117fc62e2afeb033a3c6f12c6a22/pybase64-1.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cd1c47dfceb9c7bd3de210fb4e65904053ed2d7c9dce6d107f041ff6fbd7e21", size = 59834, upload-time = "2025-12-06T13:22:56.682Z" }, + { url = "https://files.pythonhosted.org/packages/a9/00/8ffcf9810bd23f3984698be161cf7edba656fd639b818039a7be1d6405d4/pybase64-1.4.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:9fe9922698f3e2f72874b26890d53a051c431d942701bb3a37aae94da0b12107", size = 56652, upload-time = "2025-12-06T13:22:57.724Z" }, + { url = "https://files.pythonhosted.org/packages/81/62/379e347797cdea4ab686375945bc77ad8d039c688c0d4d0cfb09d247beb9/pybase64-1.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:af5f4bd29c86b59bb4375e0491d16ec8a67548fa99c54763aaedaf0b4b5a6632", size = 59382, upload-time = "2025-12-06T13:22:58.758Z" }, + { url = "https://files.pythonhosted.org/packages/c6/f2/9338ffe2f487086f26a2c8ca175acb3baa86fce0a756ff5670a0822bb877/pybase64-1.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c302f6ca7465262908131411226e02100f488f531bb5e64cb901aa3f439bccd9", size = 59990, upload-time = "2025-12-06T13:23:01.007Z" }, + { url = "https://files.pythonhosted.org/packages/f9/a4/85a6142b65b4df8625b337727aa81dc199642de3d09677804141df6ee312/pybase64-1.4.3-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:2f3f439fa4d7fde164ebbbb41968db7d66b064450ab6017c6c95cef0afa2b349", size = 54923, upload-time = "2025-12-06T13:23:02.369Z" }, + { url = "https://files.pythonhosted.org/packages/ac/00/e40215d25624012bf5b7416ca37f168cb75f6dd15acdb91ea1f2ea4dc4e7/pybase64-1.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7a23c6866551043f8b681a5e1e0d59469148b2920a3b4fc42b1275f25ea4217a", size = 58664, upload-time = "2025-12-06T13:23:03.378Z" }, + { url = "https://files.pythonhosted.org/packages/b0/73/d7e19a63e795c13837f2356268d95dc79d1180e756f57ced742a1e52fdeb/pybase64-1.4.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:56e6526f8565642abc5f84338cc131ce298a8ccab696b19bdf76fa6d7dc592ef", size = 52338, upload-time = "2025-12-06T13:23:04.458Z" }, + { url = "https://files.pythonhosted.org/packages/f2/32/3c746d7a310b69bdd9df77ffc85c41b80bce00a774717596f869b0d4a20e/pybase64-1.4.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6a792a8b9d866ffa413c9687d9b611553203753987a3a582d68cbc51cf23da45", size = 68993, upload-time = "2025-12-06T13:23:05.526Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b3/63cec68f9d6f6e4c0b438d14e5f1ef536a5fe63ce14b70733ac5e31d7ab8/pybase64-1.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:62ad29a5026bb22cfcd1ca484ec34b0a5ced56ddba38ceecd9359b2818c9c4f9", size = 58055, upload-time = "2025-12-06T13:23:06.931Z" }, + { url = "https://files.pythonhosted.org/packages/d5/cb/7acf7c3c06f9692093c07f109668725dc37fb9a3df0fa912b50add645195/pybase64-1.4.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:11b9d1d2d32ec358c02214363b8fc3651f6be7dd84d880ecd597a6206a80e121", size = 54430, upload-time = "2025-12-06T13:23:07.936Z" }, + { url = "https://files.pythonhosted.org/packages/33/39/4eb33ff35d173bfff4002e184ce8907f5d0a42d958d61cd9058ef3570179/pybase64-1.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0aebaa7f238caa0a0d373616016e2040c6c879ebce3ba7ab3c59029920f13640", size = 56272, upload-time = "2025-12-06T13:23:09.253Z" }, + { url = "https://files.pythonhosted.org/packages/19/97/a76d65c375a254e65b730c6f56bf528feca91305da32eceab8bcc08591e6/pybase64-1.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e504682b20c63c2b0c000e5f98a80ea867f8d97642e042a5a39818e44ba4d599", size = 70904, upload-time = "2025-12-06T13:23:10.336Z" }, + { url = "https://files.pythonhosted.org/packages/5e/2c/8338b6d3da3c265002839e92af0a80d6db88385c313c73f103dfb800c857/pybase64-1.4.3-cp311-cp311-win32.whl", hash = "sha256:e9a8b81984e3c6fb1db9e1614341b0a2d98c0033d693d90c726677db1ffa3a4c", size = 33639, upload-time = "2025-12-06T13:23:11.9Z" }, + { url = "https://files.pythonhosted.org/packages/39/dc/32efdf2f5927e5449cc341c266a1bbc5fecd5319a8807d9c5405f76e6d02/pybase64-1.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:a90a8fa16a901fabf20de824d7acce07586e6127dc2333f1de05f73b1f848319", size = 35797, upload-time = "2025-12-06T13:23:13.174Z" }, + { url = "https://files.pythonhosted.org/packages/da/59/eda4f9cb0cbce5a45f0cd06131e710674f8123a4d570772c5b9694f88559/pybase64-1.4.3-cp311-cp311-win_arm64.whl", hash = "sha256:61d87de5bc94d143622e94390ec3e11b9c1d4644fe9be3a81068ab0f91056f59", size = 31160, upload-time = "2025-12-06T13:23:15.696Z" }, + { url = "https://files.pythonhosted.org/packages/86/a7/efcaa564f091a2af7f18a83c1c4875b1437db56ba39540451dc85d56f653/pybase64-1.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:18d85e5ab8b986bb32d8446aca6258ed80d1bafe3603c437690b352c648f5967", size = 38167, upload-time = "2025-12-06T13:23:16.821Z" }, + { url = "https://files.pythonhosted.org/packages/db/c7/c7ad35adff2d272bf2930132db2b3eea8c44bb1b1f64eb9b2b8e57cde7b4/pybase64-1.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3f5791a3491d116d0deaf4d83268f48792998519698f8751efb191eac84320e9", size = 31673, upload-time = "2025-12-06T13:23:17.835Z" }, + { url = "https://files.pythonhosted.org/packages/43/1b/9a8cab0042b464e9a876d5c65fe5127445a2436da36fda64899b119b1a1b/pybase64-1.4.3-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:f0b3f200c3e06316f6bebabd458b4e4bcd4c2ca26af7c0c766614d91968dee27", size = 68210, upload-time = "2025-12-06T13:23:18.813Z" }, + { url = "https://files.pythonhosted.org/packages/62/f7/965b79ff391ad208b50e412b5d3205ccce372a2d27b7218ae86d5295b105/pybase64-1.4.3-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bb632edfd132b3eaf90c39c89aa314beec4e946e210099b57d40311f704e11d4", size = 71599, upload-time = "2025-12-06T13:23:20.195Z" }, + { url = "https://files.pythonhosted.org/packages/03/4b/a3b5175130b3810bbb8ccfa1edaadbd3afddb9992d877c8a1e2f274b476e/pybase64-1.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:356ef1d74648ce997f5a777cf8f1aefecc1c0b4fe6201e0ef3ec8a08170e1b54", size = 59922, upload-time = "2025-12-06T13:23:21.487Z" }, + { url = "https://files.pythonhosted.org/packages/da/5d/c38d1572027fc601b62d7a407721688b04b4d065d60ca489912d6893e6cf/pybase64-1.4.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:c48361f90db32bacaa5518419d4eb9066ba558013aaf0c7781620279ecddaeb9", size = 56712, upload-time = "2025-12-06T13:23:22.77Z" }, + { url = "https://files.pythonhosted.org/packages/e7/d4/4e04472fef485caa8f561d904d4d69210a8f8fc1608ea15ebd9012b92655/pybase64-1.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:702bcaa16ae02139d881aeaef5b1c8ffb4a3fae062fe601d1e3835e10310a517", size = 59300, upload-time = "2025-12-06T13:23:24.543Z" }, + { url = "https://files.pythonhosted.org/packages/86/e7/16e29721b86734b881d09b7e23dfd7c8408ad01a4f4c7525f3b1088e25ec/pybase64-1.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:53d0ffe1847b16b647c6413d34d1de08942b7724273dd57e67dcbdb10c574045", size = 60278, upload-time = "2025-12-06T13:23:25.608Z" }, + { url = "https://files.pythonhosted.org/packages/b1/02/18515f211d7c046be32070709a8efeeef8a0203de4fd7521e6b56404731b/pybase64-1.4.3-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:9a1792e8b830a92736dae58f0c386062eb038dfe8004fb03ba33b6083d89cd43", size = 54817, upload-time = "2025-12-06T13:23:26.633Z" }, + { url = "https://files.pythonhosted.org/packages/e7/be/14e29d8e1a481dbff151324c96dd7b5d2688194bb65dc8a00ca0e1ad1e86/pybase64-1.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1d468b1b1ac5ad84875a46eaa458663c3721e8be5f155ade356406848d3701f6", size = 58611, upload-time = "2025-12-06T13:23:27.684Z" }, + { url = "https://files.pythonhosted.org/packages/b4/8a/a2588dfe24e1bbd742a554553778ab0d65fdf3d1c9a06d10b77047d142aa/pybase64-1.4.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e97b7bdbd62e71898cd542a6a9e320d9da754ff3ebd02cb802d69087ee94d468", size = 52404, upload-time = "2025-12-06T13:23:28.714Z" }, + { url = "https://files.pythonhosted.org/packages/27/fc/afcda7445bebe0cbc38cafdd7813234cdd4fc5573ff067f1abf317bb0cec/pybase64-1.4.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b33aeaa780caaa08ffda87fc584d5eab61e3d3bbb5d86ead02161dc0c20d04bc", size = 68817, upload-time = "2025-12-06T13:23:30.079Z" }, + { url = "https://files.pythonhosted.org/packages/d3/3a/87c3201e555ed71f73e961a787241a2438c2bbb2ca8809c29ddf938a3157/pybase64-1.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1c0efcf78f11cf866bed49caa7b97552bc4855a892f9cc2372abcd3ed0056f0d", size = 57854, upload-time = "2025-12-06T13:23:31.17Z" }, + { url = "https://files.pythonhosted.org/packages/fd/7d/931c2539b31a7b375e7d595b88401eeb5bd6c5ce1059c9123f9b608aaa14/pybase64-1.4.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:66e3791f2ed725a46593f8bd2761ff37d01e2cdad065b1dceb89066f476e50c6", size = 54333, upload-time = "2025-12-06T13:23:32.422Z" }, + { url = "https://files.pythonhosted.org/packages/de/5e/537601e02cc01f27e9d75f440f1a6095b8df44fc28b1eef2cd739aea8cec/pybase64-1.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:72bb0b6bddadab26e1b069bb78e83092711a111a80a0d6b9edcb08199ad7299b", size = 56492, upload-time = "2025-12-06T13:23:33.515Z" }, + { url = "https://files.pythonhosted.org/packages/96/97/2a2e57acf8f5c9258d22aba52e71f8050e167b29ed2ee1113677c1b600c1/pybase64-1.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5b3365dbcbcdb0a294f0f50af0c0a16b27a232eddeeb0bceeefd844ef30d2a23", size = 70974, upload-time = "2025-12-06T13:23:36.27Z" }, + { url = "https://files.pythonhosted.org/packages/75/2e/a9e28941c6dab6f06e6d3f6783d3373044be9b0f9a9d3492c3d8d2260ac0/pybase64-1.4.3-cp312-cp312-win32.whl", hash = "sha256:7bca1ed3a5df53305c629ca94276966272eda33c0d71f862d2d3d043f1e1b91a", size = 33686, upload-time = "2025-12-06T13:23:37.848Z" }, + { url = "https://files.pythonhosted.org/packages/83/e3/507ab649d8c3512c258819c51d25c45d6e29d9ca33992593059e7b646a33/pybase64-1.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:9f2da8f56d9b891b18b4daf463a0640eae45a80af548ce435be86aa6eff3603b", size = 35833, upload-time = "2025-12-06T13:23:38.877Z" }, + { url = "https://files.pythonhosted.org/packages/bc/8a/6eba66cd549a2fc74bb4425fd61b839ba0ab3022d3c401b8a8dc2cc00c7a/pybase64-1.4.3-cp312-cp312-win_arm64.whl", hash = "sha256:0631d8a2d035de03aa9bded029b9513e1fee8ed80b7ddef6b8e9389ffc445da0", size = 31185, upload-time = "2025-12-06T13:23:39.908Z" }, + { url = "https://files.pythonhosted.org/packages/3a/50/b7170cb2c631944388fe2519507fe3835a4054a6a12a43f43781dae82be1/pybase64-1.4.3-cp313-cp313-android_21_arm64_v8a.whl", hash = "sha256:ea4b785b0607d11950b66ce7c328f452614aefc9c6d3c9c28bae795dc7f072e1", size = 33901, upload-time = "2025-12-06T13:23:40.951Z" }, + { url = "https://files.pythonhosted.org/packages/48/8b/69f50578e49c25e0a26e3ee72c39884ff56363344b79fc3967f5af420ed6/pybase64-1.4.3-cp313-cp313-android_21_x86_64.whl", hash = "sha256:6a10b6330188c3026a8b9c10e6b9b3f2e445779cf16a4c453d51a072241c65a2", size = 40807, upload-time = "2025-12-06T13:23:42.006Z" }, + { url = "https://files.pythonhosted.org/packages/5c/8d/20b68f11adfc4c22230e034b65c71392e3e338b413bf713c8945bd2ccfb3/pybase64-1.4.3-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:27fdff227a0c0e182e0ba37a99109645188978b920dfb20d8b9c17eeee370d0d", size = 30932, upload-time = "2025-12-06T13:23:43.348Z" }, + { url = "https://files.pythonhosted.org/packages/f7/79/b1b550ac6bff51a4880bf6e089008b2e1ca16f2c98db5e039a08ac3ad157/pybase64-1.4.3-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:2a8204f1fdfec5aa4184249b51296c0de95445869920c88123978304aad42df1", size = 31394, upload-time = "2025-12-06T13:23:44.317Z" }, + { url = "https://files.pythonhosted.org/packages/82/70/b5d7c5932bf64ee1ec5da859fbac981930b6a55d432a603986c7f509c838/pybase64-1.4.3-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:874fc2a3777de6baf6aa921a7aa73b3be98295794bea31bd80568a963be30767", size = 38078, upload-time = "2025-12-06T13:23:45.348Z" }, + { url = "https://files.pythonhosted.org/packages/56/fe/e66fe373bce717c6858427670736d54297938dad61c5907517ab4106bd90/pybase64-1.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2dc64a94a9d936b8e3449c66afabbaa521d3cc1a563d6bbaaa6ffa4535222e4b", size = 38158, upload-time = "2025-12-06T13:23:46.872Z" }, + { url = "https://files.pythonhosted.org/packages/80/a9/b806ed1dcc7aed2ea3dd4952286319e6f3a8b48615c8118f453948e01999/pybase64-1.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e48f86de1c145116ccf369a6e11720ce696c2ec02d285f440dfb57ceaa0a6cb4", size = 31672, upload-time = "2025-12-06T13:23:47.88Z" }, + { url = "https://files.pythonhosted.org/packages/1c/c9/24b3b905cf75e23a9a4deaf203b35ffcb9f473ac0e6d8257f91a05dfce62/pybase64-1.4.3-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:1d45c8fe8fe82b65c36b227bb4a2cf623d9ada16bed602ce2d3e18c35285b72a", size = 68244, upload-time = "2025-12-06T13:23:49.026Z" }, + { url = "https://files.pythonhosted.org/packages/f8/cd/d15b0c3e25e5859fab0416dc5b96d34d6bd2603c1c96a07bb2202b68ab92/pybase64-1.4.3-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ad70c26ba091d8f5167e9d4e1e86a0483a5414805cdb598a813db635bd3be8b8", size = 71620, upload-time = "2025-12-06T13:23:50.081Z" }, + { url = "https://files.pythonhosted.org/packages/0d/31/4ca953cc3dcde2b3711d6bfd70a6f4ad2ca95a483c9698076ba605f1520f/pybase64-1.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e98310b7c43145221e7194ac9fa7fffc84763c87bfc5e2f59f9f92363475bdc1", size = 59930, upload-time = "2025-12-06T13:23:51.68Z" }, + { url = "https://files.pythonhosted.org/packages/60/55/e7f7bdcd0fd66e61dda08db158ffda5c89a306bbdaaf5a062fbe4e48f4a1/pybase64-1.4.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:398685a76034e91485a28aeebcb49e64cd663212fd697b2497ac6dfc1df5e671", size = 56425, upload-time = "2025-12-06T13:23:52.732Z" }, + { url = "https://files.pythonhosted.org/packages/cb/65/b592c7f921e51ca1aca3af5b0d201a98666d0a36b930ebb67e7c2ed27395/pybase64-1.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7e46400a6461187ccb52ed75b0045d937529e801a53a9cd770b350509f9e4d50", size = 59327, upload-time = "2025-12-06T13:23:53.856Z" }, + { url = "https://files.pythonhosted.org/packages/23/95/1613d2fb82dbb1548595ad4179f04e9a8451bfa18635efce18b631eabe3f/pybase64-1.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:1b62b9f2f291d94f5e0b76ab499790b7dcc78a009d4ceea0b0428770267484b6", size = 60294, upload-time = "2025-12-06T13:23:54.937Z" }, + { url = "https://files.pythonhosted.org/packages/9d/73/40431f37f7d1b3eab4673e7946ff1e8f5d6bd425ec257e834dae8a6fc7b0/pybase64-1.4.3-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:f30ceb5fa4327809dede614be586efcbc55404406d71e1f902a6fdcf322b93b2", size = 54858, upload-time = "2025-12-06T13:23:56.031Z" }, + { url = "https://files.pythonhosted.org/packages/a7/84/f6368bcaf9f743732e002a9858646fd7a54f428490d427dd6847c5cfe89e/pybase64-1.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0d5f18ed53dfa1d4cf8b39ee542fdda8e66d365940e11f1710989b3cf4a2ed66", size = 58629, upload-time = "2025-12-06T13:23:57.12Z" }, + { url = "https://files.pythonhosted.org/packages/43/75/359532f9adb49c6b546cafc65c46ed75e2ccc220d514ba81c686fbd83965/pybase64-1.4.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:119d31aa4b58b85a8ebd12b63c07681a138c08dfc2fe5383459d42238665d3eb", size = 52448, upload-time = "2025-12-06T13:23:58.298Z" }, + { url = "https://files.pythonhosted.org/packages/92/6c/ade2ba244c3f33ed920a7ed572ad772eb0b5f14480b72d629d0c9e739a40/pybase64-1.4.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3cf0218b0e2f7988cf7d738a73b6a1d14f3be6ce249d7c0f606e768366df2cce", size = 68841, upload-time = "2025-12-06T13:23:59.886Z" }, + { url = "https://files.pythonhosted.org/packages/a0/51/b345139cd236be382f2d4d4453c21ee6299e14d2f759b668e23080f8663f/pybase64-1.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:12f4ee5e988bc5c0c1106b0d8fc37fb0508f12dab76bac1b098cb500d148da9d", size = 57910, upload-time = "2025-12-06T13:24:00.994Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b8/9f84bdc4f1c4f0052489396403c04be2f9266a66b70c776001eaf0d78c1f/pybase64-1.4.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:937826bc7b6b95b594a45180e81dd4d99bd4dd4814a443170e399163f7ff3fb6", size = 54335, upload-time = "2025-12-06T13:24:02.046Z" }, + { url = "https://files.pythonhosted.org/packages/d0/c7/be63b617d284de46578a366da77ede39c8f8e815ed0d82c7c2acca560fab/pybase64-1.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:88995d1460971ef80b13e3e007afbe4b27c62db0508bc7250a2ab0a0b4b91362", size = 56486, upload-time = "2025-12-06T13:24:03.141Z" }, + { url = "https://files.pythonhosted.org/packages/5e/96/f252c8f9abd6ded3ef1ccd3cdbb8393a33798007f761b23df8de1a2480e6/pybase64-1.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:72326fe163385ed3e1e806dd579d47fde5d8a59e51297a60fc4e6cbc1b4fc4ed", size = 70978, upload-time = "2025-12-06T13:24:04.221Z" }, + { url = "https://files.pythonhosted.org/packages/af/51/0f5714af7aeef96e30f968e4371d75ad60558aaed3579d7c6c8f1c43c18a/pybase64-1.4.3-cp313-cp313-win32.whl", hash = "sha256:b1623730c7892cf5ed0d6355e375416be6ef8d53ab9b284f50890443175c0ac3", size = 33684, upload-time = "2025-12-06T13:24:05.29Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ad/0cea830a654eb08563fb8214150ef57546ece1cc421c09035f0e6b0b5ea9/pybase64-1.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:8369887590f1646a5182ca2fb29252509da7ae31d4923dbb55d3e09da8cc4749", size = 35832, upload-time = "2025-12-06T13:24:06.35Z" }, + { url = "https://files.pythonhosted.org/packages/b4/0d/eec2a8214989c751bc7b4cad1860eb2c6abf466e76b77508c0f488c96a37/pybase64-1.4.3-cp313-cp313-win_arm64.whl", hash = "sha256:860b86bca71e5f0237e2ab8b2d9c4c56681f3513b1bf3e2117290c1963488390", size = 31175, upload-time = "2025-12-06T13:24:07.419Z" }, + { url = "https://files.pythonhosted.org/packages/db/c9/e23463c1a2913686803ef76b1a5ae7e6fac868249a66e48253d17ad7232c/pybase64-1.4.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:eb51db4a9c93215135dccd1895dca078e8785c357fabd983c9f9a769f08989a9", size = 38497, upload-time = "2025-12-06T13:24:08.873Z" }, + { url = "https://files.pythonhosted.org/packages/71/83/343f446b4b7a7579bf6937d2d013d82f1a63057cf05558e391ab6039d7db/pybase64-1.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a03ef3f529d85fd46b89971dfb00c634d53598d20ad8908fb7482955c710329d", size = 32076, upload-time = "2025-12-06T13:24:09.975Z" }, + { url = "https://files.pythonhosted.org/packages/46/fc/cb64964c3b29b432f54d1bce5e7691d693e33bbf780555151969ffd95178/pybase64-1.4.3-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:2e745f2ce760c6cf04d8a72198ef892015ddb89f6ceba489e383518ecbdb13ab", size = 72317, upload-time = "2025-12-06T13:24:11.129Z" }, + { url = "https://files.pythonhosted.org/packages/0a/b7/fab2240da6f4e1ad46f71fa56ec577613cf5df9dce2d5b4cfaa4edd0e365/pybase64-1.4.3-cp313-cp313t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fac217cd9de8581a854b0ac734c50fd1fa4b8d912396c1fc2fce7c230efe3a7", size = 75534, upload-time = "2025-12-06T13:24:12.433Z" }, + { url = "https://files.pythonhosted.org/packages/91/3b/3e2f2b6e68e3d83ddb9fa799f3548fb7449765daec9bbd005a9fbe296d7f/pybase64-1.4.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:da1ee8fa04b283873de2d6e8fa5653e827f55b86bdf1a929c5367aaeb8d26f8a", size = 65399, upload-time = "2025-12-06T13:24:13.928Z" }, + { url = "https://files.pythonhosted.org/packages/6b/08/476ac5914c3b32e0274a2524fc74f01cbf4f4af4513d054e41574eb018f6/pybase64-1.4.3-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:b0bf8e884ee822ca7b1448eeb97fa131628fe0ff42f60cae9962789bd562727f", size = 60487, upload-time = "2025-12-06T13:24:15.177Z" }, + { url = "https://files.pythonhosted.org/packages/f1/b8/618a92915330cc9cba7880299b546a1d9dab1a21fd6c0292ee44a4fe608c/pybase64-1.4.3-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1bf749300382a6fd1f4f255b183146ef58f8e9cb2f44a077b3a9200dfb473a77", size = 63959, upload-time = "2025-12-06T13:24:16.854Z" }, + { url = "https://files.pythonhosted.org/packages/a5/52/af9d8d051652c3051862c442ec3861259c5cdb3fc69774bc701470bd2a59/pybase64-1.4.3-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:153a0e42329b92337664cfc356f2065248e6c9a1bd651bbcd6dcaf15145d3f06", size = 64874, upload-time = "2025-12-06T13:24:18.328Z" }, + { url = "https://files.pythonhosted.org/packages/e4/51/5381a7adf1f381bd184d33203692d3c57cf8ae9f250f380c3fecbdbe554b/pybase64-1.4.3-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:86ee56ac7f2184ca10217ed1c655c1a060273e233e692e9086da29d1ae1768db", size = 58572, upload-time = "2025-12-06T13:24:19.417Z" }, + { url = "https://files.pythonhosted.org/packages/e0/f0/578ee4ffce5818017de4fdf544e066c225bc435e73eb4793cde28a689d0b/pybase64-1.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:0e71a4db76726bf830b47477e7d830a75c01b2e9b01842e787a0836b0ba741e3", size = 63636, upload-time = "2025-12-06T13:24:20.497Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ad/8ae94814bf20159ea06310b742433e53d5820aa564c9fdf65bf2d79f8799/pybase64-1.4.3-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:2ba7799ec88540acd9861b10551d24656ca3c2888ecf4dba2ee0a71544a8923f", size = 56193, upload-time = "2025-12-06T13:24:21.559Z" }, + { url = "https://files.pythonhosted.org/packages/d1/31/6438cfcc3d3f0fa84d229fa125c243d5094e72628e525dfefadf3bcc6761/pybase64-1.4.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2860299e4c74315f5951f0cf3e72ba0f201c3356c8a68f95a3ab4e620baf44e9", size = 72655, upload-time = "2025-12-06T13:24:22.673Z" }, + { url = "https://files.pythonhosted.org/packages/a3/0d/2bbc9e9c3fc12ba8a6e261482f03a544aca524f92eae0b4908c0a10ba481/pybase64-1.4.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:bb06015db9151f0c66c10aae8e3603adab6b6cd7d1f7335a858161d92fc29618", size = 62471, upload-time = "2025-12-06T13:24:23.8Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0b/34d491e7f49c1dbdb322ea8da6adecda7c7cd70b6644557c6e4ca5c6f7c7/pybase64-1.4.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:242512a070817272865d37c8909059f43003b81da31f616bb0c391ceadffe067", size = 58119, upload-time = "2025-12-06T13:24:24.994Z" }, + { url = "https://files.pythonhosted.org/packages/ce/17/c21d0cde2a6c766923ae388fc1f78291e1564b0d38c814b5ea8a0e5e081c/pybase64-1.4.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5d8277554a12d3e3eed6180ebda62786bf9fc8d7bb1ee00244258f4a87ca8d20", size = 60791, upload-time = "2025-12-06T13:24:26.046Z" }, + { url = "https://files.pythonhosted.org/packages/92/b2/eaa67038916a48de12b16f4c384bcc1b84b7ec731b23613cb05f27673294/pybase64-1.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f40b7ddd698fc1e13a4b64fbe405e4e0e1279e8197e37050e24154655f5f7c4e", size = 74701, upload-time = "2025-12-06T13:24:27.466Z" }, + { url = "https://files.pythonhosted.org/packages/42/10/abb7757c330bb869ebb95dab0c57edf5961ffbd6c095c8209cbbf75d117d/pybase64-1.4.3-cp313-cp313t-win32.whl", hash = "sha256:46d75c9387f354c5172582a9eaae153b53a53afeb9c19fcf764ea7038be3bd8b", size = 33965, upload-time = "2025-12-06T13:24:28.548Z" }, + { url = "https://files.pythonhosted.org/packages/63/a0/2d4e5a59188e9e6aed0903d580541aaea72dcbbab7bf50fb8b83b490b6c3/pybase64-1.4.3-cp313-cp313t-win_amd64.whl", hash = "sha256:d7344625591d281bec54e85cbfdab9e970f6219cac1570f2aa140b8c942ccb81", size = 36207, upload-time = "2025-12-06T13:24:29.646Z" }, + { url = "https://files.pythonhosted.org/packages/1f/05/95b902e8f567b4d4b41df768ccc438af618f8d111e54deaf57d2df46bd76/pybase64-1.4.3-cp313-cp313t-win_arm64.whl", hash = "sha256:28a3c60c55138e0028313f2eccd321fec3c4a0be75e57a8d3eb883730b1b0880", size = 31505, upload-time = "2025-12-06T13:24:30.687Z" }, + { url = "https://files.pythonhosted.org/packages/e4/80/4bd3dff423e5a91f667ca41982dc0b79495b90ec0c0f5d59aca513e50f8c/pybase64-1.4.3-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:015bb586a1ea1467f69d57427abe587469392215f59db14f1f5c39b52fdafaf5", size = 33835, upload-time = "2025-12-06T13:24:31.767Z" }, + { url = "https://files.pythonhosted.org/packages/45/60/a94d94cc1e3057f602e0b483c9ebdaef40911d84a232647a2fe593ab77bb/pybase64-1.4.3-cp314-cp314-android_24_x86_64.whl", hash = "sha256:d101e3a516f837c3dcc0e5a0b7db09582ebf99ed670865223123fb2e5839c6c0", size = 40673, upload-time = "2025-12-06T13:24:32.82Z" }, + { url = "https://files.pythonhosted.org/packages/e3/71/cf62b261d431857e8e054537a5c3c24caafa331de30daede7b2c6c558501/pybase64-1.4.3-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:8f183ac925a48046abe047360fe3a1b28327afb35309892132fe1915d62fb282", size = 30939, upload-time = "2025-12-06T13:24:34.001Z" }, + { url = "https://files.pythonhosted.org/packages/24/3e/d12f92a3c1f7c6ab5d53c155bff9f1084ba997a37a39a4f781ccba9455f3/pybase64-1.4.3-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30bf3558e24dcce4da5248dcf6d73792adfcf4f504246967e9db155be4c439ad", size = 31401, upload-time = "2025-12-06T13:24:35.11Z" }, + { url = "https://files.pythonhosted.org/packages/9b/3d/9c27440031fea0d05146f8b70a460feb95d8b4e3d9ca8f45c972efb4c3d3/pybase64-1.4.3-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:a674b419de318d2ce54387dd62646731efa32b4b590907800f0bd40675c1771d", size = 38075, upload-time = "2025-12-06T13:24:36.53Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d4/6c0e0cf0efd53c254173fbcd84a3d8fcbf5e0f66622473da425becec32a5/pybase64-1.4.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:720104fd7303d07bac302be0ff8f7f9f126f2f45c1edb4f48fdb0ff267e69fe1", size = 38257, upload-time = "2025-12-06T13:24:38.049Z" }, + { url = "https://files.pythonhosted.org/packages/50/eb/27cb0b610d5cd70f5ad0d66c14ad21c04b8db930f7139818e8fbdc14df4d/pybase64-1.4.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:83f1067f73fa5afbc3efc0565cecc6ed53260eccddef2ebe43a8ce2b99ea0e0a", size = 31685, upload-time = "2025-12-06T13:24:40.327Z" }, + { url = "https://files.pythonhosted.org/packages/db/26/b136a4b65e5c94ff06217f7726478df3f31ab1c777c2c02cf698e748183f/pybase64-1.4.3-cp314-cp314-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:b51204d349a4b208287a8aa5b5422be3baa88abf6cc8ff97ccbda34919bbc857", size = 68460, upload-time = "2025-12-06T13:24:41.735Z" }, + { url = "https://files.pythonhosted.org/packages/68/6d/84ce50e7ee1ae79984d689e05a9937b2460d4efa1e5b202b46762fb9036c/pybase64-1.4.3-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:30f2fd53efecbdde4bdca73a872a68dcb0d1bf8a4560c70a3e7746df973e1ef3", size = 71688, upload-time = "2025-12-06T13:24:42.908Z" }, + { url = "https://files.pythonhosted.org/packages/e3/57/6743e420416c3ff1b004041c85eb0ebd9c50e9cf05624664bfa1dc8b5625/pybase64-1.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0932b0c5cfa617091fd74f17d24549ce5de3628791998c94ba57be808078eeaf", size = 60040, upload-time = "2025-12-06T13:24:44.37Z" }, + { url = "https://files.pythonhosted.org/packages/3b/68/733324e28068a89119af2921ce548e1c607cc5c17d354690fc51c302e326/pybase64-1.4.3-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:acb61f5ab72bec808eb0d4ce8b87ec9f38d7d750cb89b1371c35eb8052a29f11", size = 56478, upload-time = "2025-12-06T13:24:45.815Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9e/f3f4aa8cfe3357a3cdb0535b78eb032b671519d3ecc08c58c4c6b72b5a91/pybase64-1.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:2bc2d5bc15168f5c04c53bdfe5a1e543b2155f456ed1e16d7edce9ce73842021", size = 59463, upload-time = "2025-12-06T13:24:46.938Z" }, + { url = "https://files.pythonhosted.org/packages/aa/d1/53286038e1f0df1cf58abcf4a4a91b0f74ab44539c2547b6c31001ddd054/pybase64-1.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:8a7bc3cd23880bdca59758bcdd6f4ef0674f2393782763910a7466fab35ccb98", size = 60360, upload-time = "2025-12-06T13:24:48.039Z" }, + { url = "https://files.pythonhosted.org/packages/00/9a/5cc6ce95db2383d27ff4d790b8f8b46704d360d701ab77c4f655bcfaa6a7/pybase64-1.4.3-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:ad15acf618880d99792d71e3905b0e2508e6e331b76a1b34212fa0f11e01ad28", size = 54999, upload-time = "2025-12-06T13:24:49.547Z" }, + { url = "https://files.pythonhosted.org/packages/64/e7/c3c1d09c3d7ae79e3aa1358c6d912d6b85f29281e47aa94fc0122a415a2f/pybase64-1.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:448158d417139cb4851200e5fee62677ae51f56a865d50cda9e0d61bda91b116", size = 58736, upload-time = "2025-12-06T13:24:50.641Z" }, + { url = "https://files.pythonhosted.org/packages/db/d5/0baa08e3d8119b15b588c39f0d39fd10472f0372e3c54ca44649cbefa256/pybase64-1.4.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:9058c49b5a2f3e691b9db21d37eb349e62540f9f5fc4beabf8cbe3c732bead86", size = 52298, upload-time = "2025-12-06T13:24:51.791Z" }, + { url = "https://files.pythonhosted.org/packages/00/87/fc6f11474a1de7e27cd2acbb8d0d7508bda3efa73dfe91c63f968728b2a3/pybase64-1.4.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ce561724f6522907a66303aca27dce252d363fcd85884972d348f4403ba3011a", size = 69049, upload-time = "2025-12-06T13:24:53.253Z" }, + { url = "https://files.pythonhosted.org/packages/69/9d/7fb5566f669ac18b40aa5fc1c438e24df52b843c1bdc5da47d46d4c1c630/pybase64-1.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:63316560a94ac449fe86cb8b9e0a13714c659417e92e26a5cbf085cd0a0c838d", size = 57952, upload-time = "2025-12-06T13:24:54.342Z" }, + { url = "https://files.pythonhosted.org/packages/de/cc/ceb949232dbbd3ec4ee0190d1df4361296beceee9840390a63df8bc31784/pybase64-1.4.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:7ecd796f2ac0be7b73e7e4e232b8c16422014de3295d43e71d2b19fd4a4f5368", size = 54484, upload-time = "2025-12-06T13:24:55.774Z" }, + { url = "https://files.pythonhosted.org/packages/a7/69/659f3c8e6a5d7b753b9c42a4bd9c42892a0f10044e9c7351a4148d413a33/pybase64-1.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d01e102a12fb2e1ed3dc11611c2818448626637857ec3994a9cf4809dfd23477", size = 56542, upload-time = "2025-12-06T13:24:57Z" }, + { url = "https://files.pythonhosted.org/packages/85/2c/29c9e6c9c82b72025f9676f9e82eb1fd2339ad038cbcbf8b9e2ac02798fc/pybase64-1.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ebff797a93c2345f22183f454fd8607a34d75eca5a3a4a969c1c75b304cee39d", size = 71045, upload-time = "2025-12-06T13:24:58.179Z" }, + { url = "https://files.pythonhosted.org/packages/b9/84/5a3dce8d7a0040a5c0c14f0fe1311cd8db872913fa04438071b26b0dac04/pybase64-1.4.3-cp314-cp314-win32.whl", hash = "sha256:28b2a1bb0828c0595dc1ea3336305cd97ff85b01c00d81cfce4f92a95fb88f56", size = 34200, upload-time = "2025-12-06T13:24:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/57/bc/ce7427c12384adee115b347b287f8f3cf65860b824d74fe2c43e37e81c1f/pybase64-1.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:33338d3888700ff68c3dedfcd49f99bfc3b887570206130926791e26b316b029", size = 36323, upload-time = "2025-12-06T13:25:01.708Z" }, + { url = "https://files.pythonhosted.org/packages/9a/1b/2b8ffbe9a96eef7e3f6a5a7be75995eebfb6faaedc85b6da6b233e50c778/pybase64-1.4.3-cp314-cp314-win_arm64.whl", hash = "sha256:62725669feb5acb186458da2f9353e88ae28ef66bb9c4c8d1568b12a790dfa94", size = 31584, upload-time = "2025-12-06T13:25:02.801Z" }, + { url = "https://files.pythonhosted.org/packages/ac/d8/6824c2e6fb45b8fa4e7d92e3c6805432d5edc7b855e3e8e1eedaaf6efb7c/pybase64-1.4.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:153fe29be038948d9372c3e77ae7d1cab44e4ba7d9aaf6f064dbeea36e45b092", size = 38601, upload-time = "2025-12-06T13:25:04.222Z" }, + { url = "https://files.pythonhosted.org/packages/ea/e5/10d2b3a4ad3a4850be2704a2f70cd9c0cf55725c8885679872d3bc846c67/pybase64-1.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f7fe3decaa7c4a9e162327ec7bd81ce183d2b16f23c6d53b606649c6e0203e9e", size = 32078, upload-time = "2025-12-06T13:25:05.362Z" }, + { url = "https://files.pythonhosted.org/packages/43/04/8b15c34d3c2282f1c1b0850f1113a249401b618a382646a895170bc9b5e7/pybase64-1.4.3-cp314-cp314t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:a5ae04ea114c86eb1da1f6e18d75f19e3b5ae39cb1d8d3cd87c29751a6a22780", size = 72474, upload-time = "2025-12-06T13:25:06.434Z" }, + { url = "https://files.pythonhosted.org/packages/42/00/f34b4d11278f8fdc68bc38f694a91492aa318f7c6f1bd7396197ac0f8b12/pybase64-1.4.3-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1755b3dce3a2a5c7d17ff6d4115e8bee4a1d5aeae74469db02e47c8f477147da", size = 75706, upload-time = "2025-12-06T13:25:07.636Z" }, + { url = "https://files.pythonhosted.org/packages/bb/5d/71747d4ad7fe16df4c4c852bdbdeb1f2cf35677b48d7c34d3011a7a6ad3a/pybase64-1.4.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb852f900e27ffc4ec1896817535a0fa19610ef8875a096b59f21d0aa42ff172", size = 65589, upload-time = "2025-12-06T13:25:08.809Z" }, + { url = "https://files.pythonhosted.org/packages/49/b1/d1e82bd58805bb5a3a662864800bab83a83a36ba56e7e3b1706c708002a5/pybase64-1.4.3-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:9cf21ea8c70c61eddab3421fbfce061fac4f2fb21f7031383005a1efdb13d0b9", size = 60670, upload-time = "2025-12-06T13:25:10.04Z" }, + { url = "https://files.pythonhosted.org/packages/15/67/16c609b7a13d1d9fc87eca12ba2dce5e67f949eeaab61a41bddff843cbb0/pybase64-1.4.3-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:afff11b331fdc27692fc75e85ae083340a35105cea1a3c4552139e2f0e0d174f", size = 64194, upload-time = "2025-12-06T13:25:11.48Z" }, + { url = "https://files.pythonhosted.org/packages/3c/11/37bc724e42960f0106c2d33dc957dcec8f760c91a908cc6c0df7718bc1a8/pybase64-1.4.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9a5143df542c1ce5c1f423874b948c4d689b3f05ec571f8792286197a39ba02", size = 64984, upload-time = "2025-12-06T13:25:12.645Z" }, + { url = "https://files.pythonhosted.org/packages/6e/66/b2b962a6a480dd5dae3029becf03ea1a650d326e39bf1c44ea3db78bb010/pybase64-1.4.3-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:d62e9861019ad63624b4a7914dff155af1cc5d6d79df3be14edcaedb5fdad6f9", size = 58750, upload-time = "2025-12-06T13:25:13.848Z" }, + { url = "https://files.pythonhosted.org/packages/2b/15/9b6d711035e29b18b2e1c03d47f41396d803d06ef15b6c97f45b75f73f04/pybase64-1.4.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:84cfd4d92668ef5766cc42a9c9474b88960ac2b860767e6e7be255c6fddbd34a", size = 63816, upload-time = "2025-12-06T13:25:15.356Z" }, + { url = "https://files.pythonhosted.org/packages/b4/21/e2901381ed0df62e2308380f30d9c4d87d6b74e33a84faed3478d33a7197/pybase64-1.4.3-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:60fc025437f9a7c2cc45e0c19ed68ed08ba672be2c5575fd9d98bdd8f01dd61f", size = 56348, upload-time = "2025-12-06T13:25:16.559Z" }, + { url = "https://files.pythonhosted.org/packages/c4/16/3d788388a178a0407aa814b976fe61bfa4af6760d9aac566e59da6e4a8b4/pybase64-1.4.3-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:edc8446196f04b71d3af76c0bd1fe0a45066ac5bffecca88adb9626ee28c266f", size = 72842, upload-time = "2025-12-06T13:25:18.055Z" }, + { url = "https://files.pythonhosted.org/packages/a6/63/c15b1f8bd47ea48a5a2d52a4ec61f037062932ea6434ab916107b58e861e/pybase64-1.4.3-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:e99f6fa6509c037794da57f906ade271f52276c956d00f748e5b118462021d48", size = 62651, upload-time = "2025-12-06T13:25:19.191Z" }, + { url = "https://files.pythonhosted.org/packages/bd/b8/f544a2e37c778d59208966d4ef19742a0be37c12fc8149ff34483c176616/pybase64-1.4.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:d94020ef09f624d841aa9a3a6029df8cf65d60d7a6d5c8687579fa68bd679b65", size = 58295, upload-time = "2025-12-06T13:25:20.822Z" }, + { url = "https://files.pythonhosted.org/packages/03/99/1fae8a3b7ac181e36f6e7864a62d42d5b1f4fa7edf408c6711e28fba6b4d/pybase64-1.4.3-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:f64ce70d89942a23602dee910dec9b48e5edf94351e1b378186b74fcc00d7f66", size = 60960, upload-time = "2025-12-06T13:25:22.099Z" }, + { url = "https://files.pythonhosted.org/packages/9d/9e/cd4c727742345ad8384569a4466f1a1428f4e5cc94d9c2ab2f53d30be3fe/pybase64-1.4.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8ea99f56e45c469818b9781903be86ba4153769f007ba0655fa3b46dc332803d", size = 74863, upload-time = "2025-12-06T13:25:23.442Z" }, + { url = "https://files.pythonhosted.org/packages/28/86/a236ecfc5b494e1e922da149689f690abc84248c7c1358f5605b8c9fdd60/pybase64-1.4.3-cp314-cp314t-win32.whl", hash = "sha256:343b1901103cc72362fd1f842524e3bb24978e31aea7ff11e033af7f373f66ab", size = 34513, upload-time = "2025-12-06T13:25:24.592Z" }, + { url = "https://files.pythonhosted.org/packages/56/ce/ca8675f8d1352e245eb012bfc75429ee9cf1f21c3256b98d9a329d44bf0f/pybase64-1.4.3-cp314-cp314t-win_amd64.whl", hash = "sha256:57aff6f7f9dea6705afac9d706432049642de5b01080d3718acc23af87c5af76", size = 36702, upload-time = "2025-12-06T13:25:25.72Z" }, + { url = "https://files.pythonhosted.org/packages/3b/30/4a675864877397179b09b720ee5fcb1cf772cf7bebc831989aff0a5f79c1/pybase64-1.4.3-cp314-cp314t-win_arm64.whl", hash = "sha256:e906aa08d4331e799400829e0f5e4177e76a3281e8a4bc82ba114c6b30e405c9", size = 31904, upload-time = "2025-12-06T13:25:26.826Z" }, + { url = "https://files.pythonhosted.org/packages/b2/7c/545fd4935a0e1ddd7147f557bf8157c73eecec9cffd523382fa7af2557de/pybase64-1.4.3-graalpy311-graalpy242_311_native-macosx_10_9_x86_64.whl", hash = "sha256:d27c1dfdb0c59a5e758e7a98bd78eaca5983c22f4a811a36f4f980d245df4611", size = 38393, upload-time = "2025-12-06T13:26:19.535Z" }, + { url = "https://files.pythonhosted.org/packages/c3/ca/ae7a96be9ddc96030d4e9dffc43635d4e136b12058b387fd47eb8301b60f/pybase64-1.4.3-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0f1a0c51d6f159511e3431b73c25db31095ee36c394e26a4349e067c62f434e5", size = 32109, upload-time = "2025-12-06T13:26:20.72Z" }, + { url = "https://files.pythonhosted.org/packages/bf/44/d4b7adc7bf4fd5b52d8d099121760c450a52c390223806b873f0b6a2d551/pybase64-1.4.3-graalpy311-graalpy242_311_native-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a492518f3078a4e3faaef310697d21df9c6bc71908cebc8c2f6fbfa16d7d6b1f", size = 43227, upload-time = "2025-12-06T13:26:21.845Z" }, + { url = "https://files.pythonhosted.org/packages/08/86/2ba2d8734ef7939debeb52cf9952e457ba7aa226cae5c0e6dd631f9b851f/pybase64-1.4.3-graalpy311-graalpy242_311_native-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cae1a0f47784fd16df90d8acc32011c8d5fcdd9ab392c9ec49543e5f6a9c43a4", size = 35804, upload-time = "2025-12-06T13:26:23.149Z" }, + { url = "https://files.pythonhosted.org/packages/4f/5b/19c725dc3aaa6281f2ce3ea4c1628d154a40dd99657d1381995f8096768b/pybase64-1.4.3-graalpy311-graalpy242_311_native-win_amd64.whl", hash = "sha256:03cea70676ffbd39a1ab7930a2d24c625b416cacc9d401599b1d29415a43ab6a", size = 35880, upload-time = "2025-12-06T13:26:24.663Z" }, + { url = "https://files.pythonhosted.org/packages/17/45/92322aec1b6979e789b5710f73c59f2172bc37c8ce835305434796824b7b/pybase64-1.4.3-graalpy312-graalpy250_312_native-macosx_10_13_x86_64.whl", hash = "sha256:2baaa092f3475f3a9c87ac5198023918ea8b6c125f4c930752ab2cbe3cd1d520", size = 38746, upload-time = "2025-12-06T13:26:25.869Z" }, + { url = "https://files.pythonhosted.org/packages/11/94/f1a07402870388fdfc2ecec0c718111189732f7d0f2d7fe1386e19e8fad0/pybase64-1.4.3-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:cde13c0764b1af07a631729f26df019070dad759981d6975527b7e8ecb465b6c", size = 32573, upload-time = "2025-12-06T13:26:27.792Z" }, + { url = "https://files.pythonhosted.org/packages/fa/8f/43c3bb11ca9bacf81cb0b7a71500bb65b2eda6d5fe07433c09b543de97f3/pybase64-1.4.3-graalpy312-graalpy250_312_native-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5c29a582b0ea3936d02bd6fe9bf674ab6059e6e45ab71c78404ab2c913224414", size = 43461, upload-time = "2025-12-06T13:26:28.906Z" }, + { url = "https://files.pythonhosted.org/packages/2d/4c/2a5258329200be57497d3972b5308558c6de42e3749c6cc2aa1cbe34b25a/pybase64-1.4.3-graalpy312-graalpy250_312_native-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b6b664758c804fa919b4f1257aa8cf68e95db76fc331de5f70bfc3a34655afe1", size = 36058, upload-time = "2025-12-06T13:26:30.092Z" }, + { url = "https://files.pythonhosted.org/packages/ea/6d/41faa414cde66ec023b0ca8402a8f11cb61731c3dc27c082909cbbd1f929/pybase64-1.4.3-graalpy312-graalpy250_312_native-win_amd64.whl", hash = "sha256:f7537fa22ae56a0bf51e4b0ffc075926ad91c618e1416330939f7ef366b58e3b", size = 36231, upload-time = "2025-12-06T13:26:31.656Z" }, + { url = "https://files.pythonhosted.org/packages/2a/cf/6e712491bd665ea8633efb0b484121893ea838d8e830e06f39f2aae37e58/pybase64-1.4.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:94cf50c36bb2f8618982ee5a978c4beed9db97d35944fa96e8586dd953c7994a", size = 38007, upload-time = "2025-12-06T13:26:32.804Z" }, + { url = "https://files.pythonhosted.org/packages/38/c0/9272cae1c49176337dcdbd97511e2843faae1aaf5a5fb48569093c6cd4ce/pybase64-1.4.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:01bc3ff5ca1341685c6d2d945b035f442f7b9c3b068a5c6ee8408a41fda5754e", size = 31538, upload-time = "2025-12-06T13:26:34.001Z" }, + { url = "https://files.pythonhosted.org/packages/20/f2/17546f97befe429c73f622bbd869ceebb518c40fdb0dec4c4f98312e80a5/pybase64-1.4.3-pp310-pypy310_pp73-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:03d0aa3761a99034960496280c02aa063f856a3cc9b33771bc4eab0e4e72b5c2", size = 40682, upload-time = "2025-12-06T13:26:35.168Z" }, + { url = "https://files.pythonhosted.org/packages/92/a0/464b36d5dfb61f3da17858afaeaa876a9342d58e9f17803ce7f28b5de9e8/pybase64-1.4.3-pp310-pypy310_pp73-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7ca5b1ce768520acd6440280cdab35235b27ad2faacfcec064bc9c3377066ef1", size = 41306, upload-time = "2025-12-06T13:26:36.351Z" }, + { url = "https://files.pythonhosted.org/packages/07/c9/a748dfc0969a8d960ecf1e82c8a2a16046ffec22f8e7ece582aa3b1c6cf9/pybase64-1.4.3-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3caa1e2ddad1c50553ffaaa1c86b74b3f9fbd505bea9970326ab88fc68c4c184", size = 35452, upload-time = "2025-12-06T13:26:37.772Z" }, + { url = "https://files.pythonhosted.org/packages/95/b7/4d37bd3577d1aa6c732dc099087fe027c48873e223de3784b095e5653f8b/pybase64-1.4.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bd47076f736b27a8b0f9b30d93b6bb4f5af01b0dc8971f883ed3b75934f39a99", size = 36125, upload-time = "2025-12-06T13:26:39.78Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/160dded493c00d3376d4ad0f38a2119c5345de4a6693419ad39c3565959b/pybase64-1.4.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:277de6e03cc9090fb359365c686a2a3036d23aee6cd20d45d22b8c89d1247f17", size = 37939, upload-time = "2025-12-06T13:26:41.014Z" }, + { url = "https://files.pythonhosted.org/packages/b7/b8/a0f10be8d648d6f8f26e560d6e6955efa7df0ff1e009155717454d76f601/pybase64-1.4.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ab1dd8b1ed2d1d750260ed58ab40defaa5ba83f76a30e18b9ebd5646f6247ae5", size = 31466, upload-time = "2025-12-06T13:26:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/d3/22/832a2f9e76cdf39b52e01e40d8feeb6a04cf105494f2c3e3126d0149717f/pybase64-1.4.3-pp311-pypy311_pp73-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:bd4d2293de9fd212e294c136cec85892460b17d24e8c18a6ba18750928037750", size = 40681, upload-time = "2025-12-06T13:26:43.782Z" }, + { url = "https://files.pythonhosted.org/packages/12/d7/6610f34a8972415fab3bb4704c174a1cc477bffbc3c36e526428d0f3957d/pybase64-1.4.3-pp311-pypy311_pp73-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2af6d0d3a691911cc4c9a625f3ddcd3af720738c21be3d5c72de05629139d393", size = 41294, upload-time = "2025-12-06T13:26:44.936Z" }, + { url = "https://files.pythonhosted.org/packages/64/25/ed24400948a6c974ab1374a233cb7e8af0a5373cea0dd8a944627d17c34a/pybase64-1.4.3-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5cfc8c49a28322d82242088378f8542ce97459866ba73150b062a7073e82629d", size = 35447, upload-time = "2025-12-06T13:26:46.098Z" }, + { url = "https://files.pythonhosted.org/packages/ee/2b/e18ee7c5ee508a82897f021c1981533eca2940b5f072fc6ed0906c03a7a7/pybase64-1.4.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:debf737e09b8bf832ba86f5ecc3d3dbd0e3021d6cd86ba4abe962d6a5a77adb3", size = 36134, upload-time = "2025-12-06T13:26:47.35Z" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + [[package]] name = "pydantic" version = "2.12.5" @@ -420,6 +3257,574 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" }, ] +[[package]] +name = "pydantic-settings" +version = "2.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/ac7e0aae12027748076d72a8764ff1c9d82ca75a7a52622e67ed3f765c54/pydantic_settings-2.12.0.tar.gz", hash = "sha256:005538ef951e3c2a68e1c08b292b5f2e71490def8589d4221b95dab00dafcfd0", size = 194184, upload-time = "2025-11-10T14:25:47.013Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/60/5d4751ba3f4a40a6891f24eec885f51afd78d208498268c734e256fb13c4/pydantic_settings-2.12.0-py3-none-any.whl", hash = "sha256:fddb9fd99a5b18da837b29710391e945b1e30c135477f484084ee513adb93809", size = 51880, upload-time = "2025-11-10T14:25:45.546Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/5a/b46fa56bf322901eee5b0454a34343cdbdae202cd421775a8ee4e42fd519/pyjwt-2.11.0.tar.gz", hash = "sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623", size = 98019, upload-time = "2026-01-30T19:59:55.694Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/01/c26ce75ba460d5cd503da9e13b21a33804d38c2165dec7b716d06b13010c/pyjwt-2.11.0-py3-none-any.whl", hash = "sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469", size = 28224, upload-time = "2026-01-30T19:59:54.539Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pymupdf" +version = "1.27.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/0c/40dda0cc4bd2220a2ef75f8c53dd7d8ed1e29681fcb3df75db6ee9677a7e/pymupdf-1.27.1.tar.gz", hash = "sha256:4afbde0769c336717a149ab0de3330dcb75378f795c1a8c5af55c1a628b17d55", size = 85303479, upload-time = "2026-02-12T08:29:17.682Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/19/fde6ea4712a904b65e8f41124a0e4233879b87a770fe6a8ce857964de6d5/pymupdf-1.27.1-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:bee9f95512f9556dbf2cacfd1413c61b29a55baa07fa7f8fc83d221d8419888a", size = 23986707, upload-time = "2026-02-11T15:03:24.025Z" }, + { url = "https://files.pythonhosted.org/packages/75/c2/070dff91ad3f1bc16fd6c6ceff23495601fcce4c92d28be534417596418a/pymupdf-1.27.1-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:3de95a0889395b0966fafd11b94980b7543a816e89dd1c218597a08543ac3415", size = 23263493, upload-time = "2026-02-11T15:03:45.528Z" }, + { url = "https://files.pythonhosted.org/packages/8e/db/937377f4b3e0fbf6273c17436a49f7db17df1a46b1be9e26653b6fafc0e1/pymupdf-1.27.1-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:2c9d9353b840040cbc724341f4095fb7e2cc1a12a9147d0ec1a0a79f5d773147", size = 24317651, upload-time = "2026-02-11T22:33:38.967Z" }, + { url = "https://files.pythonhosted.org/packages/72/d5/c701cf2d0cdd6e5d6bca3ca9188d7f5d7ce3ae67dd1368d658cd4bae2707/pymupdf-1.27.1-cp310-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:aeaed76e72cbc061149a825ab0811c5f4752970c56591c2938c5042ec06b26e1", size = 24945742, upload-time = "2026-02-11T15:04:06.21Z" }, + { url = "https://files.pythonhosted.org/packages/2b/29/690202b38b93cf77b73a29c25a63a2b6f3fcb36b1f75006e50b8dee7c108/pymupdf-1.27.1-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4f1837554134fb45d390a44de8844b2ca9b6c901c82ccc90b340e3b7f3b126ca", size = 25167965, upload-time = "2026-02-11T22:36:35.478Z" }, + { url = "https://files.pythonhosted.org/packages/8a/81/f937e6aa606fd263c3a45d0ff0f0bbdbf3fb779933091fc0f6179513cc93/pymupdf-1.27.1-cp310-abi3-win32.whl", hash = "sha256:fa33b512d82c6c4852edadf57f22d5f27d16243bb33dac0fbe4eb0f281c5b17e", size = 18006253, upload-time = "2026-02-12T13:48:07.129Z" }, + { url = "https://files.pythonhosted.org/packages/3e/99/fe4a7752990bf65277718fffbead4478de9afd1c7288d7a6d643f79a6fa7/pymupdf-1.27.1-cp310-abi3-win_amd64.whl", hash = "sha256:4b6268dff3a9d713034eba5c2ffce0da37c62443578941ac5df433adcde57b2f", size = 19236703, upload-time = "2026-02-11T15:04:19.607Z" }, +] + +[[package]] +name = "pypdfium2" +version = "5.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/99/23/b3979a1d4f536fabce02e3d9f332e8aeeed064d9df9391f2a77160f4ab36/pypdfium2-5.4.0.tar.gz", hash = "sha256:7219e55048fb3999fc8adcaea467088507207df4676ff9e521a3ae15a67d99c4", size = 269136, upload-time = "2026-02-08T16:54:08.383Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/c0/3d707bff5e973272b5412556d19e8c6889ce859a235465f0049cc8d35bc3/pypdfium2-5.4.0-py3-none-android_23_arm64_v8a.whl", hash = "sha256:8bc51a12a8c8eabbdbd7499d3e5ec47bcf56ba18e07b52bdd07d321cc1252c90", size = 2759769, upload-time = "2026-02-08T16:53:32.985Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6b/306cafcb0b18d5fab41687d9ed76eabea86a9ff78bc568bee1bfa34e526d/pypdfium2-5.4.0-py3-none-android_23_armeabi_v7a.whl", hash = "sha256:a414ef5b685824cc6c7acbe19b7dbc735de2023cf473321a8ebfe8d7f5d8a41f", size = 2301913, upload-time = "2026-02-08T16:53:35.026Z" }, + { url = "https://files.pythonhosted.org/packages/7a/37/3d737c7eb84fb22939ab0a643aa0183dbc0745c309e962b4d61eeff8211b/pypdfium2-5.4.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:0e83657db8da5971434ff5683bf3faa007ee1f3a56b61f245b8aa5b60442c23a", size = 2814181, upload-time = "2026-02-08T16:53:36.481Z" }, + { url = "https://files.pythonhosted.org/packages/96/d7/0895737ec3d95ad607ade42e98fa8868b91e35b1170ec39b8c1b5fdb124c/pypdfium2-5.4.0-py3-none-macosx_11_0_x86_64.whl", hash = "sha256:e42b1d14db642e96bb3a57167f620b4247e9c843d22b9fb569b16a7c35a18f47", size = 2943476, upload-time = "2026-02-08T16:53:37.992Z" }, + { url = "https://files.pythonhosted.org/packages/9a/53/f8ab449997d3efa52737b8e6c494f1c3f09dc0642161fadc934f16a57cf0/pypdfium2-5.4.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0698c9a002f839127e74ec0185147e08b64e47a1e6caeaee95df434c05b26e8c", size = 2976675, upload-time = "2026-02-08T16:53:39.923Z" }, + { url = "https://files.pythonhosted.org/packages/c6/28/b8a4d4c1557019101bb722c88ba532ec9c14640117ab1c272c80774d83d7/pypdfium2-5.4.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:22e9d4c73fc48b18b022977ea6fe78df43adf95440e1135020ed35fea9595017", size = 2762396, upload-time = "2026-02-08T16:53:41.958Z" }, + { url = "https://files.pythonhosted.org/packages/0b/4a/6c765f6e0b69d792e2d4c7ef2359301896c82df265d60f9a56e87618ec50/pypdfium2-5.4.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f0619f8a8ae3eb71b2cdc1fbd2a8f5d43f0fc6bee66d1b3aac2c9c23e44a3bf", size = 3068559, upload-time = "2026-02-08T16:53:43.974Z" }, + { url = "https://files.pythonhosted.org/packages/1c/17/4464e4ab6dd98ac3783c10eb799d8da49cb551a769c987eb9c6ba72a5ccf/pypdfium2-5.4.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50124415d815c41de8ce7e21cee5450f74f6f1240a140573bb71ccac804d5e5f", size = 3419384, upload-time = "2026-02-08T16:53:46.041Z" }, + { url = "https://files.pythonhosted.org/packages/92/08/fa315a2ab353b41501b7088be72dc6cf8ad2bd4f1ebdfdb90c41b7f29155/pypdfium2-5.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce482d76e5447e745d761307401eaa366616ca44032b86cf7fbe6be918ade64e", size = 2998123, upload-time = "2026-02-08T16:53:47.705Z" }, + { url = "https://files.pythonhosted.org/packages/02/7a/a171d313d54a028d9437dea2c5d07fc9e1592f4daf5c39cbf514fca75242/pypdfium2-5.4.0-py3-none-manylinux_2_27_s390x.manylinux_2_28_s390x.whl", hash = "sha256:16b9c6b07f3dbe7eda209bf7aaf131ca9614e1dae527e9764180dd58bcbaf411", size = 3673594, upload-time = "2026-02-08T16:53:49.139Z" }, + { url = "https://files.pythonhosted.org/packages/0b/c0/60416f011f7e5a4ca29f40ae94907f34975239f3c6dd7fcb51f99e110f3b/pypdfium2-5.4.0-py3-none-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3b08d48b7cca3b51aefaad7855bc0e9e251432a6eef1356d532ff438be84855e", size = 2965025, upload-time = "2026-02-08T16:53:50.553Z" }, + { url = "https://files.pythonhosted.org/packages/75/e2/8e36144b5e933c707b6aeab7dc6638eee8208697925b48b5b78ef68fb52a/pypdfium2-5.4.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:0a1526e2a2bde7f2f13bec0f471d9fd475f7bbac2c0c860d48c35af8394d5931", size = 4130551, upload-time = "2026-02-08T16:53:52.71Z" }, + { url = "https://files.pythonhosted.org/packages/a0/64/8cda96259a8fdecd457f5d14a9d650315d7bdf496f96055d1d55900b3881/pypdfium2-5.4.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:40cea0bceb1e60a71b3855e2b04d175d2199b7da06212bb80f0c78067d065810", size = 3746587, upload-time = "2026-02-08T16:53:54.219Z" }, + { url = "https://files.pythonhosted.org/packages/33/6b/7764491269f188a922bd6b254359d718899fc3092c90f0f68c2f6e451921/pypdfium2-5.4.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:7a116f8fbeae7aa3a18ff2d1fa331ac647831cc16b589d4fbbbb66d64ecc8793", size = 4336703, upload-time = "2026-02-08T16:53:56.18Z" }, + { url = "https://files.pythonhosted.org/packages/87/b0/2484bd3c20ead51ecea2082deaf94a3e91bad709fa14f049ca7fb598dc9a/pypdfium2-5.4.0-py3-none-musllinux_1_2_ppc64le.whl", hash = "sha256:55c7fc894718db5fa2981d46dee45fe3a4fcd60d26f5095ad8f7779600fa8b6f", size = 4375051, upload-time = "2026-02-08T16:53:57.804Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ac/5f0536be885c3cadc09422de0324a193a21c165488a574029d9d2db92ecb/pypdfium2-5.4.0-py3-none-musllinux_1_2_riscv64.whl", hash = "sha256:dfc1c0c7e6e7ba258ebb338aaf664eb933bff1854cda76e4ee530886ea39b31a", size = 3928935, upload-time = "2026-02-08T16:53:59.265Z" }, + { url = "https://files.pythonhosted.org/packages/13/b9/693b665df0939555491bece0777cafda1270e208734e925006de313abb5b/pypdfium2-5.4.0-py3-none-musllinux_1_2_s390x.whl", hash = "sha256:4c0a48ede7180f804c029c509c2b6ea0c66813a3fde9eb9afc390183f947164d", size = 4997642, upload-time = "2026-02-08T16:54:00.809Z" }, + { url = "https://files.pythonhosted.org/packages/fb/ea/ba585acdfbefe309ee2fe5ebfeb097e36abe1d33c2a5108828c493c070bb/pypdfium2-5.4.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:dea22d15c44a275702fd95ad664ba6eaa3c493d53d58b4d69272a04bdfb0df70", size = 4179914, upload-time = "2026-02-08T16:54:02.264Z" }, + { url = "https://files.pythonhosted.org/packages/97/47/238383e89081a0ed1ca2bf4ef44f7e512fa0c72ffc51adc7df83bfcfd9b9/pypdfium2-5.4.0-py3-none-win32.whl", hash = "sha256:35c643827ed0f4dae9cedf3caf836f94cba5b31bd2c115b80a7c85f004636de9", size = 2995844, upload-time = "2026-02-08T16:54:03.692Z" }, + { url = "https://files.pythonhosted.org/packages/08/37/f1338a0600c6c6e31759f8f80d7ab20aa0bc43b11594da67091300e051d4/pypdfium2-5.4.0-py3-none-win_amd64.whl", hash = "sha256:f9d9ce3c6901294d6984004d4a797dea110f8248b1bde33a823d25b45d3c2685", size = 3104198, upload-time = "2026-02-08T16:54:05.304Z" }, + { url = "https://files.pythonhosted.org/packages/65/17/18ad82f070da18ab970928f730fbd44d9b05aafcb52a2ebb6470eaae53f9/pypdfium2-5.4.0-py3-none-win_arm64.whl", hash = "sha256:2b78ea216fb92e7709b61c46241ebf2cc0c60cf18ad2fb4633af665d7b4e21e6", size = 2938727, upload-time = "2026-02-08T16:54:06.814Z" }, +] + +[[package]] +name = "pypika" +version = "0.51.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/78/cbaebba88e05e2dcda13ca203131b38d3640219f20ebb49676d26714861b/pypika-0.51.1.tar.gz", hash = "sha256:c30c7c1048fbf056fd3920c5a2b88b0c29dd190a9b2bee971fd17e4abe4d0ebe", size = 80919, upload-time = "2026-02-04T11:27:48.304Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/83/c77dfeed04022e8930b08eedca2b6e5efed256ab3321396fde90066efb65/pypika-0.51.1-py2.py3-none-any.whl", hash = "sha256:77985b4d7ce71b9905255bf12468cf598349e98837c037541cfc240e528aec46", size = 60585, upload-time = "2026-02-04T11:27:46.251Z" }, +] + +[[package]] +name = "pyproject-hooks" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228, upload-time = "2024-09-29T09:24:13.293Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216, upload-time = "2024-09-29T09:24:11.978Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-docx" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/f7/eddfe33871520adab45aaa1a71f0402a2252050c14c7e3009446c8f4701c/python_docx-1.2.0.tar.gz", hash = "sha256:7bc9d7b7d8a69c9c02ca09216118c86552704edc23bac179283f2e38f86220ce", size = 5723256, upload-time = "2025-06-16T20:46:27.921Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/00/1e03a4989fa5795da308cd774f05b704ace555a70f9bf9d3be057b680bcf/python_docx-1.2.0-py3-none-any.whl", hash = "sha256:3fd478f3250fbbbfd3b94fe1e985955737c145627498896a8a6bf81f4baf66c7", size = 252987, upload-time = "2025-06-16T20:46:22.506Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/01/979e98d542a70714b0cb2b6728ed0b7c46792b695e3eaec3e20711271ca3/python_multipart-0.0.22.tar.gz", hash = "sha256:7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58", size = 37612, upload-time = "2026-01-25T10:15:56.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/d0/397f9626e711ff749a95d96b7af99b9c566a9bb5129b8e4c10fc4d100304/python_multipart-0.0.22-py3-none-any.whl", hash = "sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155", size = 24579, upload-time = "2026-01-25T10:15:54.811Z" }, +] + +[[package]] +name = "pytube" +version = "15.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/e7/16fec46c8d255c4bbc4b185d89c91dc92cdb802836570d8004d0db169c91/pytube-15.0.0.tar.gz", hash = "sha256:076052efe76f390dfa24b1194ff821d4e86c17d41cb5562f3a276a8bcbfc9d1d", size = 67229, upload-time = "2023-05-07T19:39:01.903Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/64/bcf8632ed2b7a36bbf84a0544885ffa1d0b4bcf25cc0903dba66ec5fdad9/pytube-15.0.0-py3-none-any.whl", hash = "sha256:07b9904749e213485780d7eb606e5e5b8e4341aa4dccf699160876da00e12d78", size = 57594, upload-time = "2023-05-07T19:38:59.191Z" }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/40/44efbb0dfbd33aca6a6483191dae0716070ed99e2ecb0c53683f400a0b4f/pywin32-311-cp310-cp310-win32.whl", hash = "sha256:d03ff496d2a0cd4a5893504789d4a15399133fe82517455e78bad62efbb7f0a3", size = 8760432, upload-time = "2025-07-14T20:13:05.9Z" }, + { url = "https://files.pythonhosted.org/packages/5e/bf/360243b1e953bd254a82f12653974be395ba880e7ec23e3731d9f73921cc/pywin32-311-cp310-cp310-win_amd64.whl", hash = "sha256:797c2772017851984b97180b0bebe4b620bb86328e8a884bb626156295a63b3b", size = 9590103, upload-time = "2025-07-14T20:13:07.698Z" }, + { url = "https://files.pythonhosted.org/packages/57/38/d290720e6f138086fb3d5ffe0b6caa019a791dd57866940c82e4eeaf2012/pywin32-311-cp310-cp310-win_arm64.whl", hash = "sha256:0502d1facf1fed4839a9a51ccbcc63d952cf318f78ffc00a7e78528ac27d7a2b", size = 8778557, upload-time = "2025-07-14T20:13:11.11Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3/pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151", size = 8697031, upload-time = "2025-07-14T20:13:13.266Z" }, + { url = "https://files.pythonhosted.org/packages/51/8f/9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364/pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503", size = 9508308, upload-time = "2025-07-14T20:13:15.147Z" }, + { url = "https://files.pythonhosted.org/packages/44/7b/9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c/pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2", size = 8703930, upload-time = "2025-07-14T20:13:16.945Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload-time = "2025-07-14T20:13:26.471Z" }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload-time = "2025-07-14T20:13:28.243Z" }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload-time = "2025-07-14T20:13:30.348Z" }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload-time = "2025-07-14T20:13:32.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload-time = "2025-07-14T20:13:34.312Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "regex" +version = "2026.1.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/86/07d5056945f9ec4590b518171c4254a5925832eb727b56d3c38a7476f316/regex-2026.1.15.tar.gz", hash = "sha256:164759aa25575cbc0651bef59a0b18353e54300d79ace8084c818ad8ac72b7d5", size = 414811, upload-time = "2026-01-14T23:18:02.775Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/d2/e6ee96b7dff201a83f650241c52db8e5bd080967cb93211f57aa448dc9d6/regex-2026.1.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4e3dd93c8f9abe8aa4b6c652016da9a3afa190df5ad822907efe6b206c09896e", size = 488166, upload-time = "2026-01-14T23:13:46.408Z" }, + { url = "https://files.pythonhosted.org/packages/23/8a/819e9ce14c9f87af026d0690901b3931f3101160833e5d4c8061fa3a1b67/regex-2026.1.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:97499ff7862e868b1977107873dd1a06e151467129159a6ffd07b66706ba3a9f", size = 290632, upload-time = "2026-01-14T23:13:48.688Z" }, + { url = "https://files.pythonhosted.org/packages/d5/c3/23dfe15af25d1d45b07dfd4caa6003ad710dcdcb4c4b279909bdfe7a2de8/regex-2026.1.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0bda75ebcac38d884240914c6c43d8ab5fb82e74cde6da94b43b17c411aa4c2b", size = 288500, upload-time = "2026-01-14T23:13:50.503Z" }, + { url = "https://files.pythonhosted.org/packages/c6/31/1adc33e2f717df30d2f4d973f8776d2ba6ecf939301efab29fca57505c95/regex-2026.1.15-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7dcc02368585334f5bc81fc73a2a6a0bbade60e7d83da21cead622faf408f32c", size = 781670, upload-time = "2026-01-14T23:13:52.453Z" }, + { url = "https://files.pythonhosted.org/packages/23/ce/21a8a22d13bc4adcb927c27b840c948f15fc973e21ed2346c1bd0eae22dc/regex-2026.1.15-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:693b465171707bbe882a7a05de5e866f33c76aa449750bee94a8d90463533cc9", size = 850820, upload-time = "2026-01-14T23:13:54.894Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4f/3eeacdf587a4705a44484cd0b30e9230a0e602811fb3e2cc32268c70d509/regex-2026.1.15-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b0d190e6f013ea938623a58706d1469a62103fb2a241ce2873a9906e0386582c", size = 898777, upload-time = "2026-01-14T23:13:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/79/a9/1898a077e2965c35fc22796488141a22676eed2d73701e37c73ad7c0b459/regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ff818702440a5878a81886f127b80127f5d50563753a28211482867f8318106", size = 791750, upload-time = "2026-01-14T23:13:58.527Z" }, + { url = "https://files.pythonhosted.org/packages/4c/84/e31f9d149a178889b3817212827f5e0e8c827a049ff31b4b381e76b26e2d/regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f052d1be37ef35a54e394de66136e30fa1191fab64f71fc06ac7bc98c9a84618", size = 782674, upload-time = "2026-01-14T23:13:59.874Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ff/adf60063db24532add6a1676943754a5654dcac8237af024ede38244fd12/regex-2026.1.15-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6bfc31a37fd1592f0c4fc4bfc674b5c42e52efe45b4b7a6a14f334cca4bcebe4", size = 767906, upload-time = "2026-01-14T23:14:01.298Z" }, + { url = "https://files.pythonhosted.org/packages/af/3e/e6a216cee1e2780fec11afe7fc47b6f3925d7264e8149c607ac389fd9b1a/regex-2026.1.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3d6ce5ae80066b319ae3bc62fd55a557c9491baa5efd0d355f0de08c4ba54e79", size = 774798, upload-time = "2026-01-14T23:14:02.715Z" }, + { url = "https://files.pythonhosted.org/packages/0f/98/23a4a8378a9208514ed3efc7e7850c27fa01e00ed8557c958df0335edc4a/regex-2026.1.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:1704d204bd42b6bb80167df0e4554f35c255b579ba99616def38f69e14a5ccb9", size = 845861, upload-time = "2026-01-14T23:14:04.824Z" }, + { url = "https://files.pythonhosted.org/packages/f8/57/d7605a9d53bd07421a8785d349cd29677fe660e13674fa4c6cbd624ae354/regex-2026.1.15-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e3174a5ed4171570dc8318afada56373aa9289eb6dc0d96cceb48e7358b0e220", size = 755648, upload-time = "2026-01-14T23:14:06.371Z" }, + { url = "https://files.pythonhosted.org/packages/6f/76/6f2e24aa192da1e299cc1101674a60579d3912391867ce0b946ba83e2194/regex-2026.1.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:87adf5bd6d72e3e17c9cb59ac4096b1faaf84b7eb3037a5ffa61c4b4370f0f13", size = 836250, upload-time = "2026-01-14T23:14:08.343Z" }, + { url = "https://files.pythonhosted.org/packages/11/3a/1f2a1d29453299a7858eab7759045fc3d9d1b429b088dec2dc85b6fa16a2/regex-2026.1.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e85dc94595f4d766bd7d872a9de5ede1ca8d3063f3bdf1e2c725f5eb411159e3", size = 779919, upload-time = "2026-01-14T23:14:09.954Z" }, + { url = "https://files.pythonhosted.org/packages/c0/67/eab9bc955c9dcc58e9b222c801e39cff7ca0b04261792a2149166ce7e792/regex-2026.1.15-cp310-cp310-win32.whl", hash = "sha256:21ca32c28c30d5d65fc9886ff576fc9b59bbca08933e844fa2363e530f4c8218", size = 265888, upload-time = "2026-01-14T23:14:11.35Z" }, + { url = "https://files.pythonhosted.org/packages/1d/62/31d16ae24e1f8803bddb0885508acecaec997fcdcde9c243787103119ae4/regex-2026.1.15-cp310-cp310-win_amd64.whl", hash = "sha256:3038a62fc7d6e5547b8915a3d927a0fbeef84cdbe0b1deb8c99bbd4a8961b52a", size = 277830, upload-time = "2026-01-14T23:14:12.908Z" }, + { url = "https://files.pythonhosted.org/packages/e5/36/5d9972bccd6417ecd5a8be319cebfd80b296875e7f116c37fb2a2deecebf/regex-2026.1.15-cp310-cp310-win_arm64.whl", hash = "sha256:505831646c945e3e63552cc1b1b9b514f0e93232972a2d5bedbcc32f15bc82e3", size = 270376, upload-time = "2026-01-14T23:14:14.782Z" }, + { url = "https://files.pythonhosted.org/packages/d0/c9/0c80c96eab96948363d270143138d671d5731c3a692b417629bf3492a9d6/regex-2026.1.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ae6020fb311f68d753b7efa9d4b9a5d47a5d6466ea0d5e3b5a471a960ea6e4a", size = 488168, upload-time = "2026-01-14T23:14:16.129Z" }, + { url = "https://files.pythonhosted.org/packages/17/f0/271c92f5389a552494c429e5cc38d76d1322eb142fb5db3c8ccc47751468/regex-2026.1.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eddf73f41225942c1f994914742afa53dc0d01a6e20fe14b878a1b1edc74151f", size = 290636, upload-time = "2026-01-14T23:14:17.715Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f9/5f1fd077d106ca5655a0f9ff8f25a1ab55b92128b5713a91ed7134ff688e/regex-2026.1.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e8cd52557603f5c66a548f69421310886b28b7066853089e1a71ee710e1cdc1", size = 288496, upload-time = "2026-01-14T23:14:19.326Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e1/8f43b03a4968c748858ec77f746c286d81f896c2e437ccf050ebc5d3128c/regex-2026.1.15-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5170907244b14303edc5978f522f16c974f32d3aa92109fabc2af52411c9433b", size = 793503, upload-time = "2026-01-14T23:14:20.922Z" }, + { url = "https://files.pythonhosted.org/packages/8d/4e/a39a5e8edc5377a46a7c875c2f9a626ed3338cb3bb06931be461c3e1a34a/regex-2026.1.15-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2748c1ec0663580b4510bd89941a31560b4b439a0b428b49472a3d9944d11cd8", size = 860535, upload-time = "2026-01-14T23:14:22.405Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1c/9dce667a32a9477f7a2869c1c767dc00727284a9fa3ff5c09a5c6c03575e/regex-2026.1.15-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2f2775843ca49360508d080eaa87f94fa248e2c946bbcd963bb3aae14f333413", size = 907225, upload-time = "2026-01-14T23:14:23.897Z" }, + { url = "https://files.pythonhosted.org/packages/a4/3c/87ca0a02736d16b6262921425e84b48984e77d8e4e572c9072ce96e66c30/regex-2026.1.15-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9ea2604370efc9a174c1b5dcc81784fb040044232150f7f33756049edfc9026", size = 800526, upload-time = "2026-01-14T23:14:26.039Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ff/647d5715aeea7c87bdcbd2f578f47b415f55c24e361e639fe8c0cc88878f/regex-2026.1.15-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0dcd31594264029b57bf16f37fd7248a70b3b764ed9e0839a8f271b2d22c0785", size = 773446, upload-time = "2026-01-14T23:14:28.109Z" }, + { url = "https://files.pythonhosted.org/packages/af/89/bf22cac25cb4ba0fe6bff52ebedbb65b77a179052a9d6037136ae93f42f4/regex-2026.1.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c08c1f3e34338256732bd6938747daa3c0d5b251e04b6e43b5813e94d503076e", size = 783051, upload-time = "2026-01-14T23:14:29.929Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f4/6ed03e71dca6348a5188363a34f5e26ffd5db1404780288ff0d79513bce4/regex-2026.1.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e43a55f378df1e7a4fa3547c88d9a5a9b7113f653a66821bcea4718fe6c58763", size = 854485, upload-time = "2026-01-14T23:14:31.366Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9a/8e8560bd78caded8eb137e3e47612430a05b9a772caf60876435192d670a/regex-2026.1.15-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f82110ab962a541737bd0ce87978d4c658f06e7591ba899192e2712a517badbb", size = 762195, upload-time = "2026-01-14T23:14:32.802Z" }, + { url = "https://files.pythonhosted.org/packages/38/6b/61fc710f9aa8dfcd764fe27d37edfaa023b1a23305a0d84fccd5adb346ea/regex-2026.1.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:27618391db7bdaf87ac6c92b31e8f0dfb83a9de0075855152b720140bda177a2", size = 845986, upload-time = "2026-01-14T23:14:34.898Z" }, + { url = "https://files.pythonhosted.org/packages/fd/2e/fbee4cb93f9d686901a7ca8d94285b80405e8c34fe4107f63ffcbfb56379/regex-2026.1.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bfb0d6be01fbae8d6655c8ca21b3b72458606c4aec9bbc932db758d47aba6db1", size = 788992, upload-time = "2026-01-14T23:14:37.116Z" }, + { url = "https://files.pythonhosted.org/packages/ed/14/3076348f3f586de64b1ab75a3fbabdaab7684af7f308ad43be7ef1849e55/regex-2026.1.15-cp311-cp311-win32.whl", hash = "sha256:b10e42a6de0e32559a92f2f8dc908478cc0fa02838d7dbe764c44dca3fa13569", size = 265893, upload-time = "2026-01-14T23:14:38.426Z" }, + { url = "https://files.pythonhosted.org/packages/0f/19/772cf8b5fc803f5c89ba85d8b1870a1ca580dc482aa030383a9289c82e44/regex-2026.1.15-cp311-cp311-win_amd64.whl", hash = "sha256:e9bf3f0bbdb56633c07d7116ae60a576f846efdd86a8848f8d62b749e1209ca7", size = 277840, upload-time = "2026-01-14T23:14:39.785Z" }, + { url = "https://files.pythonhosted.org/packages/78/84/d05f61142709474da3c0853222d91086d3e1372bcdab516c6fd8d80f3297/regex-2026.1.15-cp311-cp311-win_arm64.whl", hash = "sha256:41aef6f953283291c4e4e6850607bd71502be67779586a61472beacb315c97ec", size = 270374, upload-time = "2026-01-14T23:14:41.592Z" }, + { url = "https://files.pythonhosted.org/packages/92/81/10d8cf43c807d0326efe874c1b79f22bfb0fb226027b0b19ebc26d301408/regex-2026.1.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4c8fcc5793dde01641a35905d6731ee1548f02b956815f8f1cab89e515a5bdf1", size = 489398, upload-time = "2026-01-14T23:14:43.741Z" }, + { url = "https://files.pythonhosted.org/packages/90/b0/7c2a74e74ef2a7c32de724658a69a862880e3e4155cba992ba04d1c70400/regex-2026.1.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bfd876041a956e6a90ad7cdb3f6a630c07d491280bfeed4544053cd434901681", size = 291339, upload-time = "2026-01-14T23:14:45.183Z" }, + { url = "https://files.pythonhosted.org/packages/19/4d/16d0773d0c818417f4cc20aa0da90064b966d22cd62a8c46765b5bd2d643/regex-2026.1.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9250d087bc92b7d4899ccd5539a1b2334e44eee85d848c4c1aef8e221d3f8c8f", size = 289003, upload-time = "2026-01-14T23:14:47.25Z" }, + { url = "https://files.pythonhosted.org/packages/c6/e4/1fc4599450c9f0863d9406e944592d968b8d6dfd0d552a7d569e43bceada/regex-2026.1.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8a154cf6537ebbc110e24dabe53095e714245c272da9c1be05734bdad4a61aa", size = 798656, upload-time = "2026-01-14T23:14:48.77Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e6/59650d73a73fa8a60b3a590545bfcf1172b4384a7df2e7fe7b9aab4e2da9/regex-2026.1.15-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8050ba2e3ea1d8731a549e83c18d2f0999fbc99a5f6bd06b4c91449f55291804", size = 864252, upload-time = "2026-01-14T23:14:50.528Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ab/1d0f4d50a1638849a97d731364c9a80fa304fec46325e48330c170ee8e80/regex-2026.1.15-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf065240704cb8951cc04972cf107063917022511273e0969bdb34fc173456c", size = 912268, upload-time = "2026-01-14T23:14:52.952Z" }, + { url = "https://files.pythonhosted.org/packages/dd/df/0d722c030c82faa1d331d1921ee268a4e8fb55ca8b9042c9341c352f17fa/regex-2026.1.15-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c32bef3e7aeee75746748643667668ef941d28b003bfc89994ecf09a10f7a1b5", size = 803589, upload-time = "2026-01-14T23:14:55.182Z" }, + { url = "https://files.pythonhosted.org/packages/66/23/33289beba7ccb8b805c6610a8913d0131f834928afc555b241caabd422a9/regex-2026.1.15-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d5eaa4a4c5b1906bd0d2508d68927f15b81821f85092e06f1a34a4254b0e1af3", size = 775700, upload-time = "2026-01-14T23:14:56.707Z" }, + { url = "https://files.pythonhosted.org/packages/e7/65/bf3a42fa6897a0d3afa81acb25c42f4b71c274f698ceabd75523259f6688/regex-2026.1.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:86c1077a3cc60d453d4084d5b9649065f3bf1184e22992bd322e1f081d3117fb", size = 787928, upload-time = "2026-01-14T23:14:58.312Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f5/13bf65864fc314f68cdd6d8ca94adcab064d4d39dbd0b10fef29a9da48fc/regex-2026.1.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:2b091aefc05c78d286657cd4db95f2e6313375ff65dcf085e42e4c04d9c8d410", size = 858607, upload-time = "2026-01-14T23:15:00.657Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/040e589834d7a439ee43fb0e1e902bc81bd58a5ba81acffe586bb3321d35/regex-2026.1.15-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:57e7d17f59f9ebfa9667e6e5a1c0127b96b87cb9cede8335482451ed00788ba4", size = 763729, upload-time = "2026-01-14T23:15:02.248Z" }, + { url = "https://files.pythonhosted.org/packages/9b/84/6921e8129687a427edf25a34a5594b588b6d88f491320b9de5b6339a4fcb/regex-2026.1.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:c6c4dcdfff2c08509faa15d36ba7e5ef5fcfab25f1e8f85a0c8f45bc3a30725d", size = 850697, upload-time = "2026-01-14T23:15:03.878Z" }, + { url = "https://files.pythonhosted.org/packages/8a/87/3d06143d4b128f4229158f2de5de6c8f2485170c7221e61bf381313314b2/regex-2026.1.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf8ff04c642716a7f2048713ddc6278c5fd41faa3b9cab12607c7abecd012c22", size = 789849, upload-time = "2026-01-14T23:15:06.102Z" }, + { url = "https://files.pythonhosted.org/packages/77/69/c50a63842b6bd48850ebc7ab22d46e7a2a32d824ad6c605b218441814639/regex-2026.1.15-cp312-cp312-win32.whl", hash = "sha256:82345326b1d8d56afbe41d881fdf62f1926d7264b2fc1537f99ae5da9aad7913", size = 266279, upload-time = "2026-01-14T23:15:07.678Z" }, + { url = "https://files.pythonhosted.org/packages/f2/36/39d0b29d087e2b11fd8191e15e81cce1b635fcc845297c67f11d0d19274d/regex-2026.1.15-cp312-cp312-win_amd64.whl", hash = "sha256:4def140aa6156bc64ee9912383d4038f3fdd18fee03a6f222abd4de6357ce42a", size = 277166, upload-time = "2026-01-14T23:15:09.257Z" }, + { url = "https://files.pythonhosted.org/packages/28/32/5b8e476a12262748851fa8ab1b0be540360692325975b094e594dfebbb52/regex-2026.1.15-cp312-cp312-win_arm64.whl", hash = "sha256:c6c565d9a6e1a8d783c1948937ffc377dd5771e83bd56de8317c450a954d2056", size = 270415, upload-time = "2026-01-14T23:15:10.743Z" }, + { url = "https://files.pythonhosted.org/packages/f8/2e/6870bb16e982669b674cce3ee9ff2d1d46ab80528ee6bcc20fb2292efb60/regex-2026.1.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e69d0deeb977ffe7ed3d2e4439360089f9c3f217ada608f0f88ebd67afb6385e", size = 489164, upload-time = "2026-01-14T23:15:13.962Z" }, + { url = "https://files.pythonhosted.org/packages/dc/67/9774542e203849b0286badf67199970a44ebdb0cc5fb739f06e47ada72f8/regex-2026.1.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3601ffb5375de85a16f407854d11cca8fe3f5febbe3ac78fb2866bb220c74d10", size = 291218, upload-time = "2026-01-14T23:15:15.647Z" }, + { url = "https://files.pythonhosted.org/packages/b2/87/b0cda79f22b8dee05f774922a214da109f9a4c0eca5da2c9d72d77ea062c/regex-2026.1.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4c5ef43b5c2d4114eb8ea424bb8c9cec01d5d17f242af88b2448f5ee81caadbc", size = 288895, upload-time = "2026-01-14T23:15:17.788Z" }, + { url = "https://files.pythonhosted.org/packages/3b/6a/0041f0a2170d32be01ab981d6346c83a8934277d82c780d60b127331f264/regex-2026.1.15-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:968c14d4f03e10b2fd960f1d5168c1f0ac969381d3c1fcc973bc45fb06346599", size = 798680, upload-time = "2026-01-14T23:15:19.342Z" }, + { url = "https://files.pythonhosted.org/packages/58/de/30e1cfcdbe3e891324aa7568b7c968771f82190df5524fabc1138cb2d45a/regex-2026.1.15-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56a5595d0f892f214609c9f76b41b7428bed439d98dc961efafdd1354d42baae", size = 864210, upload-time = "2026-01-14T23:15:22.005Z" }, + { url = "https://files.pythonhosted.org/packages/64/44/4db2f5c5ca0ccd40ff052ae7b1e9731352fcdad946c2b812285a7505ca75/regex-2026.1.15-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf650f26087363434c4e560011f8e4e738f6f3e029b85d4904c50135b86cfa5", size = 912358, upload-time = "2026-01-14T23:15:24.569Z" }, + { url = "https://files.pythonhosted.org/packages/79/b6/e6a5665d43a7c42467138c8a2549be432bad22cbd206f5ec87162de74bd7/regex-2026.1.15-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18388a62989c72ac24de75f1449d0fb0b04dfccd0a1a7c1c43af5eb503d890f6", size = 803583, upload-time = "2026-01-14T23:15:26.526Z" }, + { url = "https://files.pythonhosted.org/packages/e7/53/7cd478222169d85d74d7437e74750005e993f52f335f7c04ff7adfda3310/regex-2026.1.15-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6d220a2517f5893f55daac983bfa9fe998a7dbcaee4f5d27a88500f8b7873788", size = 775782, upload-time = "2026-01-14T23:15:29.352Z" }, + { url = "https://files.pythonhosted.org/packages/ca/b5/75f9a9ee4b03a7c009fe60500fe550b45df94f0955ca29af16333ef557c5/regex-2026.1.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9c08c2fbc6120e70abff5d7f28ffb4d969e14294fb2143b4b5c7d20e46d1714", size = 787978, upload-time = "2026-01-14T23:15:31.295Z" }, + { url = "https://files.pythonhosted.org/packages/72/b3/79821c826245bbe9ccbb54f6eadb7879c722fd3e0248c17bfc90bf54e123/regex-2026.1.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7ef7d5d4bd49ec7364315167a4134a015f61e8266c6d446fc116a9ac4456e10d", size = 858550, upload-time = "2026-01-14T23:15:33.558Z" }, + { url = "https://files.pythonhosted.org/packages/4a/85/2ab5f77a1c465745bfbfcb3ad63178a58337ae8d5274315e2cc623a822fa/regex-2026.1.15-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:6e42844ad64194fa08d5ccb75fe6a459b9b08e6d7296bd704460168d58a388f3", size = 763747, upload-time = "2026-01-14T23:15:35.206Z" }, + { url = "https://files.pythonhosted.org/packages/6d/84/c27df502d4bfe2873a3e3a7cf1bdb2b9cc10284d1a44797cf38bed790470/regex-2026.1.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cfecdaa4b19f9ca534746eb3b55a5195d5c95b88cac32a205e981ec0a22b7d31", size = 850615, upload-time = "2026-01-14T23:15:37.523Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b7/658a9782fb253680aa8ecb5ccbb51f69e088ed48142c46d9f0c99b46c575/regex-2026.1.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:08df9722d9b87834a3d701f3fca570b2be115654dbfd30179f30ab2f39d606d3", size = 789951, upload-time = "2026-01-14T23:15:39.582Z" }, + { url = "https://files.pythonhosted.org/packages/fc/2a/5928af114441e059f15b2f63e188bd00c6529b3051c974ade7444b85fcda/regex-2026.1.15-cp313-cp313-win32.whl", hash = "sha256:d426616dae0967ca225ab12c22274eb816558f2f99ccb4a1d52ca92e8baf180f", size = 266275, upload-time = "2026-01-14T23:15:42.108Z" }, + { url = "https://files.pythonhosted.org/packages/4f/16/5bfbb89e435897bff28cf0352a992ca719d9e55ebf8b629203c96b6ce4f7/regex-2026.1.15-cp313-cp313-win_amd64.whl", hash = "sha256:febd38857b09867d3ed3f4f1af7d241c5c50362e25ef43034995b77a50df494e", size = 277145, upload-time = "2026-01-14T23:15:44.244Z" }, + { url = "https://files.pythonhosted.org/packages/56/c1/a09ff7392ef4233296e821aec5f78c51be5e91ffde0d163059e50fd75835/regex-2026.1.15-cp313-cp313-win_arm64.whl", hash = "sha256:8e32f7896f83774f91499d239e24cebfadbc07639c1494bb7213983842348337", size = 270411, upload-time = "2026-01-14T23:15:45.858Z" }, + { url = "https://files.pythonhosted.org/packages/3c/38/0cfd5a78e5c6db00e6782fdae70458f89850ce95baa5e8694ab91d89744f/regex-2026.1.15-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ec94c04149b6a7b8120f9f44565722c7ae31b7a6d2275569d2eefa76b83da3be", size = 492068, upload-time = "2026-01-14T23:15:47.616Z" }, + { url = "https://files.pythonhosted.org/packages/50/72/6c86acff16cb7c959c4355826bbf06aad670682d07c8f3998d9ef4fee7cd/regex-2026.1.15-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:40c86d8046915bb9aeb15d3f3f15b6fd500b8ea4485b30e1bbc799dab3fe29f8", size = 292756, upload-time = "2026-01-14T23:15:49.307Z" }, + { url = "https://files.pythonhosted.org/packages/4e/58/df7fb69eadfe76526ddfce28abdc0af09ffe65f20c2c90932e89d705153f/regex-2026.1.15-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:726ea4e727aba21643205edad8f2187ec682d3305d790f73b7a51c7587b64bdd", size = 291114, upload-time = "2026-01-14T23:15:51.484Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6c/a4011cd1cf96b90d2cdc7e156f91efbd26531e822a7fbb82a43c1016678e/regex-2026.1.15-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1cb740d044aff31898804e7bf1181cc72c03d11dfd19932b9911ffc19a79070a", size = 807524, upload-time = "2026-01-14T23:15:53.102Z" }, + { url = "https://files.pythonhosted.org/packages/1d/25/a53ffb73183f69c3e9f4355c4922b76d2840aee160af6af5fac229b6201d/regex-2026.1.15-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:05d75a668e9ea16f832390d22131fe1e8acc8389a694c8febc3e340b0f810b93", size = 873455, upload-time = "2026-01-14T23:15:54.956Z" }, + { url = "https://files.pythonhosted.org/packages/66/0b/8b47fc2e8f97d9b4a851736f3890a5f786443aa8901061c55f24c955f45b/regex-2026.1.15-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d991483606f3dbec93287b9f35596f41aa2e92b7c2ebbb935b63f409e243c9af", size = 915007, upload-time = "2026-01-14T23:15:57.041Z" }, + { url = "https://files.pythonhosted.org/packages/c2/fa/97de0d681e6d26fabe71968dbee06dd52819e9a22fdce5dac7256c31ed84/regex-2026.1.15-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:194312a14819d3e44628a44ed6fea6898fdbecb0550089d84c403475138d0a09", size = 812794, upload-time = "2026-01-14T23:15:58.916Z" }, + { url = "https://files.pythonhosted.org/packages/22/38/e752f94e860d429654aa2b1c51880bff8dfe8f084268258adf9151cf1f53/regex-2026.1.15-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe2fda4110a3d0bc163c2e0664be44657431440722c5c5315c65155cab92f9e5", size = 781159, upload-time = "2026-01-14T23:16:00.817Z" }, + { url = "https://files.pythonhosted.org/packages/e9/a7/d739ffaef33c378fc888302a018d7f81080393d96c476b058b8c64fd2b0d/regex-2026.1.15-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:124dc36c85d34ef2d9164da41a53c1c8c122cfb1f6e1ec377a1f27ee81deb794", size = 795558, upload-time = "2026-01-14T23:16:03.267Z" }, + { url = "https://files.pythonhosted.org/packages/3e/c4/542876f9a0ac576100fc73e9c75b779f5c31e3527576cfc9cb3009dcc58a/regex-2026.1.15-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:a1774cd1981cd212506a23a14dba7fdeaee259f5deba2df6229966d9911e767a", size = 868427, upload-time = "2026-01-14T23:16:05.646Z" }, + { url = "https://files.pythonhosted.org/packages/fc/0f/d5655bea5b22069e32ae85a947aa564912f23758e112cdb74212848a1a1b/regex-2026.1.15-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b5f7d8d2867152cdb625e72a530d2ccb48a3d199159144cbdd63870882fb6f80", size = 769939, upload-time = "2026-01-14T23:16:07.542Z" }, + { url = "https://files.pythonhosted.org/packages/20/06/7e18a4fa9d326daeda46d471a44ef94201c46eaa26dbbb780b5d92cbfdda/regex-2026.1.15-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:492534a0ab925d1db998defc3c302dae3616a2fc3fe2e08db1472348f096ddf2", size = 854753, upload-time = "2026-01-14T23:16:10.395Z" }, + { url = "https://files.pythonhosted.org/packages/3b/67/dc8946ef3965e166f558ef3b47f492bc364e96a265eb4a2bb3ca765c8e46/regex-2026.1.15-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c661fc820cfb33e166bf2450d3dadbda47c8d8981898adb9b6fe24e5e582ba60", size = 799559, upload-time = "2026-01-14T23:16:12.347Z" }, + { url = "https://files.pythonhosted.org/packages/a5/61/1bba81ff6d50c86c65d9fd84ce9699dd106438ee4cdb105bf60374ee8412/regex-2026.1.15-cp313-cp313t-win32.whl", hash = "sha256:99ad739c3686085e614bf77a508e26954ff1b8f14da0e3765ff7abbf7799f952", size = 268879, upload-time = "2026-01-14T23:16:14.049Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5e/cef7d4c5fb0ea3ac5c775fd37db5747f7378b29526cc83f572198924ff47/regex-2026.1.15-cp313-cp313t-win_amd64.whl", hash = "sha256:32655d17905e7ff8ba5c764c43cb124e34a9245e45b83c22e81041e1071aee10", size = 280317, upload-time = "2026-01-14T23:16:15.718Z" }, + { url = "https://files.pythonhosted.org/packages/b4/52/4317f7a5988544e34ab57b4bde0f04944c4786128c933fb09825924d3e82/regex-2026.1.15-cp313-cp313t-win_arm64.whl", hash = "sha256:b2a13dd6a95e95a489ca242319d18fc02e07ceb28fa9ad146385194d95b3c829", size = 271551, upload-time = "2026-01-14T23:16:17.533Z" }, + { url = "https://files.pythonhosted.org/packages/52/0a/47fa888ec7cbbc7d62c5f2a6a888878e76169170ead271a35239edd8f0e8/regex-2026.1.15-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:d920392a6b1f353f4aa54328c867fec3320fa50657e25f64abf17af054fc97ac", size = 489170, upload-time = "2026-01-14T23:16:19.835Z" }, + { url = "https://files.pythonhosted.org/packages/ac/c4/d000e9b7296c15737c9301708e9e7fbdea009f8e93541b6b43bdb8219646/regex-2026.1.15-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b5a28980a926fa810dbbed059547b02783952e2efd9c636412345232ddb87ff6", size = 291146, upload-time = "2026-01-14T23:16:21.541Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b6/921cc61982e538682bdf3bdf5b2c6ab6b34368da1f8e98a6c1ddc503c9cf/regex-2026.1.15-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:621f73a07595d83f28952d7bd1e91e9d1ed7625fb7af0064d3516674ec93a2a2", size = 288986, upload-time = "2026-01-14T23:16:23.381Z" }, + { url = "https://files.pythonhosted.org/packages/ca/33/eb7383dde0bbc93f4fb9d03453aab97e18ad4024ac7e26cef8d1f0a2cff0/regex-2026.1.15-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d7d92495f47567a9b1669c51fc8d6d809821849063d168121ef801bbc213846", size = 799098, upload-time = "2026-01-14T23:16:25.088Z" }, + { url = "https://files.pythonhosted.org/packages/27/56/b664dccae898fc8d8b4c23accd853f723bde0f026c747b6f6262b688029c/regex-2026.1.15-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8dd16fba2758db7a3780a051f245539c4451ca20910f5a5e6ea1c08d06d4a76b", size = 864980, upload-time = "2026-01-14T23:16:27.297Z" }, + { url = "https://files.pythonhosted.org/packages/16/40/0999e064a170eddd237bae9ccfcd8f28b3aa98a38bf727a086425542a4fc/regex-2026.1.15-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1e1808471fbe44c1a63e5f577a1d5f02fe5d66031dcbdf12f093ffc1305a858e", size = 911607, upload-time = "2026-01-14T23:16:29.235Z" }, + { url = "https://files.pythonhosted.org/packages/07/78/c77f644b68ab054e5a674fb4da40ff7bffb2c88df58afa82dbf86573092d/regex-2026.1.15-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0751a26ad39d4f2ade8fe16c59b2bf5cb19eb3d2cd543e709e583d559bd9efde", size = 803358, upload-time = "2026-01-14T23:16:31.369Z" }, + { url = "https://files.pythonhosted.org/packages/27/31/d4292ea8566eaa551fafc07797961c5963cf5235c797cc2ae19b85dfd04d/regex-2026.1.15-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0f0c7684c7f9ca241344ff95a1de964f257a5251968484270e91c25a755532c5", size = 775833, upload-time = "2026-01-14T23:16:33.141Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b2/cff3bf2fea4133aa6fb0d1e370b37544d18c8350a2fa118c7e11d1db0e14/regex-2026.1.15-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:74f45d170a21df41508cb67165456538425185baaf686281fa210d7e729abc34", size = 788045, upload-time = "2026-01-14T23:16:35.005Z" }, + { url = "https://files.pythonhosted.org/packages/8d/99/2cb9b69045372ec877b6f5124bda4eb4253bc58b8fe5848c973f752bc52c/regex-2026.1.15-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f1862739a1ffb50615c0fde6bae6569b5efbe08d98e59ce009f68a336f64da75", size = 859374, upload-time = "2026-01-14T23:16:36.919Z" }, + { url = "https://files.pythonhosted.org/packages/09/16/710b0a5abe8e077b1729a562d2f297224ad079f3a66dce46844c193416c8/regex-2026.1.15-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:453078802f1b9e2b7303fb79222c054cb18e76f7bdc220f7530fdc85d319f99e", size = 763940, upload-time = "2026-01-14T23:16:38.685Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d1/7585c8e744e40eb3d32f119191969b91de04c073fca98ec14299041f6e7e/regex-2026.1.15-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:a30a68e89e5a218b8b23a52292924c1f4b245cb0c68d1cce9aec9bbda6e2c160", size = 850112, upload-time = "2026-01-14T23:16:40.646Z" }, + { url = "https://files.pythonhosted.org/packages/af/d6/43e1dd85df86c49a347aa57c1f69d12c652c7b60e37ec162e3096194a278/regex-2026.1.15-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9479cae874c81bf610d72b85bb681a94c95722c127b55445285fb0e2c82db8e1", size = 789586, upload-time = "2026-01-14T23:16:42.799Z" }, + { url = "https://files.pythonhosted.org/packages/93/38/77142422f631e013f316aaae83234c629555729a9fbc952b8a63ac91462a/regex-2026.1.15-cp314-cp314-win32.whl", hash = "sha256:d639a750223132afbfb8f429c60d9d318aeba03281a5f1ab49f877456448dcf1", size = 271691, upload-time = "2026-01-14T23:16:44.671Z" }, + { url = "https://files.pythonhosted.org/packages/4a/a9/ab16b4649524ca9e05213c1cdbb7faa85cc2aa90a0230d2f796cbaf22736/regex-2026.1.15-cp314-cp314-win_amd64.whl", hash = "sha256:4161d87f85fa831e31469bfd82c186923070fc970b9de75339b68f0c75b51903", size = 280422, upload-time = "2026-01-14T23:16:46.607Z" }, + { url = "https://files.pythonhosted.org/packages/be/2a/20fd057bf3521cb4791f69f869635f73e0aaf2b9ad2d260f728144f9047c/regex-2026.1.15-cp314-cp314-win_arm64.whl", hash = "sha256:91c5036ebb62663a6b3999bdd2e559fd8456d17e2b485bf509784cd31a8b1705", size = 273467, upload-time = "2026-01-14T23:16:48.967Z" }, + { url = "https://files.pythonhosted.org/packages/ad/77/0b1e81857060b92b9cad239104c46507dd481b3ff1fa79f8e7f865aae38a/regex-2026.1.15-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ee6854c9000a10938c79238de2379bea30c82e4925a371711af45387df35cab8", size = 492073, upload-time = "2026-01-14T23:16:51.154Z" }, + { url = "https://files.pythonhosted.org/packages/70/f3/f8302b0c208b22c1e4f423147e1913fd475ddd6230565b299925353de644/regex-2026.1.15-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2c2b80399a422348ce5de4fe40c418d6299a0fa2803dd61dc0b1a2f28e280fcf", size = 292757, upload-time = "2026-01-14T23:16:53.08Z" }, + { url = "https://files.pythonhosted.org/packages/bf/f0/ef55de2460f3b4a6da9d9e7daacd0cb79d4ef75c64a2af316e68447f0df0/regex-2026.1.15-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:dca3582bca82596609959ac39e12b7dad98385b4fefccb1151b937383cec547d", size = 291122, upload-time = "2026-01-14T23:16:55.383Z" }, + { url = "https://files.pythonhosted.org/packages/cf/55/bb8ccbacabbc3a11d863ee62a9f18b160a83084ea95cdfc5d207bfc3dd75/regex-2026.1.15-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef71d476caa6692eea743ae5ea23cde3260677f70122c4d258ca952e5c2d4e84", size = 807761, upload-time = "2026-01-14T23:16:57.251Z" }, + { url = "https://files.pythonhosted.org/packages/8f/84/f75d937f17f81e55679a0509e86176e29caa7298c38bd1db7ce9c0bf6075/regex-2026.1.15-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c243da3436354f4af6c3058a3f81a97d47ea52c9bd874b52fd30274853a1d5df", size = 873538, upload-time = "2026-01-14T23:16:59.349Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d9/0da86327df70349aa8d86390da91171bd3ca4f0e7c1d1d453a9c10344da3/regex-2026.1.15-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8355ad842a7c7e9e5e55653eade3b7d1885ba86f124dd8ab1f722f9be6627434", size = 915066, upload-time = "2026-01-14T23:17:01.607Z" }, + { url = "https://files.pythonhosted.org/packages/2a/5e/f660fb23fc77baa2a61aa1f1fe3a4eea2bbb8a286ddec148030672e18834/regex-2026.1.15-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f192a831d9575271a22d804ff1a5355355723f94f31d9eef25f0d45a152fdc1a", size = 812938, upload-time = "2026-01-14T23:17:04.366Z" }, + { url = "https://files.pythonhosted.org/packages/69/33/a47a29bfecebbbfd1e5cd3f26b28020a97e4820f1c5148e66e3b7d4b4992/regex-2026.1.15-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:166551807ec20d47ceaeec380081f843e88c8949780cd42c40f18d16168bed10", size = 781314, upload-time = "2026-01-14T23:17:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/65/ec/7ec2bbfd4c3f4e494a24dec4c6943a668e2030426b1b8b949a6462d2c17b/regex-2026.1.15-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f9ca1cbdc0fbfe5e6e6f8221ef2309988db5bcede52443aeaee9a4ad555e0dac", size = 795652, upload-time = "2026-01-14T23:17:08.521Z" }, + { url = "https://files.pythonhosted.org/packages/46/79/a5d8651ae131fe27d7c521ad300aa7f1c7be1dbeee4d446498af5411b8a9/regex-2026.1.15-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b30bcbd1e1221783c721483953d9e4f3ab9c5d165aa709693d3f3946747b1aea", size = 868550, upload-time = "2026-01-14T23:17:10.573Z" }, + { url = "https://files.pythonhosted.org/packages/06/b7/25635d2809664b79f183070786a5552dd4e627e5aedb0065f4e3cf8ee37d/regex-2026.1.15-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:2a8d7b50c34578d0d3bf7ad58cde9652b7d683691876f83aedc002862a35dc5e", size = 769981, upload-time = "2026-01-14T23:17:12.871Z" }, + { url = "https://files.pythonhosted.org/packages/16/8b/fc3fcbb2393dcfa4a6c5ffad92dc498e842df4581ea9d14309fcd3c55fb9/regex-2026.1.15-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9d787e3310c6a6425eb346be4ff2ccf6eece63017916fd77fe8328c57be83521", size = 854780, upload-time = "2026-01-14T23:17:14.837Z" }, + { url = "https://files.pythonhosted.org/packages/d0/38/dde117c76c624713c8a2842530be9c93ca8b606c0f6102d86e8cd1ce8bea/regex-2026.1.15-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:619843841e220adca114118533a574a9cd183ed8a28b85627d2844c500a2b0db", size = 799778, upload-time = "2026-01-14T23:17:17.369Z" }, + { url = "https://files.pythonhosted.org/packages/e3/0d/3a6cfa9ae99606afb612d8fb7a66b245a9d5ff0f29bb347c8a30b6ad561b/regex-2026.1.15-cp314-cp314t-win32.whl", hash = "sha256:e90b8db97f6f2c97eb045b51a6b2c5ed69cedd8392459e0642d4199b94fabd7e", size = 274667, upload-time = "2026-01-14T23:17:19.301Z" }, + { url = "https://files.pythonhosted.org/packages/5b/b2/297293bb0742fd06b8d8e2572db41a855cdf1cae0bf009b1cb74fe07e196/regex-2026.1.15-cp314-cp314t-win_amd64.whl", hash = "sha256:5ef19071f4ac9f0834793af85bd04a920b4407715624e40cb7a0631a11137cdf", size = 284386, upload-time = "2026-01-14T23:17:21.231Z" }, + { url = "https://files.pythonhosted.org/packages/95/e4/a3b9480c78cf8ee86626cb06f8d931d74d775897d44201ccb813097ae697/regex-2026.1.15-cp314-cp314t-win_arm64.whl", hash = "sha256:ca89c5e596fc05b015f27561b3793dc2fa0917ea0d7507eebb448efd35274a70", size = 274837, upload-time = "2026-01-14T23:17:23.146Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "requests-oauthlib" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "oauthlib" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/f2/05f29bc3913aea15eb670be136045bf5c5bbf4b99ecb839da9b422bb2c85/requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9", size = 55650, upload-time = "2024-03-22T20:32:29.939Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36", size = 24179, upload-time = "2024-03-22T20:32:28.055Z" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, +] + +[[package]] +name = "rich" +version = "14.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/99/a4cab2acbb884f80e558b0771e97e21e939c5dfb460f488d19df485e8298/rich-14.3.2.tar.gz", hash = "sha256:e712f11c1a562a11843306f5ed999475f09ac31ffb64281f73ab29ffdda8b3b8", size = 230143, upload-time = "2026-02-01T16:20:47.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/45/615f5babd880b4bd7d405cc0dc348234c5ffb6ed1ea33e152ede08b2072d/rich-14.3.2-py3-none-any.whl", hash = "sha256:08e67c3e90884651da3239ea668222d19bea7b589149d8014a21c633420dbb69", size = 309963, upload-time = "2026-02-01T16:20:46.078Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload-time = "2025-11-30T20:21:33.256Z" }, + { url = "https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00", size = 359751, upload-time = "2025-11-30T20:21:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/cd/7c/e4933565ef7f7a0818985d87c15d9d273f1a649afa6a52ea35ad011195ea/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6", size = 389696, upload-time = "2025-11-30T20:21:36.122Z" }, + { url = "https://files.pythonhosted.org/packages/5e/01/6271a2511ad0815f00f7ed4390cf2567bec1d4b1da39e2c27a41e6e3b4de/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7", size = 403136, upload-time = "2025-11-30T20:21:37.728Z" }, + { url = "https://files.pythonhosted.org/packages/55/64/c857eb7cd7541e9b4eee9d49c196e833128a55b89a9850a9c9ac33ccf897/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324", size = 524699, upload-time = "2025-11-30T20:21:38.92Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ed/94816543404078af9ab26159c44f9e98e20fe47e2126d5d32c9d9948d10a/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df", size = 412022, upload-time = "2025-11-30T20:21:40.407Z" }, + { url = "https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3", size = 390522, upload-time = "2025-11-30T20:21:42.17Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/57a85fda37a229ff4226f8cbcf09f2a455d1ed20e802ce5b2b4a7f5ed053/rpds_py-0.30.0-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221", size = 404579, upload-time = "2025-11-30T20:21:43.769Z" }, + { url = "https://files.pythonhosted.org/packages/f9/da/c9339293513ec680a721e0e16bf2bac3db6e5d7e922488de471308349bba/rpds_py-0.30.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7", size = 421305, upload-time = "2025-11-30T20:21:44.994Z" }, + { url = "https://files.pythonhosted.org/packages/f9/be/522cb84751114f4ad9d822ff5a1aa3c98006341895d5f084779b99596e5c/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff", size = 572503, upload-time = "2025-11-30T20:21:46.91Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9b/de879f7e7ceddc973ea6e4629e9b380213a6938a249e94b0cdbcc325bb66/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7", size = 598322, upload-time = "2025-11-30T20:21:48.709Z" }, + { url = "https://files.pythonhosted.org/packages/48/ac/f01fc22efec3f37d8a914fc1b2fb9bcafd56a299edbe96406f3053edea5a/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139", size = 560792, upload-time = "2025-11-30T20:21:50.024Z" }, + { url = "https://files.pythonhosted.org/packages/e2/da/4e2b19d0f131f35b6146425f846563d0ce036763e38913d917187307a671/rpds_py-0.30.0-cp310-cp310-win32.whl", hash = "sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464", size = 221901, upload-time = "2025-11-30T20:21:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/96/cb/156d7a5cf4f78a7cc571465d8aec7a3c447c94f6749c5123f08438bcf7bc/rpds_py-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169", size = 235823, upload-time = "2025-11-30T20:21:52.505Z" }, + { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload-time = "2025-11-30T20:21:53.789Z" }, + { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload-time = "2025-11-30T20:21:55.475Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload-time = "2025-11-30T20:21:57.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload-time = "2025-11-30T20:21:58.47Z" }, + { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload-time = "2025-11-30T20:21:59.699Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload-time = "2025-11-30T20:22:00.991Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload-time = "2025-11-30T20:22:02.723Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload-time = "2025-11-30T20:22:04.367Z" }, + { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload-time = "2025-11-30T20:22:05.814Z" }, + { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload-time = "2025-11-30T20:22:07.713Z" }, + { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload-time = "2025-11-30T20:22:09.312Z" }, + { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload-time = "2025-11-30T20:22:11.309Z" }, + { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload-time = "2025-11-30T20:22:13.101Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload-time = "2025-11-30T20:22:14.853Z" }, + { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload-time = "2025-11-30T20:22:16.577Z" }, + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, + { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, + { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, + { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload-time = "2025-11-30T20:24:22.231Z" }, + { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload-time = "2025-11-30T20:24:24.302Z" }, + { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload-time = "2025-11-30T20:24:25.916Z" }, + { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload-time = "2025-11-30T20:24:27.834Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload-time = "2025-11-30T20:24:29.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload-time = "2025-11-30T20:24:31.22Z" }, + { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload-time = "2025-11-30T20:24:32.934Z" }, + { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload-time = "2025-11-30T20:24:35.169Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload-time = "2025-11-30T20:24:36.853Z" }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + [[package]] name = "sniffio" version = "1.3.1" @@ -429,6 +3834,28 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] +[[package]] +name = "soupsieve" +version = "2.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/ae/2d9c981590ed9999a0d91755b47fc74f74de286b0f5cee14c9269041e6c4/soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349", size = 118627, upload-time = "2026-01-20T04:27:02.457Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95", size = 37016, upload-time = "2026-01-20T04:27:01.012Z" }, +] + +[[package]] +name = "sse-starlette" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "starlette" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/8d/00d280c03ffd39aaee0e86ec81e2d3b9253036a0f93f51d10503adef0e65/sse_starlette-3.2.0.tar.gz", hash = "sha256:8127594edfb51abe44eac9c49e59b0b01f1039d0c7461c6fd91d4e03b70da422", size = 27253, upload-time = "2026-01-17T13:11:05.62Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/7f/832f015020844a8b8f7a9cbc103dd76ba8e3875004c41e08440ea3a2b41a/sse_starlette-3.2.0-py3-none-any.whl", hash = "sha256:5876954bd51920fc2cd51baee47a080eb88a37b5b784e615abb0b283f801cdbf", size = 12763, upload-time = "2026-01-17T13:11:03.775Z" }, +] + [[package]] name = "starlette" version = "0.50.0" @@ -442,6 +3869,181 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d9/52/1064f510b141bd54025f9b55105e26d1fa970b9be67ad766380a3c9b74b0/starlette-0.50.0-py3-none-any.whl", hash = "sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca", size = 74033, upload-time = "2025-11-01T15:25:25.461Z" }, ] +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "tenacity" +version = "9.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/c6/ee486fd809e357697ee8a44d3d69222b344920433d3b6666ccd9b374630c/tenacity-9.1.4.tar.gz", hash = "sha256:adb31d4c263f2bd041081ab33b498309a57c77f9acf2db65aadf0898179cf93a", size = 49413, upload-time = "2026-02-07T10:45:33.841Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/c1/eb8f9debc45d3b7918a32ab756658a0904732f75e555402972246b0b8e71/tenacity-9.1.4-py3-none-any.whl", hash = "sha256:6095a360c919085f28c6527de529e76a06ad89b23659fa881ae0649b867a9d55", size = 28926, upload-time = "2026-02-07T10:45:32.24Z" }, +] + +[[package]] +name = "tiktoken" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/ab/4d017d0f76ec3171d469d80fc03dfbb4e48a4bcaddaa831b31d526f05edc/tiktoken-0.12.0.tar.gz", hash = "sha256:b18ba7ee2b093863978fcb14f74b3707cdc8d4d4d3836853ce7ec60772139931", size = 37806, upload-time = "2025-10-06T20:22:45.419Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/b3/2cb7c17b6c4cf8ca983204255d3f1d95eda7213e247e6947a0ee2c747a2c/tiktoken-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3de02f5a491cfd179aec916eddb70331814bd6bf764075d39e21d5862e533970", size = 1051991, upload-time = "2025-10-06T20:21:34.098Z" }, + { url = "https://files.pythonhosted.org/packages/27/0f/df139f1df5f6167194ee5ab24634582ba9a1b62c6b996472b0277ec80f66/tiktoken-0.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b6cfb6d9b7b54d20af21a912bfe63a2727d9cfa8fbda642fd8322c70340aad16", size = 995798, upload-time = "2025-10-06T20:21:35.579Z" }, + { url = "https://files.pythonhosted.org/packages/ef/5d/26a691f28ab220d5edc09b9b787399b130f24327ef824de15e5d85ef21aa/tiktoken-0.12.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:cde24cdb1b8a08368f709124f15b36ab5524aac5fa830cc3fdce9c03d4fb8030", size = 1129865, upload-time = "2025-10-06T20:21:36.675Z" }, + { url = "https://files.pythonhosted.org/packages/b2/94/443fab3d4e5ebecac895712abd3849b8da93b7b7dec61c7db5c9c7ebe40c/tiktoken-0.12.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6de0da39f605992649b9cfa6f84071e3f9ef2cec458d08c5feb1b6f0ff62e134", size = 1152856, upload-time = "2025-10-06T20:21:37.873Z" }, + { url = "https://files.pythonhosted.org/packages/54/35/388f941251b2521c70dd4c5958e598ea6d2c88e28445d2fb8189eecc1dfc/tiktoken-0.12.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6faa0534e0eefbcafaccb75927a4a380463a2eaa7e26000f0173b920e98b720a", size = 1195308, upload-time = "2025-10-06T20:21:39.577Z" }, + { url = "https://files.pythonhosted.org/packages/f8/00/c6681c7f833dd410576183715a530437a9873fa910265817081f65f9105f/tiktoken-0.12.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:82991e04fc860afb933efb63957affc7ad54f83e2216fe7d319007dab1ba5892", size = 1255697, upload-time = "2025-10-06T20:21:41.154Z" }, + { url = "https://files.pythonhosted.org/packages/5f/d2/82e795a6a9bafa034bf26a58e68fe9a89eeaaa610d51dbeb22106ba04f0a/tiktoken-0.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:6fb2995b487c2e31acf0a9e17647e3b242235a20832642bb7a9d1a181c0c1bb1", size = 879375, upload-time = "2025-10-06T20:21:43.201Z" }, + { url = "https://files.pythonhosted.org/packages/de/46/21ea696b21f1d6d1efec8639c204bdf20fde8bafb351e1355c72c5d7de52/tiktoken-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e227c7f96925003487c33b1b32265fad2fbcec2b7cf4817afb76d416f40f6bb", size = 1051565, upload-time = "2025-10-06T20:21:44.566Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d9/35c5d2d9e22bb2a5f74ba48266fb56c63d76ae6f66e02feb628671c0283e/tiktoken-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c06cf0fcc24c2cb2adb5e185c7082a82cba29c17575e828518c2f11a01f445aa", size = 995284, upload-time = "2025-10-06T20:21:45.622Z" }, + { url = "https://files.pythonhosted.org/packages/01/84/961106c37b8e49b9fdcf33fe007bb3a8fdcc380c528b20cc7fbba80578b8/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:f18f249b041851954217e9fd8e5c00b024ab2315ffda5ed77665a05fa91f42dc", size = 1129201, upload-time = "2025-10-06T20:21:47.074Z" }, + { url = "https://files.pythonhosted.org/packages/6a/d0/3d9275198e067f8b65076a68894bb52fd253875f3644f0a321a720277b8a/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:47a5bc270b8c3db00bb46ece01ef34ad050e364b51d406b6f9730b64ac28eded", size = 1152444, upload-time = "2025-10-06T20:21:48.139Z" }, + { url = "https://files.pythonhosted.org/packages/78/db/a58e09687c1698a7c592e1038e01c206569b86a0377828d51635561f8ebf/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:508fa71810c0efdcd1b898fda574889ee62852989f7c1667414736bcb2b9a4bd", size = 1195080, upload-time = "2025-10-06T20:21:49.246Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1b/a9e4d2bf91d515c0f74afc526fd773a812232dd6cda33ebea7f531202325/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1af81a6c44f008cba48494089dd98cccb8b313f55e961a52f5b222d1e507967", size = 1255240, upload-time = "2025-10-06T20:21:50.274Z" }, + { url = "https://files.pythonhosted.org/packages/9d/15/963819345f1b1fb0809070a79e9dd96938d4ca41297367d471733e79c76c/tiktoken-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e68e3e593637b53e56f7237be560f7a394451cb8c11079755e80ae64b9e6def", size = 879422, upload-time = "2025-10-06T20:21:51.734Z" }, + { url = "https://files.pythonhosted.org/packages/a4/85/be65d39d6b647c79800fd9d29241d081d4eeb06271f383bb87200d74cf76/tiktoken-0.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b97f74aca0d78a1ff21b8cd9e9925714c15a9236d6ceacf5c7327c117e6e21e8", size = 1050728, upload-time = "2025-10-06T20:21:52.756Z" }, + { url = "https://files.pythonhosted.org/packages/4a/42/6573e9129bc55c9bf7300b3a35bef2c6b9117018acca0dc760ac2d93dffe/tiktoken-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b90f5ad190a4bb7c3eb30c5fa32e1e182ca1ca79f05e49b448438c3e225a49b", size = 994049, upload-time = "2025-10-06T20:21:53.782Z" }, + { url = "https://files.pythonhosted.org/packages/66/c5/ed88504d2f4a5fd6856990b230b56d85a777feab84e6129af0822f5d0f70/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:65b26c7a780e2139e73acc193e5c63ac754021f160df919add909c1492c0fb37", size = 1129008, upload-time = "2025-10-06T20:21:54.832Z" }, + { url = "https://files.pythonhosted.org/packages/f4/90/3dae6cc5436137ebd38944d396b5849e167896fc2073da643a49f372dc4f/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:edde1ec917dfd21c1f2f8046b86348b0f54a2c0547f68149d8600859598769ad", size = 1152665, upload-time = "2025-10-06T20:21:56.129Z" }, + { url = "https://files.pythonhosted.org/packages/a3/fe/26df24ce53ffde419a42f5f53d755b995c9318908288c17ec3f3448313a3/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:35a2f8ddd3824608b3d650a000c1ef71f730d0c56486845705a8248da00f9fe5", size = 1194230, upload-time = "2025-10-06T20:21:57.546Z" }, + { url = "https://files.pythonhosted.org/packages/20/cc/b064cae1a0e9fac84b0d2c46b89f4e57051a5f41324e385d10225a984c24/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83d16643edb7fa2c99eff2ab7733508aae1eebb03d5dfc46f5565862810f24e3", size = 1254688, upload-time = "2025-10-06T20:21:58.619Z" }, + { url = "https://files.pythonhosted.org/packages/81/10/b8523105c590c5b8349f2587e2fdfe51a69544bd5a76295fc20f2374f470/tiktoken-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffc5288f34a8bc02e1ea7047b8d041104791d2ddbf42d1e5fa07822cbffe16bd", size = 878694, upload-time = "2025-10-06T20:21:59.876Z" }, + { url = "https://files.pythonhosted.org/packages/00/61/441588ee21e6b5cdf59d6870f86beb9789e532ee9718c251b391b70c68d6/tiktoken-0.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:775c2c55de2310cc1bc9a3ad8826761cbdc87770e586fd7b6da7d4589e13dab3", size = 1050802, upload-time = "2025-10-06T20:22:00.96Z" }, + { url = "https://files.pythonhosted.org/packages/1f/05/dcf94486d5c5c8d34496abe271ac76c5b785507c8eae71b3708f1ad9b45a/tiktoken-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a01b12f69052fbe4b080a2cfb867c4de12c704b56178edf1d1d7b273561db160", size = 993995, upload-time = "2025-10-06T20:22:02.788Z" }, + { url = "https://files.pythonhosted.org/packages/a0/70/5163fe5359b943f8db9946b62f19be2305de8c3d78a16f629d4165e2f40e/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:01d99484dc93b129cd0964f9d34eee953f2737301f18b3c7257bf368d7615baa", size = 1128948, upload-time = "2025-10-06T20:22:03.814Z" }, + { url = "https://files.pythonhosted.org/packages/0c/da/c028aa0babf77315e1cef357d4d768800c5f8a6de04d0eac0f377cb619fa/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:4a1a4fcd021f022bfc81904a911d3df0f6543b9e7627b51411da75ff2fe7a1be", size = 1151986, upload-time = "2025-10-06T20:22:05.173Z" }, + { url = "https://files.pythonhosted.org/packages/a0/5a/886b108b766aa53e295f7216b509be95eb7d60b166049ce2c58416b25f2a/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:981a81e39812d57031efdc9ec59fa32b2a5a5524d20d4776574c4b4bd2e9014a", size = 1194222, upload-time = "2025-10-06T20:22:06.265Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f8/4db272048397636ac7a078d22773dd2795b1becee7bc4922fe6207288d57/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9baf52f84a3f42eef3ff4e754a0db79a13a27921b457ca9832cf944c6be4f8f3", size = 1255097, upload-time = "2025-10-06T20:22:07.403Z" }, + { url = "https://files.pythonhosted.org/packages/8e/32/45d02e2e0ea2be3a9ed22afc47d93741247e75018aac967b713b2941f8ea/tiktoken-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:b8a0cd0c789a61f31bf44851defbd609e8dd1e2c8589c614cc1060940ef1f697", size = 879117, upload-time = "2025-10-06T20:22:08.418Z" }, + { url = "https://files.pythonhosted.org/packages/ce/76/994fc868f88e016e6d05b0da5ac24582a14c47893f4474c3e9744283f1d5/tiktoken-0.12.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d5f89ea5680066b68bcb797ae85219c72916c922ef0fcdd3480c7d2315ffff16", size = 1050309, upload-time = "2025-10-06T20:22:10.939Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b8/57ef1456504c43a849821920d582a738a461b76a047f352f18c0b26c6516/tiktoken-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b4e7ed1c6a7a8a60a3230965bdedba8cc58f68926b835e519341413370e0399a", size = 993712, upload-time = "2025-10-06T20:22:12.115Z" }, + { url = "https://files.pythonhosted.org/packages/72/90/13da56f664286ffbae9dbcfadcc625439142675845baa62715e49b87b68b/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:fc530a28591a2d74bce821d10b418b26a094bf33839e69042a6e86ddb7a7fb27", size = 1128725, upload-time = "2025-10-06T20:22:13.541Z" }, + { url = "https://files.pythonhosted.org/packages/05/df/4f80030d44682235bdaecd7346c90f67ae87ec8f3df4a3442cb53834f7e4/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:06a9f4f49884139013b138920a4c393aa6556b2f8f536345f11819389c703ebb", size = 1151875, upload-time = "2025-10-06T20:22:14.559Z" }, + { url = "https://files.pythonhosted.org/packages/22/1f/ae535223a8c4ef4c0c1192e3f9b82da660be9eb66b9279e95c99288e9dab/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:04f0e6a985d95913cabc96a741c5ffec525a2c72e9df086ff17ebe35985c800e", size = 1194451, upload-time = "2025-10-06T20:22:15.545Z" }, + { url = "https://files.pythonhosted.org/packages/78/a7/f8ead382fce0243cb625c4f266e66c27f65ae65ee9e77f59ea1653b6d730/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0ee8f9ae00c41770b5f9b0bb1235474768884ae157de3beb5439ca0fd70f3e25", size = 1253794, upload-time = "2025-10-06T20:22:16.624Z" }, + { url = "https://files.pythonhosted.org/packages/93/e0/6cc82a562bc6365785a3ff0af27a2a092d57c47d7a81d9e2295d8c36f011/tiktoken-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dc2dd125a62cb2b3d858484d6c614d136b5b848976794edfb63688d539b8b93f", size = 878777, upload-time = "2025-10-06T20:22:18.036Z" }, + { url = "https://files.pythonhosted.org/packages/72/05/3abc1db5d2c9aadc4d2c76fa5640134e475e58d9fbb82b5c535dc0de9b01/tiktoken-0.12.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a90388128df3b3abeb2bfd1895b0681412a8d7dc644142519e6f0a97c2111646", size = 1050188, upload-time = "2025-10-06T20:22:19.563Z" }, + { url = "https://files.pythonhosted.org/packages/e3/7b/50c2f060412202d6c95f32b20755c7a6273543b125c0985d6fa9465105af/tiktoken-0.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:da900aa0ad52247d8794e307d6446bd3cdea8e192769b56276695d34d2c9aa88", size = 993978, upload-time = "2025-10-06T20:22:20.702Z" }, + { url = "https://files.pythonhosted.org/packages/14/27/bf795595a2b897e271771cd31cb847d479073497344c637966bdf2853da1/tiktoken-0.12.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:285ba9d73ea0d6171e7f9407039a290ca77efcdb026be7769dccc01d2c8d7fff", size = 1129271, upload-time = "2025-10-06T20:22:22.06Z" }, + { url = "https://files.pythonhosted.org/packages/f5/de/9341a6d7a8f1b448573bbf3425fa57669ac58258a667eb48a25dfe916d70/tiktoken-0.12.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:d186a5c60c6a0213f04a7a802264083dea1bbde92a2d4c7069e1a56630aef830", size = 1151216, upload-time = "2025-10-06T20:22:23.085Z" }, + { url = "https://files.pythonhosted.org/packages/75/0d/881866647b8d1be4d67cb24e50d0c26f9f807f994aa1510cb9ba2fe5f612/tiktoken-0.12.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:604831189bd05480f2b885ecd2d1986dc7686f609de48208ebbbddeea071fc0b", size = 1194860, upload-time = "2025-10-06T20:22:24.602Z" }, + { url = "https://files.pythonhosted.org/packages/b3/1e/b651ec3059474dab649b8d5b69f5c65cd8fcd8918568c1935bd4136c9392/tiktoken-0.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8f317e8530bb3a222547b85a58583238c8f74fd7a7408305f9f63246d1a0958b", size = 1254567, upload-time = "2025-10-06T20:22:25.671Z" }, + { url = "https://files.pythonhosted.org/packages/80/57/ce64fd16ac390fafde001268c364d559447ba09b509181b2808622420eec/tiktoken-0.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:399c3dd672a6406719d84442299a490420b458c44d3ae65516302a99675888f3", size = 921067, upload-time = "2025-10-06T20:22:26.753Z" }, + { url = "https://files.pythonhosted.org/packages/ac/a4/72eed53e8976a099539cdd5eb36f241987212c29629d0a52c305173e0a68/tiktoken-0.12.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2c714c72bc00a38ca969dae79e8266ddec999c7ceccd603cc4f0d04ccd76365", size = 1050473, upload-time = "2025-10-06T20:22:27.775Z" }, + { url = "https://files.pythonhosted.org/packages/e6/d7/0110b8f54c008466b19672c615f2168896b83706a6611ba6e47313dbc6e9/tiktoken-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:cbb9a3ba275165a2cb0f9a83f5d7025afe6b9d0ab01a22b50f0e74fee2ad253e", size = 993855, upload-time = "2025-10-06T20:22:28.799Z" }, + { url = "https://files.pythonhosted.org/packages/5f/77/4f268c41a3957c418b084dd576ea2fad2e95da0d8e1ab705372892c2ca22/tiktoken-0.12.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:dfdfaa5ffff8993a3af94d1125870b1d27aed7cb97aa7eb8c1cefdbc87dbee63", size = 1129022, upload-time = "2025-10-06T20:22:29.981Z" }, + { url = "https://files.pythonhosted.org/packages/4e/2b/fc46c90fe5028bd094cd6ee25a7db321cb91d45dc87531e2bdbb26b4867a/tiktoken-0.12.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:584c3ad3d0c74f5269906eb8a659c8bfc6144a52895d9261cdaf90a0ae5f4de0", size = 1150736, upload-time = "2025-10-06T20:22:30.996Z" }, + { url = "https://files.pythonhosted.org/packages/28/c0/3c7a39ff68022ddfd7d93f3337ad90389a342f761c4d71de99a3ccc57857/tiktoken-0.12.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:54c891b416a0e36b8e2045b12b33dd66fb34a4fe7965565f1b482da50da3e86a", size = 1194908, upload-time = "2025-10-06T20:22:32.073Z" }, + { url = "https://files.pythonhosted.org/packages/ab/0d/c1ad6f4016a3968c048545f5d9b8ffebf577774b2ede3e2e352553b685fe/tiktoken-0.12.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5edb8743b88d5be814b1a8a8854494719080c28faaa1ccbef02e87354fe71ef0", size = 1253706, upload-time = "2025-10-06T20:22:33.385Z" }, + { url = "https://files.pythonhosted.org/packages/af/df/c7891ef9d2712ad774777271d39fdef63941ffba0a9d59b7ad1fd2765e57/tiktoken-0.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f61c0aea5565ac82e2ec50a05e02a6c44734e91b51c10510b084ea1b8e633a71", size = 920667, upload-time = "2025-10-06T20:22:34.444Z" }, +] + +[[package]] +name = "tokenizers" +version = "0.22.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/73/6f/f80cfef4a312e1fb34baf7d85c72d4411afde10978d4657f8cdd811d3ccc/tokenizers-0.22.2.tar.gz", hash = "sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917", size = 372115, upload-time = "2026-01-05T10:45:15.988Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/97/5dbfabf04c7e348e655e907ed27913e03db0923abb5dfdd120d7b25630e1/tokenizers-0.22.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:544dd704ae7238755d790de45ba8da072e9af3eea688f698b137915ae959281c", size = 3100275, upload-time = "2026-01-05T10:41:02.158Z" }, + { url = "https://files.pythonhosted.org/packages/2e/47/174dca0502ef88b28f1c9e06b73ce33500eedfac7a7692108aec220464e7/tokenizers-0.22.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001", size = 2981472, upload-time = "2026-01-05T10:41:00.276Z" }, + { url = "https://files.pythonhosted.org/packages/d6/84/7990e799f1309a8b87af6b948f31edaa12a3ed22d11b352eaf4f4b2e5753/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7", size = 3290736, upload-time = "2026-01-05T10:40:32.165Z" }, + { url = "https://files.pythonhosted.org/packages/78/59/09d0d9ba94dcd5f4f1368d4858d24546b4bdc0231c2354aa31d6199f0399/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25b85325d0815e86e0bac263506dd114578953b7b53d7de09a6485e4a160a7dd", size = 3168835, upload-time = "2026-01-05T10:40:38.847Z" }, + { url = "https://files.pythonhosted.org/packages/47/50/b3ebb4243e7160bda8d34b731e54dd8ab8b133e50775872e7a434e524c28/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfb88f22a209ff7b40a576d5324bf8286b519d7358663db21d6246fb17eea2d5", size = 3521673, upload-time = "2026-01-05T10:40:56.614Z" }, + { url = "https://files.pythonhosted.org/packages/e0/fa/89f4cb9e08df770b57adb96f8cbb7e22695a4cb6c2bd5f0c4f0ebcf33b66/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c774b1276f71e1ef716e5486f21e76333464f47bece56bbd554485982a9e03e", size = 3724818, upload-time = "2026-01-05T10:40:44.507Z" }, + { url = "https://files.pythonhosted.org/packages/64/04/ca2363f0bfbe3b3d36e95bf67e56a4c88c8e3362b658e616d1ac185d47f2/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df6c4265b289083bf710dff49bc51ef252f9d5be33a45ee2bed151114a56207b", size = 3379195, upload-time = "2026-01-05T10:40:51.139Z" }, + { url = "https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67", size = 3274982, upload-time = "2026-01-05T10:40:58.331Z" }, + { url = "https://files.pythonhosted.org/packages/1d/28/5f9f5a4cc211b69e89420980e483831bcc29dade307955cc9dc858a40f01/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4", size = 9478245, upload-time = "2026-01-05T10:41:04.053Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fb/66e2da4704d6aadebf8cb39f1d6d1957df667ab24cff2326b77cda0dcb85/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:37ae80a28c1d3265bb1f22464c856bd23c02a05bb211e56d0c5301a435be6c1a", size = 9560069, upload-time = "2026-01-05T10:45:10.673Z" }, + { url = "https://files.pythonhosted.org/packages/16/04/fed398b05caa87ce9b1a1bb5166645e38196081b225059a6edaff6440fac/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:791135ee325f2336f498590eb2f11dc5c295232f288e75c99a36c5dbce63088a", size = 9899263, upload-time = "2026-01-05T10:45:12.559Z" }, + { url = "https://files.pythonhosted.org/packages/05/a1/d62dfe7376beaaf1394917e0f8e93ee5f67fea8fcf4107501db35996586b/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5", size = 10033429, upload-time = "2026-01-05T10:45:14.333Z" }, + { url = "https://files.pythonhosted.org/packages/fd/18/a545c4ea42af3df6effd7d13d250ba77a0a86fb20393143bbb9a92e434d4/tokenizers-0.22.2-cp39-abi3-win32.whl", hash = "sha256:a6bf3f88c554a2b653af81f3204491c818ae2ac6fbc09e76ef4773351292bc92", size = 2502363, upload-time = "2026-01-05T10:45:20.593Z" }, + { url = "https://files.pythonhosted.org/packages/65/71/0670843133a43d43070abeb1949abfdef12a86d490bea9cd9e18e37c5ff7/tokenizers-0.22.2-cp39-abi3-win_amd64.whl", hash = "sha256:c9ea31edff2968b44a88f97d784c2f16dc0729b8b143ed004699ebca91f05c48", size = 2747786, upload-time = "2026-01-05T10:45:18.411Z" }, + { url = "https://files.pythonhosted.org/packages/72/f4/0de46cfa12cdcbcd464cc59fde36912af405696f687e53a091fb432f694c/tokenizers-0.22.2-cp39-abi3-win_arm64.whl", hash = "sha256:9ce725d22864a1e965217204946f830c37876eee3b2ba6fc6255e8e903d5fcbc", size = 2612133, upload-time = "2026-01-05T10:45:17.232Z" }, + { url = "https://files.pythonhosted.org/packages/84/04/655b79dbcc9b3ac5f1479f18e931a344af67e5b7d3b251d2dcdcd7558592/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:753d47ebd4542742ef9261d9da92cd545b2cacbb48349a1225466745bb866ec4", size = 3282301, upload-time = "2026-01-05T10:40:34.858Z" }, + { url = "https://files.pythonhosted.org/packages/46/cd/e4851401f3d8f6f45d8480262ab6a5c8cb9c4302a790a35aa14eeed6d2fd/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e10bf9113d209be7cd046d40fbabbaf3278ff6d18eb4da4c500443185dc1896c", size = 3161308, upload-time = "2026-01-05T10:40:40.737Z" }, + { url = "https://files.pythonhosted.org/packages/6f/6e/55553992a89982cd12d4a66dddb5e02126c58677ea3931efcbe601d419db/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64d94e84f6660764e64e7e0b22baa72f6cd942279fdbb21d46abd70d179f0195", size = 3718964, upload-time = "2026-01-05T10:40:46.56Z" }, + { url = "https://files.pythonhosted.org/packages/59/8c/b1c87148aa15e099243ec9f0cf9d0e970cc2234c3257d558c25a2c5304e6/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f01a9c019878532f98927d2bacb79bbb404b43d3437455522a00a30718cdedb5", size = 3373542, upload-time = "2026-01-05T10:40:52.803Z" }, +] + +[[package]] +name = "tomli" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/30/31573e9457673ab10aa432461bee537ce6cef177667deca369efb79df071/tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c", size = 17477, upload-time = "2026-01-11T11:22:38.165Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/d9/3dc2289e1f3b32eb19b9785b6a006b28ee99acb37d1d47f78d4c10e28bf8/tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867", size = 153663, upload-time = "2026-01-11T11:21:45.27Z" }, + { url = "https://files.pythonhosted.org/packages/51/32/ef9f6845e6b9ca392cd3f64f9ec185cc6f09f0a2df3db08cbe8809d1d435/tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9", size = 148469, upload-time = "2026-01-11T11:21:46.873Z" }, + { url = "https://files.pythonhosted.org/packages/d6/c2/506e44cce89a8b1b1e047d64bd495c22c9f71f21e05f380f1a950dd9c217/tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95", size = 236039, upload-time = "2026-01-11T11:21:48.503Z" }, + { url = "https://files.pythonhosted.org/packages/b3/40/e1b65986dbc861b7e986e8ec394598187fa8aee85b1650b01dd925ca0be8/tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76", size = 243007, upload-time = "2026-01-11T11:21:49.456Z" }, + { url = "https://files.pythonhosted.org/packages/9c/6f/6e39ce66b58a5b7ae572a0f4352ff40c71e8573633deda43f6a379d56b3e/tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d", size = 240875, upload-time = "2026-01-11T11:21:50.755Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ad/cb089cb190487caa80204d503c7fd0f4d443f90b95cf4ef5cf5aa0f439b0/tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576", size = 246271, upload-time = "2026-01-11T11:21:51.81Z" }, + { url = "https://files.pythonhosted.org/packages/0b/63/69125220e47fd7a3a27fd0de0c6398c89432fec41bc739823bcc66506af6/tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a", size = 96770, upload-time = "2026-01-11T11:21:52.647Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0d/a22bb6c83f83386b0008425a6cd1fa1c14b5f3dd4bad05e98cf3dbbf4a64/tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa", size = 107626, upload-time = "2026-01-11T11:21:53.459Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6d/77be674a3485e75cacbf2ddba2b146911477bd887dda9d8c9dfb2f15e871/tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614", size = 94842, upload-time = "2026-01-11T11:21:54.831Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/7389a1869f2f26dba52404e1ef13b4784b6b37dac93bac53457e3ff24ca3/tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1", size = 154894, upload-time = "2026-01-11T11:21:56.07Z" }, + { url = "https://files.pythonhosted.org/packages/e9/05/2f9bf110b5294132b2edf13fe6ca6ae456204f3d749f623307cbb7a946f2/tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8", size = 149053, upload-time = "2026-01-11T11:21:57.467Z" }, + { url = "https://files.pythonhosted.org/packages/e8/41/1eda3ca1abc6f6154a8db4d714a4d35c4ad90adc0bcf700657291593fbf3/tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a", size = 243481, upload-time = "2026-01-11T11:21:58.661Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6d/02ff5ab6c8868b41e7d4b987ce2b5f6a51d3335a70aa144edd999e055a01/tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1", size = 251720, upload-time = "2026-01-11T11:22:00.178Z" }, + { url = "https://files.pythonhosted.org/packages/7b/57/0405c59a909c45d5b6f146107c6d997825aa87568b042042f7a9c0afed34/tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b", size = 247014, upload-time = "2026-01-11T11:22:01.238Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/2e37568edd944b4165735687cbaf2fe3648129e440c26d02223672ee0630/tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51", size = 251820, upload-time = "2026-01-11T11:22:02.727Z" }, + { url = "https://files.pythonhosted.org/packages/5a/1c/ee3b707fdac82aeeb92d1a113f803cf6d0f37bdca0849cb489553e1f417a/tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729", size = 97712, upload-time = "2026-01-11T11:22:03.777Z" }, + { url = "https://files.pythonhosted.org/packages/69/13/c07a9177d0b3bab7913299b9278845fc6eaaca14a02667c6be0b0a2270c8/tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da", size = 108296, upload-time = "2026-01-11T11:22:04.86Z" }, + { url = "https://files.pythonhosted.org/packages/18/27/e267a60bbeeee343bcc279bb9e8fbed0cbe224bc7b2a3dc2975f22809a09/tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3", size = 94553, upload-time = "2026-01-11T11:22:05.854Z" }, + { url = "https://files.pythonhosted.org/packages/34/91/7f65f9809f2936e1f4ce6268ae1903074563603b2a2bd969ebbda802744f/tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0", size = 154915, upload-time = "2026-01-11T11:22:06.703Z" }, + { url = "https://files.pythonhosted.org/packages/20/aa/64dd73a5a849c2e8f216b755599c511badde80e91e9bc2271baa7b2cdbb1/tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e", size = 149038, upload-time = "2026-01-11T11:22:07.56Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8a/6d38870bd3d52c8d1505ce054469a73f73a0fe62c0eaf5dddf61447e32fa/tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4", size = 242245, upload-time = "2026-01-11T11:22:08.344Z" }, + { url = "https://files.pythonhosted.org/packages/59/bb/8002fadefb64ab2669e5b977df3f5e444febea60e717e755b38bb7c41029/tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e", size = 250335, upload-time = "2026-01-11T11:22:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a5/3d/4cdb6f791682b2ea916af2de96121b3cb1284d7c203d97d92d6003e91c8d/tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c", size = 245962, upload-time = "2026-01-11T11:22:11.27Z" }, + { url = "https://files.pythonhosted.org/packages/f2/4a/5f25789f9a460bd858ba9756ff52d0830d825b458e13f754952dd15fb7bb/tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f", size = 250396, upload-time = "2026-01-11T11:22:12.325Z" }, + { url = "https://files.pythonhosted.org/packages/aa/2f/b73a36fea58dfa08e8b3a268750e6853a6aac2a349241a905ebd86f3047a/tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86", size = 97530, upload-time = "2026-01-11T11:22:13.865Z" }, + { url = "https://files.pythonhosted.org/packages/3b/af/ca18c134b5d75de7e8dc551c5234eaba2e8e951f6b30139599b53de9c187/tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87", size = 108227, upload-time = "2026-01-11T11:22:15.224Z" }, + { url = "https://files.pythonhosted.org/packages/22/c3/b386b832f209fee8073c8138ec50f27b4460db2fdae9ffe022df89a57f9b/tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132", size = 94748, upload-time = "2026-01-11T11:22:16.009Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c4/84047a97eb1004418bc10bdbcfebda209fca6338002eba2dc27cc6d13563/tomli-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6", size = 154725, upload-time = "2026-01-11T11:22:17.269Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5d/d39038e646060b9d76274078cddf146ced86dc2b9e8bbf737ad5983609a0/tomli-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc", size = 148901, upload-time = "2026-01-11T11:22:18.287Z" }, + { url = "https://files.pythonhosted.org/packages/73/e5/383be1724cb30f4ce44983d249645684a48c435e1cd4f8b5cded8a816d3c/tomli-2.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66", size = 243375, upload-time = "2026-01-11T11:22:19.154Z" }, + { url = "https://files.pythonhosted.org/packages/31/f0/bea80c17971c8d16d3cc109dc3585b0f2ce1036b5f4a8a183789023574f2/tomli-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d", size = 250639, upload-time = "2026-01-11T11:22:20.168Z" }, + { url = "https://files.pythonhosted.org/packages/2c/8f/2853c36abbb7608e3f945d8a74e32ed3a74ee3a1f468f1ffc7d1cb3abba6/tomli-2.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702", size = 246897, upload-time = "2026-01-11T11:22:21.544Z" }, + { url = "https://files.pythonhosted.org/packages/49/f0/6c05e3196ed5337b9fe7ea003e95fd3819a840b7a0f2bf5a408ef1dad8ed/tomli-2.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8", size = 254697, upload-time = "2026-01-11T11:22:23.058Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f5/2922ef29c9f2951883525def7429967fc4d8208494e5ab524234f06b688b/tomli-2.4.0-cp314-cp314-win32.whl", hash = "sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776", size = 98567, upload-time = "2026-01-11T11:22:24.033Z" }, + { url = "https://files.pythonhosted.org/packages/7b/31/22b52e2e06dd2a5fdbc3ee73226d763b184ff21fc24e20316a44ccc4d96b/tomli-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475", size = 108556, upload-time = "2026-01-11T11:22:25.378Z" }, + { url = "https://files.pythonhosted.org/packages/48/3d/5058dff3255a3d01b705413f64f4306a141a8fd7a251e5a495e3f192a998/tomli-2.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2", size = 96014, upload-time = "2026-01-11T11:22:26.138Z" }, + { url = "https://files.pythonhosted.org/packages/b8/4e/75dab8586e268424202d3a1997ef6014919c941b50642a1682df43204c22/tomli-2.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9", size = 163339, upload-time = "2026-01-11T11:22:27.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/e3/b904d9ab1016829a776d97f163f183a48be6a4deb87304d1e0116a349519/tomli-2.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0", size = 159490, upload-time = "2026-01-11T11:22:28.399Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5a/fc3622c8b1ad823e8ea98a35e3c632ee316d48f66f80f9708ceb4f2a0322/tomli-2.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df", size = 269398, upload-time = "2026-01-11T11:22:29.345Z" }, + { url = "https://files.pythonhosted.org/packages/fd/33/62bd6152c8bdd4c305ad9faca48f51d3acb2df1f8791b1477d46ff86e7f8/tomli-2.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d", size = 276515, upload-time = "2026-01-11T11:22:30.327Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ff/ae53619499f5235ee4211e62a8d7982ba9e439a0fb4f2f351a93d67c1dd2/tomli-2.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f", size = 273806, upload-time = "2026-01-11T11:22:32.56Z" }, + { url = "https://files.pythonhosted.org/packages/47/71/cbca7787fa68d4d0a9f7072821980b39fbb1b6faeb5f5cf02f4a5559fa28/tomli-2.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b", size = 281340, upload-time = "2026-01-11T11:22:33.505Z" }, + { url = "https://files.pythonhosted.org/packages/f5/00/d595c120963ad42474cf6ee7771ad0d0e8a49d0f01e29576ee9195d9ecdf/tomli-2.4.0-cp314-cp314t-win32.whl", hash = "sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087", size = 108106, upload-time = "2026-01-11T11:22:34.451Z" }, + { url = "https://files.pythonhosted.org/packages/de/69/9aa0c6a505c2f80e519b43764f8b4ba93b5a0bbd2d9a9de6e2b24271b9a5/tomli-2.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd", size = 120504, upload-time = "2026-01-11T11:22:35.764Z" }, + { url = "https://files.pythonhosted.org/packages/b3/9f/f1668c281c58cfae01482f7114a4b88d345e4c140386241a1a24dcc9e7bc/tomli-2.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4", size = 99561, upload-time = "2026-01-11T11:22:36.624Z" }, + { url = "https://files.pythonhosted.org/packages/23/d1/136eb2cb77520a31e1f64cbae9d33ec6df0d78bdf4160398e86eec8a8754/tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a", size = 14477, upload-time = "2026-01-11T11:22:37.446Z" }, +] + +[[package]] +name = "tomli-w" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/75/241269d1da26b624c0d5e110e8149093c759b7a286138f4efd61a60e75fe/tomli_w-1.2.0.tar.gz", hash = "sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021", size = 7184, upload-time = "2025-01-15T12:07:24.262Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl", hash = "sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90", size = 6675, upload-time = "2025-01-15T12:07:22.074Z" }, +] + [[package]] name = "tqdm" version = "4.67.1" @@ -455,28 +4057,30 @@ wheels = [ ] [[package]] -name = "travel-agents" -version = "0.1.0" -source = { editable = "." } +name = "typer" +version = "0.23.1" +source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "annotated-doc" }, { name = "click" }, - { name = "fastapi" }, - { name = "httpx" }, - { name = "openai" }, - { name = "opentelemetry-api" }, - { name = "pydantic" }, - { name = "uvicorn" }, + { name = "rich" }, + { name = "shellingham" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/07/b822e1b307d40e263e8253d2384cf98c51aa2368cc7ba9a07e523a1d964b/typer-0.23.1.tar.gz", hash = "sha256:2070374e4d31c83e7b61362fd859aa683576432fd5b026b060ad6b4cd3b86134", size = 120047, upload-time = "2026-02-13T10:04:30.984Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/91/9b286ab899c008c2cb05e8be99814807e7fbbd33f0c0c960470826e5ac82/typer-0.23.1-py3-none-any.whl", hash = "sha256:3291ad0d3c701cbf522012faccfbb29352ff16ad262db2139e6b01f15781f14e", size = 56813, upload-time = "2026-02-13T10:04:32.008Z" }, ] -[package.metadata] -requires-dist = [ - { name = "click", specifier = ">=8.2.1" }, - { name = "fastapi", specifier = ">=0.115.0" }, - { name = "httpx", specifier = ">=0.24.0" }, - { name = "openai", specifier = ">=1.0.0" }, - { name = "opentelemetry-api", specifier = ">=1.20.0" }, - { name = "pydantic", specifier = ">=2.11.7" }, - { name = "uvicorn", specifier = ">=0.30.0" }, +[[package]] +name = "typer-slim" +version = "0.23.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/22/b9c47b8655937b6877d40791b937931702ba9c5f9d28753199266aa96f50/typer_slim-0.23.1.tar.gz", hash = "sha256:dfe92a6317030ee2380f65bf92e540d7c77fefcc689e10d585b4925b45b5e06a", size = 4762, upload-time = "2026-02-13T10:04:26.416Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/8a/5764b851659345f34787f1b6eb30b9d308bbd6c294825cbe38b6b869c97a/typer_slim-0.23.1-py3-none-any.whl", hash = "sha256:8146d5df1eb89f628191c4c604c8464fa841885d0733c58e6e700ff0228adac5", size = 3397, upload-time = "2026-02-13T10:04:27.132Z" }, ] [[package]] @@ -500,6 +4104,69 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, ] +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "uuid-utils" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/7c/3a926e847516e67bc6838634f2e54e24381105b4e80f9338dc35cca0086b/uuid_utils-0.14.0.tar.gz", hash = "sha256:fc5bac21e9933ea6c590433c11aa54aaca599f690c08069e364eb13a12f670b4", size = 22072, upload-time = "2026-01-20T20:37:15.729Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/42/42d003f4a99ddc901eef2fd41acb3694163835e037fb6dde79ad68a72342/uuid_utils-0.14.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:f6695c0bed8b18a904321e115afe73b34444bc8451d0ce3244a1ec3b84deb0e5", size = 601786, upload-time = "2026-01-20T20:37:09.843Z" }, + { url = "https://files.pythonhosted.org/packages/96/e6/775dfb91f74b18f7207e3201eb31ee666d286579990dc69dd50db2d92813/uuid_utils-0.14.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:4f0a730bbf2d8bb2c11b93e1005e91769f2f533fa1125ed1f00fd15b6fcc732b", size = 303943, upload-time = "2026-01-20T20:37:18.767Z" }, + { url = "https://files.pythonhosted.org/packages/17/82/ea5f5e85560b08a1f30cdc65f75e76494dc7aba9773f679e7eaa27370229/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40ce3fd1a4fdedae618fc3edc8faf91897012469169d600133470f49fd699ed3", size = 340467, upload-time = "2026-01-20T20:37:11.794Z" }, + { url = "https://files.pythonhosted.org/packages/ca/33/54b06415767f4569882e99b6470c6c8eeb97422686a6d432464f9967fd91/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:09ae4a98416a440e78f7d9543d11b11cae4bab538b7ed94ec5da5221481748f2", size = 346333, upload-time = "2026-01-20T20:37:12.818Z" }, + { url = "https://files.pythonhosted.org/packages/cb/10/a6bce636b8f95e65dc84bf4a58ce8205b8e0a2a300a38cdbc83a3f763d27/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:971e8c26b90d8ae727e7f2ac3ee23e265971d448b3672882f2eb44828b2b8c3e", size = 470859, upload-time = "2026-01-20T20:37:01.512Z" }, + { url = "https://files.pythonhosted.org/packages/8a/27/84121c51ea72f013f0e03d0886bcdfa96b31c9b83c98300a7bd5cc4fa191/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5cde1fa82804a8f9d2907b7aec2009d440062c63f04abbdb825fce717a5e860", size = 341988, upload-time = "2026-01-20T20:37:22.881Z" }, + { url = "https://files.pythonhosted.org/packages/90/a4/01c1c7af5e6a44f20b40183e8dac37d6ed83e7dc9e8df85370a15959b804/uuid_utils-0.14.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c7343862a2359e0bd48a7f3dfb5105877a1728677818bb694d9f40703264a2db", size = 365784, upload-time = "2026-01-20T20:37:10.808Z" }, + { url = "https://files.pythonhosted.org/packages/04/f0/65ee43ec617b8b6b1bf2a5aecd56a069a08cca3d9340c1de86024331bde3/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c51e4818fdb08ccec12dc7083a01f49507b4608770a0ab22368001685d59381b", size = 523750, upload-time = "2026-01-20T20:37:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/95/d3/6bf503e3f135a5dfe705a65e6f89f19bccd55ac3fb16cb5d3ec5ba5388b8/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:181bbcccb6f93d80a8504b5bd47b311a1c31395139596edbc47b154b0685b533", size = 615818, upload-time = "2026-01-20T20:37:21.816Z" }, + { url = "https://files.pythonhosted.org/packages/df/6c/99937dd78d07f73bba831c8dc9469dfe4696539eba2fc269ae1b92752f9e/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:5c8ae96101c3524ba8dbf762b6f05e9e9d896544786c503a727c5bf5cb9af1a7", size = 580831, upload-time = "2026-01-20T20:37:19.691Z" }, + { url = "https://files.pythonhosted.org/packages/44/fa/bbc9e2c25abd09a293b9b097a0d8fc16acd6a92854f0ec080f1ea7ad8bb3/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:00ac3c6edfdaff7e1eed041f4800ae09a3361287be780d7610a90fdcde9befdc", size = 546333, upload-time = "2026-01-20T20:37:03.117Z" }, + { url = "https://files.pythonhosted.org/packages/e7/9b/e5e99b324b1b5f0c62882230455786df0bc66f67eff3b452447e703f45d2/uuid_utils-0.14.0-cp39-abi3-win32.whl", hash = "sha256:ec2fd80adf8e0e6589d40699e6f6df94c93edcc16dd999be0438dd007c77b151", size = 177319, upload-time = "2026-01-20T20:37:04.208Z" }, + { url = "https://files.pythonhosted.org/packages/d3/28/2c7d417ea483b6ff7820c948678fdf2ac98899dc7e43bb15852faa95acaf/uuid_utils-0.14.0-cp39-abi3-win_amd64.whl", hash = "sha256:efe881eb43a5504fad922644cb93d725fd8a6a6d949bd5a4b4b7d1a1587c7fd1", size = 182566, upload-time = "2026-01-20T20:37:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/b8/86/49e4bdda28e962fbd7266684171ee29b3d92019116971d58783e51770745/uuid_utils-0.14.0-cp39-abi3-win_arm64.whl", hash = "sha256:32b372b8fd4ebd44d3a219e093fe981af4afdeda2994ee7db208ab065cfcd080", size = 182809, upload-time = "2026-01-20T20:37:05.139Z" }, + { url = "https://files.pythonhosted.org/packages/f1/03/1f1146e32e94d1f260dfabc81e1649102083303fb4ad549775c943425d9a/uuid_utils-0.14.0-pp311-pypy311_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:762e8d67992ac4d2454e24a141a1c82142b5bde10409818c62adbe9924ebc86d", size = 587430, upload-time = "2026-01-20T20:37:24.998Z" }, + { url = "https://files.pythonhosted.org/packages/87/ba/d5a7469362594d885fd9219fe9e851efbe65101d3ef1ef25ea321d7ce841/uuid_utils-0.14.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:40be5bf0b13aa849d9062abc86c198be6a25ff35316ce0b89fc25f3bac6d525e", size = 298106, upload-time = "2026-01-20T20:37:23.896Z" }, + { url = "https://files.pythonhosted.org/packages/8a/11/3dafb2a5502586f59fd49e93f5802cd5face82921b3a0f3abb5f357cb879/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:191a90a6f3940d1b7322b6e6cceff4dd533c943659e0a15f788674407856a515", size = 333423, upload-time = "2026-01-20T20:37:17.828Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f2/c8987663f0cdcf4d717a36d85b5db2a5589df0a4e129aa10f16f4380ef48/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4aa4525f4ad82f9d9c842f9a3703f1539c1808affbaec07bb1b842f6b8b96aa5", size = 338659, upload-time = "2026-01-20T20:37:14.286Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c8/929d81665d83f0b2ffaecb8e66c3091a50f62c7cb5b65e678bd75a96684e/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdbd82ff20147461caefc375551595ecf77ebb384e46267f128aca45a0f2cdfc", size = 467029, upload-time = "2026-01-20T20:37:08.277Z" }, + { url = "https://files.pythonhosted.org/packages/8e/a0/27d7daa1bfed7163f4ccaf52d7d2f4ad7bb1002a85b45077938b91ee584f/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff57e8a5d540006ce73cf0841a643d445afe78ba12e75ac53a95ca2924a56be", size = 333298, upload-time = "2026-01-20T20:37:07.271Z" }, + { url = "https://files.pythonhosted.org/packages/63/d4/acad86ce012b42ce18a12f31ee2aa3cbeeb98664f865f05f68c882945913/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3fd9112ca96978361201e669729784f26c71fecc9c13a7f8a07162c31bd4d1e2", size = 359217, upload-time = "2026-01-20T20:36:59.687Z" }, +] + +[[package]] +name = "uv" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0d/9a/fe74aa0127cdc26141364e07abf25e5d69b4bf9788758fad9cfecca637aa/uv-0.10.2.tar.gz", hash = "sha256:b5016f038e191cc9ef00e17be802f44363d1b1cc3ef3454d1d76839a4246c10a", size = 3858864, upload-time = "2026-02-10T19:17:51.609Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/b5/aea88f66284d220be56ef748ed5e1bd11d819be14656a38631f4b55bfd48/uv-0.10.2-py3-none-linux_armv6l.whl", hash = "sha256:69e35aa3e91a245b015365e5e6ca383ecf72a07280c6d00c17c9173f2d3b68ab", size = 22215714, upload-time = "2026-02-10T19:17:34.281Z" }, + { url = "https://files.pythonhosted.org/packages/7f/72/947ba7737ae6cd50de61d268781b9e7717caa3b07e18238ffd547f9fc728/uv-0.10.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0b7eef95c36fe92e7aac399c0dce555474432cbfeaaa23975ed83a63923f78fd", size = 21276485, upload-time = "2026-02-10T19:18:15.415Z" }, + { url = "https://files.pythonhosted.org/packages/d3/38/5c3462b927a93be4ccaaa25138926a5fb6c9e1b72884efd7af77e451d82e/uv-0.10.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:acc08e420abab21de987151059991e3f04bc7f4044d94ca58b5dd547995b4843", size = 20048620, upload-time = "2026-02-10T19:17:26.481Z" }, + { url = "https://files.pythonhosted.org/packages/03/51/d4509b0f5b7740c1af82202e9c69b700d5848b8bd0faa25229e8edd2c19c/uv-0.10.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:aefbcd749ab2ad48bb533ec028607607f7b03be11c83ea152dbb847226cd6285", size = 21870454, upload-time = "2026-02-10T19:17:21.838Z" }, + { url = "https://files.pythonhosted.org/packages/cd/7e/2bcbafcb424bb885817a7e58e6eec9314c190c55935daaafab1858bb82cd/uv-0.10.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:fad554c38d9988409ceddfac69a465e6e5f925a8b689e7606a395c20bb4d1d78", size = 21839508, upload-time = "2026-02-10T19:17:59.211Z" }, + { url = "https://files.pythonhosted.org/packages/60/08/16df2c1f8ad121a595316b82f6e381447e8974265b2239c9135eb874f33b/uv-0.10.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6dd2dc41043e92b3316d7124a7bf48c2affe7117c93079419146f083df71933c", size = 21841283, upload-time = "2026-02-10T19:17:41.419Z" }, + { url = "https://files.pythonhosted.org/packages/76/27/a869fec4c03af5e43db700fabe208d8ee8dbd56e0ff568ba792788d505cd/uv-0.10.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111c05182c5630ac523764e0ec2e58d7b54eb149dbe517b578993a13c2f71aff", size = 23111967, upload-time = "2026-02-10T19:18:11.764Z" }, + { url = "https://files.pythonhosted.org/packages/2a/4a/fb38515d966acfbd80179e626985aab627898ffd02c70205850d6eb44df1/uv-0.10.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45c3deaba0343fd27ab5385d6b7cde0765df1a15389ee7978b14a51c32895662", size = 23911019, upload-time = "2026-02-10T19:18:26.947Z" }, + { url = "https://files.pythonhosted.org/packages/dd/5f/51bcbb490ddb1dcb06d767f0bde649ad2826686b9e30efa57f8ab2750a1d/uv-0.10.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bb2cac4f3be60b64a23d9f035019c30a004d378b563c94f60525c9591665a56b", size = 23030217, upload-time = "2026-02-10T19:17:37.789Z" }, + { url = "https://files.pythonhosted.org/packages/46/69/144f6db851d49aa6f25b040dc5c8c684b8f92df9e8d452c7abc619c6ec23/uv-0.10.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937687df0380d636ceafcb728cf6357f0432588e721892128985417b283c3b54", size = 23036452, upload-time = "2026-02-10T19:18:18.97Z" }, + { url = "https://files.pythonhosted.org/packages/66/29/3c7c4559c9310ed478e3d6c585ee0aad2852dc4d5fb14f4d92a2a12d1728/uv-0.10.2-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:f90bca8703ae66bccfcfb7313b4b697a496c4d3df662f4a1a2696a6320c47598", size = 21941903, upload-time = "2026-02-10T19:17:30.575Z" }, + { url = "https://files.pythonhosted.org/packages/9a/5a/42883b5ef2ef0b1bc5b70a1da12a6854a929ff824aa8eb1a5571fb27a39b/uv-0.10.2-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:cca026c2e584788e1264879a123bf499dd8f169b9cafac4a2065a416e09d3823", size = 22651571, upload-time = "2026-02-10T19:18:22.74Z" }, + { url = "https://files.pythonhosted.org/packages/e8/b8/e4f1dda1b3b0cc6c8ac06952bfe7bc28893ff016fb87651c8fafc6dfca96/uv-0.10.2-py3-none-musllinux_1_1_i686.whl", hash = "sha256:9f878837938103ee1307ed3ed5d9228118e3932816ab0deb451e7e16dc8ce82a", size = 22321279, upload-time = "2026-02-10T19:17:49.402Z" }, + { url = "https://files.pythonhosted.org/packages/2c/4b/baa16d46469e024846fc1a8aa0cfa63f1f89ad0fd3eaa985359a168c3fb0/uv-0.10.2-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:6ec75cfe638b316b329474aa798c3988e5946ead4d9e977fe4dc6fc2ea3e0b8b", size = 23252208, upload-time = "2026-02-10T19:17:54.46Z" }, + { url = "https://files.pythonhosted.org/packages/d6/84/6a74e5ec2ee90e4314905e6d1d1708d473e06405e492ec38868b42645388/uv-0.10.2-py3-none-win32.whl", hash = "sha256:f7f3c7e09bf53b81f55730a67dd86299158f470dffb2bd279b6432feb198d231", size = 21118543, upload-time = "2026-02-10T19:18:07.296Z" }, + { url = "https://files.pythonhosted.org/packages/dd/f9/e5cc6cf3a578b87004e857274df97d3cdecd8e19e965869b9b67c094c20c/uv-0.10.2-py3-none-win_amd64.whl", hash = "sha256:7b3685aa1da15acbe080b4cba8684afbb6baf11c9b04d4d4b347cc18b7b9cfa0", size = 23620790, upload-time = "2026-02-10T19:17:45.204Z" }, + { url = "https://files.pythonhosted.org/packages/df/7a/99979dc08ae6a65f4f7a44c5066699016c6eecdc4e695b7512c2efb53378/uv-0.10.2-py3-none-win_arm64.whl", hash = "sha256:abdd5b3c6b871b17bf852a90346eb7af881345706554fd082346b000a9393afd", size = 22035199, upload-time = "2026-02-10T19:18:03.679Z" }, +] + [[package]] name = "uvicorn" version = "0.38.0" @@ -514,6 +4181,498 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ee/d9/d88e73ca598f4f6ff671fb5fde8a32925c2e08a637303a1d12883c7305fa/uvicorn-0.38.0-py3-none-any.whl", hash = "sha256:48c0afd214ceb59340075b4a052ea1ee91c16fbc2a9b1469cca0e54566977b02", size = 68109, upload-time = "2025-10-18T13:46:42.958Z" }, ] +[package.optional-dependencies] +standard = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "httptools" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "uvloop", marker = "platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'" }, + { name = "watchfiles" }, + { name = "websockets" }, +] + +[[package]] +name = "uvloop" +version = "0.22.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/06/f0/18d39dbd1971d6d62c4629cc7fa67f74821b0dc1f5a77af43719de7936a7/uvloop-0.22.1.tar.gz", hash = "sha256:6c84bae345b9147082b17371e3dd5d42775bddce91f885499017f4607fdaf39f", size = 2443250, upload-time = "2025-10-16T22:17:19.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/14/ecceb239b65adaaf7fde510aa8bd534075695d1e5f8dadfa32b5723d9cfb/uvloop-0.22.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c", size = 1343335, upload-time = "2025-10-16T22:16:11.43Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ae/6f6f9af7f590b319c94532b9567409ba11f4fa71af1148cab1bf48a07048/uvloop-0.22.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7cd375a12b71d33d46af85a3343b35d98e8116134ba404bd657b3b1d15988792", size = 742903, upload-time = "2025-10-16T22:16:12.979Z" }, + { url = "https://files.pythonhosted.org/packages/09/bd/3667151ad0702282a1f4d5d29288fce8a13c8b6858bf0978c219cd52b231/uvloop-0.22.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac33ed96229b7790eb729702751c0e93ac5bc3bcf52ae9eccbff30da09194b86", size = 3648499, upload-time = "2025-10-16T22:16:14.451Z" }, + { url = "https://files.pythonhosted.org/packages/b3/f6/21657bb3beb5f8c57ce8be3b83f653dd7933c2fd00545ed1b092d464799a/uvloop-0.22.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:481c990a7abe2c6f4fc3d98781cc9426ebd7f03a9aaa7eb03d3bfc68ac2a46bd", size = 3700133, upload-time = "2025-10-16T22:16:16.272Z" }, + { url = "https://files.pythonhosted.org/packages/09/e0/604f61d004ded805f24974c87ddd8374ef675644f476f01f1df90e4cdf72/uvloop-0.22.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a592b043a47ad17911add5fbd087c76716d7c9ccc1d64ec9249ceafd735f03c2", size = 3512681, upload-time = "2025-10-16T22:16:18.07Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ce/8491fd370b0230deb5eac69c7aae35b3be527e25a911c0acdffb922dc1cd/uvloop-0.22.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1489cf791aa7b6e8c8be1c5a080bae3a672791fcb4e9e12249b05862a2ca9cec", size = 3615261, upload-time = "2025-10-16T22:16:19.596Z" }, + { url = "https://files.pythonhosted.org/packages/c7/d5/69900f7883235562f1f50d8184bb7dd84a2fb61e9ec63f3782546fdbd057/uvloop-0.22.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c60ebcd36f7b240b30788554b6f0782454826a0ed765d8430652621b5de674b9", size = 1352420, upload-time = "2025-10-16T22:16:21.187Z" }, + { url = "https://files.pythonhosted.org/packages/a8/73/c4e271b3bce59724e291465cc936c37758886a4868787da0278b3b56b905/uvloop-0.22.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b7f102bf3cb1995cfeaee9321105e8f5da76fdb104cdad8986f85461a1b7b77", size = 748677, upload-time = "2025-10-16T22:16:22.558Z" }, + { url = "https://files.pythonhosted.org/packages/86/94/9fb7fad2f824d25f8ecac0d70b94d0d48107ad5ece03769a9c543444f78a/uvloop-0.22.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53c85520781d84a4b8b230e24a5af5b0778efdb39142b424990ff1ef7c48ba21", size = 3753819, upload-time = "2025-10-16T22:16:23.903Z" }, + { url = "https://files.pythonhosted.org/packages/74/4f/256aca690709e9b008b7108bc85fba619a2bc37c6d80743d18abad16ee09/uvloop-0.22.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56a2d1fae65fd82197cb8c53c367310b3eabe1bbb9fb5a04d28e3e3520e4f702", size = 3804529, upload-time = "2025-10-16T22:16:25.246Z" }, + { url = "https://files.pythonhosted.org/packages/7f/74/03c05ae4737e871923d21a76fe28b6aad57f5c03b6e6bfcfa5ad616013e4/uvloop-0.22.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40631b049d5972c6755b06d0bfe8233b1bd9a8a6392d9d1c45c10b6f9e9b2733", size = 3621267, upload-time = "2025-10-16T22:16:26.819Z" }, + { url = "https://files.pythonhosted.org/packages/75/be/f8e590fe61d18b4a92070905497aec4c0e64ae1761498cad09023f3f4b3e/uvloop-0.22.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:535cc37b3a04f6cd2c1ef65fa1d370c9a35b6695df735fcff5427323f2cd5473", size = 3723105, upload-time = "2025-10-16T22:16:28.252Z" }, + { url = "https://files.pythonhosted.org/packages/3d/ff/7f72e8170be527b4977b033239a83a68d5c881cc4775fca255c677f7ac5d/uvloop-0.22.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42", size = 1359936, upload-time = "2025-10-16T22:16:29.436Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c6/e5d433f88fd54d81ef4be58b2b7b0cea13c442454a1db703a1eea0db1a59/uvloop-0.22.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51eb9bd88391483410daad430813d982010f9c9c89512321f5b60e2cddbdddd6", size = 752769, upload-time = "2025-10-16T22:16:30.493Z" }, + { url = "https://files.pythonhosted.org/packages/24/68/a6ac446820273e71aa762fa21cdcc09861edd3536ff47c5cd3b7afb10eeb/uvloop-0.22.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:700e674a166ca5778255e0e1dc4e9d79ab2acc57b9171b79e65feba7184b3370", size = 4317413, upload-time = "2025-10-16T22:16:31.644Z" }, + { url = "https://files.pythonhosted.org/packages/5f/6f/e62b4dfc7ad6518e7eff2516f680d02a0f6eb62c0c212e152ca708a0085e/uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b5b1ac819a3f946d3b2ee07f09149578ae76066d70b44df3fa990add49a82e4", size = 4426307, upload-time = "2025-10-16T22:16:32.917Z" }, + { url = "https://files.pythonhosted.org/packages/90/60/97362554ac21e20e81bcef1150cb2a7e4ffdaf8ea1e5b2e8bf7a053caa18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e047cc068570bac9866237739607d1313b9253c3051ad84738cbb095be0537b2", size = 4131970, upload-time = "2025-10-16T22:16:34.015Z" }, + { url = "https://files.pythonhosted.org/packages/99/39/6b3f7d234ba3964c428a6e40006340f53ba37993f46ed6e111c6e9141d18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:512fec6815e2dd45161054592441ef76c830eddaad55c8aa30952e6fe1ed07c0", size = 4296343, upload-time = "2025-10-16T22:16:35.149Z" }, + { url = "https://files.pythonhosted.org/packages/89/8c/182a2a593195bfd39842ea68ebc084e20c850806117213f5a299dfc513d9/uvloop-0.22.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:561577354eb94200d75aca23fbde86ee11be36b00e52a4eaf8f50fb0c86b7705", size = 1358611, upload-time = "2025-10-16T22:16:36.833Z" }, + { url = "https://files.pythonhosted.org/packages/d2/14/e301ee96a6dc95224b6f1162cd3312f6d1217be3907b79173b06785f2fe7/uvloop-0.22.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cdf5192ab3e674ca26da2eada35b288d2fa49fdd0f357a19f0e7c4e7d5077c8", size = 751811, upload-time = "2025-10-16T22:16:38.275Z" }, + { url = "https://files.pythonhosted.org/packages/b7/02/654426ce265ac19e2980bfd9ea6590ca96a56f10c76e63801a2df01c0486/uvloop-0.22.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e2ea3d6190a2968f4a14a23019d3b16870dd2190cd69c8180f7c632d21de68d", size = 4288562, upload-time = "2025-10-16T22:16:39.375Z" }, + { url = "https://files.pythonhosted.org/packages/15/c0/0be24758891ef825f2065cd5db8741aaddabe3e248ee6acc5e8a80f04005/uvloop-0.22.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0530a5fbad9c9e4ee3f2b33b148c6a64d47bbad8000ea63704fa8260f4cf728e", size = 4366890, upload-time = "2025-10-16T22:16:40.547Z" }, + { url = "https://files.pythonhosted.org/packages/d2/53/8369e5219a5855869bcee5f4d317f6da0e2c669aecf0ef7d371e3d084449/uvloop-0.22.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc5ef13bbc10b5335792360623cc378d52d7e62c2de64660616478c32cd0598e", size = 4119472, upload-time = "2025-10-16T22:16:41.694Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ba/d69adbe699b768f6b29a5eec7b47dd610bd17a69de51b251126a801369ea/uvloop-0.22.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1f38ec5e3f18c8a10ded09742f7fb8de0108796eb673f30ce7762ce1b8550cad", size = 4239051, upload-time = "2025-10-16T22:16:43.224Z" }, + { url = "https://files.pythonhosted.org/packages/90/cd/b62bdeaa429758aee8de8b00ac0dd26593a9de93d302bff3d21439e9791d/uvloop-0.22.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3879b88423ec7e97cd4eba2a443aa26ed4e59b45e6b76aabf13fe2f27023a142", size = 1362067, upload-time = "2025-10-16T22:16:44.503Z" }, + { url = "https://files.pythonhosted.org/packages/0d/f8/a132124dfda0777e489ca86732e85e69afcd1ff7686647000050ba670689/uvloop-0.22.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:4baa86acedf1d62115c1dc6ad1e17134476688f08c6efd8a2ab076e815665c74", size = 752423, upload-time = "2025-10-16T22:16:45.968Z" }, + { url = "https://files.pythonhosted.org/packages/a3/94/94af78c156f88da4b3a733773ad5ba0b164393e357cc4bd0ab2e2677a7d6/uvloop-0.22.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:297c27d8003520596236bdb2335e6b3f649480bd09e00d1e3a99144b691d2a35", size = 4272437, upload-time = "2025-10-16T22:16:47.451Z" }, + { url = "https://files.pythonhosted.org/packages/b5/35/60249e9fd07b32c665192cec7af29e06c7cd96fa1d08b84f012a56a0b38e/uvloop-0.22.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c1955d5a1dd43198244d47664a5858082a3239766a839b2102a269aaff7a4e25", size = 4292101, upload-time = "2025-10-16T22:16:49.318Z" }, + { url = "https://files.pythonhosted.org/packages/02/62/67d382dfcb25d0a98ce73c11ed1a6fba5037a1a1d533dcbb7cab033a2636/uvloop-0.22.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b31dc2fccbd42adc73bc4e7cdbae4fc5086cf378979e53ca5d0301838c5682c6", size = 4114158, upload-time = "2025-10-16T22:16:50.517Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/f1171b4a882a5d13c8b7576f348acfe6074d72eaf52cccef752f748d4a9f/uvloop-0.22.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:93f617675b2d03af4e72a5333ef89450dfaa5321303ede6e67ba9c9d26878079", size = 4177360, upload-time = "2025-10-16T22:16:52.646Z" }, + { url = "https://files.pythonhosted.org/packages/79/7b/b01414f31546caf0919da80ad57cbfe24c56b151d12af68cee1b04922ca8/uvloop-0.22.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:37554f70528f60cad66945b885eb01f1bb514f132d92b6eeed1c90fd54ed6289", size = 1454790, upload-time = "2025-10-16T22:16:54.355Z" }, + { url = "https://files.pythonhosted.org/packages/d4/31/0bb232318dd838cad3fa8fb0c68c8b40e1145b32025581975e18b11fab40/uvloop-0.22.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b76324e2dc033a0b2f435f33eb88ff9913c156ef78e153fb210e03c13da746b3", size = 796783, upload-time = "2025-10-16T22:16:55.906Z" }, + { url = "https://files.pythonhosted.org/packages/42/38/c9b09f3271a7a723a5de69f8e237ab8e7803183131bc57c890db0b6bb872/uvloop-0.22.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:badb4d8e58ee08dad957002027830d5c3b06aea446a6a3744483c2b3b745345c", size = 4647548, upload-time = "2025-10-16T22:16:57.008Z" }, + { url = "https://files.pythonhosted.org/packages/c1/37/945b4ca0ac27e3dc4952642d4c900edd030b3da6c9634875af6e13ae80e5/uvloop-0.22.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b91328c72635f6f9e0282e4a57da7470c7350ab1c9f48546c0f2866205349d21", size = 4467065, upload-time = "2025-10-16T22:16:58.206Z" }, + { url = "https://files.pythonhosted.org/packages/97/cc/48d232f33d60e2e2e0b42f4e73455b146b76ebe216487e862700457fbf3c/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:daf620c2995d193449393d6c62131b3fbd40a63bf7b307a1527856ace637fe88", size = 4328384, upload-time = "2025-10-16T22:16:59.36Z" }, + { url = "https://files.pythonhosted.org/packages/e4/16/c1fd27e9549f3c4baf1dc9c20c456cd2f822dbf8de9f463824b0c0357e06/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6cde23eeda1a25c75b2e07d39970f3374105d5eafbaab2a4482be82f272d5a5e", size = 4296730, upload-time = "2025-10-16T22:17:00.744Z" }, +] + +[[package]] +name = "watchfiles" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c2/c9/8869df9b2a2d6c59d79220a4db37679e74f807c559ffe5265e08b227a210/watchfiles-1.1.1.tar.gz", hash = "sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2", size = 94440, upload-time = "2025-10-14T15:06:21.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/1a/206e8cf2dd86fddf939165a57b4df61607a1e0add2785f170a3f616b7d9f/watchfiles-1.1.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c", size = 407318, upload-time = "2025-10-14T15:04:18.753Z" }, + { url = "https://files.pythonhosted.org/packages/b3/0f/abaf5262b9c496b5dad4ed3c0e799cbecb1f8ea512ecb6ddd46646a9fca3/watchfiles-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43", size = 394478, upload-time = "2025-10-14T15:04:20.297Z" }, + { url = "https://files.pythonhosted.org/packages/b1/04/9cc0ba88697b34b755371f5ace8d3a4d9a15719c07bdc7bd13d7d8c6a341/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31", size = 449894, upload-time = "2025-10-14T15:04:21.527Z" }, + { url = "https://files.pythonhosted.org/packages/d2/9c/eda4615863cd8621e89aed4df680d8c3ec3da6a4cf1da113c17decd87c7f/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac", size = 459065, upload-time = "2025-10-14T15:04:22.795Z" }, + { url = "https://files.pythonhosted.org/packages/84/13/f28b3f340157d03cbc8197629bc109d1098764abe1e60874622a0be5c112/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d", size = 488377, upload-time = "2025-10-14T15:04:24.138Z" }, + { url = "https://files.pythonhosted.org/packages/86/93/cfa597fa9389e122488f7ffdbd6db505b3b915ca7435ecd7542e855898c2/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d", size = 595837, upload-time = "2025-10-14T15:04:25.057Z" }, + { url = "https://files.pythonhosted.org/packages/57/1e/68c1ed5652b48d89fc24d6af905d88ee4f82fa8bc491e2666004e307ded1/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863", size = 473456, upload-time = "2025-10-14T15:04:26.497Z" }, + { url = "https://files.pythonhosted.org/packages/d5/dc/1a680b7458ffa3b14bb64878112aefc8f2e4f73c5af763cbf0bd43100658/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab", size = 455614, upload-time = "2025-10-14T15:04:27.539Z" }, + { url = "https://files.pythonhosted.org/packages/61/a5/3d782a666512e01eaa6541a72ebac1d3aae191ff4a31274a66b8dd85760c/watchfiles-1.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82", size = 630690, upload-time = "2025-10-14T15:04:28.495Z" }, + { url = "https://files.pythonhosted.org/packages/9b/73/bb5f38590e34687b2a9c47a244aa4dd50c56a825969c92c9c5fc7387cea1/watchfiles-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4", size = 622459, upload-time = "2025-10-14T15:04:29.491Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ac/c9bb0ec696e07a20bd58af5399aeadaef195fb2c73d26baf55180fe4a942/watchfiles-1.1.1-cp310-cp310-win32.whl", hash = "sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844", size = 272663, upload-time = "2025-10-14T15:04:30.435Z" }, + { url = "https://files.pythonhosted.org/packages/11/a0/a60c5a7c2ec59fa062d9a9c61d02e3b6abd94d32aac2d8344c4bdd033326/watchfiles-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e", size = 287453, upload-time = "2025-10-14T15:04:31.53Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/2c5f479fb531ce2f0564eda479faecf253d886b1ab3630a39b7bf7362d46/watchfiles-1.1.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5", size = 406529, upload-time = "2025-10-14T15:04:32.899Z" }, + { url = "https://files.pythonhosted.org/packages/fe/cd/f515660b1f32f65df671ddf6f85bfaca621aee177712874dc30a97397977/watchfiles-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741", size = 394384, upload-time = "2025-10-14T15:04:33.761Z" }, + { url = "https://files.pythonhosted.org/packages/7b/c3/28b7dc99733eab43fca2d10f55c86e03bd6ab11ca31b802abac26b23d161/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6", size = 448789, upload-time = "2025-10-14T15:04:34.679Z" }, + { url = "https://files.pythonhosted.org/packages/4a/24/33e71113b320030011c8e4316ccca04194bf0cbbaeee207f00cbc7d6b9f5/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b", size = 460521, upload-time = "2025-10-14T15:04:35.963Z" }, + { url = "https://files.pythonhosted.org/packages/f4/c3/3c9a55f255aa57b91579ae9e98c88704955fa9dac3e5614fb378291155df/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14", size = 488722, upload-time = "2025-10-14T15:04:37.091Z" }, + { url = "https://files.pythonhosted.org/packages/49/36/506447b73eb46c120169dc1717fe2eff07c234bb3232a7200b5f5bd816e9/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d", size = 596088, upload-time = "2025-10-14T15:04:38.39Z" }, + { url = "https://files.pythonhosted.org/packages/82/ab/5f39e752a9838ec4d52e9b87c1e80f1ee3ccdbe92e183c15b6577ab9de16/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff", size = 472923, upload-time = "2025-10-14T15:04:39.666Z" }, + { url = "https://files.pythonhosted.org/packages/af/b9/a419292f05e302dea372fa7e6fda5178a92998411f8581b9830d28fb9edb/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606", size = 456080, upload-time = "2025-10-14T15:04:40.643Z" }, + { url = "https://files.pythonhosted.org/packages/b0/c3/d5932fd62bde1a30c36e10c409dc5d54506726f08cb3e1d8d0ba5e2bc8db/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701", size = 629432, upload-time = "2025-10-14T15:04:41.789Z" }, + { url = "https://files.pythonhosted.org/packages/f7/77/16bddd9779fafb795f1a94319dc965209c5641db5bf1edbbccace6d1b3c0/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10", size = 623046, upload-time = "2025-10-14T15:04:42.718Z" }, + { url = "https://files.pythonhosted.org/packages/46/ef/f2ecb9a0f342b4bfad13a2787155c6ee7ce792140eac63a34676a2feeef2/watchfiles-1.1.1-cp311-cp311-win32.whl", hash = "sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849", size = 271473, upload-time = "2025-10-14T15:04:43.624Z" }, + { url = "https://files.pythonhosted.org/packages/94/bc/f42d71125f19731ea435c3948cad148d31a64fccde3867e5ba4edee901f9/watchfiles-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4", size = 287598, upload-time = "2025-10-14T15:04:44.516Z" }, + { url = "https://files.pythonhosted.org/packages/57/c9/a30f897351f95bbbfb6abcadafbaca711ce1162f4db95fc908c98a9165f3/watchfiles-1.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e", size = 277210, upload-time = "2025-10-14T15:04:45.883Z" }, + { url = "https://files.pythonhosted.org/packages/74/d5/f039e7e3c639d9b1d09b07ea412a6806d38123f0508e5f9b48a87b0a76cc/watchfiles-1.1.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d", size = 404745, upload-time = "2025-10-14T15:04:46.731Z" }, + { url = "https://files.pythonhosted.org/packages/a5/96/a881a13aa1349827490dab2d363c8039527060cfcc2c92cc6d13d1b1049e/watchfiles-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610", size = 391769, upload-time = "2025-10-14T15:04:48.003Z" }, + { url = "https://files.pythonhosted.org/packages/4b/5b/d3b460364aeb8da471c1989238ea0e56bec24b6042a68046adf3d9ddb01c/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af", size = 449374, upload-time = "2025-10-14T15:04:49.179Z" }, + { url = "https://files.pythonhosted.org/packages/b9/44/5769cb62d4ed055cb17417c0a109a92f007114a4e07f30812a73a4efdb11/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6", size = 459485, upload-time = "2025-10-14T15:04:50.155Z" }, + { url = "https://files.pythonhosted.org/packages/19/0c/286b6301ded2eccd4ffd0041a1b726afda999926cf720aab63adb68a1e36/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce", size = 488813, upload-time = "2025-10-14T15:04:51.059Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2b/8530ed41112dd4a22f4dcfdb5ccf6a1baad1ff6eed8dc5a5f09e7e8c41c7/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa", size = 594816, upload-time = "2025-10-14T15:04:52.031Z" }, + { url = "https://files.pythonhosted.org/packages/ce/d2/f5f9fb49489f184f18470d4f99f4e862a4b3e9ac2865688eb2099e3d837a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb", size = 475186, upload-time = "2025-10-14T15:04:53.064Z" }, + { url = "https://files.pythonhosted.org/packages/cf/68/5707da262a119fb06fbe214d82dd1fe4a6f4af32d2d14de368d0349eb52a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803", size = 456812, upload-time = "2025-10-14T15:04:55.174Z" }, + { url = "https://files.pythonhosted.org/packages/66/ab/3cbb8756323e8f9b6f9acb9ef4ec26d42b2109bce830cc1f3468df20511d/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94", size = 630196, upload-time = "2025-10-14T15:04:56.22Z" }, + { url = "https://files.pythonhosted.org/packages/78/46/7152ec29b8335f80167928944a94955015a345440f524d2dfe63fc2f437b/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43", size = 622657, upload-time = "2025-10-14T15:04:57.521Z" }, + { url = "https://files.pythonhosted.org/packages/0a/bf/95895e78dd75efe9a7f31733607f384b42eb5feb54bd2eb6ed57cc2e94f4/watchfiles-1.1.1-cp312-cp312-win32.whl", hash = "sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9", size = 272042, upload-time = "2025-10-14T15:04:59.046Z" }, + { url = "https://files.pythonhosted.org/packages/87/0a/90eb755f568de2688cb220171c4191df932232c20946966c27a59c400850/watchfiles-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9", size = 288410, upload-time = "2025-10-14T15:05:00.081Z" }, + { url = "https://files.pythonhosted.org/packages/36/76/f322701530586922fbd6723c4f91ace21364924822a8772c549483abed13/watchfiles-1.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404", size = 278209, upload-time = "2025-10-14T15:05:01.168Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/f750b29225fe77139f7ae5de89d4949f5a99f934c65a1f1c0b248f26f747/watchfiles-1.1.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18", size = 404321, upload-time = "2025-10-14T15:05:02.063Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f9/f07a295cde762644aa4c4bb0f88921d2d141af45e735b965fb2e87858328/watchfiles-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a", size = 391783, upload-time = "2025-10-14T15:05:03.052Z" }, + { url = "https://files.pythonhosted.org/packages/bc/11/fc2502457e0bea39a5c958d86d2cb69e407a4d00b85735ca724bfa6e0d1a/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219", size = 449279, upload-time = "2025-10-14T15:05:04.004Z" }, + { url = "https://files.pythonhosted.org/packages/e3/1f/d66bc15ea0b728df3ed96a539c777acfcad0eb78555ad9efcaa1274688f0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428", size = 459405, upload-time = "2025-10-14T15:05:04.942Z" }, + { url = "https://files.pythonhosted.org/packages/be/90/9f4a65c0aec3ccf032703e6db02d89a157462fbb2cf20dd415128251cac0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0", size = 488976, upload-time = "2025-10-14T15:05:05.905Z" }, + { url = "https://files.pythonhosted.org/packages/37/57/ee347af605d867f712be7029bb94c8c071732a4b44792e3176fa3c612d39/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150", size = 595506, upload-time = "2025-10-14T15:05:06.906Z" }, + { url = "https://files.pythonhosted.org/packages/a8/78/cc5ab0b86c122047f75e8fc471c67a04dee395daf847d3e59381996c8707/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae", size = 474936, upload-time = "2025-10-14T15:05:07.906Z" }, + { url = "https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d", size = 456147, upload-time = "2025-10-14T15:05:09.138Z" }, + { url = "https://files.pythonhosted.org/packages/57/99/da6573ba71166e82d288d4df0839128004c67d2778d3b566c138695f5c0b/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b", size = 630007, upload-time = "2025-10-14T15:05:10.117Z" }, + { url = "https://files.pythonhosted.org/packages/a8/51/7439c4dd39511368849eb1e53279cd3454b4a4dbace80bab88feeb83c6b5/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374", size = 622280, upload-time = "2025-10-14T15:05:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/95/9c/8ed97d4bba5db6fdcdb2b298d3898f2dd5c20f6b73aee04eabe56c59677e/watchfiles-1.1.1-cp313-cp313-win32.whl", hash = "sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0", size = 272056, upload-time = "2025-10-14T15:05:12.156Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/c14e28429f744a260d8ceae18bf58c1d5fa56b50d006a7a9f80e1882cb0d/watchfiles-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42", size = 288162, upload-time = "2025-10-14T15:05:13.208Z" }, + { url = "https://files.pythonhosted.org/packages/dc/61/fe0e56c40d5cd29523e398d31153218718c5786b5e636d9ae8ae79453d27/watchfiles-1.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18", size = 277909, upload-time = "2025-10-14T15:05:14.49Z" }, + { url = "https://files.pythonhosted.org/packages/79/42/e0a7d749626f1e28c7108a99fb9bf524b501bbbeb9b261ceecde644d5a07/watchfiles-1.1.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da", size = 403389, upload-time = "2025-10-14T15:05:15.777Z" }, + { url = "https://files.pythonhosted.org/packages/15/49/08732f90ce0fbbc13913f9f215c689cfc9ced345fb1bcd8829a50007cc8d/watchfiles-1.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051", size = 389964, upload-time = "2025-10-14T15:05:16.85Z" }, + { url = "https://files.pythonhosted.org/packages/27/0d/7c315d4bd5f2538910491a0393c56bf70d333d51bc5b34bee8e68e8cea19/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e", size = 448114, upload-time = "2025-10-14T15:05:17.876Z" }, + { url = "https://files.pythonhosted.org/packages/c3/24/9e096de47a4d11bc4df41e9d1e61776393eac4cb6eb11b3e23315b78b2cc/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70", size = 460264, upload-time = "2025-10-14T15:05:18.962Z" }, + { url = "https://files.pythonhosted.org/packages/cc/0f/e8dea6375f1d3ba5fcb0b3583e2b493e77379834c74fd5a22d66d85d6540/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261", size = 487877, upload-time = "2025-10-14T15:05:20.094Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/df24cfc6424a12deb41503b64d42fbea6b8cb357ec62ca84a5a3476f654a/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620", size = 595176, upload-time = "2025-10-14T15:05:21.134Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b5/853b6757f7347de4e9b37e8cc3289283fb983cba1ab4d2d7144694871d9c/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04", size = 473577, upload-time = "2025-10-14T15:05:22.306Z" }, + { url = "https://files.pythonhosted.org/packages/e1/f7/0a4467be0a56e80447c8529c9fce5b38eab4f513cb3d9bf82e7392a5696b/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77", size = 455425, upload-time = "2025-10-14T15:05:23.348Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e0/82583485ea00137ddf69bc84a2db88bd92ab4a6e3c405e5fb878ead8d0e7/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef", size = 628826, upload-time = "2025-10-14T15:05:24.398Z" }, + { url = "https://files.pythonhosted.org/packages/28/9a/a785356fccf9fae84c0cc90570f11702ae9571036fb25932f1242c82191c/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf", size = 622208, upload-time = "2025-10-14T15:05:25.45Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f4/0872229324ef69b2c3edec35e84bd57a1289e7d3fe74588048ed8947a323/watchfiles-1.1.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5", size = 404315, upload-time = "2025-10-14T15:05:26.501Z" }, + { url = "https://files.pythonhosted.org/packages/7b/22/16d5331eaed1cb107b873f6ae1b69e9ced582fcf0c59a50cd84f403b1c32/watchfiles-1.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd", size = 390869, upload-time = "2025-10-14T15:05:27.649Z" }, + { url = "https://files.pythonhosted.org/packages/b2/7e/5643bfff5acb6539b18483128fdc0ef2cccc94a5b8fbda130c823e8ed636/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb", size = 449919, upload-time = "2025-10-14T15:05:28.701Z" }, + { url = "https://files.pythonhosted.org/packages/51/2e/c410993ba5025a9f9357c376f48976ef0e1b1aefb73b97a5ae01a5972755/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5", size = 460845, upload-time = "2025-10-14T15:05:30.064Z" }, + { url = "https://files.pythonhosted.org/packages/8e/a4/2df3b404469122e8680f0fcd06079317e48db58a2da2950fb45020947734/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3", size = 489027, upload-time = "2025-10-14T15:05:31.064Z" }, + { url = "https://files.pythonhosted.org/packages/ea/84/4587ba5b1f267167ee715b7f66e6382cca6938e0a4b870adad93e44747e6/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33", size = 595615, upload-time = "2025-10-14T15:05:32.074Z" }, + { url = "https://files.pythonhosted.org/packages/6a/0f/c6988c91d06e93cd0bb3d4a808bcf32375ca1904609835c3031799e3ecae/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510", size = 474836, upload-time = "2025-10-14T15:05:33.209Z" }, + { url = "https://files.pythonhosted.org/packages/b4/36/ded8aebea91919485b7bbabbd14f5f359326cb5ec218cd67074d1e426d74/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05", size = 455099, upload-time = "2025-10-14T15:05:34.189Z" }, + { url = "https://files.pythonhosted.org/packages/98/e0/8c9bdba88af756a2fce230dd365fab2baf927ba42cd47521ee7498fd5211/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6", size = 630626, upload-time = "2025-10-14T15:05:35.216Z" }, + { url = "https://files.pythonhosted.org/packages/2a/84/a95db05354bf2d19e438520d92a8ca475e578c647f78f53197f5a2f17aaf/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81", size = 622519, upload-time = "2025-10-14T15:05:36.259Z" }, + { url = "https://files.pythonhosted.org/packages/1d/ce/d8acdc8de545de995c339be67711e474c77d643555a9bb74a9334252bd55/watchfiles-1.1.1-cp314-cp314-win32.whl", hash = "sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b", size = 272078, upload-time = "2025-10-14T15:05:37.63Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c9/a74487f72d0451524be827e8edec251da0cc1fcf111646a511ae752e1a3d/watchfiles-1.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a", size = 287664, upload-time = "2025-10-14T15:05:38.95Z" }, + { url = "https://files.pythonhosted.org/packages/df/b8/8ac000702cdd496cdce998c6f4ee0ca1f15977bba51bdf07d872ebdfc34c/watchfiles-1.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02", size = 277154, upload-time = "2025-10-14T15:05:39.954Z" }, + { url = "https://files.pythonhosted.org/packages/47/a8/e3af2184707c29f0f14b1963c0aace6529f9d1b8582d5b99f31bbf42f59e/watchfiles-1.1.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21", size = 403820, upload-time = "2025-10-14T15:05:40.932Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ec/e47e307c2f4bd75f9f9e8afbe3876679b18e1bcec449beca132a1c5ffb2d/watchfiles-1.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5", size = 390510, upload-time = "2025-10-14T15:05:41.945Z" }, + { url = "https://files.pythonhosted.org/packages/d5/a0/ad235642118090f66e7b2f18fd5c42082418404a79205cdfca50b6309c13/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7", size = 448408, upload-time = "2025-10-14T15:05:43.385Z" }, + { url = "https://files.pythonhosted.org/packages/df/85/97fa10fd5ff3332ae17e7e40e20784e419e28521549780869f1413742e9d/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101", size = 458968, upload-time = "2025-10-14T15:05:44.404Z" }, + { url = "https://files.pythonhosted.org/packages/47/c2/9059c2e8966ea5ce678166617a7f75ecba6164375f3b288e50a40dc6d489/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44", size = 488096, upload-time = "2025-10-14T15:05:45.398Z" }, + { url = "https://files.pythonhosted.org/packages/94/44/d90a9ec8ac309bc26db808a13e7bfc0e4e78b6fc051078a554e132e80160/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c", size = 596040, upload-time = "2025-10-14T15:05:46.502Z" }, + { url = "https://files.pythonhosted.org/packages/95/68/4e3479b20ca305cfc561db3ed207a8a1c745ee32bf24f2026a129d0ddb6e/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc", size = 473847, upload-time = "2025-10-14T15:05:47.484Z" }, + { url = "https://files.pythonhosted.org/packages/4f/55/2af26693fd15165c4ff7857e38330e1b61ab8c37d15dc79118cdba115b7a/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c", size = 455072, upload-time = "2025-10-14T15:05:48.928Z" }, + { url = "https://files.pythonhosted.org/packages/66/1d/d0d200b10c9311ec25d2273f8aad8c3ef7cc7ea11808022501811208a750/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099", size = 629104, upload-time = "2025-10-14T15:05:49.908Z" }, + { url = "https://files.pythonhosted.org/packages/e3/bd/fa9bb053192491b3867ba07d2343d9f2252e00811567d30ae8d0f78136fe/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01", size = 622112, upload-time = "2025-10-14T15:05:50.941Z" }, + { url = "https://files.pythonhosted.org/packages/ba/4c/a888c91e2e326872fa4705095d64acd8aa2fb9c1f7b9bd0588f33850516c/watchfiles-1.1.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3", size = 409611, upload-time = "2025-10-14T15:06:05.809Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c7/5420d1943c8e3ce1a21c0a9330bcf7edafb6aa65d26b21dbb3267c9e8112/watchfiles-1.1.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2", size = 396889, upload-time = "2025-10-14T15:06:07.035Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e5/0072cef3804ce8d3aaddbfe7788aadff6b3d3f98a286fdbee9fd74ca59a7/watchfiles-1.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d", size = 451616, upload-time = "2025-10-14T15:06:08.072Z" }, + { url = "https://files.pythonhosted.org/packages/83/4e/b87b71cbdfad81ad7e83358b3e447fedd281b880a03d64a760fe0a11fc2e/watchfiles-1.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b", size = 458413, upload-time = "2025-10-14T15:06:09.209Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8e/e500f8b0b77be4ff753ac94dc06b33d8f0d839377fee1b78e8c8d8f031bf/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88", size = 408250, upload-time = "2025-10-14T15:06:10.264Z" }, + { url = "https://files.pythonhosted.org/packages/bd/95/615e72cd27b85b61eec764a5ca51bd94d40b5adea5ff47567d9ebc4d275a/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336", size = 396117, upload-time = "2025-10-14T15:06:11.28Z" }, + { url = "https://files.pythonhosted.org/packages/c9/81/e7fe958ce8a7fb5c73cc9fb07f5aeaf755e6aa72498c57d760af760c91f8/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24", size = 450493, upload-time = "2025-10-14T15:06:12.321Z" }, + { url = "https://files.pythonhosted.org/packages/6e/d4/ed38dd3b1767193de971e694aa544356e63353c33a85d948166b5ff58b9e/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49", size = 457546, upload-time = "2025-10-14T15:06:13.372Z" }, +] + +[[package]] +name = "websocket-client" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576, upload-time = "2025-10-07T21:16:36.495Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616, upload-time = "2025-10-07T21:16:34.951Z" }, +] + +[[package]] +name = "websockets" +version = "16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload-time = "2026-01-10T09:23:47.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/74/221f58decd852f4b59cc3354cccaf87e8ef695fede361d03dc9a7396573b/websockets-16.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a", size = 177343, upload-time = "2026-01-10T09:22:21.28Z" }, + { url = "https://files.pythonhosted.org/packages/19/0f/22ef6107ee52ab7f0b710d55d36f5a5d3ef19e8a205541a6d7ffa7994e5a/websockets-16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0", size = 175021, upload-time = "2026-01-10T09:22:22.696Z" }, + { url = "https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957", size = 175320, upload-time = "2026-01-10T09:22:23.94Z" }, + { url = "https://files.pythonhosted.org/packages/9d/2f/4b3ca7e106bc608744b1cdae041e005e446124bebb037b18799c2d356864/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72", size = 183815, upload-time = "2026-01-10T09:22:25.469Z" }, + { url = "https://files.pythonhosted.org/packages/86/26/d40eaa2a46d4302becec8d15b0fc5e45bdde05191e7628405a19cf491ccd/websockets-16.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde", size = 185054, upload-time = "2026-01-10T09:22:27.101Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ba/6500a0efc94f7373ee8fefa8c271acdfd4dca8bd49a90d4be7ccabfc397e/websockets-16.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3", size = 184565, upload-time = "2026-01-10T09:22:28.293Z" }, + { url = "https://files.pythonhosted.org/packages/04/b4/96bf2cee7c8d8102389374a2616200574f5f01128d1082f44102140344cc/websockets-16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3", size = 183848, upload-time = "2026-01-10T09:22:30.394Z" }, + { url = "https://files.pythonhosted.org/packages/02/8e/81f40fb00fd125357814e8c3025738fc4ffc3da4b6b4a4472a82ba304b41/websockets-16.0-cp310-cp310-win32.whl", hash = "sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9", size = 178249, upload-time = "2026-01-10T09:22:32.083Z" }, + { url = "https://files.pythonhosted.org/packages/b4/5f/7e40efe8df57db9b91c88a43690ac66f7b7aa73a11aa6a66b927e44f26fa/websockets-16.0-cp310-cp310-win_amd64.whl", hash = "sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35", size = 178685, upload-time = "2026-01-10T09:22:33.345Z" }, + { url = "https://files.pythonhosted.org/packages/f2/db/de907251b4ff46ae804ad0409809504153b3f30984daf82a1d84a9875830/websockets-16.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8", size = 177340, upload-time = "2026-01-10T09:22:34.539Z" }, + { url = "https://files.pythonhosted.org/packages/f3/fa/abe89019d8d8815c8781e90d697dec52523fb8ebe308bf11664e8de1877e/websockets-16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad", size = 175022, upload-time = "2026-01-10T09:22:36.332Z" }, + { url = "https://files.pythonhosted.org/packages/58/5d/88ea17ed1ded2079358b40d31d48abe90a73c9e5819dbcde1606e991e2ad/websockets-16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d", size = 175319, upload-time = "2026-01-10T09:22:37.602Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ae/0ee92b33087a33632f37a635e11e1d99d429d3d323329675a6022312aac2/websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe", size = 184631, upload-time = "2026-01-10T09:22:38.789Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c5/27178df583b6c5b31b29f526ba2da5e2f864ecc79c99dae630a85d68c304/websockets-16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b", size = 185870, upload-time = "2026-01-10T09:22:39.893Z" }, + { url = "https://files.pythonhosted.org/packages/87/05/536652aa84ddc1c018dbb7e2c4cbcd0db884580bf8e95aece7593fde526f/websockets-16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5", size = 185361, upload-time = "2026-01-10T09:22:41.016Z" }, + { url = "https://files.pythonhosted.org/packages/6d/e2/d5332c90da12b1e01f06fb1b85c50cfc489783076547415bf9f0a659ec19/websockets-16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64", size = 184615, upload-time = "2026-01-10T09:22:42.442Z" }, + { url = "https://files.pythonhosted.org/packages/77/fb/d3f9576691cae9253b51555f841bc6600bf0a983a461c79500ace5a5b364/websockets-16.0-cp311-cp311-win32.whl", hash = "sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6", size = 178246, upload-time = "2026-01-10T09:22:43.654Z" }, + { url = "https://files.pythonhosted.org/packages/54/67/eaff76b3dbaf18dcddabc3b8c1dba50b483761cccff67793897945b37408/websockets-16.0-cp311-cp311-win_amd64.whl", hash = "sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac", size = 178684, upload-time = "2026-01-10T09:22:44.941Z" }, + { url = "https://files.pythonhosted.org/packages/84/7b/bac442e6b96c9d25092695578dda82403c77936104b5682307bd4deb1ad4/websockets-16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00", size = 177365, upload-time = "2026-01-10T09:22:46.787Z" }, + { url = "https://files.pythonhosted.org/packages/b0/fe/136ccece61bd690d9c1f715baaeefd953bb2360134de73519d5df19d29ca/websockets-16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79", size = 175038, upload-time = "2026-01-10T09:22:47.999Z" }, + { url = "https://files.pythonhosted.org/packages/40/1e/9771421ac2286eaab95b8575b0cb701ae3663abf8b5e1f64f1fd90d0a673/websockets-16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39", size = 175328, upload-time = "2026-01-10T09:22:49.809Z" }, + { url = "https://files.pythonhosted.org/packages/18/29/71729b4671f21e1eaa5d6573031ab810ad2936c8175f03f97f3ff164c802/websockets-16.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c", size = 184915, upload-time = "2026-01-10T09:22:51.071Z" }, + { url = "https://files.pythonhosted.org/packages/97/bb/21c36b7dbbafc85d2d480cd65df02a1dc93bf76d97147605a8e27ff9409d/websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f", size = 186152, upload-time = "2026-01-10T09:22:52.224Z" }, + { url = "https://files.pythonhosted.org/packages/4a/34/9bf8df0c0cf88fa7bfe36678dc7b02970c9a7d5e065a3099292db87b1be2/websockets-16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1", size = 185583, upload-time = "2026-01-10T09:22:53.443Z" }, + { url = "https://files.pythonhosted.org/packages/47/88/4dd516068e1a3d6ab3c7c183288404cd424a9a02d585efbac226cb61ff2d/websockets-16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2", size = 184880, upload-time = "2026-01-10T09:22:55.033Z" }, + { url = "https://files.pythonhosted.org/packages/91/d6/7d4553ad4bf1c0421e1ebd4b18de5d9098383b5caa1d937b63df8d04b565/websockets-16.0-cp312-cp312-win32.whl", hash = "sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89", size = 178261, upload-time = "2026-01-10T09:22:56.251Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f0/f3a17365441ed1c27f850a80b2bc680a0fa9505d733fe152fdf5e98c1c0b/websockets-16.0-cp312-cp312-win_amd64.whl", hash = "sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea", size = 178693, upload-time = "2026-01-10T09:22:57.478Z" }, + { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364, upload-time = "2026-01-10T09:22:59.333Z" }, + { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039, upload-time = "2026-01-10T09:23:01.171Z" }, + { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323, upload-time = "2026-01-10T09:23:02.341Z" }, + { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975, upload-time = "2026-01-10T09:23:03.756Z" }, + { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203, upload-time = "2026-01-10T09:23:05.01Z" }, + { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653, upload-time = "2026-01-10T09:23:06.301Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920, upload-time = "2026-01-10T09:23:07.492Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255, upload-time = "2026-01-10T09:23:09.245Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689, upload-time = "2026-01-10T09:23:10.483Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1d/e88022630271f5bd349ed82417136281931e558d628dd52c4d8621b4a0b2/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", size = 177406, upload-time = "2026-01-10T09:23:12.178Z" }, + { url = "https://files.pythonhosted.org/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904", size = 175085, upload-time = "2026-01-10T09:23:13.511Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4", size = 175328, upload-time = "2026-01-10T09:23:14.727Z" }, + { url = "https://files.pythonhosted.org/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e", size = 185044, upload-time = "2026-01-10T09:23:15.939Z" }, + { url = "https://files.pythonhosted.org/packages/ad/6e/9a0927ac24bd33a0a9af834d89e0abc7cfd8e13bed17a86407a66773cc0e/websockets-16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4", size = 186279, upload-time = "2026-01-10T09:23:17.148Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ca/bf1c68440d7a868180e11be653c85959502efd3a709323230314fda6e0b3/websockets-16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1", size = 185711, upload-time = "2026-01-10T09:23:18.372Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f8/fdc34643a989561f217bb477cbc47a3a07212cbda91c0e4389c43c296ebf/websockets-16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3", size = 184982, upload-time = "2026-01-10T09:23:19.652Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d1/574fa27e233764dbac9c52730d63fcf2823b16f0856b3329fc6268d6ae4f/websockets-16.0-cp314-cp314-win32.whl", hash = "sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8", size = 177915, upload-time = "2026-01-10T09:23:21.458Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f1/ae6b937bf3126b5134ce1f482365fde31a357c784ac51852978768b5eff4/websockets-16.0-cp314-cp314-win_amd64.whl", hash = "sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d", size = 178381, upload-time = "2026-01-10T09:23:22.715Z" }, + { url = "https://files.pythonhosted.org/packages/06/9b/f791d1db48403e1f0a27577a6beb37afae94254a8c6f08be4a23e4930bc0/websockets-16.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244", size = 177737, upload-time = "2026-01-10T09:23:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/bd/40/53ad02341fa33b3ce489023f635367a4ac98b73570102ad2cdd770dacc9a/websockets-16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e", size = 175268, upload-time = "2026-01-10T09:23:25.781Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/6158d4e459b984f949dcbbb0c5d270154c7618e11c01029b9bbd1bb4c4f9/websockets-16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641", size = 175486, upload-time = "2026-01-10T09:23:27.033Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2d/7583b30208b639c8090206f95073646c2c9ffd66f44df967981a64f849ad/websockets-16.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8", size = 185331, upload-time = "2026-01-10T09:23:28.259Z" }, + { url = "https://files.pythonhosted.org/packages/45/b0/cce3784eb519b7b5ad680d14b9673a31ab8dcb7aad8b64d81709d2430aa8/websockets-16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e", size = 186501, upload-time = "2026-01-10T09:23:29.449Z" }, + { url = "https://files.pythonhosted.org/packages/19/60/b8ebe4c7e89fb5f6cdf080623c9d92789a53636950f7abacfc33fe2b3135/websockets-16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944", size = 186062, upload-time = "2026-01-10T09:23:31.368Z" }, + { url = "https://files.pythonhosted.org/packages/88/a8/a080593f89b0138b6cba1b28f8df5673b5506f72879322288b031337c0b8/websockets-16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206", size = 185356, upload-time = "2026-01-10T09:23:32.627Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b6/b9afed2afadddaf5ebb2afa801abf4b0868f42f8539bfe4b071b5266c9fe/websockets-16.0-cp314-cp314t-win32.whl", hash = "sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6", size = 178085, upload-time = "2026-01-10T09:23:33.816Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3e/28135a24e384493fa804216b79a6a6759a38cc4ff59118787b9fb693df93/websockets-16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd", size = 178531, upload-time = "2026-01-10T09:23:35.016Z" }, + { url = "https://files.pythonhosted.org/packages/72/07/c98a68571dcf256e74f1f816b8cc5eae6eb2d3d5cfa44d37f801619d9166/websockets-16.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d", size = 174947, upload-time = "2026-01-10T09:23:36.166Z" }, + { url = "https://files.pythonhosted.org/packages/7e/52/93e166a81e0305b33fe416338be92ae863563fe7bce446b0f687b9df5aea/websockets-16.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03", size = 175260, upload-time = "2026-01-10T09:23:37.409Z" }, + { url = "https://files.pythonhosted.org/packages/56/0c/2dbf513bafd24889d33de2ff0368190a0e69f37bcfa19009ef819fe4d507/websockets-16.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da", size = 176071, upload-time = "2026-01-10T09:23:39.158Z" }, + { url = "https://files.pythonhosted.org/packages/a5/8f/aea9c71cc92bf9b6cc0f7f70df8f0b420636b6c96ef4feee1e16f80f75dd/websockets-16.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c", size = 176968, upload-time = "2026-01-10T09:23:41.031Z" }, + { url = "https://files.pythonhosted.org/packages/9a/3f/f70e03f40ffc9a30d817eef7da1be72ee4956ba8d7255c399a01b135902a/websockets-16.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767", size = 178735, upload-time = "2026-01-10T09:23:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload-time = "2026-01-10T09:23:45.395Z" }, +] + +[[package]] +name = "xxhash" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz", hash = "sha256:f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6", size = 85160, upload-time = "2025-10-02T14:37:08.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/ee/f9f1d656ad168681bb0f6b092372c1e533c4416b8069b1896a175c46e484/xxhash-3.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:87ff03d7e35c61435976554477a7f4cd1704c3596a89a8300d5ce7fc83874a71", size = 32845, upload-time = "2025-10-02T14:33:51.573Z" }, + { url = "https://files.pythonhosted.org/packages/a3/b1/93508d9460b292c74a09b83d16750c52a0ead89c51eea9951cb97a60d959/xxhash-3.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f572dfd3d0e2eb1a57511831cf6341242f5a9f8298a45862d085f5b93394a27d", size = 30807, upload-time = "2025-10-02T14:33:52.964Z" }, + { url = "https://files.pythonhosted.org/packages/07/55/28c93a3662f2d200c70704efe74aab9640e824f8ce330d8d3943bf7c9b3c/xxhash-3.6.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:89952ea539566b9fed2bbd94e589672794b4286f342254fad28b149f9615fef8", size = 193786, upload-time = "2025-10-02T14:33:54.272Z" }, + { url = "https://files.pythonhosted.org/packages/c1/96/fec0be9bb4b8f5d9c57d76380a366f31a1781fb802f76fc7cda6c84893c7/xxhash-3.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48e6f2ffb07a50b52465a1032c3cf1f4a5683f944acaca8a134a2f23674c2058", size = 212830, upload-time = "2025-10-02T14:33:55.706Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a0/c706845ba77b9611f81fd2e93fad9859346b026e8445e76f8c6fd057cc6d/xxhash-3.6.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b5b848ad6c16d308c3ac7ad4ba6bede80ed5df2ba8ed382f8932df63158dd4b2", size = 211606, upload-time = "2025-10-02T14:33:57.133Z" }, + { url = "https://files.pythonhosted.org/packages/67/1e/164126a2999e5045f04a69257eea946c0dc3e86541b400d4385d646b53d7/xxhash-3.6.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a034590a727b44dd8ac5914236a7b8504144447a9682586c3327e935f33ec8cc", size = 444872, upload-time = "2025-10-02T14:33:58.446Z" }, + { url = "https://files.pythonhosted.org/packages/2d/4b/55ab404c56cd70a2cf5ecfe484838865d0fea5627365c6c8ca156bd09c8f/xxhash-3.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a8f1972e75ebdd161d7896743122834fe87378160c20e97f8b09166213bf8cc", size = 193217, upload-time = "2025-10-02T14:33:59.724Z" }, + { url = "https://files.pythonhosted.org/packages/45/e6/52abf06bac316db33aa269091ae7311bd53cfc6f4b120ae77bac1b348091/xxhash-3.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ee34327b187f002a596d7b167ebc59a1b729e963ce645964bbc050d2f1b73d07", size = 210139, upload-time = "2025-10-02T14:34:02.041Z" }, + { url = "https://files.pythonhosted.org/packages/34/37/db94d490b8691236d356bc249c08819cbcef9273a1a30acf1254ff9ce157/xxhash-3.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:339f518c3c7a850dd033ab416ea25a692759dc7478a71131fe8869010d2b75e4", size = 197669, upload-time = "2025-10-02T14:34:03.664Z" }, + { url = "https://files.pythonhosted.org/packages/b7/36/c4f219ef4a17a4f7a64ed3569bc2b5a9c8311abdb22249ac96093625b1a4/xxhash-3.6.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:bf48889c9630542d4709192578aebbd836177c9f7a4a2778a7d6340107c65f06", size = 210018, upload-time = "2025-10-02T14:34:05.325Z" }, + { url = "https://files.pythonhosted.org/packages/fd/06/bfac889a374fc2fc439a69223d1750eed2e18a7db8514737ab630534fa08/xxhash-3.6.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:5576b002a56207f640636056b4160a378fe36a58db73ae5c27a7ec8db35f71d4", size = 413058, upload-time = "2025-10-02T14:34:06.925Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d1/555d8447e0dd32ad0930a249a522bb2e289f0d08b6b16204cfa42c1f5a0c/xxhash-3.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af1f3278bd02814d6dedc5dec397993b549d6f16c19379721e5a1d31e132c49b", size = 190628, upload-time = "2025-10-02T14:34:08.669Z" }, + { url = "https://files.pythonhosted.org/packages/d1/15/8751330b5186cedc4ed4b597989882ea05e0408b53fa47bcb46a6125bfc6/xxhash-3.6.0-cp310-cp310-win32.whl", hash = "sha256:aed058764db109dc9052720da65fafe84873b05eb8b07e5e653597951af57c3b", size = 30577, upload-time = "2025-10-02T14:34:10.234Z" }, + { url = "https://files.pythonhosted.org/packages/bb/cc/53f87e8b5871a6eb2ff7e89c48c66093bda2be52315a8161ddc54ea550c4/xxhash-3.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:e82da5670f2d0d98950317f82a0e4a0197150ff19a6df2ba40399c2a3b9ae5fb", size = 31487, upload-time = "2025-10-02T14:34:11.618Z" }, + { url = "https://files.pythonhosted.org/packages/9f/00/60f9ea3bb697667a14314d7269956f58bf56bb73864f8f8d52a3c2535e9a/xxhash-3.6.0-cp310-cp310-win_arm64.whl", hash = "sha256:4a082ffff8c6ac07707fb6b671caf7c6e020c75226c561830b73d862060f281d", size = 27863, upload-time = "2025-10-02T14:34:12.619Z" }, + { url = "https://files.pythonhosted.org/packages/17/d4/cc2f0400e9154df4b9964249da78ebd72f318e35ccc425e9f403c392f22a/xxhash-3.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b47bbd8cf2d72797f3c2772eaaac0ded3d3af26481a26d7d7d41dc2d3c46b04a", size = 32844, upload-time = "2025-10-02T14:34:14.037Z" }, + { url = "https://files.pythonhosted.org/packages/5e/ec/1cc11cd13e26ea8bc3cb4af4eaadd8d46d5014aebb67be3f71fb0b68802a/xxhash-3.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2b6821e94346f96db75abaa6e255706fb06ebd530899ed76d32cd99f20dc52fa", size = 30809, upload-time = "2025-10-02T14:34:15.484Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/19fe357ea348d98ca22f456f75a30ac0916b51c753e1f8b2e0e6fb884cce/xxhash-3.6.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d0a9751f71a1a65ce3584e9cae4467651c7e70c9d31017fa57574583a4540248", size = 194665, upload-time = "2025-10-02T14:34:16.541Z" }, + { url = "https://files.pythonhosted.org/packages/90/3b/d1f1a8f5442a5fd8beedae110c5af7604dc37349a8e16519c13c19a9a2de/xxhash-3.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b29ee68625ab37b04c0b40c3fafdf24d2f75ccd778333cfb698f65f6c463f62", size = 213550, upload-time = "2025-10-02T14:34:17.878Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ef/3a9b05eb527457d5db13a135a2ae1a26c80fecd624d20f3e8dcc4cb170f3/xxhash-3.6.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6812c25fe0d6c36a46ccb002f40f27ac903bf18af9f6dd8f9669cb4d176ab18f", size = 212384, upload-time = "2025-10-02T14:34:19.182Z" }, + { url = "https://files.pythonhosted.org/packages/0f/18/ccc194ee698c6c623acbf0f8c2969811a8a4b6185af5e824cd27b9e4fd3e/xxhash-3.6.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4ccbff013972390b51a18ef1255ef5ac125c92dc9143b2d1909f59abc765540e", size = 445749, upload-time = "2025-10-02T14:34:20.659Z" }, + { url = "https://files.pythonhosted.org/packages/a5/86/cf2c0321dc3940a7aa73076f4fd677a0fb3e405cb297ead7d864fd90847e/xxhash-3.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:297b7fbf86c82c550e12e8fb71968b3f033d27b874276ba3624ea868c11165a8", size = 193880, upload-time = "2025-10-02T14:34:22.431Z" }, + { url = "https://files.pythonhosted.org/packages/82/fb/96213c8560e6f948a1ecc9a7613f8032b19ee45f747f4fca4eb31bb6d6ed/xxhash-3.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dea26ae1eb293db089798d3973a5fc928a18fdd97cc8801226fae705b02b14b0", size = 210912, upload-time = "2025-10-02T14:34:23.937Z" }, + { url = "https://files.pythonhosted.org/packages/40/aa/4395e669b0606a096d6788f40dbdf2b819d6773aa290c19e6e83cbfc312f/xxhash-3.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7a0b169aafb98f4284f73635a8e93f0735f9cbde17bd5ec332480484241aaa77", size = 198654, upload-time = "2025-10-02T14:34:25.644Z" }, + { url = "https://files.pythonhosted.org/packages/67/74/b044fcd6b3d89e9b1b665924d85d3f400636c23590226feb1eb09e1176ce/xxhash-3.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:08d45aef063a4531b785cd72de4887766d01dc8f362a515693df349fdb825e0c", size = 210867, upload-time = "2025-10-02T14:34:27.203Z" }, + { url = "https://files.pythonhosted.org/packages/bc/fd/3ce73bf753b08cb19daee1eb14aa0d7fe331f8da9c02dd95316ddfe5275e/xxhash-3.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:929142361a48ee07f09121fe9e96a84950e8d4df3bb298ca5d88061969f34d7b", size = 414012, upload-time = "2025-10-02T14:34:28.409Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b3/5a4241309217c5c876f156b10778f3ab3af7ba7e3259e6d5f5c7d0129eb2/xxhash-3.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:51312c768403d8540487dbbfb557454cfc55589bbde6424456951f7fcd4facb3", size = 191409, upload-time = "2025-10-02T14:34:29.696Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/99bfbc15fb9abb9a72b088c1d95219fc4782b7d01fc835bd5744d66dd0b8/xxhash-3.6.0-cp311-cp311-win32.whl", hash = "sha256:d1927a69feddc24c987b337ce81ac15c4720955b667fe9b588e02254b80446fd", size = 30574, upload-time = "2025-10-02T14:34:31.028Z" }, + { url = "https://files.pythonhosted.org/packages/65/79/9d24d7f53819fe301b231044ea362ce64e86c74f6e8c8e51320de248b3e5/xxhash-3.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:26734cdc2d4ffe449b41d186bbeac416f704a482ed835d375a5c0cb02bc63fef", size = 31481, upload-time = "2025-10-02T14:34:32.062Z" }, + { url = "https://files.pythonhosted.org/packages/30/4e/15cd0e3e8772071344eab2961ce83f6e485111fed8beb491a3f1ce100270/xxhash-3.6.0-cp311-cp311-win_arm64.whl", hash = "sha256:d72f67ef8bf36e05f5b6c65e8524f265bd61071471cd4cf1d36743ebeeeb06b7", size = 27861, upload-time = "2025-10-02T14:34:33.555Z" }, + { url = "https://files.pythonhosted.org/packages/9a/07/d9412f3d7d462347e4511181dea65e47e0d0e16e26fbee2ea86a2aefb657/xxhash-3.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:01362c4331775398e7bb34e3ab403bc9ee9f7c497bc7dee6272114055277dd3c", size = 32744, upload-time = "2025-10-02T14:34:34.622Z" }, + { url = "https://files.pythonhosted.org/packages/79/35/0429ee11d035fc33abe32dca1b2b69e8c18d236547b9a9b72c1929189b9a/xxhash-3.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b7b2df81a23f8cb99656378e72501b2cb41b1827c0f5a86f87d6b06b69f9f204", size = 30816, upload-time = "2025-10-02T14:34:36.043Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f2/57eb99aa0f7d98624c0932c5b9a170e1806406cdbcdb510546634a1359e0/xxhash-3.6.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dc94790144e66b14f67b10ac8ed75b39ca47536bf8800eb7c24b50271ea0c490", size = 194035, upload-time = "2025-10-02T14:34:37.354Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ed/6224ba353690d73af7a3f1c7cdb1fc1b002e38f783cb991ae338e1eb3d79/xxhash-3.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93f107c673bccf0d592cdba077dedaf52fe7f42dcd7676eba1f6d6f0c3efffd2", size = 212914, upload-time = "2025-10-02T14:34:38.6Z" }, + { url = "https://files.pythonhosted.org/packages/38/86/fb6b6130d8dd6b8942cc17ab4d90e223653a89aa32ad2776f8af7064ed13/xxhash-3.6.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aa5ee3444c25b69813663c9f8067dcfaa2e126dc55e8dddf40f4d1c25d7effa", size = 212163, upload-time = "2025-10-02T14:34:39.872Z" }, + { url = "https://files.pythonhosted.org/packages/ee/dc/e84875682b0593e884ad73b2d40767b5790d417bde603cceb6878901d647/xxhash-3.6.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7f99123f0e1194fa59cc69ad46dbae2e07becec5df50a0509a808f90a0f03f0", size = 445411, upload-time = "2025-10-02T14:34:41.569Z" }, + { url = "https://files.pythonhosted.org/packages/11/4f/426f91b96701ec2f37bb2b8cec664eff4f658a11f3fa9d94f0a887ea6d2b/xxhash-3.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49e03e6fe2cac4a1bc64952dd250cf0dbc5ef4ebb7b8d96bce82e2de163c82a2", size = 193883, upload-time = "2025-10-02T14:34:43.249Z" }, + { url = "https://files.pythonhosted.org/packages/53/5a/ddbb83eee8e28b778eacfc5a85c969673e4023cdeedcfcef61f36731610b/xxhash-3.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bd17fede52a17a4f9a7bc4472a5867cb0b160deeb431795c0e4abe158bc784e9", size = 210392, upload-time = "2025-10-02T14:34:45.042Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c2/ff69efd07c8c074ccdf0a4f36fcdd3d27363665bcdf4ba399abebe643465/xxhash-3.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6fb5f5476bef678f69db04f2bd1efbed3030d2aba305b0fc1773645f187d6a4e", size = 197898, upload-time = "2025-10-02T14:34:46.302Z" }, + { url = "https://files.pythonhosted.org/packages/58/ca/faa05ac19b3b622c7c9317ac3e23954187516298a091eb02c976d0d3dd45/xxhash-3.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:843b52f6d88071f87eba1631b684fcb4b2068cd2180a0224122fe4ef011a9374", size = 210655, upload-time = "2025-10-02T14:34:47.571Z" }, + { url = "https://files.pythonhosted.org/packages/d4/7a/06aa7482345480cc0cb597f5c875b11a82c3953f534394f620b0be2f700c/xxhash-3.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d14a6cfaf03b1b6f5f9790f76880601ccc7896aff7ab9cd8978a939c1eb7e0d", size = 414001, upload-time = "2025-10-02T14:34:49.273Z" }, + { url = "https://files.pythonhosted.org/packages/23/07/63ffb386cd47029aa2916b3d2f454e6cc5b9f5c5ada3790377d5430084e7/xxhash-3.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:418daf3db71e1413cfe211c2f9a528456936645c17f46b5204705581a45390ae", size = 191431, upload-time = "2025-10-02T14:34:50.798Z" }, + { url = "https://files.pythonhosted.org/packages/0f/93/14fde614cadb4ddf5e7cebf8918b7e8fac5ae7861c1875964f17e678205c/xxhash-3.6.0-cp312-cp312-win32.whl", hash = "sha256:50fc255f39428a27299c20e280d6193d8b63b8ef8028995323bf834a026b4fbb", size = 30617, upload-time = "2025-10-02T14:34:51.954Z" }, + { url = "https://files.pythonhosted.org/packages/13/5d/0d125536cbe7565a83d06e43783389ecae0c0f2ed037b48ede185de477c0/xxhash-3.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0f2ab8c715630565ab8991b536ecded9416d615538be8ecddce43ccf26cbc7c", size = 31534, upload-time = "2025-10-02T14:34:53.276Z" }, + { url = "https://files.pythonhosted.org/packages/54/85/6ec269b0952ec7e36ba019125982cf11d91256a778c7c3f98a4c5043d283/xxhash-3.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:eae5c13f3bc455a3bbb68bdc513912dc7356de7e2280363ea235f71f54064829", size = 27876, upload-time = "2025-10-02T14:34:54.371Z" }, + { url = "https://files.pythonhosted.org/packages/33/76/35d05267ac82f53ae9b0e554da7c5e281ee61f3cad44c743f0fcd354f211/xxhash-3.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:599e64ba7f67472481ceb6ee80fa3bd828fd61ba59fb11475572cc5ee52b89ec", size = 32738, upload-time = "2025-10-02T14:34:55.839Z" }, + { url = "https://files.pythonhosted.org/packages/31/a8/3fbce1cd96534a95e35d5120637bf29b0d7f5d8fa2f6374e31b4156dd419/xxhash-3.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d8b8aaa30fca4f16f0c84a5c8d7ddee0e25250ec2796c973775373257dde8f1", size = 30821, upload-time = "2025-10-02T14:34:57.219Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ea/d387530ca7ecfa183cb358027f1833297c6ac6098223fd14f9782cd0015c/xxhash-3.6.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d597acf8506d6e7101a4a44a5e428977a51c0fadbbfd3c39650cca9253f6e5a6", size = 194127, upload-time = "2025-10-02T14:34:59.21Z" }, + { url = "https://files.pythonhosted.org/packages/ba/0c/71435dcb99874b09a43b8d7c54071e600a7481e42b3e3ce1eb5226a5711a/xxhash-3.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:858dc935963a33bc33490128edc1c12b0c14d9c7ebaa4e387a7869ecc4f3e263", size = 212975, upload-time = "2025-10-02T14:35:00.816Z" }, + { url = "https://files.pythonhosted.org/packages/84/7a/c2b3d071e4bb4a90b7057228a99b10d51744878f4a8a6dd643c8bd897620/xxhash-3.6.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba284920194615cb8edf73bf52236ce2e1664ccd4a38fdb543506413529cc546", size = 212241, upload-time = "2025-10-02T14:35:02.207Z" }, + { url = "https://files.pythonhosted.org/packages/81/5f/640b6eac0128e215f177df99eadcd0f1b7c42c274ab6a394a05059694c5a/xxhash-3.6.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b54219177f6c6674d5378bd862c6aedf64725f70dd29c472eaae154df1a2e89", size = 445471, upload-time = "2025-10-02T14:35:03.61Z" }, + { url = "https://files.pythonhosted.org/packages/5e/1e/3c3d3ef071b051cc3abbe3721ffb8365033a172613c04af2da89d5548a87/xxhash-3.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42c36dd7dbad2f5238950c377fcbf6811b1cdb1c444fab447960030cea60504d", size = 193936, upload-time = "2025-10-02T14:35:05.013Z" }, + { url = "https://files.pythonhosted.org/packages/2c/bd/4a5f68381939219abfe1c22a9e3a5854a4f6f6f3c4983a87d255f21f2e5d/xxhash-3.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f22927652cba98c44639ffdc7aaf35828dccf679b10b31c4ad72a5b530a18eb7", size = 210440, upload-time = "2025-10-02T14:35:06.239Z" }, + { url = "https://files.pythonhosted.org/packages/eb/37/b80fe3d5cfb9faff01a02121a0f4d565eb7237e9e5fc66e73017e74dcd36/xxhash-3.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b45fad44d9c5c119e9c6fbf2e1c656a46dc68e280275007bbfd3d572b21426db", size = 197990, upload-time = "2025-10-02T14:35:07.735Z" }, + { url = "https://files.pythonhosted.org/packages/d7/fd/2c0a00c97b9e18f72e1f240ad4e8f8a90fd9d408289ba9c7c495ed7dc05c/xxhash-3.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6f2580ffab1a8b68ef2b901cde7e55fa8da5e4be0977c68f78fc80f3c143de42", size = 210689, upload-time = "2025-10-02T14:35:09.438Z" }, + { url = "https://files.pythonhosted.org/packages/93/86/5dd8076a926b9a95db3206aba20d89a7fc14dd5aac16e5c4de4b56033140/xxhash-3.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40c391dd3cd041ebc3ffe6f2c862f402e306eb571422e0aa918d8070ba31da11", size = 414068, upload-time = "2025-10-02T14:35:11.162Z" }, + { url = "https://files.pythonhosted.org/packages/af/3c/0bb129170ee8f3650f08e993baee550a09593462a5cddd8e44d0011102b1/xxhash-3.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f205badabde7aafd1a31e8ca2a3e5a763107a71c397c4481d6a804eb5063d8bd", size = 191495, upload-time = "2025-10-02T14:35:12.971Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3a/6797e0114c21d1725e2577508e24006fd7ff1d8c0c502d3b52e45c1771d8/xxhash-3.6.0-cp313-cp313-win32.whl", hash = "sha256:2577b276e060b73b73a53042ea5bd5203d3e6347ce0d09f98500f418a9fcf799", size = 30620, upload-time = "2025-10-02T14:35:14.129Z" }, + { url = "https://files.pythonhosted.org/packages/86/15/9bc32671e9a38b413a76d24722a2bf8784a132c043063a8f5152d390b0f9/xxhash-3.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:757320d45d2fbcce8f30c42a6b2f47862967aea7bf458b9625b4bbe7ee390392", size = 31542, upload-time = "2025-10-02T14:35:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/39/c5/cc01e4f6188656e56112d6a8e0dfe298a16934b8c47a247236549a3f7695/xxhash-3.6.0-cp313-cp313-win_arm64.whl", hash = "sha256:457b8f85dec5825eed7b69c11ae86834a018b8e3df5e77783c999663da2f96d6", size = 27880, upload-time = "2025-10-02T14:35:16.315Z" }, + { url = "https://files.pythonhosted.org/packages/f3/30/25e5321c8732759e930c555176d37e24ab84365482d257c3b16362235212/xxhash-3.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a42e633d75cdad6d625434e3468126c73f13f7584545a9cf34e883aa1710e702", size = 32956, upload-time = "2025-10-02T14:35:17.413Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3c/0573299560d7d9f8ab1838f1efc021a280b5ae5ae2e849034ef3dee18810/xxhash-3.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:568a6d743219e717b07b4e03b0a828ce593833e498c3b64752e0f5df6bfe84db", size = 31072, upload-time = "2025-10-02T14:35:18.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1c/52d83a06e417cd9d4137722693424885cc9878249beb3a7c829e74bf7ce9/xxhash-3.6.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bec91b562d8012dae276af8025a55811b875baace6af510412a5e58e3121bc54", size = 196409, upload-time = "2025-10-02T14:35:20.31Z" }, + { url = "https://files.pythonhosted.org/packages/e3/8e/c6d158d12a79bbd0b878f8355432075fc82759e356ab5a111463422a239b/xxhash-3.6.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78e7f2f4c521c30ad5e786fdd6bae89d47a32672a80195467b5de0480aa97b1f", size = 215736, upload-time = "2025-10-02T14:35:21.616Z" }, + { url = "https://files.pythonhosted.org/packages/bc/68/c4c80614716345d55071a396cf03d06e34b5f4917a467faf43083c995155/xxhash-3.6.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3ed0df1b11a79856df5ffcab572cbd6b9627034c1c748c5566fa79df9048a7c5", size = 214833, upload-time = "2025-10-02T14:35:23.32Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e9/ae27c8ffec8b953efa84c7c4a6c6802c263d587b9fc0d6e7cea64e08c3af/xxhash-3.6.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0e4edbfc7d420925b0dd5e792478ed393d6e75ff8fc219a6546fb446b6a417b1", size = 448348, upload-time = "2025-10-02T14:35:25.111Z" }, + { url = "https://files.pythonhosted.org/packages/d7/6b/33e21afb1b5b3f46b74b6bd1913639066af218d704cc0941404ca717fc57/xxhash-3.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fba27a198363a7ef87f8c0f6b171ec36b674fe9053742c58dd7e3201c1ab30ee", size = 196070, upload-time = "2025-10-02T14:35:26.586Z" }, + { url = "https://files.pythonhosted.org/packages/96/b6/fcabd337bc5fa624e7203aa0fa7d0c49eed22f72e93229431752bddc83d9/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:794fe9145fe60191c6532fa95063765529770edcdd67b3d537793e8004cabbfd", size = 212907, upload-time = "2025-10-02T14:35:28.087Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d3/9ee6160e644d660fcf176c5825e61411c7f62648728f69c79ba237250143/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:6105ef7e62b5ac73a837778efc331a591d8442f8ef5c7e102376506cb4ae2729", size = 200839, upload-time = "2025-10-02T14:35:29.857Z" }, + { url = "https://files.pythonhosted.org/packages/0d/98/e8de5baa5109394baf5118f5e72ab21a86387c4f89b0e77ef3e2f6b0327b/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f01375c0e55395b814a679b3eea205db7919ac2af213f4a6682e01220e5fe292", size = 213304, upload-time = "2025-10-02T14:35:31.222Z" }, + { url = "https://files.pythonhosted.org/packages/7b/1d/71056535dec5c3177eeb53e38e3d367dd1d16e024e63b1cee208d572a033/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:d706dca2d24d834a4661619dcacf51a75c16d65985718d6a7d73c1eeeb903ddf", size = 416930, upload-time = "2025-10-02T14:35:32.517Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6c/5cbde9de2cd967c322e651c65c543700b19e7ae3e0aae8ece3469bf9683d/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f059d9faeacd49c0215d66f4056e1326c80503f51a1532ca336a385edadd033", size = 193787, upload-time = "2025-10-02T14:35:33.827Z" }, + { url = "https://files.pythonhosted.org/packages/19/fa/0172e350361d61febcea941b0cc541d6e6c8d65d153e85f850a7b256ff8a/xxhash-3.6.0-cp313-cp313t-win32.whl", hash = "sha256:1244460adc3a9be84731d72b8e80625788e5815b68da3da8b83f78115a40a7ec", size = 30916, upload-time = "2025-10-02T14:35:35.107Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e6/e8cf858a2b19d6d45820f072eff1bea413910592ff17157cabc5f1227a16/xxhash-3.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b1e420ef35c503869c4064f4a2f2b08ad6431ab7b229a05cce39d74268bca6b8", size = 31799, upload-time = "2025-10-02T14:35:36.165Z" }, + { url = "https://files.pythonhosted.org/packages/56/15/064b197e855bfb7b343210e82490ae672f8bc7cdf3ddb02e92f64304ee8a/xxhash-3.6.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ec44b73a4220623235f67a996c862049f375df3b1052d9899f40a6382c32d746", size = 28044, upload-time = "2025-10-02T14:35:37.195Z" }, + { url = "https://files.pythonhosted.org/packages/7e/5e/0138bc4484ea9b897864d59fce9be9086030825bc778b76cb5a33a906d37/xxhash-3.6.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a40a3d35b204b7cc7643cbcf8c9976d818cb47befcfac8bbefec8038ac363f3e", size = 32754, upload-time = "2025-10-02T14:35:38.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/d7/5dac2eb2ec75fd771957a13e5dda560efb2176d5203f39502a5fc571f899/xxhash-3.6.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a54844be970d3fc22630b32d515e79a90d0a3ddb2644d8d7402e3c4c8da61405", size = 30846, upload-time = "2025-10-02T14:35:39.6Z" }, + { url = "https://files.pythonhosted.org/packages/fe/71/8bc5be2bb00deb5682e92e8da955ebe5fa982da13a69da5a40a4c8db12fb/xxhash-3.6.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:016e9190af8f0a4e3741343777710e3d5717427f175adfdc3e72508f59e2a7f3", size = 194343, upload-time = "2025-10-02T14:35:40.69Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3b/52badfb2aecec2c377ddf1ae75f55db3ba2d321c5e164f14461c90837ef3/xxhash-3.6.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f6f72232f849eb9d0141e2ebe2677ece15adfd0fa599bc058aad83c714bb2c6", size = 213074, upload-time = "2025-10-02T14:35:42.29Z" }, + { url = "https://files.pythonhosted.org/packages/a2/2b/ae46b4e9b92e537fa30d03dbc19cdae57ed407e9c26d163895e968e3de85/xxhash-3.6.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:63275a8aba7865e44b1813d2177e0f5ea7eadad3dd063a21f7cf9afdc7054063", size = 212388, upload-time = "2025-10-02T14:35:43.929Z" }, + { url = "https://files.pythonhosted.org/packages/f5/80/49f88d3afc724b4ac7fbd664c8452d6db51b49915be48c6982659e0e7942/xxhash-3.6.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cd01fa2aa00d8b017c97eb46b9a794fbdca53fc14f845f5a328c71254b0abb7", size = 445614, upload-time = "2025-10-02T14:35:45.216Z" }, + { url = "https://files.pythonhosted.org/packages/ed/ba/603ce3961e339413543d8cd44f21f2c80e2a7c5cfe692a7b1f2cccf58f3c/xxhash-3.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0226aa89035b62b6a86d3c68df4d7c1f47a342b8683da2b60cedcddb46c4d95b", size = 194024, upload-time = "2025-10-02T14:35:46.959Z" }, + { url = "https://files.pythonhosted.org/packages/78/d1/8e225ff7113bf81545cfdcd79eef124a7b7064a0bba53605ff39590b95c2/xxhash-3.6.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c6e193e9f56e4ca4923c61238cdaced324f0feac782544eb4c6d55ad5cc99ddd", size = 210541, upload-time = "2025-10-02T14:35:48.301Z" }, + { url = "https://files.pythonhosted.org/packages/6f/58/0f89d149f0bad89def1a8dd38feb50ccdeb643d9797ec84707091d4cb494/xxhash-3.6.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9176dcaddf4ca963d4deb93866d739a343c01c969231dbe21680e13a5d1a5bf0", size = 198305, upload-time = "2025-10-02T14:35:49.584Z" }, + { url = "https://files.pythonhosted.org/packages/11/38/5eab81580703c4df93feb5f32ff8fa7fe1e2c51c1f183ee4e48d4bb9d3d7/xxhash-3.6.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c1ce4009c97a752e682b897aa99aef84191077a9433eb237774689f14f8ec152", size = 210848, upload-time = "2025-10-02T14:35:50.877Z" }, + { url = "https://files.pythonhosted.org/packages/5e/6b/953dc4b05c3ce678abca756416e4c130d2382f877a9c30a20d08ee6a77c0/xxhash-3.6.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:8cb2f4f679b01513b7adbb9b1b2f0f9cdc31b70007eaf9d59d0878809f385b11", size = 414142, upload-time = "2025-10-02T14:35:52.15Z" }, + { url = "https://files.pythonhosted.org/packages/08/a9/238ec0d4e81a10eb5026d4a6972677cbc898ba6c8b9dbaec12ae001b1b35/xxhash-3.6.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:653a91d7c2ab54a92c19ccf43508b6a555440b9be1bc8be553376778be7f20b5", size = 191547, upload-time = "2025-10-02T14:35:53.547Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ee/3cf8589e06c2164ac77c3bf0aa127012801128f1feebf2a079272da5737c/xxhash-3.6.0-cp314-cp314-win32.whl", hash = "sha256:a756fe893389483ee8c394d06b5ab765d96e68fbbfe6fde7aa17e11f5720559f", size = 31214, upload-time = "2025-10-02T14:35:54.746Z" }, + { url = "https://files.pythonhosted.org/packages/02/5d/a19552fbc6ad4cb54ff953c3908bbc095f4a921bc569433d791f755186f1/xxhash-3.6.0-cp314-cp314-win_amd64.whl", hash = "sha256:39be8e4e142550ef69629c9cd71b88c90e9a5db703fecbcf265546d9536ca4ad", size = 32290, upload-time = "2025-10-02T14:35:55.791Z" }, + { url = "https://files.pythonhosted.org/packages/b1/11/dafa0643bc30442c887b55baf8e73353a344ee89c1901b5a5c54a6c17d39/xxhash-3.6.0-cp314-cp314-win_arm64.whl", hash = "sha256:25915e6000338999236f1eb68a02a32c3275ac338628a7eaa5a269c401995679", size = 28795, upload-time = "2025-10-02T14:35:57.162Z" }, + { url = "https://files.pythonhosted.org/packages/2c/db/0e99732ed7f64182aef4a6fb145e1a295558deec2a746265dcdec12d191e/xxhash-3.6.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c5294f596a9017ca5a3e3f8884c00b91ab2ad2933cf288f4923c3fd4346cf3d4", size = 32955, upload-time = "2025-10-02T14:35:58.267Z" }, + { url = "https://files.pythonhosted.org/packages/55/f4/2a7c3c68e564a099becfa44bb3d398810cc0ff6749b0d3cb8ccb93f23c14/xxhash-3.6.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1cf9dcc4ab9cff01dfbba78544297a3a01dafd60f3bde4e2bfd016cf7e4ddc67", size = 31072, upload-time = "2025-10-02T14:35:59.382Z" }, + { url = "https://files.pythonhosted.org/packages/c6/d9/72a29cddc7250e8a5819dad5d466facb5dc4c802ce120645630149127e73/xxhash-3.6.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:01262da8798422d0685f7cef03b2bd3f4f46511b02830861df548d7def4402ad", size = 196579, upload-time = "2025-10-02T14:36:00.838Z" }, + { url = "https://files.pythonhosted.org/packages/63/93/b21590e1e381040e2ca305a884d89e1c345b347404f7780f07f2cdd47ef4/xxhash-3.6.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51a73fb7cb3a3ead9f7a8b583ffd9b8038e277cdb8cb87cf890e88b3456afa0b", size = 215854, upload-time = "2025-10-02T14:36:02.207Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b8/edab8a7d4fa14e924b29be877d54155dcbd8b80be85ea00d2be3413a9ed4/xxhash-3.6.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b9c6df83594f7df8f7f708ce5ebeacfc69f72c9fbaaababf6cf4758eaada0c9b", size = 214965, upload-time = "2025-10-02T14:36:03.507Z" }, + { url = "https://files.pythonhosted.org/packages/27/67/dfa980ac7f0d509d54ea0d5a486d2bb4b80c3f1bb22b66e6a05d3efaf6c0/xxhash-3.6.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:627f0af069b0ea56f312fd5189001c24578868643203bca1abbc2c52d3a6f3ca", size = 448484, upload-time = "2025-10-02T14:36:04.828Z" }, + { url = "https://files.pythonhosted.org/packages/8c/63/8ffc2cc97e811c0ca5d00ab36604b3ea6f4254f20b7bc658ca825ce6c954/xxhash-3.6.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aa912c62f842dfd013c5f21a642c9c10cd9f4c4e943e0af83618b4a404d9091a", size = 196162, upload-time = "2025-10-02T14:36:06.182Z" }, + { url = "https://files.pythonhosted.org/packages/4b/77/07f0e7a3edd11a6097e990f6e5b815b6592459cb16dae990d967693e6ea9/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b465afd7909db30168ab62afe40b2fcf79eedc0b89a6c0ab3123515dc0df8b99", size = 213007, upload-time = "2025-10-02T14:36:07.733Z" }, + { url = "https://files.pythonhosted.org/packages/ae/d8/bc5fa0d152837117eb0bef6f83f956c509332ce133c91c63ce07ee7c4873/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:a881851cf38b0a70e7c4d3ce81fc7afd86fbc2a024f4cfb2a97cf49ce04b75d3", size = 200956, upload-time = "2025-10-02T14:36:09.106Z" }, + { url = "https://files.pythonhosted.org/packages/26/a5/d749334130de9411783873e9b98ecc46688dad5db64ca6e04b02acc8b473/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9b3222c686a919a0f3253cfc12bb118b8b103506612253b5baeaac10d8027cf6", size = 213401, upload-time = "2025-10-02T14:36:10.585Z" }, + { url = "https://files.pythonhosted.org/packages/89/72/abed959c956a4bfc72b58c0384bb7940663c678127538634d896b1195c10/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:c5aa639bc113e9286137cec8fadc20e9cd732b2cc385c0b7fa673b84fc1f2a93", size = 417083, upload-time = "2025-10-02T14:36:12.276Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b3/62fd2b586283b7d7d665fb98e266decadf31f058f1cf6c478741f68af0cb/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5c1343d49ac102799905e115aee590183c3921d475356cb24b4de29a4bc56518", size = 193913, upload-time = "2025-10-02T14:36:14.025Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/c19c42c5b3f5a4aad748a6d5b4f23df3bed7ee5445accc65a0fb3ff03953/xxhash-3.6.0-cp314-cp314t-win32.whl", hash = "sha256:5851f033c3030dd95c086b4a36a2683c2ff4a799b23af60977188b057e467119", size = 31586, upload-time = "2025-10-02T14:36:15.603Z" }, + { url = "https://files.pythonhosted.org/packages/03/d6/4cc450345be9924fd5dc8c590ceda1db5b43a0a889587b0ae81a95511360/xxhash-3.6.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0444e7967dac37569052d2409b00a8860c2135cff05502df4da80267d384849f", size = 32526, upload-time = "2025-10-02T14:36:16.708Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c9/7243eb3f9eaabd1a88a5a5acadf06df2d83b100c62684b7425c6a11bcaa8/xxhash-3.6.0-cp314-cp314t-win_arm64.whl", hash = "sha256:bb79b1e63f6fd84ec778a4b1916dfe0a7c3fdb986c06addd5db3a0d413819d95", size = 28898, upload-time = "2025-10-02T14:36:17.843Z" }, + { url = "https://files.pythonhosted.org/packages/93/1e/8aec23647a34a249f62e2398c42955acd9b4c6ed5cf08cbea94dc46f78d2/xxhash-3.6.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0f7b7e2ec26c1666ad5fc9dbfa426a6a3367ceaf79db5dd76264659d509d73b0", size = 30662, upload-time = "2025-10-02T14:37:01.743Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0b/b14510b38ba91caf43006209db846a696ceea6a847a0c9ba0a5b1adc53d6/xxhash-3.6.0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5dc1e14d14fa0f5789ec29a7062004b5933964bb9b02aae6622b8f530dc40296", size = 41056, upload-time = "2025-10-02T14:37:02.879Z" }, + { url = "https://files.pythonhosted.org/packages/50/55/15a7b8a56590e66ccd374bbfa3f9ffc45b810886c8c3b614e3f90bd2367c/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:881b47fc47e051b37d94d13e7455131054b56749b91b508b0907eb07900d1c13", size = 36251, upload-time = "2025-10-02T14:37:04.44Z" }, + { url = "https://files.pythonhosted.org/packages/62/b2/5ac99a041a29e58e95f907876b04f7067a0242cb85b5f39e726153981503/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6dc31591899f5e5666f04cc2e529e69b4072827085c1ef15294d91a004bc1bd", size = 32481, upload-time = "2025-10-02T14:37:05.869Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d9/8d95e906764a386a3d3b596f3c68bb63687dfca806373509f51ce8eea81f/xxhash-3.6.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:15e0dac10eb9309508bfc41f7f9deaa7755c69e35af835db9cb10751adebc35d", size = 31565, upload-time = "2025-10-02T14:37:06.966Z" }, +] + +[[package]] +name = "yarl" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169, upload-time = "2025-10-06T14:12:55.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/43/a2204825342f37c337f5edb6637040fa14e365b2fcc2346960201d457579/yarl-1.22.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c7bd6683587567e5a49ee6e336e0612bec8329be1b7d4c8af5687dcdeb67ee1e", size = 140517, upload-time = "2025-10-06T14:08:42.494Z" }, + { url = "https://files.pythonhosted.org/packages/44/6f/674f3e6f02266428c56f704cd2501c22f78e8b2eeb23f153117cc86fb28a/yarl-1.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5cdac20da754f3a723cceea5b3448e1a2074866406adeb4ef35b469d089adb8f", size = 93495, upload-time = "2025-10-06T14:08:46.2Z" }, + { url = "https://files.pythonhosted.org/packages/b8/12/5b274d8a0f30c07b91b2f02cba69152600b47830fcfb465c108880fcee9c/yarl-1.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07a524d84df0c10f41e3ee918846e1974aba4ec017f990dc735aad487a0bdfdf", size = 94400, upload-time = "2025-10-06T14:08:47.855Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7f/df1b6949b1fa1aa9ff6de6e2631876ad4b73c4437822026e85d8acb56bb1/yarl-1.22.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1b329cb8146d7b736677a2440e422eadd775d1806a81db2d4cded80a48efc1a", size = 347545, upload-time = "2025-10-06T14:08:49.683Z" }, + { url = "https://files.pythonhosted.org/packages/84/09/f92ed93bd6cd77872ab6c3462df45ca45cd058d8f1d0c9b4f54c1704429f/yarl-1.22.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:75976c6945d85dbb9ee6308cd7ff7b1fb9409380c82d6119bd778d8fcfe2931c", size = 319598, upload-time = "2025-10-06T14:08:51.215Z" }, + { url = "https://files.pythonhosted.org/packages/c3/97/ac3f3feae7d522cf7ccec3d340bb0b2b61c56cb9767923df62a135092c6b/yarl-1.22.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:80ddf7a5f8c86cb3eb4bc9028b07bbbf1f08a96c5c0bc1244be5e8fefcb94147", size = 363893, upload-time = "2025-10-06T14:08:53.144Z" }, + { url = "https://files.pythonhosted.org/packages/06/49/f3219097403b9c84a4d079b1d7bda62dd9b86d0d6e4428c02d46ab2c77fc/yarl-1.22.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d332fc2e3c94dad927f2112395772a4e4fedbcf8f80efc21ed7cdfae4d574fdb", size = 371240, upload-time = "2025-10-06T14:08:55.036Z" }, + { url = "https://files.pythonhosted.org/packages/35/9f/06b765d45c0e44e8ecf0fe15c9eacbbde342bb5b7561c46944f107bfb6c3/yarl-1.22.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0cf71bf877efeac18b38d3930594c0948c82b64547c1cf420ba48722fe5509f6", size = 346965, upload-time = "2025-10-06T14:08:56.722Z" }, + { url = "https://files.pythonhosted.org/packages/c5/69/599e7cea8d0fcb1694323b0db0dda317fa3162f7b90166faddecf532166f/yarl-1.22.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:663e1cadaddae26be034a6ab6072449a8426ddb03d500f43daf952b74553bba0", size = 342026, upload-time = "2025-10-06T14:08:58.563Z" }, + { url = "https://files.pythonhosted.org/packages/95/6f/9dfd12c8bc90fea9eab39832ee32ea48f8e53d1256252a77b710c065c89f/yarl-1.22.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:6dcbb0829c671f305be48a7227918cfcd11276c2d637a8033a99a02b67bf9eda", size = 335637, upload-time = "2025-10-06T14:09:00.506Z" }, + { url = "https://files.pythonhosted.org/packages/57/2e/34c5b4eb9b07e16e873db5b182c71e5f06f9b5af388cdaa97736d79dd9a6/yarl-1.22.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f0d97c18dfd9a9af4490631905a3f131a8e4c9e80a39353919e2cfed8f00aedc", size = 359082, upload-time = "2025-10-06T14:09:01.936Z" }, + { url = "https://files.pythonhosted.org/packages/31/71/fa7e10fb772d273aa1f096ecb8ab8594117822f683bab7d2c5a89914c92a/yarl-1.22.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:437840083abe022c978470b942ff832c3940b2ad3734d424b7eaffcd07f76737", size = 357811, upload-time = "2025-10-06T14:09:03.445Z" }, + { url = "https://files.pythonhosted.org/packages/26/da/11374c04e8e1184a6a03cf9c8f5688d3e5cec83ed6f31ad3481b3207f709/yarl-1.22.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a899cbd98dce6f5d8de1aad31cb712ec0a530abc0a86bd6edaa47c1090138467", size = 351223, upload-time = "2025-10-06T14:09:05.401Z" }, + { url = "https://files.pythonhosted.org/packages/82/8f/e2d01f161b0c034a30410e375e191a5d27608c1f8693bab1a08b089ca096/yarl-1.22.0-cp310-cp310-win32.whl", hash = "sha256:595697f68bd1f0c1c159fcb97b661fc9c3f5db46498043555d04805430e79bea", size = 82118, upload-time = "2025-10-06T14:09:11.148Z" }, + { url = "https://files.pythonhosted.org/packages/62/46/94c76196642dbeae634c7a61ba3da88cd77bed875bf6e4a8bed037505aa6/yarl-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:cb95a9b1adaa48e41815a55ae740cfda005758104049a640a398120bf02515ca", size = 86852, upload-time = "2025-10-06T14:09:12.958Z" }, + { url = "https://files.pythonhosted.org/packages/af/af/7df4f179d3b1a6dcb9a4bd2ffbc67642746fcafdb62580e66876ce83fff4/yarl-1.22.0-cp310-cp310-win_arm64.whl", hash = "sha256:b85b982afde6df99ecc996990d4ad7ccbdbb70e2a4ba4de0aecde5922ba98a0b", size = 82012, upload-time = "2025-10-06T14:09:14.664Z" }, + { url = "https://files.pythonhosted.org/packages/4d/27/5ab13fc84c76a0250afd3d26d5936349a35be56ce5785447d6c423b26d92/yarl-1.22.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ab72135b1f2db3fed3997d7e7dc1b80573c67138023852b6efb336a5eae6511", size = 141607, upload-time = "2025-10-06T14:09:16.298Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a1/d065d51d02dc02ce81501d476b9ed2229d9a990818332242a882d5d60340/yarl-1.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:669930400e375570189492dc8d8341301578e8493aec04aebc20d4717f899dd6", size = 94027, upload-time = "2025-10-06T14:09:17.786Z" }, + { url = "https://files.pythonhosted.org/packages/c1/da/8da9f6a53f67b5106ffe902c6fa0164e10398d4e150d85838b82f424072a/yarl-1.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792a2af6d58177ef7c19cbf0097aba92ca1b9cb3ffdd9c7470e156c8f9b5e028", size = 94963, upload-time = "2025-10-06T14:09:19.662Z" }, + { url = "https://files.pythonhosted.org/packages/68/fe/2c1f674960c376e29cb0bec1249b117d11738db92a6ccc4a530b972648db/yarl-1.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea66b1c11c9150f1372f69afb6b8116f2dd7286f38e14ea71a44eee9ec51b9d", size = 368406, upload-time = "2025-10-06T14:09:21.402Z" }, + { url = "https://files.pythonhosted.org/packages/95/26/812a540e1c3c6418fec60e9bbd38e871eaba9545e94fa5eff8f4a8e28e1e/yarl-1.22.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3e2daa88dc91870215961e96a039ec73e4937da13cf77ce17f9cad0c18df3503", size = 336581, upload-time = "2025-10-06T14:09:22.98Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f5/5777b19e26fdf98563985e481f8be3d8a39f8734147a6ebf459d0dab5a6b/yarl-1.22.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba440ae430c00eee41509353628600212112cd5018d5def7e9b05ea7ac34eb65", size = 388924, upload-time = "2025-10-06T14:09:24.655Z" }, + { url = "https://files.pythonhosted.org/packages/86/08/24bd2477bd59c0bbd994fe1d93b126e0472e4e3df5a96a277b0a55309e89/yarl-1.22.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e6438cc8f23a9c1478633d216b16104a586b9761db62bfacb6425bac0a36679e", size = 392890, upload-time = "2025-10-06T14:09:26.617Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/71b90ed48e895667ecfb1eaab27c1523ee2fa217433ed77a73b13205ca4b/yarl-1.22.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c52a6e78aef5cf47a98ef8e934755abf53953379b7d53e68b15ff4420e6683d", size = 365819, upload-time = "2025-10-06T14:09:28.544Z" }, + { url = "https://files.pythonhosted.org/packages/30/2d/f715501cae832651d3282387c6a9236cd26bd00d0ff1e404b3dc52447884/yarl-1.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3b06bcadaac49c70f4c88af4ffcfbe3dc155aab3163e75777818092478bcbbe7", size = 363601, upload-time = "2025-10-06T14:09:30.568Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f9/a678c992d78e394e7126ee0b0e4e71bd2775e4334d00a9278c06a6cce96a/yarl-1.22.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6944b2dc72c4d7f7052683487e3677456050ff77fcf5e6204e98caf785ad1967", size = 358072, upload-time = "2025-10-06T14:09:32.528Z" }, + { url = "https://files.pythonhosted.org/packages/2c/d1/b49454411a60edb6fefdcad4f8e6dbba7d8019e3a508a1c5836cba6d0781/yarl-1.22.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5372ca1df0f91a86b047d1277c2aaf1edb32d78bbcefffc81b40ffd18f027ed", size = 385311, upload-time = "2025-10-06T14:09:34.634Z" }, + { url = "https://files.pythonhosted.org/packages/87/e5/40d7a94debb8448c7771a916d1861d6609dddf7958dc381117e7ba36d9e8/yarl-1.22.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:51af598701f5299012b8416486b40fceef8c26fc87dc6d7d1f6fc30609ea0aa6", size = 381094, upload-time = "2025-10-06T14:09:36.268Z" }, + { url = "https://files.pythonhosted.org/packages/35/d8/611cc282502381ad855448643e1ad0538957fc82ae83dfe7762c14069e14/yarl-1.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b266bd01fedeffeeac01a79ae181719ff848a5a13ce10075adbefc8f1daee70e", size = 370944, upload-time = "2025-10-06T14:09:37.872Z" }, + { url = "https://files.pythonhosted.org/packages/2d/df/fadd00fb1c90e1a5a8bd731fa3d3de2e165e5a3666a095b04e31b04d9cb6/yarl-1.22.0-cp311-cp311-win32.whl", hash = "sha256:a9b1ba5610a4e20f655258d5a1fdc7ebe3d837bb0e45b581398b99eb98b1f5ca", size = 81804, upload-time = "2025-10-06T14:09:39.359Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f7/149bb6f45f267cb5c074ac40c01c6b3ea6d8a620d34b337f6321928a1b4d/yarl-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:078278b9b0b11568937d9509b589ee83ef98ed6d561dfe2020e24a9fd08eaa2b", size = 86858, upload-time = "2025-10-06T14:09:41.068Z" }, + { url = "https://files.pythonhosted.org/packages/2b/13/88b78b93ad3f2f0b78e13bfaaa24d11cbc746e93fe76d8c06bf139615646/yarl-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:b6a6f620cfe13ccec221fa312139135166e47ae169f8253f72a0abc0dae94376", size = 81637, upload-time = "2025-10-06T14:09:42.712Z" }, + { url = "https://files.pythonhosted.org/packages/75/ff/46736024fee3429b80a165a732e38e5d5a238721e634ab41b040d49f8738/yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f", size = 142000, upload-time = "2025-10-06T14:09:44.631Z" }, + { url = "https://files.pythonhosted.org/packages/5a/9a/b312ed670df903145598914770eb12de1bac44599549b3360acc96878df8/yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2", size = 94338, upload-time = "2025-10-06T14:09:46.372Z" }, + { url = "https://files.pythonhosted.org/packages/ba/f5/0601483296f09c3c65e303d60c070a5c19fcdbc72daa061e96170785bc7d/yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74", size = 94909, upload-time = "2025-10-06T14:09:48.648Z" }, + { url = "https://files.pythonhosted.org/packages/60/41/9a1fe0b73dbcefce72e46cf149b0e0a67612d60bfc90fb59c2b2efdfbd86/yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df", size = 372940, upload-time = "2025-10-06T14:09:50.089Z" }, + { url = "https://files.pythonhosted.org/packages/17/7a/795cb6dfee561961c30b800f0ed616b923a2ec6258b5def2a00bf8231334/yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb", size = 345825, upload-time = "2025-10-06T14:09:52.142Z" }, + { url = "https://files.pythonhosted.org/packages/d7/93/a58f4d596d2be2ae7bab1a5846c4d270b894958845753b2c606d666744d3/yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2", size = 386705, upload-time = "2025-10-06T14:09:54.128Z" }, + { url = "https://files.pythonhosted.org/packages/61/92/682279d0e099d0e14d7fd2e176bd04f48de1484f56546a3e1313cd6c8e7c/yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82", size = 396518, upload-time = "2025-10-06T14:09:55.762Z" }, + { url = "https://files.pythonhosted.org/packages/db/0f/0d52c98b8a885aeda831224b78f3be7ec2e1aa4a62091f9f9188c3c65b56/yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a", size = 377267, upload-time = "2025-10-06T14:09:57.958Z" }, + { url = "https://files.pythonhosted.org/packages/22/42/d2685e35908cbeaa6532c1fc73e89e7f2efb5d8a7df3959ea8e37177c5a3/yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124", size = 365797, upload-time = "2025-10-06T14:09:59.527Z" }, + { url = "https://files.pythonhosted.org/packages/a2/83/cf8c7bcc6355631762f7d8bdab920ad09b82efa6b722999dfb05afa6cfac/yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa", size = 365535, upload-time = "2025-10-06T14:10:01.139Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/5302ff9b28f0c59cac913b91fe3f16c59a033887e57ce9ca5d41a3a94737/yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7", size = 382324, upload-time = "2025-10-06T14:10:02.756Z" }, + { url = "https://files.pythonhosted.org/packages/bf/cd/4617eb60f032f19ae3a688dc990d8f0d89ee0ea378b61cac81ede3e52fae/yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d", size = 383803, upload-time = "2025-10-06T14:10:04.552Z" }, + { url = "https://files.pythonhosted.org/packages/59/65/afc6e62bb506a319ea67b694551dab4a7e6fb7bf604e9bd9f3e11d575fec/yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520", size = 374220, upload-time = "2025-10-06T14:10:06.489Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3d/68bf18d50dc674b942daec86a9ba922d3113d8399b0e52b9897530442da2/yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8", size = 81589, upload-time = "2025-10-06T14:10:09.254Z" }, + { url = "https://files.pythonhosted.org/packages/c8/9a/6ad1a9b37c2f72874f93e691b2e7ecb6137fb2b899983125db4204e47575/yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c", size = 87213, upload-time = "2025-10-06T14:10:11.369Z" }, + { url = "https://files.pythonhosted.org/packages/44/c5/c21b562d1680a77634d748e30c653c3ca918beb35555cff24986fff54598/yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74", size = 81330, upload-time = "2025-10-06T14:10:13.112Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f3/d67de7260456ee105dc1d162d43a019ecad6b91e2f51809d6cddaa56690e/yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53", size = 139980, upload-time = "2025-10-06T14:10:14.601Z" }, + { url = "https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a", size = 93424, upload-time = "2025-10-06T14:10:16.115Z" }, + { url = "https://files.pythonhosted.org/packages/18/91/3274b215fd8442a03975ce6bee5fe6aa57a8326b29b9d3d56234a1dca244/yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c", size = 93821, upload-time = "2025-10-06T14:10:17.993Z" }, + { url = "https://files.pythonhosted.org/packages/61/3a/caf4e25036db0f2da4ca22a353dfeb3c9d3c95d2761ebe9b14df8fc16eb0/yarl-1.22.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4f15793aa49793ec8d1c708ab7f9eded1aa72edc5174cae703651555ed1b601", size = 373243, upload-time = "2025-10-06T14:10:19.44Z" }, + { url = "https://files.pythonhosted.org/packages/6e/9e/51a77ac7516e8e7803b06e01f74e78649c24ee1021eca3d6a739cb6ea49c/yarl-1.22.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5542339dcf2747135c5c85f68680353d5cb9ffd741c0f2e8d832d054d41f35a", size = 342361, upload-time = "2025-10-06T14:10:21.124Z" }, + { url = "https://files.pythonhosted.org/packages/d4/f8/33b92454789dde8407f156c00303e9a891f1f51a0330b0fad7c909f87692/yarl-1.22.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5c401e05ad47a75869c3ab3e35137f8468b846770587e70d71e11de797d113df", size = 387036, upload-time = "2025-10-06T14:10:22.902Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9a/c5db84ea024f76838220280f732970aa4ee154015d7f5c1bfb60a267af6f/yarl-1.22.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:243dda95d901c733f5b59214d28b0120893d91777cb8aa043e6ef059d3cddfe2", size = 397671, upload-time = "2025-10-06T14:10:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/11/c9/cd8538dc2e7727095e0c1d867bad1e40c98f37763e6d995c1939f5fdc7b1/yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bec03d0d388060058f5d291a813f21c011041938a441c593374da6077fe21b1b", size = 377059, upload-time = "2025-10-06T14:10:26.406Z" }, + { url = "https://files.pythonhosted.org/packages/a1/b9/ab437b261702ced75122ed78a876a6dec0a1b0f5e17a4ac7a9a2482d8abe/yarl-1.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0748275abb8c1e1e09301ee3cf90c8a99678a4e92e4373705f2a2570d581273", size = 365356, upload-time = "2025-10-06T14:10:28.461Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9d/8e1ae6d1d008a9567877b08f0ce4077a29974c04c062dabdb923ed98e6fe/yarl-1.22.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:47fdb18187e2a4e18fda2c25c05d8251a9e4a521edaed757fef033e7d8498d9a", size = 361331, upload-time = "2025-10-06T14:10:30.541Z" }, + { url = "https://files.pythonhosted.org/packages/ca/5a/09b7be3905962f145b73beb468cdd53db8aa171cf18c80400a54c5b82846/yarl-1.22.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c7044802eec4524fde550afc28edda0dd5784c4c45f0be151a2d3ba017daca7d", size = 382590, upload-time = "2025-10-06T14:10:33.352Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7f/59ec509abf90eda5048b0bc3e2d7b5099dffdb3e6b127019895ab9d5ef44/yarl-1.22.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:139718f35149ff544caba20fce6e8a2f71f1e39b92c700d8438a0b1d2a631a02", size = 385316, upload-time = "2025-10-06T14:10:35.034Z" }, + { url = "https://files.pythonhosted.org/packages/e5/84/891158426bc8036bfdfd862fabd0e0fa25df4176ec793e447f4b85cf1be4/yarl-1.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e1b51bebd221006d3d2f95fbe124b22b247136647ae5dcc8c7acafba66e5ee67", size = 374431, upload-time = "2025-10-06T14:10:37.76Z" }, + { url = "https://files.pythonhosted.org/packages/bb/49/03da1580665baa8bef5e8ed34c6df2c2aca0a2f28bf397ed238cc1bbc6f2/yarl-1.22.0-cp313-cp313-win32.whl", hash = "sha256:d3e32536234a95f513bd374e93d717cf6b2231a791758de6c509e3653f234c95", size = 81555, upload-time = "2025-10-06T14:10:39.649Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ee/450914ae11b419eadd067c6183ae08381cfdfcb9798b90b2b713bbebddda/yarl-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:47743b82b76d89a1d20b83e60d5c20314cbd5ba2befc9cda8f28300c4a08ed4d", size = 86965, upload-time = "2025-10-06T14:10:41.313Z" }, + { url = "https://files.pythonhosted.org/packages/98/4d/264a01eae03b6cf629ad69bae94e3b0e5344741e929073678e84bf7a3e3b/yarl-1.22.0-cp313-cp313-win_arm64.whl", hash = "sha256:5d0fcda9608875f7d052eff120c7a5da474a6796fe4d83e152e0e4d42f6d1a9b", size = 81205, upload-time = "2025-10-06T14:10:43.167Z" }, + { url = "https://files.pythonhosted.org/packages/88/fc/6908f062a2f77b5f9f6d69cecb1747260831ff206adcbc5b510aff88df91/yarl-1.22.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:719ae08b6972befcba4310e49edb1161a88cdd331e3a694b84466bd938a6ab10", size = 146209, upload-time = "2025-10-06T14:10:44.643Z" }, + { url = "https://files.pythonhosted.org/packages/65/47/76594ae8eab26210b4867be6f49129861ad33da1f1ebdf7051e98492bf62/yarl-1.22.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:47d8a5c446df1c4db9d21b49619ffdba90e77c89ec6e283f453856c74b50b9e3", size = 95966, upload-time = "2025-10-06T14:10:46.554Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ce/05e9828a49271ba6b5b038b15b3934e996980dd78abdfeb52a04cfb9467e/yarl-1.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cfebc0ac8333520d2d0423cbbe43ae43c8838862ddb898f5ca68565e395516e9", size = 97312, upload-time = "2025-10-06T14:10:48.007Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c5/7dffad5e4f2265b29c9d7ec869c369e4223166e4f9206fc2243ee9eea727/yarl-1.22.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4398557cbf484207df000309235979c79c4356518fd5c99158c7d38203c4da4f", size = 361967, upload-time = "2025-10-06T14:10:49.997Z" }, + { url = "https://files.pythonhosted.org/packages/50/b2/375b933c93a54bff7fc041e1a6ad2c0f6f733ffb0c6e642ce56ee3b39970/yarl-1.22.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2ca6fd72a8cd803be290d42f2dec5cdcd5299eeb93c2d929bf060ad9efaf5de0", size = 323949, upload-time = "2025-10-06T14:10:52.004Z" }, + { url = "https://files.pythonhosted.org/packages/66/50/bfc2a29a1d78644c5a7220ce2f304f38248dc94124a326794e677634b6cf/yarl-1.22.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca1f59c4e1ab6e72f0a23c13fca5430f889634166be85dbf1013683e49e3278e", size = 361818, upload-time = "2025-10-06T14:10:54.078Z" }, + { url = "https://files.pythonhosted.org/packages/46/96/f3941a46af7d5d0f0498f86d71275696800ddcdd20426298e572b19b91ff/yarl-1.22.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5010a52015e7c70f86eb967db0f37f3c8bd503a695a49f8d45700144667708", size = 372626, upload-time = "2025-10-06T14:10:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/c1/42/8b27c83bb875cd89448e42cd627e0fb971fa1675c9ec546393d18826cb50/yarl-1.22.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d7672ecf7557476642c88497c2f8d8542f8e36596e928e9bcba0e42e1e7d71f", size = 341129, upload-time = "2025-10-06T14:10:57.985Z" }, + { url = "https://files.pythonhosted.org/packages/49/36/99ca3122201b382a3cf7cc937b95235b0ac944f7e9f2d5331d50821ed352/yarl-1.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b7c88eeef021579d600e50363e0b6ee4f7f6f728cd3486b9d0f3ee7b946398d", size = 346776, upload-time = "2025-10-06T14:10:59.633Z" }, + { url = "https://files.pythonhosted.org/packages/85/b4/47328bf996acd01a4c16ef9dcd2f59c969f495073616586f78cd5f2efb99/yarl-1.22.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f4afb5c34f2c6fecdcc182dfcfc6af6cccf1aa923eed4d6a12e9d96904e1a0d8", size = 334879, upload-time = "2025-10-06T14:11:01.454Z" }, + { url = "https://files.pythonhosted.org/packages/c2/ad/b77d7b3f14a4283bffb8e92c6026496f6de49751c2f97d4352242bba3990/yarl-1.22.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:59c189e3e99a59cf8d83cbb31d4db02d66cda5a1a4374e8a012b51255341abf5", size = 350996, upload-time = "2025-10-06T14:11:03.452Z" }, + { url = "https://files.pythonhosted.org/packages/81/c8/06e1d69295792ba54d556f06686cbd6a7ce39c22307100e3fb4a2c0b0a1d/yarl-1.22.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5a3bf7f62a289fa90f1990422dc8dff5a458469ea71d1624585ec3a4c8d6960f", size = 356047, upload-time = "2025-10-06T14:11:05.115Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b8/4c0e9e9f597074b208d18cef227d83aac36184bfbc6eab204ea55783dbc5/yarl-1.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:de6b9a04c606978fdfe72666fa216ffcf2d1a9f6a381058d4378f8d7b1e5de62", size = 342947, upload-time = "2025-10-06T14:11:08.137Z" }, + { url = "https://files.pythonhosted.org/packages/e0/e5/11f140a58bf4c6ad7aca69a892bff0ee638c31bea4206748fc0df4ebcb3a/yarl-1.22.0-cp313-cp313t-win32.whl", hash = "sha256:1834bb90991cc2999f10f97f5f01317f99b143284766d197e43cd5b45eb18d03", size = 86943, upload-time = "2025-10-06T14:11:10.284Z" }, + { url = "https://files.pythonhosted.org/packages/31/74/8b74bae38ed7fe6793d0c15a0c8207bbb819cf287788459e5ed230996cdd/yarl-1.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff86011bd159a9d2dfc89c34cfd8aff12875980e3bd6a39ff097887520e60249", size = 93715, upload-time = "2025-10-06T14:11:11.739Z" }, + { url = "https://files.pythonhosted.org/packages/69/66/991858aa4b5892d57aef7ee1ba6b4d01ec3b7eb3060795d34090a3ca3278/yarl-1.22.0-cp313-cp313t-win_arm64.whl", hash = "sha256:7861058d0582b847bc4e3a4a4c46828a410bca738673f35a29ba3ca5db0b473b", size = 83857, upload-time = "2025-10-06T14:11:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/46/b3/e20ef504049f1a1c54a814b4b9bed96d1ac0e0610c3b4da178f87209db05/yarl-1.22.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:34b36c2c57124530884d89d50ed2c1478697ad7473efd59cfd479945c95650e4", size = 140520, upload-time = "2025-10-06T14:11:15.465Z" }, + { url = "https://files.pythonhosted.org/packages/e4/04/3532d990fdbab02e5ede063676b5c4260e7f3abea2151099c2aa745acc4c/yarl-1.22.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:0dd9a702591ca2e543631c2a017e4a547e38a5c0f29eece37d9097e04a7ac683", size = 93504, upload-time = "2025-10-06T14:11:17.106Z" }, + { url = "https://files.pythonhosted.org/packages/11/63/ff458113c5c2dac9a9719ac68ee7c947cb621432bcf28c9972b1c0e83938/yarl-1.22.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:594fcab1032e2d2cc3321bb2e51271e7cd2b516c7d9aee780ece81b07ff8244b", size = 94282, upload-time = "2025-10-06T14:11:19.064Z" }, + { url = "https://files.pythonhosted.org/packages/a7/bc/315a56aca762d44a6aaaf7ad253f04d996cb6b27bad34410f82d76ea8038/yarl-1.22.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3d7a87a78d46a2e3d5b72587ac14b4c16952dd0887dbb051451eceac774411e", size = 372080, upload-time = "2025-10-06T14:11:20.996Z" }, + { url = "https://files.pythonhosted.org/packages/3f/3f/08e9b826ec2e099ea6e7c69a61272f4f6da62cb5b1b63590bb80ca2e4a40/yarl-1.22.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:852863707010316c973162e703bddabec35e8757e67fcb8ad58829de1ebc8590", size = 338696, upload-time = "2025-10-06T14:11:22.847Z" }, + { url = "https://files.pythonhosted.org/packages/e3/9f/90360108e3b32bd76789088e99538febfea24a102380ae73827f62073543/yarl-1.22.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:131a085a53bfe839a477c0845acf21efc77457ba2bcf5899618136d64f3303a2", size = 387121, upload-time = "2025-10-06T14:11:24.889Z" }, + { url = "https://files.pythonhosted.org/packages/98/92/ab8d4657bd5b46a38094cfaea498f18bb70ce6b63508fd7e909bd1f93066/yarl-1.22.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:078a8aefd263f4d4f923a9677b942b445a2be970ca24548a8102689a3a8ab8da", size = 394080, upload-time = "2025-10-06T14:11:27.307Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e7/d8c5a7752fef68205296201f8ec2bf718f5c805a7a7e9880576c67600658/yarl-1.22.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bca03b91c323036913993ff5c738d0842fc9c60c4648e5c8d98331526df89784", size = 372661, upload-time = "2025-10-06T14:11:29.387Z" }, + { url = "https://files.pythonhosted.org/packages/b6/2e/f4d26183c8db0bb82d491b072f3127fb8c381a6206a3a56332714b79b751/yarl-1.22.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:68986a61557d37bb90d3051a45b91fa3d5c516d177dfc6dd6f2f436a07ff2b6b", size = 364645, upload-time = "2025-10-06T14:11:31.423Z" }, + { url = "https://files.pythonhosted.org/packages/80/7c/428e5812e6b87cd00ee8e898328a62c95825bf37c7fa87f0b6bb2ad31304/yarl-1.22.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:4792b262d585ff0dff6bcb787f8492e40698443ec982a3568c2096433660c694", size = 355361, upload-time = "2025-10-06T14:11:33.055Z" }, + { url = "https://files.pythonhosted.org/packages/ec/2a/249405fd26776f8b13c067378ef4d7dd49c9098d1b6457cdd152a99e96a9/yarl-1.22.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ebd4549b108d732dba1d4ace67614b9545b21ece30937a63a65dd34efa19732d", size = 381451, upload-time = "2025-10-06T14:11:35.136Z" }, + { url = "https://files.pythonhosted.org/packages/67/a8/fb6b1adbe98cf1e2dd9fad71003d3a63a1bc22459c6e15f5714eb9323b93/yarl-1.22.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f87ac53513d22240c7d59203f25cc3beac1e574c6cd681bbfd321987b69f95fd", size = 383814, upload-time = "2025-10-06T14:11:37.094Z" }, + { url = "https://files.pythonhosted.org/packages/d9/f9/3aa2c0e480fb73e872ae2814c43bc1e734740bb0d54e8cb2a95925f98131/yarl-1.22.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:22b029f2881599e2f1b06f8f1db2ee63bd309e2293ba2d566e008ba12778b8da", size = 370799, upload-time = "2025-10-06T14:11:38.83Z" }, + { url = "https://files.pythonhosted.org/packages/50/3c/af9dba3b8b5eeb302f36f16f92791f3ea62e3f47763406abf6d5a4a3333b/yarl-1.22.0-cp314-cp314-win32.whl", hash = "sha256:6a635ea45ba4ea8238463b4f7d0e721bad669f80878b7bfd1f89266e2ae63da2", size = 82990, upload-time = "2025-10-06T14:11:40.624Z" }, + { url = "https://files.pythonhosted.org/packages/ac/30/ac3a0c5bdc1d6efd1b41fa24d4897a4329b3b1e98de9449679dd327af4f0/yarl-1.22.0-cp314-cp314-win_amd64.whl", hash = "sha256:0d6e6885777af0f110b0e5d7e5dda8b704efed3894da26220b7f3d887b839a79", size = 88292, upload-time = "2025-10-06T14:11:42.578Z" }, + { url = "https://files.pythonhosted.org/packages/df/0a/227ab4ff5b998a1b7410abc7b46c9b7a26b0ca9e86c34ba4b8d8bc7c63d5/yarl-1.22.0-cp314-cp314-win_arm64.whl", hash = "sha256:8218f4e98d3c10d683584cb40f0424f4b9fd6e95610232dd75e13743b070ee33", size = 82888, upload-time = "2025-10-06T14:11:44.863Z" }, + { url = "https://files.pythonhosted.org/packages/06/5e/a15eb13db90abd87dfbefb9760c0f3f257ac42a5cac7e75dbc23bed97a9f/yarl-1.22.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:45c2842ff0e0d1b35a6bf1cd6c690939dacb617a70827f715232b2e0494d55d1", size = 146223, upload-time = "2025-10-06T14:11:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/18/82/9665c61910d4d84f41a5bf6837597c89e665fa88aa4941080704645932a9/yarl-1.22.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:d947071e6ebcf2e2bee8fce76e10faca8f7a14808ca36a910263acaacef08eca", size = 95981, upload-time = "2025-10-06T14:11:48.845Z" }, + { url = "https://files.pythonhosted.org/packages/5d/9a/2f65743589809af4d0a6d3aa749343c4b5f4c380cc24a8e94a3c6625a808/yarl-1.22.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:334b8721303e61b00019474cc103bdac3d7b1f65e91f0bfedeec2d56dfe74b53", size = 97303, upload-time = "2025-10-06T14:11:50.897Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ab/5b13d3e157505c43c3b43b5a776cbf7b24a02bc4cccc40314771197e3508/yarl-1.22.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e7ce67c34138a058fd092f67d07a72b8e31ff0c9236e751957465a24b28910c", size = 361820, upload-time = "2025-10-06T14:11:52.549Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/242a5ef4677615cf95330cfc1b4610e78184400699bdda0acb897ef5e49a/yarl-1.22.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d77e1b2c6d04711478cb1c4ab90db07f1609ccf06a287d5607fcd90dc9863acf", size = 323203, upload-time = "2025-10-06T14:11:54.225Z" }, + { url = "https://files.pythonhosted.org/packages/8c/96/475509110d3f0153b43d06164cf4195c64d16999e0c7e2d8a099adcd6907/yarl-1.22.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4647674b6150d2cae088fc07de2738a84b8bcedebef29802cf0b0a82ab6face", size = 363173, upload-time = "2025-10-06T14:11:56.069Z" }, + { url = "https://files.pythonhosted.org/packages/c9/66/59db471aecfbd559a1fd48aedd954435558cd98c7d0da8b03cc6c140a32c/yarl-1.22.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efb07073be061c8f79d03d04139a80ba33cbd390ca8f0297aae9cce6411e4c6b", size = 373562, upload-time = "2025-10-06T14:11:58.783Z" }, + { url = "https://files.pythonhosted.org/packages/03/1f/c5d94abc91557384719da10ff166b916107c1b45e4d0423a88457071dd88/yarl-1.22.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e51ac5435758ba97ad69617e13233da53908beccc6cfcd6c34bbed8dcbede486", size = 339828, upload-time = "2025-10-06T14:12:00.686Z" }, + { url = "https://files.pythonhosted.org/packages/5f/97/aa6a143d3afba17b6465733681c70cf175af89f76ec8d9286e08437a7454/yarl-1.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33e32a0dd0c8205efa8e83d04fc9f19313772b78522d1bdc7d9aed706bfd6138", size = 347551, upload-time = "2025-10-06T14:12:02.628Z" }, + { url = "https://files.pythonhosted.org/packages/43/3c/45a2b6d80195959239a7b2a8810506d4eea5487dce61c2a3393e7fc3c52e/yarl-1.22.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:bf4a21e58b9cde0e401e683ebd00f6ed30a06d14e93f7c8fd059f8b6e8f87b6a", size = 334512, upload-time = "2025-10-06T14:12:04.871Z" }, + { url = "https://files.pythonhosted.org/packages/86/a0/c2ab48d74599c7c84cb104ebd799c5813de252bea0f360ffc29d270c2caa/yarl-1.22.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:e4b582bab49ac33c8deb97e058cd67c2c50dac0dd134874106d9c774fd272529", size = 352400, upload-time = "2025-10-06T14:12:06.624Z" }, + { url = "https://files.pythonhosted.org/packages/32/75/f8919b2eafc929567d3d8411f72bdb1a2109c01caaab4ebfa5f8ffadc15b/yarl-1.22.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0b5bcc1a9c4839e7e30b7b30dd47fe5e7e44fb7054ec29b5bb8d526aa1041093", size = 357140, upload-time = "2025-10-06T14:12:08.362Z" }, + { url = "https://files.pythonhosted.org/packages/cf/72/6a85bba382f22cf78add705d8c3731748397d986e197e53ecc7835e76de7/yarl-1.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c0232bce2170103ec23c454e54a57008a9a72b5d1c3105dc2496750da8cfa47c", size = 341473, upload-time = "2025-10-06T14:12:10.994Z" }, + { url = "https://files.pythonhosted.org/packages/35/18/55e6011f7c044dc80b98893060773cefcfdbf60dfefb8cb2f58b9bacbd83/yarl-1.22.0-cp314-cp314t-win32.whl", hash = "sha256:8009b3173bcd637be650922ac455946197d858b3630b6d8787aa9e5c4564533e", size = 89056, upload-time = "2025-10-06T14:12:13.317Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/0f0dccb6e59a9e7f122c5afd43568b1d31b8ab7dda5f1b01fb5c7025c9a9/yarl-1.22.0-cp314-cp314t-win_amd64.whl", hash = "sha256:9fb17ea16e972c63d25d4a97f016d235c78dd2344820eb35bc034bc32012ee27", size = 96292, upload-time = "2025-10-06T14:12:15.398Z" }, + { url = "https://files.pythonhosted.org/packages/48/b7/503c98092fb3b344a179579f55814b613c1fbb1c23b3ec14a7b008a66a6e/yarl-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9f6d73c1436b934e3f01df1e1b21ff765cd1d28c77dfb9ace207f746d4610ee1", size = 85171, upload-time = "2025-10-06T14:12:16.935Z" }, + { url = "https://files.pythonhosted.org/packages/73/ae/b48f95715333080afb75a4504487cbe142cae1268afc482d06692d605ae6/yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff", size = 46814, upload-time = "2025-10-06T14:12:53.872Z" }, +] + +[[package]] +name = "youtube-transcript-api" +version = "1.2.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "defusedxml" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/60/43/4104185a2eaa839daa693b30e15c37e7e58795e8e09ec414f22b3db54bec/youtube_transcript_api-1.2.4.tar.gz", hash = "sha256:b72d0e96a335df599d67cee51d49e143cff4f45b84bcafc202ff51291603ddcd", size = 469839, upload-time = "2026-01-29T09:09:17.088Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/95/129ea37efd6cd6ed00f62baae6543345c677810b8a3bf0026756e1d3cf3c/youtube_transcript_api-1.2.4-py3-none-any.whl", hash = "sha256:03878759356da5caf5edac77431780b91448fb3d8c21d4496015bdc8a7bc43ff", size = 485227, upload-time = "2026-01-29T09:09:15.427Z" }, +] + [[package]] name = "zipp" version = "3.23.0" @@ -522,3 +4681,93 @@ sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50e wheels = [ { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, ] + +[[package]] +name = "zstandard" +version = "0.25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/aa/3e0508d5a5dd96529cdc5a97011299056e14c6505b678fd58938792794b1/zstandard-0.25.0.tar.gz", hash = "sha256:7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b", size = 711513, upload-time = "2025-09-14T22:15:54.002Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/7a/28efd1d371f1acd037ac64ed1c5e2b41514a6cc937dd6ab6a13ab9f0702f/zstandard-0.25.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e59fdc271772f6686e01e1b3b74537259800f57e24280be3f29c8a0deb1904dd", size = 795256, upload-time = "2025-09-14T22:15:56.415Z" }, + { url = "https://files.pythonhosted.org/packages/96/34/ef34ef77f1ee38fc8e4f9775217a613b452916e633c4f1d98f31db52c4a5/zstandard-0.25.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4d441506e9b372386a5271c64125f72d5df6d2a8e8a2a45a0ae09b03cb781ef7", size = 640565, upload-time = "2025-09-14T22:15:58.177Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1b/4fdb2c12eb58f31f28c4d28e8dc36611dd7205df8452e63f52fb6261d13e/zstandard-0.25.0-cp310-cp310-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:ab85470ab54c2cb96e176f40342d9ed41e58ca5733be6a893b730e7af9c40550", size = 5345306, upload-time = "2025-09-14T22:16:00.165Z" }, + { url = "https://files.pythonhosted.org/packages/73/28/a44bdece01bca027b079f0e00be3b6bd89a4df180071da59a3dd7381665b/zstandard-0.25.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e05ab82ea7753354bb054b92e2f288afb750e6b439ff6ca78af52939ebbc476d", size = 5055561, upload-time = "2025-09-14T22:16:02.22Z" }, + { url = "https://files.pythonhosted.org/packages/e9/74/68341185a4f32b274e0fc3410d5ad0750497e1acc20bd0f5b5f64ce17785/zstandard-0.25.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:78228d8a6a1c177a96b94f7e2e8d012c55f9c760761980da16ae7546a15a8e9b", size = 5402214, upload-time = "2025-09-14T22:16:04.109Z" }, + { url = "https://files.pythonhosted.org/packages/8b/67/f92e64e748fd6aaffe01e2b75a083c0c4fd27abe1c8747fee4555fcee7dd/zstandard-0.25.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:2b6bd67528ee8b5c5f10255735abc21aa106931f0dbaf297c7be0c886353c3d0", size = 5449703, upload-time = "2025-09-14T22:16:06.312Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e5/6d36f92a197c3c17729a2125e29c169f460538a7d939a27eaaa6dcfcba8e/zstandard-0.25.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4b6d83057e713ff235a12e73916b6d356e3084fd3d14ced499d84240f3eecee0", size = 5556583, upload-time = "2025-09-14T22:16:08.457Z" }, + { url = "https://files.pythonhosted.org/packages/d7/83/41939e60d8d7ebfe2b747be022d0806953799140a702b90ffe214d557638/zstandard-0.25.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9174f4ed06f790a6869b41cba05b43eeb9a35f8993c4422ab853b705e8112bbd", size = 5045332, upload-time = "2025-09-14T22:16:10.444Z" }, + { url = "https://files.pythonhosted.org/packages/b3/87/d3ee185e3d1aa0133399893697ae91f221fda79deb61adbe998a7235c43f/zstandard-0.25.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:25f8f3cd45087d089aef5ba3848cd9efe3ad41163d3400862fb42f81a3a46701", size = 5572283, upload-time = "2025-09-14T22:16:12.128Z" }, + { url = "https://files.pythonhosted.org/packages/0a/1d/58635ae6104df96671076ac7d4ae7816838ce7debd94aecf83e30b7121b0/zstandard-0.25.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3756b3e9da9b83da1796f8809dd57cb024f838b9eeafde28f3cb472012797ac1", size = 4959754, upload-time = "2025-09-14T22:16:14.225Z" }, + { url = "https://files.pythonhosted.org/packages/75/d6/57e9cb0a9983e9a229dd8fd2e6e96593ef2aa82a3907188436f22b111ccd/zstandard-0.25.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:81dad8d145d8fd981b2962b686b2241d3a1ea07733e76a2f15435dfb7fb60150", size = 5266477, upload-time = "2025-09-14T22:16:16.343Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a9/ee891e5edf33a6ebce0a028726f0bbd8567effe20fe3d5808c42323e8542/zstandard-0.25.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a5a419712cf88862a45a23def0ae063686db3d324cec7edbe40509d1a79a0aab", size = 5440914, upload-time = "2025-09-14T22:16:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/58/08/a8522c28c08031a9521f27abc6f78dbdee7312a7463dd2cfc658b813323b/zstandard-0.25.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e7360eae90809efd19b886e59a09dad07da4ca9ba096752e61a2e03c8aca188e", size = 5819847, upload-time = "2025-09-14T22:16:20.559Z" }, + { url = "https://files.pythonhosted.org/packages/6f/11/4c91411805c3f7b6f31c60e78ce347ca48f6f16d552fc659af6ec3b73202/zstandard-0.25.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75ffc32a569fb049499e63ce68c743155477610532da1eb38e7f24bf7cd29e74", size = 5363131, upload-time = "2025-09-14T22:16:22.206Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d6/8c4bd38a3b24c4c7676a7a3d8de85d6ee7a983602a734b9f9cdefb04a5d6/zstandard-0.25.0-cp310-cp310-win32.whl", hash = "sha256:106281ae350e494f4ac8a80470e66d1fe27e497052c8d9c3b95dc4cf1ade81aa", size = 436469, upload-time = "2025-09-14T22:16:25.002Z" }, + { url = "https://files.pythonhosted.org/packages/93/90/96d50ad417a8ace5f841b3228e93d1bb13e6ad356737f42e2dde30d8bd68/zstandard-0.25.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea9d54cc3d8064260114a0bbf3479fc4a98b21dffc89b3459edd506b69262f6e", size = 506100, upload-time = "2025-09-14T22:16:23.569Z" }, + { url = "https://files.pythonhosted.org/packages/2a/83/c3ca27c363d104980f1c9cee1101cc8ba724ac8c28a033ede6aab89585b1/zstandard-0.25.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:933b65d7680ea337180733cf9e87293cc5500cc0eb3fc8769f4d3c88d724ec5c", size = 795254, upload-time = "2025-09-14T22:16:26.137Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4d/e66465c5411a7cf4866aeadc7d108081d8ceba9bc7abe6b14aa21c671ec3/zstandard-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3f79487c687b1fc69f19e487cd949bf3aae653d181dfb5fde3bf6d18894706f", size = 640559, upload-time = "2025-09-14T22:16:27.973Z" }, + { url = "https://files.pythonhosted.org/packages/12/56/354fe655905f290d3b147b33fe946b0f27e791e4b50a5f004c802cb3eb7b/zstandard-0.25.0-cp311-cp311-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:0bbc9a0c65ce0eea3c34a691e3c4b6889f5f3909ba4822ab385fab9057099431", size = 5348020, upload-time = "2025-09-14T22:16:29.523Z" }, + { url = "https://files.pythonhosted.org/packages/3b/13/2b7ed68bd85e69a2069bcc72141d378f22cae5a0f3b353a2c8f50ef30c1b/zstandard-0.25.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:01582723b3ccd6939ab7b3a78622c573799d5d8737b534b86d0e06ac18dbde4a", size = 5058126, upload-time = "2025-09-14T22:16:31.811Z" }, + { url = "https://files.pythonhosted.org/packages/c9/dd/fdaf0674f4b10d92cb120ccff58bbb6626bf8368f00ebfd2a41ba4a0dc99/zstandard-0.25.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5f1ad7bf88535edcf30038f6919abe087f606f62c00a87d7e33e7fc57cb69fcc", size = 5405390, upload-time = "2025-09-14T22:16:33.486Z" }, + { url = "https://files.pythonhosted.org/packages/0f/67/354d1555575bc2490435f90d67ca4dd65238ff2f119f30f72d5cde09c2ad/zstandard-0.25.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:06acb75eebeedb77b69048031282737717a63e71e4ae3f77cc0c3b9508320df6", size = 5452914, upload-time = "2025-09-14T22:16:35.277Z" }, + { url = "https://files.pythonhosted.org/packages/bb/1f/e9cfd801a3f9190bf3e759c422bbfd2247db9d7f3d54a56ecde70137791a/zstandard-0.25.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9300d02ea7c6506f00e627e287e0492a5eb0371ec1670ae852fefffa6164b072", size = 5559635, upload-time = "2025-09-14T22:16:37.141Z" }, + { url = "https://files.pythonhosted.org/packages/21/88/5ba550f797ca953a52d708c8e4f380959e7e3280af029e38fbf47b55916e/zstandard-0.25.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfd06b1c5584b657a2892a6014c2f4c20e0db0208c159148fa78c65f7e0b0277", size = 5048277, upload-time = "2025-09-14T22:16:38.807Z" }, + { url = "https://files.pythonhosted.org/packages/46/c0/ca3e533b4fa03112facbe7fbe7779cb1ebec215688e5df576fe5429172e0/zstandard-0.25.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f373da2c1757bb7f1acaf09369cdc1d51d84131e50d5fa9863982fd626466313", size = 5574377, upload-time = "2025-09-14T22:16:40.523Z" }, + { url = "https://files.pythonhosted.org/packages/12/9b/3fb626390113f272abd0799fd677ea33d5fc3ec185e62e6be534493c4b60/zstandard-0.25.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6c0e5a65158a7946e7a7affa6418878ef97ab66636f13353b8502d7ea03c8097", size = 4961493, upload-time = "2025-09-14T22:16:43.3Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d3/23094a6b6a4b1343b27ae68249daa17ae0651fcfec9ed4de09d14b940285/zstandard-0.25.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c8e167d5adf59476fa3e37bee730890e389410c354771a62e3c076c86f9f7778", size = 5269018, upload-time = "2025-09-14T22:16:45.292Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a7/bb5a0c1c0f3f4b5e9d5b55198e39de91e04ba7c205cc46fcb0f95f0383c1/zstandard-0.25.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:98750a309eb2f020da61e727de7d7ba3c57c97cf6213f6f6277bb7fb42a8e065", size = 5443672, upload-time = "2025-09-14T22:16:47.076Z" }, + { url = "https://files.pythonhosted.org/packages/27/22/503347aa08d073993f25109c36c8d9f029c7d5949198050962cb568dfa5e/zstandard-0.25.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:22a086cff1b6ceca18a8dd6096ec631e430e93a8e70a9ca5efa7561a00f826fa", size = 5822753, upload-time = "2025-09-14T22:16:49.316Z" }, + { url = "https://files.pythonhosted.org/packages/e2/be/94267dc6ee64f0f8ba2b2ae7c7a2df934a816baaa7291db9e1aa77394c3c/zstandard-0.25.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:72d35d7aa0bba323965da807a462b0966c91608ef3a48ba761678cb20ce5d8b7", size = 5366047, upload-time = "2025-09-14T22:16:51.328Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a3/732893eab0a3a7aecff8b99052fecf9f605cf0fb5fb6d0290e36beee47a4/zstandard-0.25.0-cp311-cp311-win32.whl", hash = "sha256:f5aeea11ded7320a84dcdd62a3d95b5186834224a9e55b92ccae35d21a8b63d4", size = 436484, upload-time = "2025-09-14T22:16:55.005Z" }, + { url = "https://files.pythonhosted.org/packages/43/a3/c6155f5c1cce691cb80dfd38627046e50af3ee9ddc5d0b45b9b063bfb8c9/zstandard-0.25.0-cp311-cp311-win_amd64.whl", hash = "sha256:daab68faadb847063d0c56f361a289c4f268706b598afbf9ad113cbe5c38b6b2", size = 506183, upload-time = "2025-09-14T22:16:52.753Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3e/8945ab86a0820cc0e0cdbf38086a92868a9172020fdab8a03ac19662b0e5/zstandard-0.25.0-cp311-cp311-win_arm64.whl", hash = "sha256:22a06c5df3751bb7dc67406f5374734ccee8ed37fc5981bf1ad7041831fa1137", size = 462533, upload-time = "2025-09-14T22:16:53.878Z" }, + { url = "https://files.pythonhosted.org/packages/82/fc/f26eb6ef91ae723a03e16eddb198abcfce2bc5a42e224d44cc8b6765e57e/zstandard-0.25.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b3c3a3ab9daa3eed242d6ecceead93aebbb8f5f84318d82cee643e019c4b73b", size = 795738, upload-time = "2025-09-14T22:16:56.237Z" }, + { url = "https://files.pythonhosted.org/packages/aa/1c/d920d64b22f8dd028a8b90e2d756e431a5d86194caa78e3819c7bf53b4b3/zstandard-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:913cbd31a400febff93b564a23e17c3ed2d56c064006f54efec210d586171c00", size = 640436, upload-time = "2025-09-14T22:16:57.774Z" }, + { url = "https://files.pythonhosted.org/packages/53/6c/288c3f0bd9fcfe9ca41e2c2fbfd17b2097f6af57b62a81161941f09afa76/zstandard-0.25.0-cp312-cp312-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64", size = 5343019, upload-time = "2025-09-14T22:16:59.302Z" }, + { url = "https://files.pythonhosted.org/packages/1e/15/efef5a2f204a64bdb5571e6161d49f7ef0fffdbca953a615efbec045f60f/zstandard-0.25.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dffecc361d079bb48d7caef5d673c88c8988d3d33fb74ab95b7ee6da42652ea", size = 5063012, upload-time = "2025-09-14T22:17:01.156Z" }, + { url = "https://files.pythonhosted.org/packages/b7/37/a6ce629ffdb43959e92e87ebdaeebb5ac81c944b6a75c9c47e300f85abdf/zstandard-0.25.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7149623bba7fdf7e7f24312953bcf73cae103db8cae49f8154dd1eadc8a29ecb", size = 5394148, upload-time = "2025-09-14T22:17:03.091Z" }, + { url = "https://files.pythonhosted.org/packages/e3/79/2bf870b3abeb5c070fe2d670a5a8d1057a8270f125ef7676d29ea900f496/zstandard-0.25.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6a573a35693e03cf1d67799fd01b50ff578515a8aeadd4595d2a7fa9f3ec002a", size = 5451652, upload-time = "2025-09-14T22:17:04.979Z" }, + { url = "https://files.pythonhosted.org/packages/53/60/7be26e610767316c028a2cbedb9a3beabdbe33e2182c373f71a1c0b88f36/zstandard-0.25.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5a56ba0db2d244117ed744dfa8f6f5b366e14148e00de44723413b2f3938a902", size = 5546993, upload-time = "2025-09-14T22:17:06.781Z" }, + { url = "https://files.pythonhosted.org/packages/85/c7/3483ad9ff0662623f3648479b0380d2de5510abf00990468c286c6b04017/zstandard-0.25.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:10ef2a79ab8e2974e2075fb984e5b9806c64134810fac21576f0668e7ea19f8f", size = 5046806, upload-time = "2025-09-14T22:17:08.415Z" }, + { url = "https://files.pythonhosted.org/packages/08/b3/206883dd25b8d1591a1caa44b54c2aad84badccf2f1de9e2d60a446f9a25/zstandard-0.25.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aaf21ba8fb76d102b696781bddaa0954b782536446083ae3fdaa6f16b25a1c4b", size = 5576659, upload-time = "2025-09-14T22:17:10.164Z" }, + { url = "https://files.pythonhosted.org/packages/9d/31/76c0779101453e6c117b0ff22565865c54f48f8bd807df2b00c2c404b8e0/zstandard-0.25.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1869da9571d5e94a85a5e8d57e4e8807b175c9e4a6294e3b66fa4efb074d90f6", size = 4953933, upload-time = "2025-09-14T22:17:11.857Z" }, + { url = "https://files.pythonhosted.org/packages/18/e1/97680c664a1bf9a247a280a053d98e251424af51f1b196c6d52f117c9720/zstandard-0.25.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:809c5bcb2c67cd0ed81e9229d227d4ca28f82d0f778fc5fea624a9def3963f91", size = 5268008, upload-time = "2025-09-14T22:17:13.627Z" }, + { url = "https://files.pythonhosted.org/packages/1e/73/316e4010de585ac798e154e88fd81bb16afc5c5cb1a72eeb16dd37e8024a/zstandard-0.25.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f27662e4f7dbf9f9c12391cb37b4c4c3cb90ffbd3b1fb9284dadbbb8935fa708", size = 5433517, upload-time = "2025-09-14T22:17:16.103Z" }, + { url = "https://files.pythonhosted.org/packages/5b/60/dd0f8cfa8129c5a0ce3ea6b7f70be5b33d2618013a161e1ff26c2b39787c/zstandard-0.25.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99c0c846e6e61718715a3c9437ccc625de26593fea60189567f0118dc9db7512", size = 5814292, upload-time = "2025-09-14T22:17:17.827Z" }, + { url = "https://files.pythonhosted.org/packages/fc/5f/75aafd4b9d11b5407b641b8e41a57864097663699f23e9ad4dbb91dc6bfe/zstandard-0.25.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:474d2596a2dbc241a556e965fb76002c1ce655445e4e3bf38e5477d413165ffa", size = 5360237, upload-time = "2025-09-14T22:17:19.954Z" }, + { url = "https://files.pythonhosted.org/packages/ff/8d/0309daffea4fcac7981021dbf21cdb2e3427a9e76bafbcdbdf5392ff99a4/zstandard-0.25.0-cp312-cp312-win32.whl", hash = "sha256:23ebc8f17a03133b4426bcc04aabd68f8236eb78c3760f12783385171b0fd8bd", size = 436922, upload-time = "2025-09-14T22:17:24.398Z" }, + { url = "https://files.pythonhosted.org/packages/79/3b/fa54d9015f945330510cb5d0b0501e8253c127cca7ebe8ba46a965df18c5/zstandard-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffef5a74088f1e09947aecf91011136665152e0b4b359c42be3373897fb39b01", size = 506276, upload-time = "2025-09-14T22:17:21.429Z" }, + { url = "https://files.pythonhosted.org/packages/ea/6b/8b51697e5319b1f9ac71087b0af9a40d8a6288ff8025c36486e0c12abcc4/zstandard-0.25.0-cp312-cp312-win_arm64.whl", hash = "sha256:181eb40e0b6a29b3cd2849f825e0fa34397f649170673d385f3598ae17cca2e9", size = 462679, upload-time = "2025-09-14T22:17:23.147Z" }, + { url = "https://files.pythonhosted.org/packages/35/0b/8df9c4ad06af91d39e94fa96cc010a24ac4ef1378d3efab9223cc8593d40/zstandard-0.25.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec996f12524f88e151c339688c3897194821d7f03081ab35d31d1e12ec975e94", size = 795735, upload-time = "2025-09-14T22:17:26.042Z" }, + { url = "https://files.pythonhosted.org/packages/3f/06/9ae96a3e5dcfd119377ba33d4c42a7d89da1efabd5cb3e366b156c45ff4d/zstandard-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a1a4ae2dec3993a32247995bdfe367fc3266da832d82f8438c8570f989753de1", size = 640440, upload-time = "2025-09-14T22:17:27.366Z" }, + { url = "https://files.pythonhosted.org/packages/d9/14/933d27204c2bd404229c69f445862454dcc101cd69ef8c6068f15aaec12c/zstandard-0.25.0-cp313-cp313-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:e96594a5537722fdfb79951672a2a63aec5ebfb823e7560586f7484819f2a08f", size = 5343070, upload-time = "2025-09-14T22:17:28.896Z" }, + { url = "https://files.pythonhosted.org/packages/6d/db/ddb11011826ed7db9d0e485d13df79b58586bfdec56e5c84a928a9a78c1c/zstandard-0.25.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bfc4e20784722098822e3eee42b8e576b379ed72cca4a7cb856ae733e62192ea", size = 5063001, upload-time = "2025-09-14T22:17:31.044Z" }, + { url = "https://files.pythonhosted.org/packages/db/00/87466ea3f99599d02a5238498b87bf84a6348290c19571051839ca943777/zstandard-0.25.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:457ed498fc58cdc12fc48f7950e02740d4f7ae9493dd4ab2168a47c93c31298e", size = 5394120, upload-time = "2025-09-14T22:17:32.711Z" }, + { url = "https://files.pythonhosted.org/packages/2b/95/fc5531d9c618a679a20ff6c29e2b3ef1d1f4ad66c5e161ae6ff847d102a9/zstandard-0.25.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:fd7a5004eb1980d3cefe26b2685bcb0b17989901a70a1040d1ac86f1d898c551", size = 5451230, upload-time = "2025-09-14T22:17:34.41Z" }, + { url = "https://files.pythonhosted.org/packages/63/4b/e3678b4e776db00f9f7b2fe58e547e8928ef32727d7a1ff01dea010f3f13/zstandard-0.25.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8e735494da3db08694d26480f1493ad2cf86e99bdd53e8e9771b2752a5c0246a", size = 5547173, upload-time = "2025-09-14T22:17:36.084Z" }, + { url = "https://files.pythonhosted.org/packages/4e/d5/ba05ed95c6b8ec30bd468dfeab20589f2cf709b5c940483e31d991f2ca58/zstandard-0.25.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3a39c94ad7866160a4a46d772e43311a743c316942037671beb264e395bdd611", size = 5046736, upload-time = "2025-09-14T22:17:37.891Z" }, + { url = "https://files.pythonhosted.org/packages/50/d5/870aa06b3a76c73eced65c044b92286a3c4e00554005ff51962deef28e28/zstandard-0.25.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:172de1f06947577d3a3005416977cce6168f2261284c02080e7ad0185faeced3", size = 5576368, upload-time = "2025-09-14T22:17:40.206Z" }, + { url = "https://files.pythonhosted.org/packages/5d/35/398dc2ffc89d304d59bc12f0fdd931b4ce455bddf7038a0a67733a25f550/zstandard-0.25.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3c83b0188c852a47cd13ef3bf9209fb0a77fa5374958b8c53aaa699398c6bd7b", size = 4954022, upload-time = "2025-09-14T22:17:41.879Z" }, + { url = "https://files.pythonhosted.org/packages/9a/5c/36ba1e5507d56d2213202ec2b05e8541734af5f2ce378c5d1ceaf4d88dc4/zstandard-0.25.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1673b7199bbe763365b81a4f3252b8e80f44c9e323fc42940dc8843bfeaf9851", size = 5267889, upload-time = "2025-09-14T22:17:43.577Z" }, + { url = "https://files.pythonhosted.org/packages/70/e8/2ec6b6fb7358b2ec0113ae202647ca7c0e9d15b61c005ae5225ad0995df5/zstandard-0.25.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0be7622c37c183406f3dbf0cba104118eb16a4ea7359eeb5752f0794882fc250", size = 5433952, upload-time = "2025-09-14T22:17:45.271Z" }, + { url = "https://files.pythonhosted.org/packages/7b/01/b5f4d4dbc59ef193e870495c6f1275f5b2928e01ff5a81fecb22a06e22fb/zstandard-0.25.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:5f5e4c2a23ca271c218ac025bd7d635597048b366d6f31f420aaeb715239fc98", size = 5814054, upload-time = "2025-09-14T22:17:47.08Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e5/fbd822d5c6f427cf158316d012c5a12f233473c2f9c5fe5ab1ae5d21f3d8/zstandard-0.25.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f187a0bb61b35119d1926aee039524d1f93aaf38a9916b8c4b78ac8514a0aaf", size = 5360113, upload-time = "2025-09-14T22:17:48.893Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e0/69a553d2047f9a2c7347caa225bb3a63b6d7704ad74610cb7823baa08ed7/zstandard-0.25.0-cp313-cp313-win32.whl", hash = "sha256:7030defa83eef3e51ff26f0b7bfb229f0204b66fe18e04359ce3474ac33cbc09", size = 436936, upload-time = "2025-09-14T22:17:52.658Z" }, + { url = "https://files.pythonhosted.org/packages/d9/82/b9c06c870f3bd8767c201f1edbdf9e8dc34be5b0fbc5682c4f80fe948475/zstandard-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:1f830a0dac88719af0ae43b8b2d6aef487d437036468ef3c2ea59c51f9d55fd5", size = 506232, upload-time = "2025-09-14T22:17:50.402Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/60c3c01243bb81d381c9916e2a6d9e149ab8627c0c7d7abb2d73384b3c0c/zstandard-0.25.0-cp313-cp313-win_arm64.whl", hash = "sha256:85304a43f4d513f5464ceb938aa02c1e78c2943b29f44a750b48b25ac999a049", size = 462671, upload-time = "2025-09-14T22:17:51.533Z" }, + { url = "https://files.pythonhosted.org/packages/3d/5c/f8923b595b55fe49e30612987ad8bf053aef555c14f05bb659dd5dbe3e8a/zstandard-0.25.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e29f0cf06974c899b2c188ef7f783607dbef36da4c242eb6c82dcd8b512855e3", size = 795887, upload-time = "2025-09-14T22:17:54.198Z" }, + { url = "https://files.pythonhosted.org/packages/8d/09/d0a2a14fc3439c5f874042dca72a79c70a532090b7ba0003be73fee37ae2/zstandard-0.25.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:05df5136bc5a011f33cd25bc9f506e7426c0c9b3f9954f056831ce68f3b6689f", size = 640658, upload-time = "2025-09-14T22:17:55.423Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/8b6b71b1ddd517f68ffb55e10834388d4f793c49c6b83effaaa05785b0b4/zstandard-0.25.0-cp314-cp314-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:f604efd28f239cc21b3adb53eb061e2a205dc164be408e553b41ba2ffe0ca15c", size = 5379849, upload-time = "2025-09-14T22:17:57.372Z" }, + { url = "https://files.pythonhosted.org/packages/a4/86/a48e56320d0a17189ab7a42645387334fba2200e904ee47fc5a26c1fd8ca/zstandard-0.25.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223415140608d0f0da010499eaa8ccdb9af210a543fac54bce15babbcfc78439", size = 5058095, upload-time = "2025-09-14T22:17:59.498Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ad/eb659984ee2c0a779f9d06dbfe45e2dc39d99ff40a319895df2d3d9a48e5/zstandard-0.25.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e54296a283f3ab5a26fc9b8b5d4978ea0532f37b231644f367aa588930aa043", size = 5551751, upload-time = "2025-09-14T22:18:01.618Z" }, + { url = "https://files.pythonhosted.org/packages/61/b3/b637faea43677eb7bd42ab204dfb7053bd5c4582bfe6b1baefa80ac0c47b/zstandard-0.25.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ca54090275939dc8ec5dea2d2afb400e0f83444b2fc24e07df7fdef677110859", size = 6364818, upload-time = "2025-09-14T22:18:03.769Z" }, + { url = "https://files.pythonhosted.org/packages/31/dc/cc50210e11e465c975462439a492516a73300ab8caa8f5e0902544fd748b/zstandard-0.25.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e09bb6252b6476d8d56100e8147b803befa9a12cea144bbe629dd508800d1ad0", size = 5560402, upload-time = "2025-09-14T22:18:05.954Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ae/56523ae9c142f0c08efd5e868a6da613ae76614eca1305259c3bf6a0ed43/zstandard-0.25.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a9ec8c642d1ec73287ae3e726792dd86c96f5681eb8df274a757bf62b750eae7", size = 4955108, upload-time = "2025-09-14T22:18:07.68Z" }, + { url = "https://files.pythonhosted.org/packages/98/cf/c899f2d6df0840d5e384cf4c4121458c72802e8bda19691f3b16619f51e9/zstandard-0.25.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a4089a10e598eae6393756b036e0f419e8c1d60f44a831520f9af41c14216cf2", size = 5269248, upload-time = "2025-09-14T22:18:09.753Z" }, + { url = "https://files.pythonhosted.org/packages/1b/c0/59e912a531d91e1c192d3085fc0f6fb2852753c301a812d856d857ea03c6/zstandard-0.25.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f67e8f1a324a900e75b5e28ffb152bcac9fbed1cc7b43f99cd90f395c4375344", size = 5430330, upload-time = "2025-09-14T22:18:11.966Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/7e31db1240de2df22a58e2ea9a93fc6e38cc29353e660c0272b6735d6669/zstandard-0.25.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:9654dbc012d8b06fc3d19cc825af3f7bf8ae242226df5f83936cb39f5fdc846c", size = 5811123, upload-time = "2025-09-14T22:18:13.907Z" }, + { url = "https://files.pythonhosted.org/packages/f6/49/fac46df5ad353d50535e118d6983069df68ca5908d4d65b8c466150a4ff1/zstandard-0.25.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4203ce3b31aec23012d3a4cf4a2ed64d12fea5269c49aed5e4c3611b938e4088", size = 5359591, upload-time = "2025-09-14T22:18:16.465Z" }, + { url = "https://files.pythonhosted.org/packages/c2/38/f249a2050ad1eea0bb364046153942e34abba95dd5520af199aed86fbb49/zstandard-0.25.0-cp314-cp314-win32.whl", hash = "sha256:da469dc041701583e34de852d8634703550348d5822e66a0c827d39b05365b12", size = 444513, upload-time = "2025-09-14T22:18:20.61Z" }, + { url = "https://files.pythonhosted.org/packages/3a/43/241f9615bcf8ba8903b3f0432da069e857fc4fd1783bd26183db53c4804b/zstandard-0.25.0-cp314-cp314-win_amd64.whl", hash = "sha256:c19bcdd826e95671065f8692b5a4aa95c52dc7a02a4c5a0cac46deb879a017a2", size = 516118, upload-time = "2025-09-14T22:18:17.849Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ef/da163ce2450ed4febf6467d77ccb4cd52c4c30ab45624bad26ca0a27260c/zstandard-0.25.0-cp314-cp314-win_arm64.whl", hash = "sha256:d7541afd73985c630bafcd6338d2518ae96060075f9463d7dc14cfb33514383d", size = 476940, upload-time = "2025-09-14T22:18:19.088Z" }, +] diff --git a/package-lock.json b/package-lock.json index 0ca95a57..429202e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,6 +47,38 @@ "typescript": "^5" } }, + "apps/katanemo-www": { + "name": "@katanemo/katanemo-www", + "version": "0.1.0", + "dependencies": { + "@katanemo/shared-styles": "*", + "@katanemo/ui": "*", + "next": "^16.1.6", + "react": "19.2.0", + "react-dom": "19.2.0" + }, + "devDependencies": { + "@biomejs/biome": "2.2.0", + "@katanemo/tailwind-config": "*", + "@katanemo/tsconfig": "*", + "@tailwindcss/postcss": "^4", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "tailwindcss": "^4", + "tw-animate-css": "^1.4.0", + "typescript": "^5" + } + }, + "apps/katanemo-www/node_modules/react": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", + "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "apps/www": { "name": "@katanemo/www", "version": "0.1.0", @@ -4188,9 +4220,9 @@ } }, "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", + "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", "license": "MIT", "dependencies": { "@isaacs/balanced-match": "^4.0.1" @@ -4340,6 +4372,10 @@ "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", "license": "Apache-2.0" }, + "node_modules/@katanemo/katanemo-www": { + "resolved": "apps/katanemo-www", + "link": true + }, "node_modules/@katanemo/shared-styles": { "resolved": "packages/shared-styles", "link": true diff --git a/tests/archgw/uv.lock b/tests/archgw/uv.lock index 458f264e..d2ee2406 100644 --- a/tests/archgw/uv.lock +++ b/tests/archgw/uv.lock @@ -1,6 +1,320 @@ version = 1 +revision = 3 requires-python = ">=3.12" +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "certifi" +version = "2025.11.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538, upload-time = "2025-11-12T02:54:51.517Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coverage" +version = "7.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b6/45/2c665ca77ec32ad67e25c77daf1cee28ee4558f3bc571cdbaf88a00b9f23/coverage-7.13.0.tar.gz", hash = "sha256:a394aa27f2d7ff9bc04cf703817773a59ad6dfbd577032e690f961d2460ee936", size = 820905, upload-time = "2025-12-08T13:14:38.055Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/f1/2619559f17f31ba00fc40908efd1fbf1d0a5536eb75dc8341e7d660a08de/coverage-7.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0b3d67d31383c4c68e19a88e28fc4c2e29517580f1b0ebec4a069d502ce1e0bf", size = 218274, upload-time = "2025-12-08T13:12:52.095Z" }, + { url = "https://files.pythonhosted.org/packages/2b/11/30d71ae5d6e949ff93b2a79a2c1b4822e00423116c5c6edfaeef37301396/coverage-7.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:581f086833d24a22c89ae0fe2142cfaa1c92c930adf637ddf122d55083fb5a0f", size = 218638, upload-time = "2025-12-08T13:12:53.418Z" }, + { url = "https://files.pythonhosted.org/packages/79/c2/fce80fc6ded8d77e53207489d6065d0fed75db8951457f9213776615e0f5/coverage-7.13.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0a3a30f0e257df382f5f9534d4ce3d4cf06eafaf5192beb1a7bd066cb10e78fb", size = 250129, upload-time = "2025-12-08T13:12:54.744Z" }, + { url = "https://files.pythonhosted.org/packages/5b/b6/51b5d1eb6fcbb9a1d5d6984e26cbe09018475c2922d554fd724dd0f056ee/coverage-7.13.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:583221913fbc8f53b88c42e8dbb8fca1d0f2e597cb190ce45916662b8b9d9621", size = 252885, upload-time = "2025-12-08T13:12:56.401Z" }, + { url = "https://files.pythonhosted.org/packages/0d/f8/972a5affea41de798691ab15d023d3530f9f56a72e12e243f35031846ff7/coverage-7.13.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f5d9bd30756fff3e7216491a0d6d520c448d5124d3d8e8f56446d6412499e74", size = 253974, upload-time = "2025-12-08T13:12:57.718Z" }, + { url = "https://files.pythonhosted.org/packages/8a/56/116513aee860b2c7968aa3506b0f59b22a959261d1dbf3aea7b4450a7520/coverage-7.13.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a23e5a1f8b982d56fa64f8e442e037f6ce29322f1f9e6c2344cd9e9f4407ee57", size = 250538, upload-time = "2025-12-08T13:12:59.254Z" }, + { url = "https://files.pythonhosted.org/packages/d6/75/074476d64248fbadf16dfafbf93fdcede389ec821f74ca858d7c87d2a98c/coverage-7.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9b01c22bc74a7fb44066aaf765224c0d933ddf1f5047d6cdfe4795504a4493f8", size = 251912, upload-time = "2025-12-08T13:13:00.604Z" }, + { url = "https://files.pythonhosted.org/packages/f2/d2/aa4f8acd1f7c06024705c12609d8698c51b27e4d635d717cd1934c9668e2/coverage-7.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:898cce66d0836973f48dda4e3514d863d70142bdf6dfab932b9b6a90ea5b222d", size = 250054, upload-time = "2025-12-08T13:13:01.892Z" }, + { url = "https://files.pythonhosted.org/packages/19/98/8df9e1af6a493b03694a1e8070e024e7d2cdc77adedc225a35e616d505de/coverage-7.13.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:3ab483ea0e251b5790c2aac03acde31bff0c736bf8a86829b89382b407cd1c3b", size = 249619, upload-time = "2025-12-08T13:13:03.236Z" }, + { url = "https://files.pythonhosted.org/packages/d8/71/f8679231f3353018ca66ef647fa6fe7b77e6bff7845be54ab84f86233363/coverage-7.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d84e91521c5e4cb6602fe11ece3e1de03b2760e14ae4fcf1a4b56fa3c801fcd", size = 251496, upload-time = "2025-12-08T13:13:04.511Z" }, + { url = "https://files.pythonhosted.org/packages/04/86/9cb406388034eaf3c606c22094edbbb82eea1fa9d20c0e9efadff20d0733/coverage-7.13.0-cp312-cp312-win32.whl", hash = "sha256:193c3887285eec1dbdb3f2bd7fbc351d570ca9c02ca756c3afbc71b3c98af6ef", size = 220808, upload-time = "2025-12-08T13:13:06.422Z" }, + { url = "https://files.pythonhosted.org/packages/1c/59/af483673df6455795daf5f447c2f81a3d2fcfc893a22b8ace983791f6f34/coverage-7.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:4f3e223b2b2db5e0db0c2b97286aba0036ca000f06aca9b12112eaa9af3d92ae", size = 221616, upload-time = "2025-12-08T13:13:07.95Z" }, + { url = "https://files.pythonhosted.org/packages/64/b0/959d582572b30a6830398c60dd419c1965ca4b5fb38ac6b7093a0d50ca8d/coverage-7.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:086cede306d96202e15a4b77ace8472e39d9f4e5f9fd92dd4fecdfb2313b2080", size = 220261, upload-time = "2025-12-08T13:13:09.581Z" }, + { url = "https://files.pythonhosted.org/packages/7c/cc/bce226595eb3bf7d13ccffe154c3c487a22222d87ff018525ab4dd2e9542/coverage-7.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:28ee1c96109974af104028a8ef57cec21447d42d0e937c0275329272e370ebcf", size = 218297, upload-time = "2025-12-08T13:13:10.977Z" }, + { url = "https://files.pythonhosted.org/packages/3b/9f/73c4d34600aae03447dff3d7ad1d0ac649856bfb87d1ca7d681cfc913f9e/coverage-7.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d1e97353dcc5587b85986cda4ff3ec98081d7e84dd95e8b2a6d59820f0545f8a", size = 218673, upload-time = "2025-12-08T13:13:12.562Z" }, + { url = "https://files.pythonhosted.org/packages/63/ab/8fa097db361a1e8586535ae5073559e6229596b3489ec3ef2f5b38df8cb2/coverage-7.13.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:99acd4dfdfeb58e1937629eb1ab6ab0899b131f183ee5f23e0b5da5cba2fec74", size = 249652, upload-time = "2025-12-08T13:13:13.909Z" }, + { url = "https://files.pythonhosted.org/packages/90/3a/9bfd4de2ff191feb37ef9465855ca56a6f2f30a3bca172e474130731ac3d/coverage-7.13.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ff45e0cd8451e293b63ced93161e189780baf444119391b3e7d25315060368a6", size = 252251, upload-time = "2025-12-08T13:13:15.553Z" }, + { url = "https://files.pythonhosted.org/packages/df/61/b5d8105f016e1b5874af0d7c67542da780ccd4a5f2244a433d3e20ceb1ad/coverage-7.13.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f4f72a85316d8e13234cafe0a9f81b40418ad7a082792fa4165bd7d45d96066b", size = 253492, upload-time = "2025-12-08T13:13:16.849Z" }, + { url = "https://files.pythonhosted.org/packages/f3/b8/0fad449981803cc47a4694768b99823fb23632150743f9c83af329bb6090/coverage-7.13.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:11c21557d0e0a5a38632cbbaca5f008723b26a89d70db6315523df6df77d6232", size = 249850, upload-time = "2025-12-08T13:13:18.142Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e9/8d68337c3125014d918cf4327d5257553a710a2995a6a6de2ac77e5aa429/coverage-7.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:76541dc8d53715fb4f7a3a06b34b0dc6846e3c69bc6204c55653a85dd6220971", size = 251633, upload-time = "2025-12-08T13:13:19.56Z" }, + { url = "https://files.pythonhosted.org/packages/55/14/d4112ab26b3a1bc4b3c1295d8452dcf399ed25be4cf649002fb3e64b2d93/coverage-7.13.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6e9e451dee940a86789134b6b0ffbe31c454ade3b849bb8a9d2cca2541a8e91d", size = 249586, upload-time = "2025-12-08T13:13:20.883Z" }, + { url = "https://files.pythonhosted.org/packages/2c/a9/22b0000186db663b0d82f86c2f1028099ae9ac202491685051e2a11a5218/coverage-7.13.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:5c67dace46f361125e6b9cace8fe0b729ed8479f47e70c89b838d319375c8137", size = 249412, upload-time = "2025-12-08T13:13:22.22Z" }, + { url = "https://files.pythonhosted.org/packages/a1/2e/42d8e0d9e7527fba439acdc6ed24a2b97613b1dc85849b1dd935c2cffef0/coverage-7.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f59883c643cb19630500f57016f76cfdcd6845ca8c5b5ea1f6e17f74c8e5f511", size = 251191, upload-time = "2025-12-08T13:13:23.899Z" }, + { url = "https://files.pythonhosted.org/packages/a4/af/8c7af92b1377fd8860536aadd58745119252aaaa71a5213e5a8e8007a9f5/coverage-7.13.0-cp313-cp313-win32.whl", hash = "sha256:58632b187be6f0be500f553be41e277712baa278147ecb7559983c6d9faf7ae1", size = 220829, upload-time = "2025-12-08T13:13:25.182Z" }, + { url = "https://files.pythonhosted.org/packages/58/f9/725e8bf16f343d33cbe076c75dc8370262e194ff10072c0608b8e5cf33a3/coverage-7.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:73419b89f812f498aca53f757dd834919b48ce4799f9d5cad33ca0ae442bdb1a", size = 221640, upload-time = "2025-12-08T13:13:26.836Z" }, + { url = "https://files.pythonhosted.org/packages/8a/ff/e98311000aa6933cc79274e2b6b94a2fe0fe3434fca778eba82003675496/coverage-7.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:eb76670874fdd6091eedcc856128ee48c41a9bbbb9c3f1c7c3cf169290e3ffd6", size = 220269, upload-time = "2025-12-08T13:13:28.116Z" }, + { url = "https://files.pythonhosted.org/packages/cf/cf/bbaa2e1275b300343ea865f7d424cc0a2e2a1df6925a070b2b2d5d765330/coverage-7.13.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6e63ccc6e0ad8986386461c3c4b737540f20426e7ec932f42e030320896c311a", size = 218990, upload-time = "2025-12-08T13:13:29.463Z" }, + { url = "https://files.pythonhosted.org/packages/21/1d/82f0b3323b3d149d7672e7744c116e9c170f4957e0c42572f0366dbb4477/coverage-7.13.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:494f5459ffa1bd45e18558cd98710c36c0b8fbfa82a5eabcbe671d80ecffbfe8", size = 219340, upload-time = "2025-12-08T13:13:31.524Z" }, + { url = "https://files.pythonhosted.org/packages/fb/e3/fe3fd4702a3832a255f4d43013eacb0ef5fc155a5960ea9269d8696db28b/coverage-7.13.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:06cac81bf10f74034e055e903f5f946e3e26fc51c09fc9f584e4a1605d977053", size = 260638, upload-time = "2025-12-08T13:13:32.965Z" }, + { url = "https://files.pythonhosted.org/packages/ad/01/63186cb000307f2b4da463f72af9b85d380236965574c78e7e27680a2593/coverage-7.13.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f2ffc92b46ed6e6760f1d47a71e56b5664781bc68986dbd1836b2b70c0ce2071", size = 262705, upload-time = "2025-12-08T13:13:34.378Z" }, + { url = "https://files.pythonhosted.org/packages/7c/a1/c0dacef0cc865f2455d59eed3548573ce47ed603205ffd0735d1d78b5906/coverage-7.13.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0602f701057c6823e5db1b74530ce85f17c3c5be5c85fc042ac939cbd909426e", size = 265125, upload-time = "2025-12-08T13:13:35.73Z" }, + { url = "https://files.pythonhosted.org/packages/ef/92/82b99223628b61300bd382c205795533bed021505eab6dd86e11fb5d7925/coverage-7.13.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:25dc33618d45456ccb1d37bce44bc78cf269909aa14c4db2e03d63146a8a1493", size = 259844, upload-time = "2025-12-08T13:13:37.69Z" }, + { url = "https://files.pythonhosted.org/packages/cf/2c/89b0291ae4e6cd59ef042708e1c438e2290f8c31959a20055d8768349ee2/coverage-7.13.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:71936a8b3b977ddd0b694c28c6a34f4fff2e9dd201969a4ff5d5fc7742d614b0", size = 262700, upload-time = "2025-12-08T13:13:39.525Z" }, + { url = "https://files.pythonhosted.org/packages/bf/f9/a5f992efae1996245e796bae34ceb942b05db275e4b34222a9a40b9fbd3b/coverage-7.13.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:936bc20503ce24770c71938d1369461f0c5320830800933bc3956e2a4ded930e", size = 260321, upload-time = "2025-12-08T13:13:41.172Z" }, + { url = "https://files.pythonhosted.org/packages/4c/89/a29f5d98c64fedbe32e2ac3c227fbf78edc01cc7572eee17d61024d89889/coverage-7.13.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:af0a583efaacc52ae2521f8d7910aff65cdb093091d76291ac5820d5e947fc1c", size = 259222, upload-time = "2025-12-08T13:13:43.282Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c3/940fe447aae302a6701ee51e53af7e08b86ff6eed7631e5740c157ee22b9/coverage-7.13.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f1c23e24a7000da892a312fb17e33c5f94f8b001de44b7cf8ba2e36fbd15859e", size = 261411, upload-time = "2025-12-08T13:13:44.72Z" }, + { url = "https://files.pythonhosted.org/packages/eb/31/12a4aec689cb942a89129587860ed4d0fd522d5fda81237147fde554b8ae/coverage-7.13.0-cp313-cp313t-win32.whl", hash = "sha256:5f8a0297355e652001015e93be345ee54393e45dc3050af4a0475c5a2b767d46", size = 221505, upload-time = "2025-12-08T13:13:46.332Z" }, + { url = "https://files.pythonhosted.org/packages/65/8c/3b5fe3259d863572d2b0827642c50c3855d26b3aefe80bdc9eba1f0af3b0/coverage-7.13.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6abb3a4c52f05e08460bd9acf04fec027f8718ecaa0d09c40ffbc3fbd70ecc39", size = 222569, upload-time = "2025-12-08T13:13:47.79Z" }, + { url = "https://files.pythonhosted.org/packages/b0/39/f71fa8316a96ac72fc3908839df651e8eccee650001a17f2c78cdb355624/coverage-7.13.0-cp313-cp313t-win_arm64.whl", hash = "sha256:3ad968d1e3aa6ce5be295ab5fe3ae1bf5bb4769d0f98a80a0252d543a2ef2e9e", size = 220841, upload-time = "2025-12-08T13:13:49.243Z" }, + { url = "https://files.pythonhosted.org/packages/f8/4b/9b54bedda55421449811dcd5263a2798a63f48896c24dfb92b0f1b0845bd/coverage-7.13.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:453b7ec753cf5e4356e14fe858064e5520c460d3bbbcb9c35e55c0d21155c256", size = 218343, upload-time = "2025-12-08T13:13:50.811Z" }, + { url = "https://files.pythonhosted.org/packages/59/df/c3a1f34d4bba2e592c8979f924da4d3d4598b0df2392fbddb7761258e3dc/coverage-7.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:af827b7cbb303e1befa6c4f94fd2bf72f108089cfa0f8abab8f4ca553cf5ca5a", size = 218672, upload-time = "2025-12-08T13:13:52.284Z" }, + { url = "https://files.pythonhosted.org/packages/07/62/eec0659e47857698645ff4e6ad02e30186eb8afd65214fd43f02a76537cb/coverage-7.13.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9987a9e4f8197a1000280f7cc089e3ea2c8b3c0a64d750537809879a7b4ceaf9", size = 249715, upload-time = "2025-12-08T13:13:53.791Z" }, + { url = "https://files.pythonhosted.org/packages/23/2d/3c7ff8b2e0e634c1f58d095f071f52ed3c23ff25be524b0ccae8b71f99f8/coverage-7.13.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3188936845cd0cb114fa6a51842a304cdbac2958145d03be2377ec41eb285d19", size = 252225, upload-time = "2025-12-08T13:13:55.274Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ac/fb03b469d20e9c9a81093575003f959cf91a4a517b783aab090e4538764b/coverage-7.13.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2bdb3babb74079f021696cb46b8bb5f5661165c385d3a238712b031a12355be", size = 253559, upload-time = "2025-12-08T13:13:57.161Z" }, + { url = "https://files.pythonhosted.org/packages/29/62/14afa9e792383c66cc0a3b872a06ded6e4ed1079c7d35de274f11d27064e/coverage-7.13.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7464663eaca6adba4175f6c19354feea61ebbdd735563a03d1e472c7072d27bb", size = 249724, upload-time = "2025-12-08T13:13:58.692Z" }, + { url = "https://files.pythonhosted.org/packages/31/b7/333f3dab2939070613696ab3ee91738950f0467778c6e5a5052e840646b7/coverage-7.13.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8069e831f205d2ff1f3d355e82f511eb7c5522d7d413f5db5756b772ec8697f8", size = 251582, upload-time = "2025-12-08T13:14:00.642Z" }, + { url = "https://files.pythonhosted.org/packages/81/cb/69162bda9381f39b2287265d7e29ee770f7c27c19f470164350a38318764/coverage-7.13.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:6fb2d5d272341565f08e962cce14cdf843a08ac43bd621783527adb06b089c4b", size = 249538, upload-time = "2025-12-08T13:14:02.556Z" }, + { url = "https://files.pythonhosted.org/packages/e0/76/350387b56a30f4970abe32b90b2a434f87d29f8b7d4ae40d2e8a85aacfb3/coverage-7.13.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:5e70f92ef89bac1ac8a99b3324923b4749f008fdbd7aa9cb35e01d7a284a04f9", size = 249349, upload-time = "2025-12-08T13:14:04.015Z" }, + { url = "https://files.pythonhosted.org/packages/86/0d/7f6c42b8d59f4c7e43ea3059f573c0dcfed98ba46eb43c68c69e52ae095c/coverage-7.13.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4b5de7d4583e60d5fd246dd57fcd3a8aa23c6e118a8c72b38adf666ba8e7e927", size = 251011, upload-time = "2025-12-08T13:14:05.505Z" }, + { url = "https://files.pythonhosted.org/packages/d7/f1/4bb2dff379721bb0b5c649d5c5eaf438462cad824acf32eb1b7ca0c7078e/coverage-7.13.0-cp314-cp314-win32.whl", hash = "sha256:a6c6e16b663be828a8f0b6c5027d36471d4a9f90d28444aa4ced4d48d7d6ae8f", size = 221091, upload-time = "2025-12-08T13:14:07.127Z" }, + { url = "https://files.pythonhosted.org/packages/ba/44/c239da52f373ce379c194b0ee3bcc121020e397242b85f99e0afc8615066/coverage-7.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:0900872f2fdb3ee5646b557918d02279dc3af3dfb39029ac4e945458b13f73bc", size = 221904, upload-time = "2025-12-08T13:14:08.542Z" }, + { url = "https://files.pythonhosted.org/packages/89/1f/b9f04016d2a29c2e4a0307baefefad1a4ec5724946a2b3e482690486cade/coverage-7.13.0-cp314-cp314-win_arm64.whl", hash = "sha256:3a10260e6a152e5f03f26db4a407c4c62d3830b9af9b7c0450b183615f05d43b", size = 220480, upload-time = "2025-12-08T13:14:10.958Z" }, + { url = "https://files.pythonhosted.org/packages/16/d4/364a1439766c8e8647860584171c36010ca3226e6e45b1753b1b249c5161/coverage-7.13.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9097818b6cc1cfb5f174e3263eba4a62a17683bcfe5c4b5d07f4c97fa51fbf28", size = 219074, upload-time = "2025-12-08T13:14:13.345Z" }, + { url = "https://files.pythonhosted.org/packages/ce/f4/71ba8be63351e099911051b2089662c03d5671437a0ec2171823c8e03bec/coverage-7.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0018f73dfb4301a89292c73be6ba5f58722ff79f51593352759c1790ded1cabe", size = 219342, upload-time = "2025-12-08T13:14:15.02Z" }, + { url = "https://files.pythonhosted.org/packages/5e/25/127d8ed03d7711a387d96f132589057213e3aef7475afdaa303412463f22/coverage-7.13.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:166ad2a22ee770f5656e1257703139d3533b4a0b6909af67c6b4a3adc1c98657", size = 260713, upload-time = "2025-12-08T13:14:16.907Z" }, + { url = "https://files.pythonhosted.org/packages/fd/db/559fbb6def07d25b2243663b46ba9eb5a3c6586c0c6f4e62980a68f0ee1c/coverage-7.13.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f6aaef16d65d1787280943f1c8718dc32e9cf141014e4634d64446702d26e0ff", size = 262825, upload-time = "2025-12-08T13:14:18.68Z" }, + { url = "https://files.pythonhosted.org/packages/37/99/6ee5bf7eff884766edb43bd8736b5e1c5144d0fe47498c3779326fe75a35/coverage-7.13.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e999e2dcc094002d6e2c7bbc1fb85b58ba4f465a760a8014d97619330cdbbbf3", size = 265233, upload-time = "2025-12-08T13:14:20.55Z" }, + { url = "https://files.pythonhosted.org/packages/d8/90/92f18fe0356ea69e1f98f688ed80cec39f44e9f09a1f26a1bbf017cc67f2/coverage-7.13.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:00c3d22cf6fb1cf3bf662aaaa4e563be8243a5ed2630339069799835a9cc7f9b", size = 259779, upload-time = "2025-12-08T13:14:22.367Z" }, + { url = "https://files.pythonhosted.org/packages/90/5d/b312a8b45b37a42ea7d27d7d3ff98ade3a6c892dd48d1d503e773503373f/coverage-7.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22ccfe8d9bb0d6134892cbe1262493a8c70d736b9df930f3f3afae0fe3ac924d", size = 262700, upload-time = "2025-12-08T13:14:24.309Z" }, + { url = "https://files.pythonhosted.org/packages/63/f8/b1d0de5c39351eb71c366f872376d09386640840a2e09b0d03973d791e20/coverage-7.13.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:9372dff5ea15930fea0445eaf37bbbafbc771a49e70c0aeed8b4e2c2614cc00e", size = 260302, upload-time = "2025-12-08T13:14:26.068Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7c/d42f4435bc40c55558b3109a39e2d456cddcec37434f62a1f1230991667a/coverage-7.13.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:69ac2c492918c2461bc6ace42d0479638e60719f2a4ef3f0815fa2df88e9f940", size = 259136, upload-time = "2025-12-08T13:14:27.604Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d3/23413241dc04d47cfe19b9a65b32a2edd67ecd0b817400c2843ebc58c847/coverage-7.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:739c6c051a7540608d097b8e13c76cfa85263ced467168dc6b477bae3df7d0e2", size = 261467, upload-time = "2025-12-08T13:14:29.09Z" }, + { url = "https://files.pythonhosted.org/packages/13/e6/6e063174500eee216b96272c0d1847bf215926786f85c2bd024cf4d02d2f/coverage-7.13.0-cp314-cp314t-win32.whl", hash = "sha256:fe81055d8c6c9de76d60c94ddea73c290b416e061d40d542b24a5871bad498b7", size = 221875, upload-time = "2025-12-08T13:14:31.106Z" }, + { url = "https://files.pythonhosted.org/packages/3b/46/f4fb293e4cbe3620e3ac2a3e8fd566ed33affb5861a9b20e3dd6c1896cbc/coverage-7.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:445badb539005283825959ac9fa4a28f712c214b65af3a2c464f1adc90f5fcbc", size = 222982, upload-time = "2025-12-08T13:14:33.1Z" }, + { url = "https://files.pythonhosted.org/packages/68/62/5b3b9018215ed9733fbd1ae3b2ed75c5de62c3b55377a52cae732e1b7805/coverage-7.13.0-cp314-cp314t-win_arm64.whl", hash = "sha256:de7f6748b890708578fc4b7bb967d810aeb6fcc9bff4bb77dbca77dab2f9df6a", size = 221016, upload-time = "2025-12-08T13:14:34.601Z" }, + { url = "https://files.pythonhosted.org/packages/8d/4c/1968f32fb9a2604645827e11ff84a31e59d532e01995f904723b4f5328b3/coverage-7.13.0-py3-none-any.whl", hash = "sha256:850d2998f380b1e266459ca5b47bc9e7daf9af1d070f66317972f382d46f1904", size = 210068, upload-time = "2025-12-08T13:14:36.236Z" }, +] + +[[package]] +name = "deepdiff" +version = "8.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "orderly-set" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/76/36c9aab3d5c19a94091f7c6c6e784efca50d87b124bf026c36e94719f33c/deepdiff-8.6.1.tar.gz", hash = "sha256:ec56d7a769ca80891b5200ec7bd41eec300ced91ebcc7797b41eb2b3f3ff643a", size = 634054, upload-time = "2025-09-03T19:40:41.461Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl", hash = "sha256:ee8708a7f7d37fb273a541fa24ad010ed484192cd0c4ffc0fa0ed5e2d4b9e78b", size = 91378, upload-time = "2025-09-03T19:40:39.679Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "orderly-set" +version = "5.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/88/39c83c35d5e97cc203e9e77a4f93bf87ec89cf6a22ac4818fdcc65d66584/orderly_set-5.5.0.tar.gz", hash = "sha256:e87185c8e4d8afa64e7f8160ee2c542a475b738bc891dc3f58102e654125e6ce", size = 27414, upload-time = "2025-07-10T20:10:55.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl", hash = "sha256:46f0b801948e98f427b412fcabb831677194c05c3b699b80de260374baa0b1e7", size = 13068, upload-time = "2025-07-10T20:10:54.377Z" }, +] + +[[package]] +name = "outcome" +version = "1.3.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/df/77698abfac98571e65ffeb0c1fba8ffd692ab8458d617a0eed7d9a8d38f2/outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8", size = 21060, upload-time = "2023-10-26T04:26:04.361Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b", size = 10692, upload-time = "2023-10-26T04:26:02.532Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + [[package]] name = "plano-mock-tests" version = "0.0.1" @@ -31,388 +345,42 @@ requires-dist = [ { name = "requests", specifier = ">=2.29.0" }, { name = "selenium", specifier = ">=4.11.2" }, ] - -[[package]] -name = "attrs" -version = "25.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615 }, -] - -[[package]] -name = "certifi" -version = "2025.11.12" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438 }, -] - -[[package]] -name = "cffi" -version = "2.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pycparser", marker = "implementation_name != 'PyPy'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271 }, - { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048 }, - { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529 }, - { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097 }, - { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983 }, - { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519 }, - { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572 }, - { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963 }, - { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361 }, - { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932 }, - { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557 }, - { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762 }, - { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230 }, - { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043 }, - { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446 }, - { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101 }, - { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948 }, - { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422 }, - { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499 }, - { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928 }, - { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302 }, - { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909 }, - { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402 }, - { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780 }, - { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320 }, - { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487 }, - { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049 }, - { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793 }, - { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300 }, - { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244 }, - { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828 }, - { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926 }, - { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328 }, - { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650 }, - { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687 }, - { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773 }, - { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013 }, - { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593 }, - { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354 }, - { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480 }, - { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584 }, - { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443 }, - { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437 }, - { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487 }, - { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726 }, - { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195 }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425 }, - { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162 }, - { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558 }, - { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497 }, - { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240 }, - { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471 }, - { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864 }, - { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647 }, - { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110 }, - { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839 }, - { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667 }, - { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535 }, - { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816 }, - { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694 }, - { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131 }, - { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390 }, - { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091 }, - { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936 }, - { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180 }, - { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346 }, - { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874 }, - { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076 }, - { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601 }, - { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376 }, - { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825 }, - { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583 }, - { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366 }, - { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300 }, - { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465 }, - { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404 }, - { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092 }, - { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408 }, - { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746 }, - { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889 }, - { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641 }, - { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779 }, - { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035 }, - { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542 }, - { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524 }, - { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395 }, - { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680 }, - { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045 }, - { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687 }, - { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014 }, - { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044 }, - { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940 }, - { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104 }, - { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743 }, - { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402 }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, -] - -[[package]] -name = "coverage" -version = "7.13.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b6/45/2c665ca77ec32ad67e25c77daf1cee28ee4558f3bc571cdbaf88a00b9f23/coverage-7.13.0.tar.gz", hash = "sha256:a394aa27f2d7ff9bc04cf703817773a59ad6dfbd577032e690f961d2460ee936", size = 820905 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/f1/2619559f17f31ba00fc40908efd1fbf1d0a5536eb75dc8341e7d660a08de/coverage-7.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0b3d67d31383c4c68e19a88e28fc4c2e29517580f1b0ebec4a069d502ce1e0bf", size = 218274 }, - { url = "https://files.pythonhosted.org/packages/2b/11/30d71ae5d6e949ff93b2a79a2c1b4822e00423116c5c6edfaeef37301396/coverage-7.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:581f086833d24a22c89ae0fe2142cfaa1c92c930adf637ddf122d55083fb5a0f", size = 218638 }, - { url = "https://files.pythonhosted.org/packages/79/c2/fce80fc6ded8d77e53207489d6065d0fed75db8951457f9213776615e0f5/coverage-7.13.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0a3a30f0e257df382f5f9534d4ce3d4cf06eafaf5192beb1a7bd066cb10e78fb", size = 250129 }, - { url = "https://files.pythonhosted.org/packages/5b/b6/51b5d1eb6fcbb9a1d5d6984e26cbe09018475c2922d554fd724dd0f056ee/coverage-7.13.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:583221913fbc8f53b88c42e8dbb8fca1d0f2e597cb190ce45916662b8b9d9621", size = 252885 }, - { url = "https://files.pythonhosted.org/packages/0d/f8/972a5affea41de798691ab15d023d3530f9f56a72e12e243f35031846ff7/coverage-7.13.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f5d9bd30756fff3e7216491a0d6d520c448d5124d3d8e8f56446d6412499e74", size = 253974 }, - { url = "https://files.pythonhosted.org/packages/8a/56/116513aee860b2c7968aa3506b0f59b22a959261d1dbf3aea7b4450a7520/coverage-7.13.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a23e5a1f8b982d56fa64f8e442e037f6ce29322f1f9e6c2344cd9e9f4407ee57", size = 250538 }, - { url = "https://files.pythonhosted.org/packages/d6/75/074476d64248fbadf16dfafbf93fdcede389ec821f74ca858d7c87d2a98c/coverage-7.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9b01c22bc74a7fb44066aaf765224c0d933ddf1f5047d6cdfe4795504a4493f8", size = 251912 }, - { url = "https://files.pythonhosted.org/packages/f2/d2/aa4f8acd1f7c06024705c12609d8698c51b27e4d635d717cd1934c9668e2/coverage-7.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:898cce66d0836973f48dda4e3514d863d70142bdf6dfab932b9b6a90ea5b222d", size = 250054 }, - { url = "https://files.pythonhosted.org/packages/19/98/8df9e1af6a493b03694a1e8070e024e7d2cdc77adedc225a35e616d505de/coverage-7.13.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:3ab483ea0e251b5790c2aac03acde31bff0c736bf8a86829b89382b407cd1c3b", size = 249619 }, - { url = "https://files.pythonhosted.org/packages/d8/71/f8679231f3353018ca66ef647fa6fe7b77e6bff7845be54ab84f86233363/coverage-7.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d84e91521c5e4cb6602fe11ece3e1de03b2760e14ae4fcf1a4b56fa3c801fcd", size = 251496 }, - { url = "https://files.pythonhosted.org/packages/04/86/9cb406388034eaf3c606c22094edbbb82eea1fa9d20c0e9efadff20d0733/coverage-7.13.0-cp312-cp312-win32.whl", hash = "sha256:193c3887285eec1dbdb3f2bd7fbc351d570ca9c02ca756c3afbc71b3c98af6ef", size = 220808 }, - { url = "https://files.pythonhosted.org/packages/1c/59/af483673df6455795daf5f447c2f81a3d2fcfc893a22b8ace983791f6f34/coverage-7.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:4f3e223b2b2db5e0db0c2b97286aba0036ca000f06aca9b12112eaa9af3d92ae", size = 221616 }, - { url = "https://files.pythonhosted.org/packages/64/b0/959d582572b30a6830398c60dd419c1965ca4b5fb38ac6b7093a0d50ca8d/coverage-7.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:086cede306d96202e15a4b77ace8472e39d9f4e5f9fd92dd4fecdfb2313b2080", size = 220261 }, - { url = "https://files.pythonhosted.org/packages/7c/cc/bce226595eb3bf7d13ccffe154c3c487a22222d87ff018525ab4dd2e9542/coverage-7.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:28ee1c96109974af104028a8ef57cec21447d42d0e937c0275329272e370ebcf", size = 218297 }, - { url = "https://files.pythonhosted.org/packages/3b/9f/73c4d34600aae03447dff3d7ad1d0ac649856bfb87d1ca7d681cfc913f9e/coverage-7.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d1e97353dcc5587b85986cda4ff3ec98081d7e84dd95e8b2a6d59820f0545f8a", size = 218673 }, - { url = "https://files.pythonhosted.org/packages/63/ab/8fa097db361a1e8586535ae5073559e6229596b3489ec3ef2f5b38df8cb2/coverage-7.13.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:99acd4dfdfeb58e1937629eb1ab6ab0899b131f183ee5f23e0b5da5cba2fec74", size = 249652 }, - { url = "https://files.pythonhosted.org/packages/90/3a/9bfd4de2ff191feb37ef9465855ca56a6f2f30a3bca172e474130731ac3d/coverage-7.13.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ff45e0cd8451e293b63ced93161e189780baf444119391b3e7d25315060368a6", size = 252251 }, - { url = "https://files.pythonhosted.org/packages/df/61/b5d8105f016e1b5874af0d7c67542da780ccd4a5f2244a433d3e20ceb1ad/coverage-7.13.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f4f72a85316d8e13234cafe0a9f81b40418ad7a082792fa4165bd7d45d96066b", size = 253492 }, - { url = "https://files.pythonhosted.org/packages/f3/b8/0fad449981803cc47a4694768b99823fb23632150743f9c83af329bb6090/coverage-7.13.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:11c21557d0e0a5a38632cbbaca5f008723b26a89d70db6315523df6df77d6232", size = 249850 }, - { url = "https://files.pythonhosted.org/packages/9a/e9/8d68337c3125014d918cf4327d5257553a710a2995a6a6de2ac77e5aa429/coverage-7.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:76541dc8d53715fb4f7a3a06b34b0dc6846e3c69bc6204c55653a85dd6220971", size = 251633 }, - { url = "https://files.pythonhosted.org/packages/55/14/d4112ab26b3a1bc4b3c1295d8452dcf399ed25be4cf649002fb3e64b2d93/coverage-7.13.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6e9e451dee940a86789134b6b0ffbe31c454ade3b849bb8a9d2cca2541a8e91d", size = 249586 }, - { url = "https://files.pythonhosted.org/packages/2c/a9/22b0000186db663b0d82f86c2f1028099ae9ac202491685051e2a11a5218/coverage-7.13.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:5c67dace46f361125e6b9cace8fe0b729ed8479f47e70c89b838d319375c8137", size = 249412 }, - { url = "https://files.pythonhosted.org/packages/a1/2e/42d8e0d9e7527fba439acdc6ed24a2b97613b1dc85849b1dd935c2cffef0/coverage-7.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f59883c643cb19630500f57016f76cfdcd6845ca8c5b5ea1f6e17f74c8e5f511", size = 251191 }, - { url = "https://files.pythonhosted.org/packages/a4/af/8c7af92b1377fd8860536aadd58745119252aaaa71a5213e5a8e8007a9f5/coverage-7.13.0-cp313-cp313-win32.whl", hash = "sha256:58632b187be6f0be500f553be41e277712baa278147ecb7559983c6d9faf7ae1", size = 220829 }, - { url = "https://files.pythonhosted.org/packages/58/f9/725e8bf16f343d33cbe076c75dc8370262e194ff10072c0608b8e5cf33a3/coverage-7.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:73419b89f812f498aca53f757dd834919b48ce4799f9d5cad33ca0ae442bdb1a", size = 221640 }, - { url = "https://files.pythonhosted.org/packages/8a/ff/e98311000aa6933cc79274e2b6b94a2fe0fe3434fca778eba82003675496/coverage-7.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:eb76670874fdd6091eedcc856128ee48c41a9bbbb9c3f1c7c3cf169290e3ffd6", size = 220269 }, - { url = "https://files.pythonhosted.org/packages/cf/cf/bbaa2e1275b300343ea865f7d424cc0a2e2a1df6925a070b2b2d5d765330/coverage-7.13.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6e63ccc6e0ad8986386461c3c4b737540f20426e7ec932f42e030320896c311a", size = 218990 }, - { url = "https://files.pythonhosted.org/packages/21/1d/82f0b3323b3d149d7672e7744c116e9c170f4957e0c42572f0366dbb4477/coverage-7.13.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:494f5459ffa1bd45e18558cd98710c36c0b8fbfa82a5eabcbe671d80ecffbfe8", size = 219340 }, - { url = "https://files.pythonhosted.org/packages/fb/e3/fe3fd4702a3832a255f4d43013eacb0ef5fc155a5960ea9269d8696db28b/coverage-7.13.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:06cac81bf10f74034e055e903f5f946e3e26fc51c09fc9f584e4a1605d977053", size = 260638 }, - { url = "https://files.pythonhosted.org/packages/ad/01/63186cb000307f2b4da463f72af9b85d380236965574c78e7e27680a2593/coverage-7.13.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f2ffc92b46ed6e6760f1d47a71e56b5664781bc68986dbd1836b2b70c0ce2071", size = 262705 }, - { url = "https://files.pythonhosted.org/packages/7c/a1/c0dacef0cc865f2455d59eed3548573ce47ed603205ffd0735d1d78b5906/coverage-7.13.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0602f701057c6823e5db1b74530ce85f17c3c5be5c85fc042ac939cbd909426e", size = 265125 }, - { url = "https://files.pythonhosted.org/packages/ef/92/82b99223628b61300bd382c205795533bed021505eab6dd86e11fb5d7925/coverage-7.13.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:25dc33618d45456ccb1d37bce44bc78cf269909aa14c4db2e03d63146a8a1493", size = 259844 }, - { url = "https://files.pythonhosted.org/packages/cf/2c/89b0291ae4e6cd59ef042708e1c438e2290f8c31959a20055d8768349ee2/coverage-7.13.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:71936a8b3b977ddd0b694c28c6a34f4fff2e9dd201969a4ff5d5fc7742d614b0", size = 262700 }, - { url = "https://files.pythonhosted.org/packages/bf/f9/a5f992efae1996245e796bae34ceb942b05db275e4b34222a9a40b9fbd3b/coverage-7.13.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:936bc20503ce24770c71938d1369461f0c5320830800933bc3956e2a4ded930e", size = 260321 }, - { url = "https://files.pythonhosted.org/packages/4c/89/a29f5d98c64fedbe32e2ac3c227fbf78edc01cc7572eee17d61024d89889/coverage-7.13.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:af0a583efaacc52ae2521f8d7910aff65cdb093091d76291ac5820d5e947fc1c", size = 259222 }, - { url = "https://files.pythonhosted.org/packages/b3/c3/940fe447aae302a6701ee51e53af7e08b86ff6eed7631e5740c157ee22b9/coverage-7.13.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f1c23e24a7000da892a312fb17e33c5f94f8b001de44b7cf8ba2e36fbd15859e", size = 261411 }, - { url = "https://files.pythonhosted.org/packages/eb/31/12a4aec689cb942a89129587860ed4d0fd522d5fda81237147fde554b8ae/coverage-7.13.0-cp313-cp313t-win32.whl", hash = "sha256:5f8a0297355e652001015e93be345ee54393e45dc3050af4a0475c5a2b767d46", size = 221505 }, - { url = "https://files.pythonhosted.org/packages/65/8c/3b5fe3259d863572d2b0827642c50c3855d26b3aefe80bdc9eba1f0af3b0/coverage-7.13.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6abb3a4c52f05e08460bd9acf04fec027f8718ecaa0d09c40ffbc3fbd70ecc39", size = 222569 }, - { url = "https://files.pythonhosted.org/packages/b0/39/f71fa8316a96ac72fc3908839df651e8eccee650001a17f2c78cdb355624/coverage-7.13.0-cp313-cp313t-win_arm64.whl", hash = "sha256:3ad968d1e3aa6ce5be295ab5fe3ae1bf5bb4769d0f98a80a0252d543a2ef2e9e", size = 220841 }, - { url = "https://files.pythonhosted.org/packages/f8/4b/9b54bedda55421449811dcd5263a2798a63f48896c24dfb92b0f1b0845bd/coverage-7.13.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:453b7ec753cf5e4356e14fe858064e5520c460d3bbbcb9c35e55c0d21155c256", size = 218343 }, - { url = "https://files.pythonhosted.org/packages/59/df/c3a1f34d4bba2e592c8979f924da4d3d4598b0df2392fbddb7761258e3dc/coverage-7.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:af827b7cbb303e1befa6c4f94fd2bf72f108089cfa0f8abab8f4ca553cf5ca5a", size = 218672 }, - { url = "https://files.pythonhosted.org/packages/07/62/eec0659e47857698645ff4e6ad02e30186eb8afd65214fd43f02a76537cb/coverage-7.13.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9987a9e4f8197a1000280f7cc089e3ea2c8b3c0a64d750537809879a7b4ceaf9", size = 249715 }, - { url = "https://files.pythonhosted.org/packages/23/2d/3c7ff8b2e0e634c1f58d095f071f52ed3c23ff25be524b0ccae8b71f99f8/coverage-7.13.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3188936845cd0cb114fa6a51842a304cdbac2958145d03be2377ec41eb285d19", size = 252225 }, - { url = "https://files.pythonhosted.org/packages/aa/ac/fb03b469d20e9c9a81093575003f959cf91a4a517b783aab090e4538764b/coverage-7.13.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2bdb3babb74079f021696cb46b8bb5f5661165c385d3a238712b031a12355be", size = 253559 }, - { url = "https://files.pythonhosted.org/packages/29/62/14afa9e792383c66cc0a3b872a06ded6e4ed1079c7d35de274f11d27064e/coverage-7.13.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7464663eaca6adba4175f6c19354feea61ebbdd735563a03d1e472c7072d27bb", size = 249724 }, - { url = "https://files.pythonhosted.org/packages/31/b7/333f3dab2939070613696ab3ee91738950f0467778c6e5a5052e840646b7/coverage-7.13.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8069e831f205d2ff1f3d355e82f511eb7c5522d7d413f5db5756b772ec8697f8", size = 251582 }, - { url = "https://files.pythonhosted.org/packages/81/cb/69162bda9381f39b2287265d7e29ee770f7c27c19f470164350a38318764/coverage-7.13.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:6fb2d5d272341565f08e962cce14cdf843a08ac43bd621783527adb06b089c4b", size = 249538 }, - { url = "https://files.pythonhosted.org/packages/e0/76/350387b56a30f4970abe32b90b2a434f87d29f8b7d4ae40d2e8a85aacfb3/coverage-7.13.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:5e70f92ef89bac1ac8a99b3324923b4749f008fdbd7aa9cb35e01d7a284a04f9", size = 249349 }, - { url = "https://files.pythonhosted.org/packages/86/0d/7f6c42b8d59f4c7e43ea3059f573c0dcfed98ba46eb43c68c69e52ae095c/coverage-7.13.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4b5de7d4583e60d5fd246dd57fcd3a8aa23c6e118a8c72b38adf666ba8e7e927", size = 251011 }, - { url = "https://files.pythonhosted.org/packages/d7/f1/4bb2dff379721bb0b5c649d5c5eaf438462cad824acf32eb1b7ca0c7078e/coverage-7.13.0-cp314-cp314-win32.whl", hash = "sha256:a6c6e16b663be828a8f0b6c5027d36471d4a9f90d28444aa4ced4d48d7d6ae8f", size = 221091 }, - { url = "https://files.pythonhosted.org/packages/ba/44/c239da52f373ce379c194b0ee3bcc121020e397242b85f99e0afc8615066/coverage-7.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:0900872f2fdb3ee5646b557918d02279dc3af3dfb39029ac4e945458b13f73bc", size = 221904 }, - { url = "https://files.pythonhosted.org/packages/89/1f/b9f04016d2a29c2e4a0307baefefad1a4ec5724946a2b3e482690486cade/coverage-7.13.0-cp314-cp314-win_arm64.whl", hash = "sha256:3a10260e6a152e5f03f26db4a407c4c62d3830b9af9b7c0450b183615f05d43b", size = 220480 }, - { url = "https://files.pythonhosted.org/packages/16/d4/364a1439766c8e8647860584171c36010ca3226e6e45b1753b1b249c5161/coverage-7.13.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9097818b6cc1cfb5f174e3263eba4a62a17683bcfe5c4b5d07f4c97fa51fbf28", size = 219074 }, - { url = "https://files.pythonhosted.org/packages/ce/f4/71ba8be63351e099911051b2089662c03d5671437a0ec2171823c8e03bec/coverage-7.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0018f73dfb4301a89292c73be6ba5f58722ff79f51593352759c1790ded1cabe", size = 219342 }, - { url = "https://files.pythonhosted.org/packages/5e/25/127d8ed03d7711a387d96f132589057213e3aef7475afdaa303412463f22/coverage-7.13.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:166ad2a22ee770f5656e1257703139d3533b4a0b6909af67c6b4a3adc1c98657", size = 260713 }, - { url = "https://files.pythonhosted.org/packages/fd/db/559fbb6def07d25b2243663b46ba9eb5a3c6586c0c6f4e62980a68f0ee1c/coverage-7.13.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f6aaef16d65d1787280943f1c8718dc32e9cf141014e4634d64446702d26e0ff", size = 262825 }, - { url = "https://files.pythonhosted.org/packages/37/99/6ee5bf7eff884766edb43bd8736b5e1c5144d0fe47498c3779326fe75a35/coverage-7.13.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e999e2dcc094002d6e2c7bbc1fb85b58ba4f465a760a8014d97619330cdbbbf3", size = 265233 }, - { url = "https://files.pythonhosted.org/packages/d8/90/92f18fe0356ea69e1f98f688ed80cec39f44e9f09a1f26a1bbf017cc67f2/coverage-7.13.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:00c3d22cf6fb1cf3bf662aaaa4e563be8243a5ed2630339069799835a9cc7f9b", size = 259779 }, - { url = "https://files.pythonhosted.org/packages/90/5d/b312a8b45b37a42ea7d27d7d3ff98ade3a6c892dd48d1d503e773503373f/coverage-7.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22ccfe8d9bb0d6134892cbe1262493a8c70d736b9df930f3f3afae0fe3ac924d", size = 262700 }, - { url = "https://files.pythonhosted.org/packages/63/f8/b1d0de5c39351eb71c366f872376d09386640840a2e09b0d03973d791e20/coverage-7.13.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:9372dff5ea15930fea0445eaf37bbbafbc771a49e70c0aeed8b4e2c2614cc00e", size = 260302 }, - { url = "https://files.pythonhosted.org/packages/aa/7c/d42f4435bc40c55558b3109a39e2d456cddcec37434f62a1f1230991667a/coverage-7.13.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:69ac2c492918c2461bc6ace42d0479638e60719f2a4ef3f0815fa2df88e9f940", size = 259136 }, - { url = "https://files.pythonhosted.org/packages/b8/d3/23413241dc04d47cfe19b9a65b32a2edd67ecd0b817400c2843ebc58c847/coverage-7.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:739c6c051a7540608d097b8e13c76cfa85263ced467168dc6b477bae3df7d0e2", size = 261467 }, - { url = "https://files.pythonhosted.org/packages/13/e6/6e063174500eee216b96272c0d1847bf215926786f85c2bd024cf4d02d2f/coverage-7.13.0-cp314-cp314t-win32.whl", hash = "sha256:fe81055d8c6c9de76d60c94ddea73c290b416e061d40d542b24a5871bad498b7", size = 221875 }, - { url = "https://files.pythonhosted.org/packages/3b/46/f4fb293e4cbe3620e3ac2a3e8fd566ed33affb5861a9b20e3dd6c1896cbc/coverage-7.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:445badb539005283825959ac9fa4a28f712c214b65af3a2c464f1adc90f5fcbc", size = 222982 }, - { url = "https://files.pythonhosted.org/packages/68/62/5b3b9018215ed9733fbd1ae3b2ed75c5de62c3b55377a52cae732e1b7805/coverage-7.13.0-cp314-cp314t-win_arm64.whl", hash = "sha256:de7f6748b890708578fc4b7bb967d810aeb6fcc9bff4bb77dbca77dab2f9df6a", size = 221016 }, - { url = "https://files.pythonhosted.org/packages/8d/4c/1968f32fb9a2604645827e11ff84a31e59d532e01995f904723b4f5328b3/coverage-7.13.0-py3-none-any.whl", hash = "sha256:850d2998f380b1e266459ca5b47bc9e7daf9af1d070f66317972f382d46f1904", size = 210068 }, -] - -[[package]] -name = "deepdiff" -version = "8.6.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "orderly-set" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/19/76/36c9aab3d5c19a94091f7c6c6e784efca50d87b124bf026c36e94719f33c/deepdiff-8.6.1.tar.gz", hash = "sha256:ec56d7a769ca80891b5200ec7bd41eec300ced91ebcc7797b41eb2b3f3ff643a", size = 634054 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl", hash = "sha256:ee8708a7f7d37fb273a541fa24ad010ed484192cd0c4ffc0fa0ed5e2d4b9e78b", size = 91378 }, -] - -[[package]] -name = "h11" -version = "0.16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, -] - -[[package]] -name = "idna" -version = "3.11" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008 }, -] - -[[package]] -name = "iniconfig" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484 }, -] - -[[package]] -name = "markupsafe" -version = "3.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615 }, - { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020 }, - { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332 }, - { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947 }, - { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962 }, - { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760 }, - { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529 }, - { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015 }, - { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540 }, - { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105 }, - { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906 }, - { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622 }, - { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029 }, - { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374 }, - { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980 }, - { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990 }, - { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784 }, - { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588 }, - { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041 }, - { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543 }, - { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113 }, - { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911 }, - { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658 }, - { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066 }, - { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639 }, - { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569 }, - { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284 }, - { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801 }, - { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769 }, - { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642 }, - { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612 }, - { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200 }, - { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973 }, - { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619 }, - { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029 }, - { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408 }, - { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005 }, - { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048 }, - { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821 }, - { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606 }, - { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043 }, - { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747 }, - { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341 }, - { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073 }, - { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661 }, - { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069 }, - { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670 }, - { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598 }, - { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261 }, - { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835 }, - { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733 }, - { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672 }, - { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819 }, - { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426 }, - { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146 }, -] - -[[package]] -name = "orderly-set" -version = "5.5.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4a/88/39c83c35d5e97cc203e9e77a4f93bf87ec89cf6a22ac4818fdcc65d66584/orderly_set-5.5.0.tar.gz", hash = "sha256:e87185c8e4d8afa64e7f8160ee2c542a475b738bc891dc3f58102e654125e6ce", size = 27414 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl", hash = "sha256:46f0b801948e98f427b412fcabb831677194c05c3b699b80de260374baa0b1e7", size = 13068 }, -] - -[[package]] -name = "outcome" -version = "1.3.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "attrs" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/98/df/77698abfac98571e65ffeb0c1fba8ffd692ab8458d617a0eed7d9a8d38f2/outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8", size = 21060 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b", size = 10692 }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 }, -] +provides-extras = ["dev"] [[package]] name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] name = "pycparser" version = "2.23" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734 } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140 }, + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, ] [[package]] name = "pygments" version = "2.19.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631 } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217 }, + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, ] [[package]] name = "pysocks" version = "1.7.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429 } +sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload-time = "2019-09-20T02:07:35.714Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725 }, + { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload-time = "2019-09-20T02:06:22.938Z" }, ] [[package]] @@ -426,9 +394,9 @@ dependencies = [ { name = "pluggy" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801 }, + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, ] [[package]] @@ -440,9 +408,9 @@ dependencies = [ { name = "pluggy" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1", size = 54328 } +sdist = { url = "https://files.pythonhosted.org/packages/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1", size = 54328, upload-time = "2025-09-09T10:57:02.113Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424 }, + { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424, upload-time = "2025-09-09T10:57:00.695Z" }, ] [[package]] @@ -452,9 +420,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "werkzeug" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f1/d8/def15ba33bd696dd72dd4562a5287c0cba4d18a591eeb82e0b08ab385afc/pytest_httpserver-1.1.3.tar.gz", hash = "sha256:af819d6b533f84b4680b9416a5b3f67f1df3701f1da54924afd4d6e4ba5917ec", size = 68870 } +sdist = { url = "https://files.pythonhosted.org/packages/f1/d8/def15ba33bd696dd72dd4562a5287c0cba4d18a591eeb82e0b08ab385afc/pytest_httpserver-1.1.3.tar.gz", hash = "sha256:af819d6b533f84b4680b9416a5b3f67f1df3701f1da54924afd4d6e4ba5917ec", size = 68870, upload-time = "2025-04-10T08:17:15.6Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0d/d2/dfc2f25f3905921c2743c300a48d9494d29032f1389fc142e718d6978fb2/pytest_httpserver-1.1.3-py3-none-any.whl", hash = "sha256:5f84757810233e19e2bb5287f3826a71c97a3740abe3a363af9155c0f82fdbb9", size = 21000 }, + { url = "https://files.pythonhosted.org/packages/0d/d2/dfc2f25f3905921c2743c300a48d9494d29032f1389fc142e718d6978fb2/pytest_httpserver-1.1.3-py3-none-any.whl", hash = "sha256:5f84757810233e19e2bb5287f3826a71c97a3740abe3a363af9155c0f82fdbb9", size = 21000, upload-time = "2025-04-10T08:17:13.906Z" }, ] [[package]] @@ -464,9 +432,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c5/5b/607b017994cca28de3a1ad22a3eee8418e5d428dcd8ec25b26b18e995a73/pytest_retry-1.7.0.tar.gz", hash = "sha256:f8d52339f01e949df47c11ba9ee8d5b362f5824dff580d3870ec9ae0057df80f", size = 19977 } +sdist = { url = "https://files.pythonhosted.org/packages/c5/5b/607b017994cca28de3a1ad22a3eee8418e5d428dcd8ec25b26b18e995a73/pytest_retry-1.7.0.tar.gz", hash = "sha256:f8d52339f01e949df47c11ba9ee8d5b362f5824dff580d3870ec9ae0057df80f", size = 19977, upload-time = "2025-01-19T01:56:13.115Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/ff/3266c8a73b9b93c4b14160a7e2b31d1e1088e28ed29f4c2d93ae34093bfd/pytest_retry-1.7.0-py3-none-any.whl", hash = "sha256:a2dac85b79a4e2375943f1429479c65beb6c69553e7dae6b8332be47a60954f4", size = 13775 }, + { url = "https://files.pythonhosted.org/packages/7c/ff/3266c8a73b9b93c4b14160a7e2b31d1e1088e28ed29f4c2d93ae34093bfd/pytest_retry-1.7.0-py3-none-any.whl", hash = "sha256:a2dac85b79a4e2375943f1429479c65beb6c69553e7dae6b8332be47a60954f4", size = 13775, upload-time = "2025-01-19T01:56:11.199Z" }, ] [[package]] @@ -477,9 +445,9 @@ dependencies = [ { name = "pytest" }, { name = "termcolor" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0b/4e/60fed105549297ba1a700e1ea7b828044842ea27d72c898990510b79b0e2/pytest-sugar-1.1.1.tar.gz", hash = "sha256:73b8b65163ebf10f9f671efab9eed3d56f20d2ca68bda83fa64740a92c08f65d", size = 16533 } +sdist = { url = "https://files.pythonhosted.org/packages/0b/4e/60fed105549297ba1a700e1ea7b828044842ea27d72c898990510b79b0e2/pytest-sugar-1.1.1.tar.gz", hash = "sha256:73b8b65163ebf10f9f671efab9eed3d56f20d2ca68bda83fa64740a92c08f65d", size = 16533, upload-time = "2025-08-23T12:19:35.737Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/d5/81d38a91c1fdafb6711f053f5a9b92ff788013b19821257c2c38c1e132df/pytest_sugar-1.1.1-py3-none-any.whl", hash = "sha256:2f8319b907548d5b9d03a171515c1d43d2e38e32bd8182a1781eb20b43344cc8", size = 11440 }, + { url = "https://files.pythonhosted.org/packages/87/d5/81d38a91c1fdafb6711f053f5a9b92ff788013b19821257c2c38c1e132df/pytest_sugar-1.1.1-py3-none-any.whl", hash = "sha256:2f8319b907548d5b9d03a171515c1d43d2e38e32bd8182a1781eb20b43344cc8", size = 11440, upload-time = "2025-08-23T12:19:34.894Z" }, ] [[package]] @@ -492,9 +460,9 @@ dependencies = [ { name = "idna" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517 } +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738 }, + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, ] [[package]] @@ -509,36 +477,36 @@ dependencies = [ { name = "urllib3", extra = ["socks"] }, { name = "websocket-client" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/af/19/27c1bf9eb1f7025632d35a956b50746efb4b10aa87f961b263fa7081f4c5/selenium-4.39.0.tar.gz", hash = "sha256:12f3325f02d43b6c24030fc9602b34a3c6865abbb1db9406641d13d108aa1889", size = 928575 } +sdist = { url = "https://files.pythonhosted.org/packages/af/19/27c1bf9eb1f7025632d35a956b50746efb4b10aa87f961b263fa7081f4c5/selenium-4.39.0.tar.gz", hash = "sha256:12f3325f02d43b6c24030fc9602b34a3c6865abbb1db9406641d13d108aa1889", size = 928575, upload-time = "2025-12-06T23:12:34.896Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/58/d0/55a6b7c6f35aad4c8a54be0eb7a52c1ff29a59542fc3e655f0ecbb14456d/selenium-4.39.0-py3-none-any.whl", hash = "sha256:c85f65d5610642ca0f47dae9d5cc117cd9e831f74038bc09fe1af126288200f9", size = 9655249 }, + { url = "https://files.pythonhosted.org/packages/58/d0/55a6b7c6f35aad4c8a54be0eb7a52c1ff29a59542fc3e655f0ecbb14456d/selenium-4.39.0-py3-none-any.whl", hash = "sha256:c85f65d5610642ca0f47dae9d5cc117cd9e831f74038bc09fe1af126288200f9", size = 9655249, upload-time = "2025-12-06T23:12:33.085Z" }, ] [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] [[package]] name = "sortedcontainers" version = "2.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594 } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 }, + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, ] [[package]] name = "termcolor" version = "3.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/87/56/ab275c2b56a5e2342568838f0d5e3e66a32354adcc159b495e374cda43f5/termcolor-3.2.0.tar.gz", hash = "sha256:610e6456feec42c4bcd28934a8c87a06c3fa28b01561d46aa09a9881b8622c58", size = 14423 } +sdist = { url = "https://files.pythonhosted.org/packages/87/56/ab275c2b56a5e2342568838f0d5e3e66a32354adcc159b495e374cda43f5/termcolor-3.2.0.tar.gz", hash = "sha256:610e6456feec42c4bcd28934a8c87a06c3fa28b01561d46aa09a9881b8622c58", size = 14423, upload-time = "2025-10-25T19:11:42.586Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/d5/141f53d7c1eb2a80e6d3e9a390228c3222c27705cbe7f048d3623053f3ca/termcolor-3.2.0-py3-none-any.whl", hash = "sha256:a10343879eba4da819353c55cb8049b0933890c2ebf9ad5d3ecd2bb32ea96ea6", size = 7698 }, + { url = "https://files.pythonhosted.org/packages/f9/d5/141f53d7c1eb2a80e6d3e9a390228c3222c27705cbe7f048d3623053f3ca/termcolor-3.2.0-py3-none-any.whl", hash = "sha256:a10343879eba4da819353c55cb8049b0933890c2ebf9ad5d3ecd2bb32ea96ea6", size = 7698, upload-time = "2025-10-25T19:11:41.536Z" }, ] [[package]] @@ -553,9 +521,9 @@ dependencies = [ { name = "sniffio" }, { name = "sortedcontainers" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d8/ce/0041ddd9160aac0031bcf5ab786c7640d795c797e67c438e15cfedf815c8/trio-0.32.0.tar.gz", hash = "sha256:150f29ec923bcd51231e1d4c71c7006e65247d68759dd1c19af4ea815a25806b", size = 605323 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/ce/0041ddd9160aac0031bcf5ab786c7640d795c797e67c438e15cfedf815c8/trio-0.32.0.tar.gz", hash = "sha256:150f29ec923bcd51231e1d4c71c7006e65247d68759dd1c19af4ea815a25806b", size = 605323, upload-time = "2025-10-31T07:18:17.466Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/bf/945d527ff706233636c73880b22c7c953f3faeb9d6c7e2e85bfbfd0134a0/trio-0.32.0-py3-none-any.whl", hash = "sha256:4ab65984ef8370b79a76659ec87aa3a30c5c7c83ff250b4de88c29a8ab6123c5", size = 512030 }, + { url = "https://files.pythonhosted.org/packages/41/bf/945d527ff706233636c73880b22c7c953f3faeb9d6c7e2e85bfbfd0134a0/trio-0.32.0-py3-none-any.whl", hash = "sha256:4ab65984ef8370b79a76659ec87aa3a30c5c7c83ff250b4de88c29a8ab6123c5", size = 512030, upload-time = "2025-10-31T07:18:15.885Z" }, ] [[package]] @@ -567,27 +535,27 @@ dependencies = [ { name = "trio" }, { name = "wsproto" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d1/3c/8b4358e81f2f2cfe71b66a267f023a91db20a817b9425dd964873796980a/trio_websocket-0.12.2.tar.gz", hash = "sha256:22c72c436f3d1e264d0910a3951934798dcc5b00ae56fc4ee079d46c7cf20fae", size = 33549 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/3c/8b4358e81f2f2cfe71b66a267f023a91db20a817b9425dd964873796980a/trio_websocket-0.12.2.tar.gz", hash = "sha256:22c72c436f3d1e264d0910a3951934798dcc5b00ae56fc4ee079d46c7cf20fae", size = 33549, upload-time = "2025-02-25T05:16:58.947Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/19/eb640a397bba49ba49ef9dbe2e7e5c04202ba045b6ce2ec36e9cadc51e04/trio_websocket-0.12.2-py3-none-any.whl", hash = "sha256:df605665f1db533f4a386c94525870851096a223adcb97f72a07e8b4beba45b6", size = 21221 }, + { url = "https://files.pythonhosted.org/packages/c7/19/eb640a397bba49ba49ef9dbe2e7e5c04202ba045b6ce2ec36e9cadc51e04/trio_websocket-0.12.2-py3-none-any.whl", hash = "sha256:df605665f1db533f4a386c94525870851096a223adcb97f72a07e8b4beba45b6", size = 21221, upload-time = "2025-02-25T05:16:57.545Z" }, ] [[package]] name = "typing-extensions" version = "4.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391 } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614 }, + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] [[package]] name = "urllib3" -version = "2.6.2" +version = "2.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930 } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182 }, + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, ] [package.optional-dependencies] @@ -599,21 +567,21 @@ socks = [ name = "websocket-client" version = "1.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576 } +sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576, upload-time = "2025-10-07T21:16:36.495Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616 }, + { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616, upload-time = "2025-10-07T21:16:34.951Z" }, ] [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/45/ea/b0f8eeb287f8df9066e56e831c7824ac6bab645dd6c7a8f4b2d767944f9b/werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e", size = 864687 } +sdist = { url = "https://files.pythonhosted.org/packages/5a/70/1469ef1d3542ae7c2c7b72bd5e3a4e6ee69d7978fa8a3af05a38eca5becf/werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67", size = 864754, upload-time = "2026-01-08T17:49:23.247Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/f9/9e082990c2585c744734f85bec79b5dae5df9c974ffee58fe421652c8e91/werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905", size = 224960 }, + { url = "https://files.pythonhosted.org/packages/ad/e4/8d97cca767bcc1be76d16fb76951608305561c6e056811587f36cb1316a8/werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc", size = 225025, upload-time = "2026-01-08T17:49:21.859Z" }, ] [[package]] @@ -623,7 +591,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c7/79/12135bdf8b9c9367b8701c2c19a14c913c120b882d50b014ca0d38083c2c/wsproto-1.3.2.tar.gz", hash = "sha256:b86885dcf294e15204919950f666e06ffc6c7c114ca900b060d6e16293528294", size = 50116 } +sdist = { url = "https://files.pythonhosted.org/packages/c7/79/12135bdf8b9c9367b8701c2c19a14c913c120b882d50b014ca0d38083c2c/wsproto-1.3.2.tar.gz", hash = "sha256:b86885dcf294e15204919950f666e06ffc6c7c114ca900b060d6e16293528294", size = 50116, upload-time = "2025-11-20T18:18:01.871Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/f5/10b68b7b1544245097b2a1b8238f66f2fc6dcaeb24ba5d917f52bd2eed4f/wsproto-1.3.2-py3-none-any.whl", hash = "sha256:61eea322cdf56e8cc904bd3ad7573359a242ba65688716b0710a5eb12beab584", size = 24405 }, + { url = "https://files.pythonhosted.org/packages/a4/f5/10b68b7b1544245097b2a1b8238f66f2fc6dcaeb24ba5d917f52bd2eed4f/wsproto-1.3.2-py3-none-any.whl", hash = "sha256:61eea322cdf56e8cc904bd3ad7573359a242ba65688716b0710a5eb12beab584", size = 24405, upload-time = "2025-11-20T18:18:00.454Z" }, ] diff --git a/tests/e2e/uv.lock b/tests/e2e/uv.lock index 0785ccfd..52e1a0c4 100644 --- a/tests/e2e/uv.lock +++ b/tests/e2e/uv.lock @@ -1,13 +1,14 @@ version = 1 +revision = 3 requires-python = ">=3.10" [[package]] name = "annotated-types" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, ] [[package]] @@ -24,9 +25,9 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/1f/08e95f4b7e2d35205ae5dcbb4ae97e7d477fc521c275c02609e2931ece2d/anthropic-0.75.0.tar.gz", hash = "sha256:e8607422f4ab616db2ea5baacc215dd5f028da99ce2f022e33c7c535b29f3dfb", size = 439565 } +sdist = { url = "https://files.pythonhosted.org/packages/04/1f/08e95f4b7e2d35205ae5dcbb4ae97e7d477fc521c275c02609e2931ece2d/anthropic-0.75.0.tar.gz", hash = "sha256:e8607422f4ab616db2ea5baacc215dd5f028da99ce2f022e33c7c535b29f3dfb", size = 439565, upload-time = "2025-11-24T20:41:45.28Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/60/1c/1cd02b7ae64302a6e06724bf80a96401d5313708651d277b1458504a1730/anthropic-0.75.0-py3-none-any.whl", hash = "sha256:ea8317271b6c15d80225a9f3c670152746e88805a7a61e14d4a374577164965b", size = 388164 }, + { url = "https://files.pythonhosted.org/packages/60/1c/1cd02b7ae64302a6e06724bf80a96401d5313708651d277b1458504a1730/anthropic-0.75.0-py3-none-any.whl", hash = "sha256:ea8317271b6c15d80225a9f3c670152746e88805a7a61e14d4a374577164965b", size = 388164, upload-time = "2025-11-24T20:41:43.587Z" }, ] [[package]] @@ -38,27 +39,27 @@ dependencies = [ { name = "idna" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/16/ce/8a777047513153587e5434fd752e89334ac33e379aa3497db860eeb60377/anyio-4.12.0.tar.gz", hash = "sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0", size = 228266 } +sdist = { url = "https://files.pythonhosted.org/packages/16/ce/8a777047513153587e5434fd752e89334ac33e379aa3497db860eeb60377/anyio-4.12.0.tar.gz", hash = "sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0", size = 228266, upload-time = "2025-11-28T23:37:38.911Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl", hash = "sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb", size = 113362 }, + { url = "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl", hash = "sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb", size = 113362, upload-time = "2025-11-28T23:36:57.897Z" }, ] [[package]] name = "attrs" version = "25.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251 } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615 }, + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, ] [[package]] name = "certifi" version = "2025.11.12" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538, upload-time = "2025-11-12T02:54:51.517Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438 }, + { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438, upload-time = "2025-11-12T02:54:49.735Z" }, ] [[package]] @@ -68,276 +69,222 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pycparser", marker = "implementation_name != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588 } +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44", size = 184283 }, - { url = "https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49", size = 180504 }, - { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811 }, - { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402 }, - { url = "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", size = 203217 }, - { url = "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", size = 203079 }, - { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475 }, - { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829 }, - { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211 }, - { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036 }, - { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184 }, - { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790 }, - { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344 }, - { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560 }, - { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613 }, - { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476 }, - { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374 }, - { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597 }, - { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574 }, - { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971 }, - { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972 }, - { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078 }, - { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076 }, - { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820 }, - { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635 }, - { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271 }, - { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048 }, - { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529 }, - { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097 }, - { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983 }, - { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519 }, - { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572 }, - { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963 }, - { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361 }, - { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932 }, - { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557 }, - { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762 }, - { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230 }, - { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043 }, - { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446 }, - { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101 }, - { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948 }, - { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422 }, - { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499 }, - { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928 }, - { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302 }, - { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909 }, - { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402 }, - { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780 }, - { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320 }, - { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487 }, - { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049 }, - { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793 }, - { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300 }, - { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244 }, - { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828 }, - { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926 }, - { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328 }, - { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650 }, - { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687 }, - { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773 }, - { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013 }, - { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593 }, - { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354 }, - { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480 }, - { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584 }, - { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443 }, - { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437 }, - { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487 }, - { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726 }, - { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195 }, + { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184, upload-time = "2025-09-08T23:22:23.328Z" }, + { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790, upload-time = "2025-09-08T23:22:24.752Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, ] [[package]] name = "charset-normalizer" version = "3.4.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418 } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709 }, - { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814 }, - { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467 }, - { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280 }, - { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454 }, - { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609 }, - { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849 }, - { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586 }, - { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290 }, - { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663 }, - { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964 }, - { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064 }, - { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015 }, - { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792 }, - { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198 }, - { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262 }, - { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988 }, - { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324 }, - { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742 }, - { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863 }, - { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837 }, - { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550 }, - { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162 }, - { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019 }, - { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310 }, - { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022 }, - { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383 }, - { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098 }, - { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991 }, - { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456 }, - { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978 }, - { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969 }, - { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425 }, - { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162 }, - { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558 }, - { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497 }, - { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240 }, - { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471 }, - { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864 }, - { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647 }, - { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110 }, - { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839 }, - { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667 }, - { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535 }, - { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816 }, - { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694 }, - { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131 }, - { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390 }, - { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091 }, - { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936 }, - { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180 }, - { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346 }, - { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874 }, - { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076 }, - { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601 }, - { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376 }, - { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825 }, - { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583 }, - { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366 }, - { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300 }, - { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465 }, - { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404 }, - { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092 }, - { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408 }, - { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746 }, - { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889 }, - { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641 }, - { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779 }, - { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035 }, - { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542 }, - { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524 }, - { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395 }, - { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680 }, - { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045 }, - { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687 }, - { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014 }, - { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044 }, - { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940 }, - { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104 }, - { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743 }, - { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402 }, + { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload-time = "2025-10-14T04:40:11.385Z" }, + { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814, upload-time = "2025-10-14T04:40:13.135Z" }, + { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467, upload-time = "2025-10-14T04:40:14.728Z" }, + { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280, upload-time = "2025-10-14T04:40:16.14Z" }, + { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454, upload-time = "2025-10-14T04:40:17.567Z" }, + { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609, upload-time = "2025-10-14T04:40:19.08Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849, upload-time = "2025-10-14T04:40:20.607Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586, upload-time = "2025-10-14T04:40:21.719Z" }, + { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290, upload-time = "2025-10-14T04:40:23.069Z" }, + { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663, upload-time = "2025-10-14T04:40:24.17Z" }, + { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964, upload-time = "2025-10-14T04:40:25.368Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064, upload-time = "2025-10-14T04:40:26.806Z" }, + { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015, upload-time = "2025-10-14T04:40:28.284Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload-time = "2025-10-14T04:40:29.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload-time = "2025-10-14T04:40:30.644Z" }, + { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload-time = "2025-10-14T04:40:32.108Z" }, + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] name = "coverage" version = "7.13.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b6/45/2c665ca77ec32ad67e25c77daf1cee28ee4558f3bc571cdbaf88a00b9f23/coverage-7.13.0.tar.gz", hash = "sha256:a394aa27f2d7ff9bc04cf703817773a59ad6dfbd577032e690f961d2460ee936", size = 820905 } +sdist = { url = "https://files.pythonhosted.org/packages/b6/45/2c665ca77ec32ad67e25c77daf1cee28ee4558f3bc571cdbaf88a00b9f23/coverage-7.13.0.tar.gz", hash = "sha256:a394aa27f2d7ff9bc04cf703817773a59ad6dfbd577032e690f961d2460ee936", size = 820905, upload-time = "2025-12-08T13:14:38.055Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/db/08/bdd7ccca14096f7eb01412b87ac11e5d16e4cb54b6e328afc9dee8bdaec1/coverage-7.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:02d9fb9eccd48f6843c98a37bd6817462f130b86da8660461e8f5e54d4c06070", size = 217979 }, - { url = "https://files.pythonhosted.org/packages/fa/f0/d1302e3416298a28b5663ae1117546a745d9d19fde7e28402b2c5c3e2109/coverage-7.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:367449cf07d33dc216c083f2036bb7d976c6e4903ab31be400ad74ad9f85ce98", size = 218496 }, - { url = "https://files.pythonhosted.org/packages/07/26/d36c354c8b2a320819afcea6bffe72839efd004b98d1d166b90801d49d57/coverage-7.13.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cdb3c9f8fef0a954c632f64328a3935988d33a6604ce4bf67ec3e39670f12ae5", size = 245237 }, - { url = "https://files.pythonhosted.org/packages/91/52/be5e85631e0eec547873d8b08dd67a5f6b111ecfe89a86e40b89b0c1c61c/coverage-7.13.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d10fd186aac2316f9bbb46ef91977f9d394ded67050ad6d84d94ed6ea2e8e54e", size = 247061 }, - { url = "https://files.pythonhosted.org/packages/0f/45/a5e8fa0caf05fbd8fa0402470377bff09cc1f026d21c05c71e01295e55ab/coverage-7.13.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f88ae3e69df2ab62fb0bc5219a597cb890ba5c438190ffa87490b315190bb33", size = 248928 }, - { url = "https://files.pythonhosted.org/packages/f5/42/ffb5069b6fd1b95fae482e02f3fecf380d437dd5a39bae09f16d2e2e7e01/coverage-7.13.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c4be718e51e86f553bcf515305a158a1cd180d23b72f07ae76d6017c3cc5d791", size = 245931 }, - { url = "https://files.pythonhosted.org/packages/95/6e/73e809b882c2858f13e55c0c36e94e09ce07e6165d5644588f9517efe333/coverage-7.13.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a00d3a393207ae12f7c49bb1c113190883b500f48979abb118d8b72b8c95c032", size = 246968 }, - { url = "https://files.pythonhosted.org/packages/87/08/64ebd9e64b6adb8b4a4662133d706fbaccecab972e0b3ccc23f64e2678ad/coverage-7.13.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a7b1cd820e1b6116f92c6128f1188e7afe421c7e1b35fa9836b11444e53ebd9", size = 244972 }, - { url = "https://files.pythonhosted.org/packages/12/97/f4d27c6fe0cb375a5eced4aabcaef22de74766fb80a3d5d2015139e54b22/coverage-7.13.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:37eee4e552a65866f15dedd917d5e5f3d59805994260720821e2c1b51ac3248f", size = 245241 }, - { url = "https://files.pythonhosted.org/packages/0c/94/42f8ae7f633bf4c118bf1038d80472f9dade88961a466f290b81250f7ab7/coverage-7.13.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:62d7c4f13102148c78d7353c6052af6d899a7f6df66a32bddcc0c0eb7c5326f8", size = 245847 }, - { url = "https://files.pythonhosted.org/packages/a8/2f/6369ca22b6b6d933f4f4d27765d313d8914cc4cce84f82a16436b1a233db/coverage-7.13.0-cp310-cp310-win32.whl", hash = "sha256:24e4e56304fdb56f96f80eabf840eab043b3afea9348b88be680ec5986780a0f", size = 220573 }, - { url = "https://files.pythonhosted.org/packages/f1/dc/a6a741e519acceaeccc70a7f4cfe5d030efc4b222595f0677e101af6f1f3/coverage-7.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:74c136e4093627cf04b26a35dab8cbfc9b37c647f0502fc313376e11726ba303", size = 221509 }, - { url = "https://files.pythonhosted.org/packages/f1/dc/888bf90d8b1c3d0b4020a40e52b9f80957d75785931ec66c7dfaccc11c7d/coverage-7.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0dfa3855031070058add1a59fdfda0192fd3e8f97e7c81de0596c145dea51820", size = 218104 }, - { url = "https://files.pythonhosted.org/packages/8d/ea/069d51372ad9c380214e86717e40d1a743713a2af191cfba30a0911b0a4a/coverage-7.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fdb6f54f38e334db97f72fa0c701e66d8479af0bc3f9bfb5b90f1c30f54500f", size = 218606 }, - { url = "https://files.pythonhosted.org/packages/68/09/77b1c3a66c2aa91141b6c4471af98e5b1ed9b9e6d17255da5eb7992299e3/coverage-7.13.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7e442c013447d1d8d195be62852270b78b6e255b79b8675bad8479641e21fd96", size = 248999 }, - { url = "https://files.pythonhosted.org/packages/0a/32/2e2f96e9d5691eaf1181d9040f850b8b7ce165ea10810fd8e2afa534cef7/coverage-7.13.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1ed5630d946859de835a85e9a43b721123a8a44ec26e2830b296d478c7fd4259", size = 250925 }, - { url = "https://files.pythonhosted.org/packages/7b/45/b88ddac1d7978859b9a39a8a50ab323186148f1d64bc068f86fc77706321/coverage-7.13.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f15a931a668e58087bc39d05d2b4bf4b14ff2875b49c994bbdb1c2217a8daeb", size = 253032 }, - { url = "https://files.pythonhosted.org/packages/71/cb/e15513f94c69d4820a34b6bf3d2b1f9f8755fa6021be97c7065442d7d653/coverage-7.13.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:30a3a201a127ea57f7e14ba43c93c9c4be8b7d17a26e03bb49e6966d019eede9", size = 249134 }, - { url = "https://files.pythonhosted.org/packages/09/61/d960ff7dc9e902af3310ce632a875aaa7860f36d2bc8fc8b37ee7c1b82a5/coverage-7.13.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7a485ff48fbd231efa32d58f479befce52dcb6bfb2a88bb7bf9a0b89b1bc8030", size = 250731 }, - { url = "https://files.pythonhosted.org/packages/98/34/c7c72821794afc7c7c2da1db8f00c2c98353078aa7fb6b5ff36aac834b52/coverage-7.13.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:22486cdafba4f9e471c816a2a5745337742a617fef68e890d8baf9f3036d7833", size = 248795 }, - { url = "https://files.pythonhosted.org/packages/0a/5b/e0f07107987a43b2def9aa041c614ddb38064cbf294a71ef8c67d43a0cdd/coverage-7.13.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:263c3dbccc78e2e331e59e90115941b5f53e85cfcc6b3b2fbff1fd4e3d2c6ea8", size = 248514 }, - { url = "https://files.pythonhosted.org/packages/71/c2/c949c5d3b5e9fc6dd79e1b73cdb86a59ef14f3709b1d72bf7668ae12e000/coverage-7.13.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e5330fa0cc1f5c3c4c3bb8e101b742025933e7848989370a1d4c8c5e401ea753", size = 249424 }, - { url = "https://files.pythonhosted.org/packages/11/f1/bbc009abd6537cec0dffb2cc08c17a7f03de74c970e6302db4342a6e05af/coverage-7.13.0-cp311-cp311-win32.whl", hash = "sha256:0f4872f5d6c54419c94c25dd6ae1d015deeb337d06e448cd890a1e89a8ee7f3b", size = 220597 }, - { url = "https://files.pythonhosted.org/packages/c4/f6/d9977f2fb51c10fbaed0718ce3d0a8541185290b981f73b1d27276c12d91/coverage-7.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51a202e0f80f241ccb68e3e26e19ab5b3bf0f813314f2c967642f13ebcf1ddfe", size = 221536 }, - { url = "https://files.pythonhosted.org/packages/be/ad/3fcf43fd96fb43e337a3073dea63ff148dcc5c41ba7a14d4c7d34efb2216/coverage-7.13.0-cp311-cp311-win_arm64.whl", hash = "sha256:d2a9d7f1c11487b1c69367ab3ac2d81b9b3721f097aa409a3191c3e90f8f3dd7", size = 220206 }, - { url = "https://files.pythonhosted.org/packages/9b/f1/2619559f17f31ba00fc40908efd1fbf1d0a5536eb75dc8341e7d660a08de/coverage-7.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0b3d67d31383c4c68e19a88e28fc4c2e29517580f1b0ebec4a069d502ce1e0bf", size = 218274 }, - { url = "https://files.pythonhosted.org/packages/2b/11/30d71ae5d6e949ff93b2a79a2c1b4822e00423116c5c6edfaeef37301396/coverage-7.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:581f086833d24a22c89ae0fe2142cfaa1c92c930adf637ddf122d55083fb5a0f", size = 218638 }, - { url = "https://files.pythonhosted.org/packages/79/c2/fce80fc6ded8d77e53207489d6065d0fed75db8951457f9213776615e0f5/coverage-7.13.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0a3a30f0e257df382f5f9534d4ce3d4cf06eafaf5192beb1a7bd066cb10e78fb", size = 250129 }, - { url = "https://files.pythonhosted.org/packages/5b/b6/51b5d1eb6fcbb9a1d5d6984e26cbe09018475c2922d554fd724dd0f056ee/coverage-7.13.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:583221913fbc8f53b88c42e8dbb8fca1d0f2e597cb190ce45916662b8b9d9621", size = 252885 }, - { url = "https://files.pythonhosted.org/packages/0d/f8/972a5affea41de798691ab15d023d3530f9f56a72e12e243f35031846ff7/coverage-7.13.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f5d9bd30756fff3e7216491a0d6d520c448d5124d3d8e8f56446d6412499e74", size = 253974 }, - { url = "https://files.pythonhosted.org/packages/8a/56/116513aee860b2c7968aa3506b0f59b22a959261d1dbf3aea7b4450a7520/coverage-7.13.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a23e5a1f8b982d56fa64f8e442e037f6ce29322f1f9e6c2344cd9e9f4407ee57", size = 250538 }, - { url = "https://files.pythonhosted.org/packages/d6/75/074476d64248fbadf16dfafbf93fdcede389ec821f74ca858d7c87d2a98c/coverage-7.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9b01c22bc74a7fb44066aaf765224c0d933ddf1f5047d6cdfe4795504a4493f8", size = 251912 }, - { url = "https://files.pythonhosted.org/packages/f2/d2/aa4f8acd1f7c06024705c12609d8698c51b27e4d635d717cd1934c9668e2/coverage-7.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:898cce66d0836973f48dda4e3514d863d70142bdf6dfab932b9b6a90ea5b222d", size = 250054 }, - { url = "https://files.pythonhosted.org/packages/19/98/8df9e1af6a493b03694a1e8070e024e7d2cdc77adedc225a35e616d505de/coverage-7.13.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:3ab483ea0e251b5790c2aac03acde31bff0c736bf8a86829b89382b407cd1c3b", size = 249619 }, - { url = "https://files.pythonhosted.org/packages/d8/71/f8679231f3353018ca66ef647fa6fe7b77e6bff7845be54ab84f86233363/coverage-7.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d84e91521c5e4cb6602fe11ece3e1de03b2760e14ae4fcf1a4b56fa3c801fcd", size = 251496 }, - { url = "https://files.pythonhosted.org/packages/04/86/9cb406388034eaf3c606c22094edbbb82eea1fa9d20c0e9efadff20d0733/coverage-7.13.0-cp312-cp312-win32.whl", hash = "sha256:193c3887285eec1dbdb3f2bd7fbc351d570ca9c02ca756c3afbc71b3c98af6ef", size = 220808 }, - { url = "https://files.pythonhosted.org/packages/1c/59/af483673df6455795daf5f447c2f81a3d2fcfc893a22b8ace983791f6f34/coverage-7.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:4f3e223b2b2db5e0db0c2b97286aba0036ca000f06aca9b12112eaa9af3d92ae", size = 221616 }, - { url = "https://files.pythonhosted.org/packages/64/b0/959d582572b30a6830398c60dd419c1965ca4b5fb38ac6b7093a0d50ca8d/coverage-7.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:086cede306d96202e15a4b77ace8472e39d9f4e5f9fd92dd4fecdfb2313b2080", size = 220261 }, - { url = "https://files.pythonhosted.org/packages/7c/cc/bce226595eb3bf7d13ccffe154c3c487a22222d87ff018525ab4dd2e9542/coverage-7.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:28ee1c96109974af104028a8ef57cec21447d42d0e937c0275329272e370ebcf", size = 218297 }, - { url = "https://files.pythonhosted.org/packages/3b/9f/73c4d34600aae03447dff3d7ad1d0ac649856bfb87d1ca7d681cfc913f9e/coverage-7.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d1e97353dcc5587b85986cda4ff3ec98081d7e84dd95e8b2a6d59820f0545f8a", size = 218673 }, - { url = "https://files.pythonhosted.org/packages/63/ab/8fa097db361a1e8586535ae5073559e6229596b3489ec3ef2f5b38df8cb2/coverage-7.13.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:99acd4dfdfeb58e1937629eb1ab6ab0899b131f183ee5f23e0b5da5cba2fec74", size = 249652 }, - { url = "https://files.pythonhosted.org/packages/90/3a/9bfd4de2ff191feb37ef9465855ca56a6f2f30a3bca172e474130731ac3d/coverage-7.13.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ff45e0cd8451e293b63ced93161e189780baf444119391b3e7d25315060368a6", size = 252251 }, - { url = "https://files.pythonhosted.org/packages/df/61/b5d8105f016e1b5874af0d7c67542da780ccd4a5f2244a433d3e20ceb1ad/coverage-7.13.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f4f72a85316d8e13234cafe0a9f81b40418ad7a082792fa4165bd7d45d96066b", size = 253492 }, - { url = "https://files.pythonhosted.org/packages/f3/b8/0fad449981803cc47a4694768b99823fb23632150743f9c83af329bb6090/coverage-7.13.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:11c21557d0e0a5a38632cbbaca5f008723b26a89d70db6315523df6df77d6232", size = 249850 }, - { url = "https://files.pythonhosted.org/packages/9a/e9/8d68337c3125014d918cf4327d5257553a710a2995a6a6de2ac77e5aa429/coverage-7.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:76541dc8d53715fb4f7a3a06b34b0dc6846e3c69bc6204c55653a85dd6220971", size = 251633 }, - { url = "https://files.pythonhosted.org/packages/55/14/d4112ab26b3a1bc4b3c1295d8452dcf399ed25be4cf649002fb3e64b2d93/coverage-7.13.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6e9e451dee940a86789134b6b0ffbe31c454ade3b849bb8a9d2cca2541a8e91d", size = 249586 }, - { url = "https://files.pythonhosted.org/packages/2c/a9/22b0000186db663b0d82f86c2f1028099ae9ac202491685051e2a11a5218/coverage-7.13.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:5c67dace46f361125e6b9cace8fe0b729ed8479f47e70c89b838d319375c8137", size = 249412 }, - { url = "https://files.pythonhosted.org/packages/a1/2e/42d8e0d9e7527fba439acdc6ed24a2b97613b1dc85849b1dd935c2cffef0/coverage-7.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f59883c643cb19630500f57016f76cfdcd6845ca8c5b5ea1f6e17f74c8e5f511", size = 251191 }, - { url = "https://files.pythonhosted.org/packages/a4/af/8c7af92b1377fd8860536aadd58745119252aaaa71a5213e5a8e8007a9f5/coverage-7.13.0-cp313-cp313-win32.whl", hash = "sha256:58632b187be6f0be500f553be41e277712baa278147ecb7559983c6d9faf7ae1", size = 220829 }, - { url = "https://files.pythonhosted.org/packages/58/f9/725e8bf16f343d33cbe076c75dc8370262e194ff10072c0608b8e5cf33a3/coverage-7.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:73419b89f812f498aca53f757dd834919b48ce4799f9d5cad33ca0ae442bdb1a", size = 221640 }, - { url = "https://files.pythonhosted.org/packages/8a/ff/e98311000aa6933cc79274e2b6b94a2fe0fe3434fca778eba82003675496/coverage-7.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:eb76670874fdd6091eedcc856128ee48c41a9bbbb9c3f1c7c3cf169290e3ffd6", size = 220269 }, - { url = "https://files.pythonhosted.org/packages/cf/cf/bbaa2e1275b300343ea865f7d424cc0a2e2a1df6925a070b2b2d5d765330/coverage-7.13.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6e63ccc6e0ad8986386461c3c4b737540f20426e7ec932f42e030320896c311a", size = 218990 }, - { url = "https://files.pythonhosted.org/packages/21/1d/82f0b3323b3d149d7672e7744c116e9c170f4957e0c42572f0366dbb4477/coverage-7.13.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:494f5459ffa1bd45e18558cd98710c36c0b8fbfa82a5eabcbe671d80ecffbfe8", size = 219340 }, - { url = "https://files.pythonhosted.org/packages/fb/e3/fe3fd4702a3832a255f4d43013eacb0ef5fc155a5960ea9269d8696db28b/coverage-7.13.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:06cac81bf10f74034e055e903f5f946e3e26fc51c09fc9f584e4a1605d977053", size = 260638 }, - { url = "https://files.pythonhosted.org/packages/ad/01/63186cb000307f2b4da463f72af9b85d380236965574c78e7e27680a2593/coverage-7.13.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f2ffc92b46ed6e6760f1d47a71e56b5664781bc68986dbd1836b2b70c0ce2071", size = 262705 }, - { url = "https://files.pythonhosted.org/packages/7c/a1/c0dacef0cc865f2455d59eed3548573ce47ed603205ffd0735d1d78b5906/coverage-7.13.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0602f701057c6823e5db1b74530ce85f17c3c5be5c85fc042ac939cbd909426e", size = 265125 }, - { url = "https://files.pythonhosted.org/packages/ef/92/82b99223628b61300bd382c205795533bed021505eab6dd86e11fb5d7925/coverage-7.13.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:25dc33618d45456ccb1d37bce44bc78cf269909aa14c4db2e03d63146a8a1493", size = 259844 }, - { url = "https://files.pythonhosted.org/packages/cf/2c/89b0291ae4e6cd59ef042708e1c438e2290f8c31959a20055d8768349ee2/coverage-7.13.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:71936a8b3b977ddd0b694c28c6a34f4fff2e9dd201969a4ff5d5fc7742d614b0", size = 262700 }, - { url = "https://files.pythonhosted.org/packages/bf/f9/a5f992efae1996245e796bae34ceb942b05db275e4b34222a9a40b9fbd3b/coverage-7.13.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:936bc20503ce24770c71938d1369461f0c5320830800933bc3956e2a4ded930e", size = 260321 }, - { url = "https://files.pythonhosted.org/packages/4c/89/a29f5d98c64fedbe32e2ac3c227fbf78edc01cc7572eee17d61024d89889/coverage-7.13.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:af0a583efaacc52ae2521f8d7910aff65cdb093091d76291ac5820d5e947fc1c", size = 259222 }, - { url = "https://files.pythonhosted.org/packages/b3/c3/940fe447aae302a6701ee51e53af7e08b86ff6eed7631e5740c157ee22b9/coverage-7.13.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f1c23e24a7000da892a312fb17e33c5f94f8b001de44b7cf8ba2e36fbd15859e", size = 261411 }, - { url = "https://files.pythonhosted.org/packages/eb/31/12a4aec689cb942a89129587860ed4d0fd522d5fda81237147fde554b8ae/coverage-7.13.0-cp313-cp313t-win32.whl", hash = "sha256:5f8a0297355e652001015e93be345ee54393e45dc3050af4a0475c5a2b767d46", size = 221505 }, - { url = "https://files.pythonhosted.org/packages/65/8c/3b5fe3259d863572d2b0827642c50c3855d26b3aefe80bdc9eba1f0af3b0/coverage-7.13.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6abb3a4c52f05e08460bd9acf04fec027f8718ecaa0d09c40ffbc3fbd70ecc39", size = 222569 }, - { url = "https://files.pythonhosted.org/packages/b0/39/f71fa8316a96ac72fc3908839df651e8eccee650001a17f2c78cdb355624/coverage-7.13.0-cp313-cp313t-win_arm64.whl", hash = "sha256:3ad968d1e3aa6ce5be295ab5fe3ae1bf5bb4769d0f98a80a0252d543a2ef2e9e", size = 220841 }, - { url = "https://files.pythonhosted.org/packages/f8/4b/9b54bedda55421449811dcd5263a2798a63f48896c24dfb92b0f1b0845bd/coverage-7.13.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:453b7ec753cf5e4356e14fe858064e5520c460d3bbbcb9c35e55c0d21155c256", size = 218343 }, - { url = "https://files.pythonhosted.org/packages/59/df/c3a1f34d4bba2e592c8979f924da4d3d4598b0df2392fbddb7761258e3dc/coverage-7.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:af827b7cbb303e1befa6c4f94fd2bf72f108089cfa0f8abab8f4ca553cf5ca5a", size = 218672 }, - { url = "https://files.pythonhosted.org/packages/07/62/eec0659e47857698645ff4e6ad02e30186eb8afd65214fd43f02a76537cb/coverage-7.13.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9987a9e4f8197a1000280f7cc089e3ea2c8b3c0a64d750537809879a7b4ceaf9", size = 249715 }, - { url = "https://files.pythonhosted.org/packages/23/2d/3c7ff8b2e0e634c1f58d095f071f52ed3c23ff25be524b0ccae8b71f99f8/coverage-7.13.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3188936845cd0cb114fa6a51842a304cdbac2958145d03be2377ec41eb285d19", size = 252225 }, - { url = "https://files.pythonhosted.org/packages/aa/ac/fb03b469d20e9c9a81093575003f959cf91a4a517b783aab090e4538764b/coverage-7.13.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2bdb3babb74079f021696cb46b8bb5f5661165c385d3a238712b031a12355be", size = 253559 }, - { url = "https://files.pythonhosted.org/packages/29/62/14afa9e792383c66cc0a3b872a06ded6e4ed1079c7d35de274f11d27064e/coverage-7.13.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7464663eaca6adba4175f6c19354feea61ebbdd735563a03d1e472c7072d27bb", size = 249724 }, - { url = "https://files.pythonhosted.org/packages/31/b7/333f3dab2939070613696ab3ee91738950f0467778c6e5a5052e840646b7/coverage-7.13.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8069e831f205d2ff1f3d355e82f511eb7c5522d7d413f5db5756b772ec8697f8", size = 251582 }, - { url = "https://files.pythonhosted.org/packages/81/cb/69162bda9381f39b2287265d7e29ee770f7c27c19f470164350a38318764/coverage-7.13.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:6fb2d5d272341565f08e962cce14cdf843a08ac43bd621783527adb06b089c4b", size = 249538 }, - { url = "https://files.pythonhosted.org/packages/e0/76/350387b56a30f4970abe32b90b2a434f87d29f8b7d4ae40d2e8a85aacfb3/coverage-7.13.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:5e70f92ef89bac1ac8a99b3324923b4749f008fdbd7aa9cb35e01d7a284a04f9", size = 249349 }, - { url = "https://files.pythonhosted.org/packages/86/0d/7f6c42b8d59f4c7e43ea3059f573c0dcfed98ba46eb43c68c69e52ae095c/coverage-7.13.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4b5de7d4583e60d5fd246dd57fcd3a8aa23c6e118a8c72b38adf666ba8e7e927", size = 251011 }, - { url = "https://files.pythonhosted.org/packages/d7/f1/4bb2dff379721bb0b5c649d5c5eaf438462cad824acf32eb1b7ca0c7078e/coverage-7.13.0-cp314-cp314-win32.whl", hash = "sha256:a6c6e16b663be828a8f0b6c5027d36471d4a9f90d28444aa4ced4d48d7d6ae8f", size = 221091 }, - { url = "https://files.pythonhosted.org/packages/ba/44/c239da52f373ce379c194b0ee3bcc121020e397242b85f99e0afc8615066/coverage-7.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:0900872f2fdb3ee5646b557918d02279dc3af3dfb39029ac4e945458b13f73bc", size = 221904 }, - { url = "https://files.pythonhosted.org/packages/89/1f/b9f04016d2a29c2e4a0307baefefad1a4ec5724946a2b3e482690486cade/coverage-7.13.0-cp314-cp314-win_arm64.whl", hash = "sha256:3a10260e6a152e5f03f26db4a407c4c62d3830b9af9b7c0450b183615f05d43b", size = 220480 }, - { url = "https://files.pythonhosted.org/packages/16/d4/364a1439766c8e8647860584171c36010ca3226e6e45b1753b1b249c5161/coverage-7.13.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9097818b6cc1cfb5f174e3263eba4a62a17683bcfe5c4b5d07f4c97fa51fbf28", size = 219074 }, - { url = "https://files.pythonhosted.org/packages/ce/f4/71ba8be63351e099911051b2089662c03d5671437a0ec2171823c8e03bec/coverage-7.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0018f73dfb4301a89292c73be6ba5f58722ff79f51593352759c1790ded1cabe", size = 219342 }, - { url = "https://files.pythonhosted.org/packages/5e/25/127d8ed03d7711a387d96f132589057213e3aef7475afdaa303412463f22/coverage-7.13.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:166ad2a22ee770f5656e1257703139d3533b4a0b6909af67c6b4a3adc1c98657", size = 260713 }, - { url = "https://files.pythonhosted.org/packages/fd/db/559fbb6def07d25b2243663b46ba9eb5a3c6586c0c6f4e62980a68f0ee1c/coverage-7.13.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f6aaef16d65d1787280943f1c8718dc32e9cf141014e4634d64446702d26e0ff", size = 262825 }, - { url = "https://files.pythonhosted.org/packages/37/99/6ee5bf7eff884766edb43bd8736b5e1c5144d0fe47498c3779326fe75a35/coverage-7.13.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e999e2dcc094002d6e2c7bbc1fb85b58ba4f465a760a8014d97619330cdbbbf3", size = 265233 }, - { url = "https://files.pythonhosted.org/packages/d8/90/92f18fe0356ea69e1f98f688ed80cec39f44e9f09a1f26a1bbf017cc67f2/coverage-7.13.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:00c3d22cf6fb1cf3bf662aaaa4e563be8243a5ed2630339069799835a9cc7f9b", size = 259779 }, - { url = "https://files.pythonhosted.org/packages/90/5d/b312a8b45b37a42ea7d27d7d3ff98ade3a6c892dd48d1d503e773503373f/coverage-7.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22ccfe8d9bb0d6134892cbe1262493a8c70d736b9df930f3f3afae0fe3ac924d", size = 262700 }, - { url = "https://files.pythonhosted.org/packages/63/f8/b1d0de5c39351eb71c366f872376d09386640840a2e09b0d03973d791e20/coverage-7.13.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:9372dff5ea15930fea0445eaf37bbbafbc771a49e70c0aeed8b4e2c2614cc00e", size = 260302 }, - { url = "https://files.pythonhosted.org/packages/aa/7c/d42f4435bc40c55558b3109a39e2d456cddcec37434f62a1f1230991667a/coverage-7.13.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:69ac2c492918c2461bc6ace42d0479638e60719f2a4ef3f0815fa2df88e9f940", size = 259136 }, - { url = "https://files.pythonhosted.org/packages/b8/d3/23413241dc04d47cfe19b9a65b32a2edd67ecd0b817400c2843ebc58c847/coverage-7.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:739c6c051a7540608d097b8e13c76cfa85263ced467168dc6b477bae3df7d0e2", size = 261467 }, - { url = "https://files.pythonhosted.org/packages/13/e6/6e063174500eee216b96272c0d1847bf215926786f85c2bd024cf4d02d2f/coverage-7.13.0-cp314-cp314t-win32.whl", hash = "sha256:fe81055d8c6c9de76d60c94ddea73c290b416e061d40d542b24a5871bad498b7", size = 221875 }, - { url = "https://files.pythonhosted.org/packages/3b/46/f4fb293e4cbe3620e3ac2a3e8fd566ed33affb5861a9b20e3dd6c1896cbc/coverage-7.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:445badb539005283825959ac9fa4a28f712c214b65af3a2c464f1adc90f5fcbc", size = 222982 }, - { url = "https://files.pythonhosted.org/packages/68/62/5b3b9018215ed9733fbd1ae3b2ed75c5de62c3b55377a52cae732e1b7805/coverage-7.13.0-cp314-cp314t-win_arm64.whl", hash = "sha256:de7f6748b890708578fc4b7bb967d810aeb6fcc9bff4bb77dbca77dab2f9df6a", size = 221016 }, - { url = "https://files.pythonhosted.org/packages/8d/4c/1968f32fb9a2604645827e11ff84a31e59d532e01995f904723b4f5328b3/coverage-7.13.0-py3-none-any.whl", hash = "sha256:850d2998f380b1e266459ca5b47bc9e7daf9af1d070f66317972f382d46f1904", size = 210068 }, + { url = "https://files.pythonhosted.org/packages/db/08/bdd7ccca14096f7eb01412b87ac11e5d16e4cb54b6e328afc9dee8bdaec1/coverage-7.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:02d9fb9eccd48f6843c98a37bd6817462f130b86da8660461e8f5e54d4c06070", size = 217979, upload-time = "2025-12-08T13:12:14.505Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f0/d1302e3416298a28b5663ae1117546a745d9d19fde7e28402b2c5c3e2109/coverage-7.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:367449cf07d33dc216c083f2036bb7d976c6e4903ab31be400ad74ad9f85ce98", size = 218496, upload-time = "2025-12-08T13:12:16.237Z" }, + { url = "https://files.pythonhosted.org/packages/07/26/d36c354c8b2a320819afcea6bffe72839efd004b98d1d166b90801d49d57/coverage-7.13.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cdb3c9f8fef0a954c632f64328a3935988d33a6604ce4bf67ec3e39670f12ae5", size = 245237, upload-time = "2025-12-08T13:12:17.858Z" }, + { url = "https://files.pythonhosted.org/packages/91/52/be5e85631e0eec547873d8b08dd67a5f6b111ecfe89a86e40b89b0c1c61c/coverage-7.13.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:d10fd186aac2316f9bbb46ef91977f9d394ded67050ad6d84d94ed6ea2e8e54e", size = 247061, upload-time = "2025-12-08T13:12:19.132Z" }, + { url = "https://files.pythonhosted.org/packages/0f/45/a5e8fa0caf05fbd8fa0402470377bff09cc1f026d21c05c71e01295e55ab/coverage-7.13.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f88ae3e69df2ab62fb0bc5219a597cb890ba5c438190ffa87490b315190bb33", size = 248928, upload-time = "2025-12-08T13:12:20.702Z" }, + { url = "https://files.pythonhosted.org/packages/f5/42/ffb5069b6fd1b95fae482e02f3fecf380d437dd5a39bae09f16d2e2e7e01/coverage-7.13.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c4be718e51e86f553bcf515305a158a1cd180d23b72f07ae76d6017c3cc5d791", size = 245931, upload-time = "2025-12-08T13:12:22.243Z" }, + { url = "https://files.pythonhosted.org/packages/95/6e/73e809b882c2858f13e55c0c36e94e09ce07e6165d5644588f9517efe333/coverage-7.13.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a00d3a393207ae12f7c49bb1c113190883b500f48979abb118d8b72b8c95c032", size = 246968, upload-time = "2025-12-08T13:12:23.52Z" }, + { url = "https://files.pythonhosted.org/packages/87/08/64ebd9e64b6adb8b4a4662133d706fbaccecab972e0b3ccc23f64e2678ad/coverage-7.13.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a7b1cd820e1b6116f92c6128f1188e7afe421c7e1b35fa9836b11444e53ebd9", size = 244972, upload-time = "2025-12-08T13:12:24.781Z" }, + { url = "https://files.pythonhosted.org/packages/12/97/f4d27c6fe0cb375a5eced4aabcaef22de74766fb80a3d5d2015139e54b22/coverage-7.13.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:37eee4e552a65866f15dedd917d5e5f3d59805994260720821e2c1b51ac3248f", size = 245241, upload-time = "2025-12-08T13:12:28.041Z" }, + { url = "https://files.pythonhosted.org/packages/0c/94/42f8ae7f633bf4c118bf1038d80472f9dade88961a466f290b81250f7ab7/coverage-7.13.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:62d7c4f13102148c78d7353c6052af6d899a7f6df66a32bddcc0c0eb7c5326f8", size = 245847, upload-time = "2025-12-08T13:12:29.337Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2f/6369ca22b6b6d933f4f4d27765d313d8914cc4cce84f82a16436b1a233db/coverage-7.13.0-cp310-cp310-win32.whl", hash = "sha256:24e4e56304fdb56f96f80eabf840eab043b3afea9348b88be680ec5986780a0f", size = 220573, upload-time = "2025-12-08T13:12:30.905Z" }, + { url = "https://files.pythonhosted.org/packages/f1/dc/a6a741e519acceaeccc70a7f4cfe5d030efc4b222595f0677e101af6f1f3/coverage-7.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:74c136e4093627cf04b26a35dab8cbfc9b37c647f0502fc313376e11726ba303", size = 221509, upload-time = "2025-12-08T13:12:32.09Z" }, + { url = "https://files.pythonhosted.org/packages/f1/dc/888bf90d8b1c3d0b4020a40e52b9f80957d75785931ec66c7dfaccc11c7d/coverage-7.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0dfa3855031070058add1a59fdfda0192fd3e8f97e7c81de0596c145dea51820", size = 218104, upload-time = "2025-12-08T13:12:33.333Z" }, + { url = "https://files.pythonhosted.org/packages/8d/ea/069d51372ad9c380214e86717e40d1a743713a2af191cfba30a0911b0a4a/coverage-7.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fdb6f54f38e334db97f72fa0c701e66d8479af0bc3f9bfb5b90f1c30f54500f", size = 218606, upload-time = "2025-12-08T13:12:34.498Z" }, + { url = "https://files.pythonhosted.org/packages/68/09/77b1c3a66c2aa91141b6c4471af98e5b1ed9b9e6d17255da5eb7992299e3/coverage-7.13.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7e442c013447d1d8d195be62852270b78b6e255b79b8675bad8479641e21fd96", size = 248999, upload-time = "2025-12-08T13:12:36.02Z" }, + { url = "https://files.pythonhosted.org/packages/0a/32/2e2f96e9d5691eaf1181d9040f850b8b7ce165ea10810fd8e2afa534cef7/coverage-7.13.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1ed5630d946859de835a85e9a43b721123a8a44ec26e2830b296d478c7fd4259", size = 250925, upload-time = "2025-12-08T13:12:37.221Z" }, + { url = "https://files.pythonhosted.org/packages/7b/45/b88ddac1d7978859b9a39a8a50ab323186148f1d64bc068f86fc77706321/coverage-7.13.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f15a931a668e58087bc39d05d2b4bf4b14ff2875b49c994bbdb1c2217a8daeb", size = 253032, upload-time = "2025-12-08T13:12:38.763Z" }, + { url = "https://files.pythonhosted.org/packages/71/cb/e15513f94c69d4820a34b6bf3d2b1f9f8755fa6021be97c7065442d7d653/coverage-7.13.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:30a3a201a127ea57f7e14ba43c93c9c4be8b7d17a26e03bb49e6966d019eede9", size = 249134, upload-time = "2025-12-08T13:12:40.382Z" }, + { url = "https://files.pythonhosted.org/packages/09/61/d960ff7dc9e902af3310ce632a875aaa7860f36d2bc8fc8b37ee7c1b82a5/coverage-7.13.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7a485ff48fbd231efa32d58f479befce52dcb6bfb2a88bb7bf9a0b89b1bc8030", size = 250731, upload-time = "2025-12-08T13:12:41.992Z" }, + { url = "https://files.pythonhosted.org/packages/98/34/c7c72821794afc7c7c2da1db8f00c2c98353078aa7fb6b5ff36aac834b52/coverage-7.13.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:22486cdafba4f9e471c816a2a5745337742a617fef68e890d8baf9f3036d7833", size = 248795, upload-time = "2025-12-08T13:12:43.331Z" }, + { url = "https://files.pythonhosted.org/packages/0a/5b/e0f07107987a43b2def9aa041c614ddb38064cbf294a71ef8c67d43a0cdd/coverage-7.13.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:263c3dbccc78e2e331e59e90115941b5f53e85cfcc6b3b2fbff1fd4e3d2c6ea8", size = 248514, upload-time = "2025-12-08T13:12:44.546Z" }, + { url = "https://files.pythonhosted.org/packages/71/c2/c949c5d3b5e9fc6dd79e1b73cdb86a59ef14f3709b1d72bf7668ae12e000/coverage-7.13.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e5330fa0cc1f5c3c4c3bb8e101b742025933e7848989370a1d4c8c5e401ea753", size = 249424, upload-time = "2025-12-08T13:12:45.759Z" }, + { url = "https://files.pythonhosted.org/packages/11/f1/bbc009abd6537cec0dffb2cc08c17a7f03de74c970e6302db4342a6e05af/coverage-7.13.0-cp311-cp311-win32.whl", hash = "sha256:0f4872f5d6c54419c94c25dd6ae1d015deeb337d06e448cd890a1e89a8ee7f3b", size = 220597, upload-time = "2025-12-08T13:12:47.378Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f6/d9977f2fb51c10fbaed0718ce3d0a8541185290b981f73b1d27276c12d91/coverage-7.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51a202e0f80f241ccb68e3e26e19ab5b3bf0f813314f2c967642f13ebcf1ddfe", size = 221536, upload-time = "2025-12-08T13:12:48.7Z" }, + { url = "https://files.pythonhosted.org/packages/be/ad/3fcf43fd96fb43e337a3073dea63ff148dcc5c41ba7a14d4c7d34efb2216/coverage-7.13.0-cp311-cp311-win_arm64.whl", hash = "sha256:d2a9d7f1c11487b1c69367ab3ac2d81b9b3721f097aa409a3191c3e90f8f3dd7", size = 220206, upload-time = "2025-12-08T13:12:50.365Z" }, + { url = "https://files.pythonhosted.org/packages/9b/f1/2619559f17f31ba00fc40908efd1fbf1d0a5536eb75dc8341e7d660a08de/coverage-7.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0b3d67d31383c4c68e19a88e28fc4c2e29517580f1b0ebec4a069d502ce1e0bf", size = 218274, upload-time = "2025-12-08T13:12:52.095Z" }, + { url = "https://files.pythonhosted.org/packages/2b/11/30d71ae5d6e949ff93b2a79a2c1b4822e00423116c5c6edfaeef37301396/coverage-7.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:581f086833d24a22c89ae0fe2142cfaa1c92c930adf637ddf122d55083fb5a0f", size = 218638, upload-time = "2025-12-08T13:12:53.418Z" }, + { url = "https://files.pythonhosted.org/packages/79/c2/fce80fc6ded8d77e53207489d6065d0fed75db8951457f9213776615e0f5/coverage-7.13.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0a3a30f0e257df382f5f9534d4ce3d4cf06eafaf5192beb1a7bd066cb10e78fb", size = 250129, upload-time = "2025-12-08T13:12:54.744Z" }, + { url = "https://files.pythonhosted.org/packages/5b/b6/51b5d1eb6fcbb9a1d5d6984e26cbe09018475c2922d554fd724dd0f056ee/coverage-7.13.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:583221913fbc8f53b88c42e8dbb8fca1d0f2e597cb190ce45916662b8b9d9621", size = 252885, upload-time = "2025-12-08T13:12:56.401Z" }, + { url = "https://files.pythonhosted.org/packages/0d/f8/972a5affea41de798691ab15d023d3530f9f56a72e12e243f35031846ff7/coverage-7.13.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f5d9bd30756fff3e7216491a0d6d520c448d5124d3d8e8f56446d6412499e74", size = 253974, upload-time = "2025-12-08T13:12:57.718Z" }, + { url = "https://files.pythonhosted.org/packages/8a/56/116513aee860b2c7968aa3506b0f59b22a959261d1dbf3aea7b4450a7520/coverage-7.13.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a23e5a1f8b982d56fa64f8e442e037f6ce29322f1f9e6c2344cd9e9f4407ee57", size = 250538, upload-time = "2025-12-08T13:12:59.254Z" }, + { url = "https://files.pythonhosted.org/packages/d6/75/074476d64248fbadf16dfafbf93fdcede389ec821f74ca858d7c87d2a98c/coverage-7.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9b01c22bc74a7fb44066aaf765224c0d933ddf1f5047d6cdfe4795504a4493f8", size = 251912, upload-time = "2025-12-08T13:13:00.604Z" }, + { url = "https://files.pythonhosted.org/packages/f2/d2/aa4f8acd1f7c06024705c12609d8698c51b27e4d635d717cd1934c9668e2/coverage-7.13.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:898cce66d0836973f48dda4e3514d863d70142bdf6dfab932b9b6a90ea5b222d", size = 250054, upload-time = "2025-12-08T13:13:01.892Z" }, + { url = "https://files.pythonhosted.org/packages/19/98/8df9e1af6a493b03694a1e8070e024e7d2cdc77adedc225a35e616d505de/coverage-7.13.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:3ab483ea0e251b5790c2aac03acde31bff0c736bf8a86829b89382b407cd1c3b", size = 249619, upload-time = "2025-12-08T13:13:03.236Z" }, + { url = "https://files.pythonhosted.org/packages/d8/71/f8679231f3353018ca66ef647fa6fe7b77e6bff7845be54ab84f86233363/coverage-7.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1d84e91521c5e4cb6602fe11ece3e1de03b2760e14ae4fcf1a4b56fa3c801fcd", size = 251496, upload-time = "2025-12-08T13:13:04.511Z" }, + { url = "https://files.pythonhosted.org/packages/04/86/9cb406388034eaf3c606c22094edbbb82eea1fa9d20c0e9efadff20d0733/coverage-7.13.0-cp312-cp312-win32.whl", hash = "sha256:193c3887285eec1dbdb3f2bd7fbc351d570ca9c02ca756c3afbc71b3c98af6ef", size = 220808, upload-time = "2025-12-08T13:13:06.422Z" }, + { url = "https://files.pythonhosted.org/packages/1c/59/af483673df6455795daf5f447c2f81a3d2fcfc893a22b8ace983791f6f34/coverage-7.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:4f3e223b2b2db5e0db0c2b97286aba0036ca000f06aca9b12112eaa9af3d92ae", size = 221616, upload-time = "2025-12-08T13:13:07.95Z" }, + { url = "https://files.pythonhosted.org/packages/64/b0/959d582572b30a6830398c60dd419c1965ca4b5fb38ac6b7093a0d50ca8d/coverage-7.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:086cede306d96202e15a4b77ace8472e39d9f4e5f9fd92dd4fecdfb2313b2080", size = 220261, upload-time = "2025-12-08T13:13:09.581Z" }, + { url = "https://files.pythonhosted.org/packages/7c/cc/bce226595eb3bf7d13ccffe154c3c487a22222d87ff018525ab4dd2e9542/coverage-7.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:28ee1c96109974af104028a8ef57cec21447d42d0e937c0275329272e370ebcf", size = 218297, upload-time = "2025-12-08T13:13:10.977Z" }, + { url = "https://files.pythonhosted.org/packages/3b/9f/73c4d34600aae03447dff3d7ad1d0ac649856bfb87d1ca7d681cfc913f9e/coverage-7.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d1e97353dcc5587b85986cda4ff3ec98081d7e84dd95e8b2a6d59820f0545f8a", size = 218673, upload-time = "2025-12-08T13:13:12.562Z" }, + { url = "https://files.pythonhosted.org/packages/63/ab/8fa097db361a1e8586535ae5073559e6229596b3489ec3ef2f5b38df8cb2/coverage-7.13.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:99acd4dfdfeb58e1937629eb1ab6ab0899b131f183ee5f23e0b5da5cba2fec74", size = 249652, upload-time = "2025-12-08T13:13:13.909Z" }, + { url = "https://files.pythonhosted.org/packages/90/3a/9bfd4de2ff191feb37ef9465855ca56a6f2f30a3bca172e474130731ac3d/coverage-7.13.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:ff45e0cd8451e293b63ced93161e189780baf444119391b3e7d25315060368a6", size = 252251, upload-time = "2025-12-08T13:13:15.553Z" }, + { url = "https://files.pythonhosted.org/packages/df/61/b5d8105f016e1b5874af0d7c67542da780ccd4a5f2244a433d3e20ceb1ad/coverage-7.13.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f4f72a85316d8e13234cafe0a9f81b40418ad7a082792fa4165bd7d45d96066b", size = 253492, upload-time = "2025-12-08T13:13:16.849Z" }, + { url = "https://files.pythonhosted.org/packages/f3/b8/0fad449981803cc47a4694768b99823fb23632150743f9c83af329bb6090/coverage-7.13.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:11c21557d0e0a5a38632cbbaca5f008723b26a89d70db6315523df6df77d6232", size = 249850, upload-time = "2025-12-08T13:13:18.142Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e9/8d68337c3125014d918cf4327d5257553a710a2995a6a6de2ac77e5aa429/coverage-7.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:76541dc8d53715fb4f7a3a06b34b0dc6846e3c69bc6204c55653a85dd6220971", size = 251633, upload-time = "2025-12-08T13:13:19.56Z" }, + { url = "https://files.pythonhosted.org/packages/55/14/d4112ab26b3a1bc4b3c1295d8452dcf399ed25be4cf649002fb3e64b2d93/coverage-7.13.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6e9e451dee940a86789134b6b0ffbe31c454ade3b849bb8a9d2cca2541a8e91d", size = 249586, upload-time = "2025-12-08T13:13:20.883Z" }, + { url = "https://files.pythonhosted.org/packages/2c/a9/22b0000186db663b0d82f86c2f1028099ae9ac202491685051e2a11a5218/coverage-7.13.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:5c67dace46f361125e6b9cace8fe0b729ed8479f47e70c89b838d319375c8137", size = 249412, upload-time = "2025-12-08T13:13:22.22Z" }, + { url = "https://files.pythonhosted.org/packages/a1/2e/42d8e0d9e7527fba439acdc6ed24a2b97613b1dc85849b1dd935c2cffef0/coverage-7.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f59883c643cb19630500f57016f76cfdcd6845ca8c5b5ea1f6e17f74c8e5f511", size = 251191, upload-time = "2025-12-08T13:13:23.899Z" }, + { url = "https://files.pythonhosted.org/packages/a4/af/8c7af92b1377fd8860536aadd58745119252aaaa71a5213e5a8e8007a9f5/coverage-7.13.0-cp313-cp313-win32.whl", hash = "sha256:58632b187be6f0be500f553be41e277712baa278147ecb7559983c6d9faf7ae1", size = 220829, upload-time = "2025-12-08T13:13:25.182Z" }, + { url = "https://files.pythonhosted.org/packages/58/f9/725e8bf16f343d33cbe076c75dc8370262e194ff10072c0608b8e5cf33a3/coverage-7.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:73419b89f812f498aca53f757dd834919b48ce4799f9d5cad33ca0ae442bdb1a", size = 221640, upload-time = "2025-12-08T13:13:26.836Z" }, + { url = "https://files.pythonhosted.org/packages/8a/ff/e98311000aa6933cc79274e2b6b94a2fe0fe3434fca778eba82003675496/coverage-7.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:eb76670874fdd6091eedcc856128ee48c41a9bbbb9c3f1c7c3cf169290e3ffd6", size = 220269, upload-time = "2025-12-08T13:13:28.116Z" }, + { url = "https://files.pythonhosted.org/packages/cf/cf/bbaa2e1275b300343ea865f7d424cc0a2e2a1df6925a070b2b2d5d765330/coverage-7.13.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6e63ccc6e0ad8986386461c3c4b737540f20426e7ec932f42e030320896c311a", size = 218990, upload-time = "2025-12-08T13:13:29.463Z" }, + { url = "https://files.pythonhosted.org/packages/21/1d/82f0b3323b3d149d7672e7744c116e9c170f4957e0c42572f0366dbb4477/coverage-7.13.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:494f5459ffa1bd45e18558cd98710c36c0b8fbfa82a5eabcbe671d80ecffbfe8", size = 219340, upload-time = "2025-12-08T13:13:31.524Z" }, + { url = "https://files.pythonhosted.org/packages/fb/e3/fe3fd4702a3832a255f4d43013eacb0ef5fc155a5960ea9269d8696db28b/coverage-7.13.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:06cac81bf10f74034e055e903f5f946e3e26fc51c09fc9f584e4a1605d977053", size = 260638, upload-time = "2025-12-08T13:13:32.965Z" }, + { url = "https://files.pythonhosted.org/packages/ad/01/63186cb000307f2b4da463f72af9b85d380236965574c78e7e27680a2593/coverage-7.13.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f2ffc92b46ed6e6760f1d47a71e56b5664781bc68986dbd1836b2b70c0ce2071", size = 262705, upload-time = "2025-12-08T13:13:34.378Z" }, + { url = "https://files.pythonhosted.org/packages/7c/a1/c0dacef0cc865f2455d59eed3548573ce47ed603205ffd0735d1d78b5906/coverage-7.13.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0602f701057c6823e5db1b74530ce85f17c3c5be5c85fc042ac939cbd909426e", size = 265125, upload-time = "2025-12-08T13:13:35.73Z" }, + { url = "https://files.pythonhosted.org/packages/ef/92/82b99223628b61300bd382c205795533bed021505eab6dd86e11fb5d7925/coverage-7.13.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:25dc33618d45456ccb1d37bce44bc78cf269909aa14c4db2e03d63146a8a1493", size = 259844, upload-time = "2025-12-08T13:13:37.69Z" }, + { url = "https://files.pythonhosted.org/packages/cf/2c/89b0291ae4e6cd59ef042708e1c438e2290f8c31959a20055d8768349ee2/coverage-7.13.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:71936a8b3b977ddd0b694c28c6a34f4fff2e9dd201969a4ff5d5fc7742d614b0", size = 262700, upload-time = "2025-12-08T13:13:39.525Z" }, + { url = "https://files.pythonhosted.org/packages/bf/f9/a5f992efae1996245e796bae34ceb942b05db275e4b34222a9a40b9fbd3b/coverage-7.13.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:936bc20503ce24770c71938d1369461f0c5320830800933bc3956e2a4ded930e", size = 260321, upload-time = "2025-12-08T13:13:41.172Z" }, + { url = "https://files.pythonhosted.org/packages/4c/89/a29f5d98c64fedbe32e2ac3c227fbf78edc01cc7572eee17d61024d89889/coverage-7.13.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:af0a583efaacc52ae2521f8d7910aff65cdb093091d76291ac5820d5e947fc1c", size = 259222, upload-time = "2025-12-08T13:13:43.282Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c3/940fe447aae302a6701ee51e53af7e08b86ff6eed7631e5740c157ee22b9/coverage-7.13.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f1c23e24a7000da892a312fb17e33c5f94f8b001de44b7cf8ba2e36fbd15859e", size = 261411, upload-time = "2025-12-08T13:13:44.72Z" }, + { url = "https://files.pythonhosted.org/packages/eb/31/12a4aec689cb942a89129587860ed4d0fd522d5fda81237147fde554b8ae/coverage-7.13.0-cp313-cp313t-win32.whl", hash = "sha256:5f8a0297355e652001015e93be345ee54393e45dc3050af4a0475c5a2b767d46", size = 221505, upload-time = "2025-12-08T13:13:46.332Z" }, + { url = "https://files.pythonhosted.org/packages/65/8c/3b5fe3259d863572d2b0827642c50c3855d26b3aefe80bdc9eba1f0af3b0/coverage-7.13.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6abb3a4c52f05e08460bd9acf04fec027f8718ecaa0d09c40ffbc3fbd70ecc39", size = 222569, upload-time = "2025-12-08T13:13:47.79Z" }, + { url = "https://files.pythonhosted.org/packages/b0/39/f71fa8316a96ac72fc3908839df651e8eccee650001a17f2c78cdb355624/coverage-7.13.0-cp313-cp313t-win_arm64.whl", hash = "sha256:3ad968d1e3aa6ce5be295ab5fe3ae1bf5bb4769d0f98a80a0252d543a2ef2e9e", size = 220841, upload-time = "2025-12-08T13:13:49.243Z" }, + { url = "https://files.pythonhosted.org/packages/f8/4b/9b54bedda55421449811dcd5263a2798a63f48896c24dfb92b0f1b0845bd/coverage-7.13.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:453b7ec753cf5e4356e14fe858064e5520c460d3bbbcb9c35e55c0d21155c256", size = 218343, upload-time = "2025-12-08T13:13:50.811Z" }, + { url = "https://files.pythonhosted.org/packages/59/df/c3a1f34d4bba2e592c8979f924da4d3d4598b0df2392fbddb7761258e3dc/coverage-7.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:af827b7cbb303e1befa6c4f94fd2bf72f108089cfa0f8abab8f4ca553cf5ca5a", size = 218672, upload-time = "2025-12-08T13:13:52.284Z" }, + { url = "https://files.pythonhosted.org/packages/07/62/eec0659e47857698645ff4e6ad02e30186eb8afd65214fd43f02a76537cb/coverage-7.13.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9987a9e4f8197a1000280f7cc089e3ea2c8b3c0a64d750537809879a7b4ceaf9", size = 249715, upload-time = "2025-12-08T13:13:53.791Z" }, + { url = "https://files.pythonhosted.org/packages/23/2d/3c7ff8b2e0e634c1f58d095f071f52ed3c23ff25be524b0ccae8b71f99f8/coverage-7.13.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3188936845cd0cb114fa6a51842a304cdbac2958145d03be2377ec41eb285d19", size = 252225, upload-time = "2025-12-08T13:13:55.274Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ac/fb03b469d20e9c9a81093575003f959cf91a4a517b783aab090e4538764b/coverage-7.13.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2bdb3babb74079f021696cb46b8bb5f5661165c385d3a238712b031a12355be", size = 253559, upload-time = "2025-12-08T13:13:57.161Z" }, + { url = "https://files.pythonhosted.org/packages/29/62/14afa9e792383c66cc0a3b872a06ded6e4ed1079c7d35de274f11d27064e/coverage-7.13.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7464663eaca6adba4175f6c19354feea61ebbdd735563a03d1e472c7072d27bb", size = 249724, upload-time = "2025-12-08T13:13:58.692Z" }, + { url = "https://files.pythonhosted.org/packages/31/b7/333f3dab2939070613696ab3ee91738950f0467778c6e5a5052e840646b7/coverage-7.13.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8069e831f205d2ff1f3d355e82f511eb7c5522d7d413f5db5756b772ec8697f8", size = 251582, upload-time = "2025-12-08T13:14:00.642Z" }, + { url = "https://files.pythonhosted.org/packages/81/cb/69162bda9381f39b2287265d7e29ee770f7c27c19f470164350a38318764/coverage-7.13.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:6fb2d5d272341565f08e962cce14cdf843a08ac43bd621783527adb06b089c4b", size = 249538, upload-time = "2025-12-08T13:14:02.556Z" }, + { url = "https://files.pythonhosted.org/packages/e0/76/350387b56a30f4970abe32b90b2a434f87d29f8b7d4ae40d2e8a85aacfb3/coverage-7.13.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:5e70f92ef89bac1ac8a99b3324923b4749f008fdbd7aa9cb35e01d7a284a04f9", size = 249349, upload-time = "2025-12-08T13:14:04.015Z" }, + { url = "https://files.pythonhosted.org/packages/86/0d/7f6c42b8d59f4c7e43ea3059f573c0dcfed98ba46eb43c68c69e52ae095c/coverage-7.13.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4b5de7d4583e60d5fd246dd57fcd3a8aa23c6e118a8c72b38adf666ba8e7e927", size = 251011, upload-time = "2025-12-08T13:14:05.505Z" }, + { url = "https://files.pythonhosted.org/packages/d7/f1/4bb2dff379721bb0b5c649d5c5eaf438462cad824acf32eb1b7ca0c7078e/coverage-7.13.0-cp314-cp314-win32.whl", hash = "sha256:a6c6e16b663be828a8f0b6c5027d36471d4a9f90d28444aa4ced4d48d7d6ae8f", size = 221091, upload-time = "2025-12-08T13:14:07.127Z" }, + { url = "https://files.pythonhosted.org/packages/ba/44/c239da52f373ce379c194b0ee3bcc121020e397242b85f99e0afc8615066/coverage-7.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:0900872f2fdb3ee5646b557918d02279dc3af3dfb39029ac4e945458b13f73bc", size = 221904, upload-time = "2025-12-08T13:14:08.542Z" }, + { url = "https://files.pythonhosted.org/packages/89/1f/b9f04016d2a29c2e4a0307baefefad1a4ec5724946a2b3e482690486cade/coverage-7.13.0-cp314-cp314-win_arm64.whl", hash = "sha256:3a10260e6a152e5f03f26db4a407c4c62d3830b9af9b7c0450b183615f05d43b", size = 220480, upload-time = "2025-12-08T13:14:10.958Z" }, + { url = "https://files.pythonhosted.org/packages/16/d4/364a1439766c8e8647860584171c36010ca3226e6e45b1753b1b249c5161/coverage-7.13.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9097818b6cc1cfb5f174e3263eba4a62a17683bcfe5c4b5d07f4c97fa51fbf28", size = 219074, upload-time = "2025-12-08T13:14:13.345Z" }, + { url = "https://files.pythonhosted.org/packages/ce/f4/71ba8be63351e099911051b2089662c03d5671437a0ec2171823c8e03bec/coverage-7.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0018f73dfb4301a89292c73be6ba5f58722ff79f51593352759c1790ded1cabe", size = 219342, upload-time = "2025-12-08T13:14:15.02Z" }, + { url = "https://files.pythonhosted.org/packages/5e/25/127d8ed03d7711a387d96f132589057213e3aef7475afdaa303412463f22/coverage-7.13.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:166ad2a22ee770f5656e1257703139d3533b4a0b6909af67c6b4a3adc1c98657", size = 260713, upload-time = "2025-12-08T13:14:16.907Z" }, + { url = "https://files.pythonhosted.org/packages/fd/db/559fbb6def07d25b2243663b46ba9eb5a3c6586c0c6f4e62980a68f0ee1c/coverage-7.13.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f6aaef16d65d1787280943f1c8718dc32e9cf141014e4634d64446702d26e0ff", size = 262825, upload-time = "2025-12-08T13:14:18.68Z" }, + { url = "https://files.pythonhosted.org/packages/37/99/6ee5bf7eff884766edb43bd8736b5e1c5144d0fe47498c3779326fe75a35/coverage-7.13.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e999e2dcc094002d6e2c7bbc1fb85b58ba4f465a760a8014d97619330cdbbbf3", size = 265233, upload-time = "2025-12-08T13:14:20.55Z" }, + { url = "https://files.pythonhosted.org/packages/d8/90/92f18fe0356ea69e1f98f688ed80cec39f44e9f09a1f26a1bbf017cc67f2/coverage-7.13.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:00c3d22cf6fb1cf3bf662aaaa4e563be8243a5ed2630339069799835a9cc7f9b", size = 259779, upload-time = "2025-12-08T13:14:22.367Z" }, + { url = "https://files.pythonhosted.org/packages/90/5d/b312a8b45b37a42ea7d27d7d3ff98ade3a6c892dd48d1d503e773503373f/coverage-7.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22ccfe8d9bb0d6134892cbe1262493a8c70d736b9df930f3f3afae0fe3ac924d", size = 262700, upload-time = "2025-12-08T13:14:24.309Z" }, + { url = "https://files.pythonhosted.org/packages/63/f8/b1d0de5c39351eb71c366f872376d09386640840a2e09b0d03973d791e20/coverage-7.13.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:9372dff5ea15930fea0445eaf37bbbafbc771a49e70c0aeed8b4e2c2614cc00e", size = 260302, upload-time = "2025-12-08T13:14:26.068Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7c/d42f4435bc40c55558b3109a39e2d456cddcec37434f62a1f1230991667a/coverage-7.13.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:69ac2c492918c2461bc6ace42d0479638e60719f2a4ef3f0815fa2df88e9f940", size = 259136, upload-time = "2025-12-08T13:14:27.604Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d3/23413241dc04d47cfe19b9a65b32a2edd67ecd0b817400c2843ebc58c847/coverage-7.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:739c6c051a7540608d097b8e13c76cfa85263ced467168dc6b477bae3df7d0e2", size = 261467, upload-time = "2025-12-08T13:14:29.09Z" }, + { url = "https://files.pythonhosted.org/packages/13/e6/6e063174500eee216b96272c0d1847bf215926786f85c2bd024cf4d02d2f/coverage-7.13.0-cp314-cp314t-win32.whl", hash = "sha256:fe81055d8c6c9de76d60c94ddea73c290b416e061d40d542b24a5871bad498b7", size = 221875, upload-time = "2025-12-08T13:14:31.106Z" }, + { url = "https://files.pythonhosted.org/packages/3b/46/f4fb293e4cbe3620e3ac2a3e8fd566ed33affb5861a9b20e3dd6c1896cbc/coverage-7.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:445badb539005283825959ac9fa4a28f712c214b65af3a2c464f1adc90f5fcbc", size = 222982, upload-time = "2025-12-08T13:14:33.1Z" }, + { url = "https://files.pythonhosted.org/packages/68/62/5b3b9018215ed9733fbd1ae3b2ed75c5de62c3b55377a52cae732e1b7805/coverage-7.13.0-cp314-cp314t-win_arm64.whl", hash = "sha256:de7f6748b890708578fc4b7bb967d810aeb6fcc9bff4bb77dbca77dab2f9df6a", size = 221016, upload-time = "2025-12-08T13:14:34.601Z" }, + { url = "https://files.pythonhosted.org/packages/8d/4c/1968f32fb9a2604645827e11ff84a31e59d532e01995f904723b4f5328b3/coverage-7.13.0-py3-none-any.whl", hash = "sha256:850d2998f380b1e266459ca5b47bc9e7daf9af1d070f66317972f382d46f1904", size = 210068, upload-time = "2025-12-08T13:14:36.236Z" }, ] [package.optional-dependencies] @@ -352,27 +299,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "orderly-set" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/76/36c9aab3d5c19a94091f7c6c6e784efca50d87b124bf026c36e94719f33c/deepdiff-8.6.1.tar.gz", hash = "sha256:ec56d7a769ca80891b5200ec7bd41eec300ced91ebcc7797b41eb2b3f3ff643a", size = 634054 } +sdist = { url = "https://files.pythonhosted.org/packages/19/76/36c9aab3d5c19a94091f7c6c6e784efca50d87b124bf026c36e94719f33c/deepdiff-8.6.1.tar.gz", hash = "sha256:ec56d7a769ca80891b5200ec7bd41eec300ced91ebcc7797b41eb2b3f3ff643a", size = 634054, upload-time = "2025-09-03T19:40:41.461Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl", hash = "sha256:ee8708a7f7d37fb273a541fa24ad010ed484192cd0c4ffc0fa0ed5e2d4b9e78b", size = 91378 }, + { url = "https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl", hash = "sha256:ee8708a7f7d37fb273a541fa24ad010ed484192cd0c4ffc0fa0ed5e2d4b9e78b", size = 91378, upload-time = "2025-09-03T19:40:39.679Z" }, ] [[package]] name = "distro" version = "1.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722 } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277 }, + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, ] [[package]] name = "docstring-parser" version = "0.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442 } +sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442, upload-time = "2025-07-21T07:35:01.868Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896 }, + { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896, upload-time = "2025-07-21T07:35:00.684Z" }, ] [[package]] @@ -386,6 +333,7 @@ dependencies = [ { name = "pytest" }, { name = "pytest-retry" }, { name = "pytest-sugar" }, + { name = "pytest-xdist" }, { name = "requests" }, { name = "selenium" }, ] @@ -404,9 +352,11 @@ requires-dist = [ { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=4.1.0" }, { name = "pytest-retry", specifier = ">=1.6.3" }, { name = "pytest-sugar", specifier = ">=1.0.0" }, + { name = "pytest-xdist", specifier = ">=3.5.0" }, { name = "requests", specifier = ">=2.29.0" }, { name = "selenium", specifier = ">=4.11.2" }, ] +provides-extras = ["dev"] [[package]] name = "exceptiongroup" @@ -415,18 +365,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371 } +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740 }, + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, +] + +[[package]] +name = "execnet" +version = "2.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/89/780e11f9588d9e7128a3f87788354c7946a9cbb1401ad38a48c4db9a4f07/execnet-2.1.2.tar.gz", hash = "sha256:63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd", size = 166622, upload-time = "2025-11-12T09:56:37.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec", size = 40708, upload-time = "2025-11-12T09:56:36.333Z" }, ] [[package]] name = "h11" version = "0.16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250 } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] [[package]] @@ -437,9 +396,9 @@ dependencies = [ { name = "certifi" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484 } +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784 }, + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, ] [[package]] @@ -452,124 +411,124 @@ dependencies = [ { name = "httpcore" }, { name = "idna" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 } +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 }, + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, ] [[package]] name = "idna" version = "3.11" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582 } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008 }, + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, ] [[package]] name = "iniconfig" version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503 } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484 }, + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] [[package]] name = "jiter" version = "0.12.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/45/9d/e0660989c1370e25848bb4c52d061c71837239738ad937e83edca174c273/jiter-0.12.0.tar.gz", hash = "sha256:64dfcd7d5c168b38d3f9f8bba7fc639edb3418abcc74f22fdbe6b8938293f30b", size = 168294 } +sdist = { url = "https://files.pythonhosted.org/packages/45/9d/e0660989c1370e25848bb4c52d061c71837239738ad937e83edca174c273/jiter-0.12.0.tar.gz", hash = "sha256:64dfcd7d5c168b38d3f9f8bba7fc639edb3418abcc74f22fdbe6b8938293f30b", size = 168294, upload-time = "2025-11-09T20:49:23.302Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/91/13cb9505f7be74a933f37da3af22e029f6ba64f5669416cb8b2774bc9682/jiter-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:e7acbaba9703d5de82a2c98ae6a0f59ab9770ab5af5fa35e43a303aee962cf65", size = 316652 }, - { url = "https://files.pythonhosted.org/packages/4e/76/4e9185e5d9bb4e482cf6dec6410d5f78dfeb374cfcecbbe9888d07c52daa/jiter-0.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:364f1a7294c91281260364222f535bc427f56d4de1d8ffd718162d21fbbd602e", size = 319829 }, - { url = "https://files.pythonhosted.org/packages/86/af/727de50995d3a153138139f259baae2379d8cb0522c0c00419957bc478a6/jiter-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ee4d25805d4fb23f0a5167a962ef8e002dbfb29c0989378488e32cf2744b62", size = 350568 }, - { url = "https://files.pythonhosted.org/packages/6a/c1/d6e9f4b7a3d5ac63bcbdfddeb50b2dcfbdc512c86cffc008584fdc350233/jiter-0.12.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:796f466b7942107eb889c08433b6e31b9a7ed31daceaecf8af1be26fb26c0ca8", size = 369052 }, - { url = "https://files.pythonhosted.org/packages/eb/be/00824cd530f30ed73fa8a4f9f3890a705519e31ccb9e929f1e22062e7c76/jiter-0.12.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:35506cb71f47dba416694e67af996bbdefb8e3608f1f78799c2e1f9058b01ceb", size = 481585 }, - { url = "https://files.pythonhosted.org/packages/74/b6/2ad7990dff9504d4b5052eef64aa9574bd03d722dc7edced97aad0d47be7/jiter-0.12.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:726c764a90c9218ec9e4f99a33d6bf5ec169163f2ca0fc21b654e88c2abc0abc", size = 380541 }, - { url = "https://files.pythonhosted.org/packages/b5/c7/f3c26ecbc1adbf1db0d6bba99192143d8fe8504729d9594542ecc4445784/jiter-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa47810c5565274810b726b0dc86d18dce5fd17b190ebdc3890851d7b2a0e74", size = 364423 }, - { url = "https://files.pythonhosted.org/packages/18/51/eac547bf3a2d7f7e556927278e14c56a0604b8cddae75815d5739f65f81d/jiter-0.12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8ec0259d3f26c62aed4d73b198c53e316ae11f0f69c8fbe6682c6dcfa0fcce2", size = 389958 }, - { url = "https://files.pythonhosted.org/packages/2c/1f/9ca592e67175f2db156cff035e0d817d6004e293ee0c1d73692d38fcb596/jiter-0.12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:79307d74ea83465b0152fa23e5e297149506435535282f979f18b9033c0bb025", size = 522084 }, - { url = "https://files.pythonhosted.org/packages/83/ff/597d9cdc3028f28224f53e1a9d063628e28b7a5601433e3196edda578cdd/jiter-0.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cf6e6dd18927121fec86739f1a8906944703941d000f0639f3eb6281cc601dca", size = 513054 }, - { url = "https://files.pythonhosted.org/packages/24/6d/1970bce1351bd02e3afcc5f49e4f7ef3dabd7fb688f42be7e8091a5b809a/jiter-0.12.0-cp310-cp310-win32.whl", hash = "sha256:b6ae2aec8217327d872cbfb2c1694489057b9433afce447955763e6ab015b4c4", size = 206368 }, - { url = "https://files.pythonhosted.org/packages/e3/6b/eb1eb505b2d86709b59ec06681a2b14a94d0941db091f044b9f0e16badc0/jiter-0.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:c7f49ce90a71e44f7e1aa9e7ec415b9686bbc6a5961e57eab511015e6759bc11", size = 204847 }, - { url = "https://files.pythonhosted.org/packages/32/f9/eaca4633486b527ebe7e681c431f529b63fe2709e7c5242fc0f43f77ce63/jiter-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8f8a7e317190b2c2d60eb2e8aa835270b008139562d70fe732e1c0020ec53c9", size = 316435 }, - { url = "https://files.pythonhosted.org/packages/10/c1/40c9f7c22f5e6ff715f28113ebaba27ab85f9af2660ad6e1dd6425d14c19/jiter-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2218228a077e784c6c8f1a8e5d6b8cb1dea62ce25811c356364848554b2056cd", size = 320548 }, - { url = "https://files.pythonhosted.org/packages/6b/1b/efbb68fe87e7711b00d2cfd1f26bb4bfc25a10539aefeaa7727329ffb9cb/jiter-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9354ccaa2982bf2188fd5f57f79f800ef622ec67beb8329903abf6b10da7d423", size = 351915 }, - { url = "https://files.pythonhosted.org/packages/15/2d/c06e659888c128ad1e838123d0638f0efad90cc30860cb5f74dd3f2fc0b3/jiter-0.12.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f2607185ea89b4af9a604d4c7ec40e45d3ad03ee66998b031134bc510232bb7", size = 368966 }, - { url = "https://files.pythonhosted.org/packages/6b/20/058db4ae5fb07cf6a4ab2e9b9294416f606d8e467fb74c2184b2a1eeacba/jiter-0.12.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a585a5e42d25f2e71db5f10b171f5e5ea641d3aa44f7df745aa965606111cc2", size = 482047 }, - { url = "https://files.pythonhosted.org/packages/49/bb/dc2b1c122275e1de2eb12905015d61e8316b2f888bdaac34221c301495d6/jiter-0.12.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd9e21d34edff5a663c631f850edcb786719c960ce887a5661e9c828a53a95d9", size = 380835 }, - { url = "https://files.pythonhosted.org/packages/23/7d/38f9cd337575349de16da575ee57ddb2d5a64d425c9367f5ef9e4612e32e/jiter-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a612534770470686cd5431478dc5a1b660eceb410abade6b1b74e320ca98de6", size = 364587 }, - { url = "https://files.pythonhosted.org/packages/f0/a3/b13e8e61e70f0bb06085099c4e2462647f53cc2ca97614f7fedcaa2bb9f3/jiter-0.12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3985aea37d40a908f887b34d05111e0aae822943796ebf8338877fee2ab67725", size = 390492 }, - { url = "https://files.pythonhosted.org/packages/07/71/e0d11422ed027e21422f7bc1883c61deba2d9752b720538430c1deadfbca/jiter-0.12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b1207af186495f48f72529f8d86671903c8c10127cac6381b11dddc4aaa52df6", size = 522046 }, - { url = "https://files.pythonhosted.org/packages/9f/59/b968a9aa7102a8375dbbdfbd2aeebe563c7e5dddf0f47c9ef1588a97e224/jiter-0.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef2fb241de583934c9915a33120ecc06d94aa3381a134570f59eed784e87001e", size = 513392 }, - { url = "https://files.pythonhosted.org/packages/ca/e4/7df62002499080dbd61b505c5cb351aa09e9959d176cac2aa8da6f93b13b/jiter-0.12.0-cp311-cp311-win32.whl", hash = "sha256:453b6035672fecce8007465896a25b28a6b59cfe8fbc974b2563a92f5a92a67c", size = 206096 }, - { url = "https://files.pythonhosted.org/packages/bb/60/1032b30ae0572196b0de0e87dce3b6c26a1eff71aad5fe43dee3082d32e0/jiter-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:ca264b9603973c2ad9435c71a8ec8b49f8f715ab5ba421c85a51cde9887e421f", size = 204899 }, - { url = "https://files.pythonhosted.org/packages/49/d5/c145e526fccdb834063fb45c071df78b0cc426bbaf6de38b0781f45d956f/jiter-0.12.0-cp311-cp311-win_arm64.whl", hash = "sha256:cb00ef392e7d684f2754598c02c409f376ddcef857aae796d559e6cacc2d78a5", size = 188070 }, - { url = "https://files.pythonhosted.org/packages/92/c9/5b9f7b4983f1b542c64e84165075335e8a236fa9e2ea03a0c79780062be8/jiter-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:305e061fa82f4680607a775b2e8e0bcb071cd2205ac38e6ef48c8dd5ebe1cf37", size = 314449 }, - { url = "https://files.pythonhosted.org/packages/98/6e/e8efa0e78de00db0aee82c0cf9e8b3f2027efd7f8a71f859d8f4be8e98ef/jiter-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5c1860627048e302a528333c9307c818c547f214d8659b0705d2195e1a94b274", size = 319855 }, - { url = "https://files.pythonhosted.org/packages/20/26/894cd88e60b5d58af53bec5c6759d1292bd0b37a8b5f60f07abf7a63ae5f/jiter-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df37577a4f8408f7e0ec3205d2a8f87672af8f17008358063a4d6425b6081ce3", size = 350171 }, - { url = "https://files.pythonhosted.org/packages/f5/27/a7b818b9979ac31b3763d25f3653ec3a954044d5e9f5d87f2f247d679fd1/jiter-0.12.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:75fdd787356c1c13a4f40b43c2156276ef7a71eb487d98472476476d803fb2cf", size = 365590 }, - { url = "https://files.pythonhosted.org/packages/ba/7e/e46195801a97673a83746170b17984aa8ac4a455746354516d02ca5541b4/jiter-0.12.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1eb5db8d9c65b112aacf14fcd0faae9913d07a8afea5ed06ccdd12b724e966a1", size = 479462 }, - { url = "https://files.pythonhosted.org/packages/ca/75/f833bfb009ab4bd11b1c9406d333e3b4357709ed0570bb48c7c06d78c7dd/jiter-0.12.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73c568cc27c473f82480abc15d1301adf333a7ea4f2e813d6a2c7d8b6ba8d0df", size = 378983 }, - { url = "https://files.pythonhosted.org/packages/71/b3/7a69d77943cc837d30165643db753471aff5df39692d598da880a6e51c24/jiter-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4321e8a3d868919bcb1abb1db550d41f2b5b326f72df29e53b2df8b006eb9403", size = 361328 }, - { url = "https://files.pythonhosted.org/packages/b0/ac/a78f90caf48d65ba70d8c6efc6f23150bc39dc3389d65bbec2a95c7bc628/jiter-0.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a51bad79f8cc9cac2b4b705039f814049142e0050f30d91695a2d9a6611f126", size = 386740 }, - { url = "https://files.pythonhosted.org/packages/39/b6/5d31c2cc8e1b6a6bcf3c5721e4ca0a3633d1ab4754b09bc7084f6c4f5327/jiter-0.12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2a67b678f6a5f1dd6c36d642d7db83e456bc8b104788262aaefc11a22339f5a9", size = 520875 }, - { url = "https://files.pythonhosted.org/packages/30/b5/4df540fae4e9f68c54b8dab004bd8c943a752f0b00efd6e7d64aa3850339/jiter-0.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efe1a211fe1fd14762adea941e3cfd6c611a136e28da6c39272dbb7a1bbe6a86", size = 511457 }, - { url = "https://files.pythonhosted.org/packages/07/65/86b74010e450a1a77b2c1aabb91d4a91dd3cd5afce99f34d75fd1ac64b19/jiter-0.12.0-cp312-cp312-win32.whl", hash = "sha256:d779d97c834b4278276ec703dc3fc1735fca50af63eb7262f05bdb4e62203d44", size = 204546 }, - { url = "https://files.pythonhosted.org/packages/1c/c7/6659f537f9562d963488e3e55573498a442503ced01f7e169e96a6110383/jiter-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e8269062060212b373316fe69236096aaf4c49022d267c6736eebd66bbbc60bb", size = 205196 }, - { url = "https://files.pythonhosted.org/packages/21/f4/935304f5169edadfec7f9c01eacbce4c90bb9a82035ac1de1f3bd2d40be6/jiter-0.12.0-cp312-cp312-win_arm64.whl", hash = "sha256:06cb970936c65de926d648af0ed3d21857f026b1cf5525cb2947aa5e01e05789", size = 186100 }, - { url = "https://files.pythonhosted.org/packages/3d/a6/97209693b177716e22576ee1161674d1d58029eb178e01866a0422b69224/jiter-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6cc49d5130a14b732e0612bc76ae8db3b49898732223ef8b7599aa8d9810683e", size = 313658 }, - { url = "https://files.pythonhosted.org/packages/06/4d/125c5c1537c7d8ee73ad3d530a442d6c619714b95027143f1b61c0b4dfe0/jiter-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:37f27a32ce36364d2fa4f7fdc507279db604d27d239ea2e044c8f148410defe1", size = 318605 }, - { url = "https://files.pythonhosted.org/packages/99/bf/a840b89847885064c41a5f52de6e312e91fa84a520848ee56c97e4fa0205/jiter-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbc0944aa3d4b4773e348cda635252824a78f4ba44328e042ef1ff3f6080d1cf", size = 349803 }, - { url = "https://files.pythonhosted.org/packages/8a/88/e63441c28e0db50e305ae23e19c1d8fae012d78ed55365da392c1f34b09c/jiter-0.12.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da25c62d4ee1ffbacb97fac6dfe4dcd6759ebdc9015991e92a6eae5816287f44", size = 365120 }, - { url = "https://files.pythonhosted.org/packages/0a/7c/49b02714af4343970eb8aca63396bc1c82fa01197dbb1e9b0d274b550d4e/jiter-0.12.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:048485c654b838140b007390b8182ba9774621103bd4d77c9c3f6f117474ba45", size = 479918 }, - { url = "https://files.pythonhosted.org/packages/69/ba/0a809817fdd5a1db80490b9150645f3aae16afad166960bcd562be194f3b/jiter-0.12.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:635e737fbb7315bef0037c19b88b799143d2d7d3507e61a76751025226b3ac87", size = 379008 }, - { url = "https://files.pythonhosted.org/packages/5f/c3/c9fc0232e736c8877d9e6d83d6eeb0ba4e90c6c073835cc2e8f73fdeef51/jiter-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e017c417b1ebda911bd13b1e40612704b1f5420e30695112efdbed8a4b389ed", size = 361785 }, - { url = "https://files.pythonhosted.org/packages/96/61/61f69b7e442e97ca6cd53086ddc1cf59fb830549bc72c0a293713a60c525/jiter-0.12.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:89b0bfb8b2bf2351fba36bb211ef8bfceba73ef58e7f0c68fb67b5a2795ca2f9", size = 386108 }, - { url = "https://files.pythonhosted.org/packages/e9/2e/76bb3332f28550c8f1eba3bf6e5efe211efda0ddbbaf24976bc7078d42a5/jiter-0.12.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:f5aa5427a629a824a543672778c9ce0c5e556550d1569bb6ea28a85015287626", size = 519937 }, - { url = "https://files.pythonhosted.org/packages/84/d6/fa96efa87dc8bff2094fb947f51f66368fa56d8d4fc9e77b25d7fbb23375/jiter-0.12.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed53b3d6acbcb0fd0b90f20c7cb3b24c357fe82a3518934d4edfa8c6898e498c", size = 510853 }, - { url = "https://files.pythonhosted.org/packages/8a/28/93f67fdb4d5904a708119a6ab58a8f1ec226ff10a94a282e0215402a8462/jiter-0.12.0-cp313-cp313-win32.whl", hash = "sha256:4747de73d6b8c78f2e253a2787930f4fffc68da7fa319739f57437f95963c4de", size = 204699 }, - { url = "https://files.pythonhosted.org/packages/c4/1f/30b0eb087045a0abe2a5c9c0c0c8da110875a1d3be83afd4a9a4e548be3c/jiter-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:e25012eb0c456fcc13354255d0338cd5397cce26c77b2832b3c4e2e255ea5d9a", size = 204258 }, - { url = "https://files.pythonhosted.org/packages/2c/f4/2b4daf99b96bce6fc47971890b14b2a36aef88d7beb9f057fafa032c6141/jiter-0.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:c97b92c54fe6110138c872add030a1f99aea2401ddcdaa21edf74705a646dd60", size = 185503 }, - { url = "https://files.pythonhosted.org/packages/39/ca/67bb15a7061d6fe20b9b2a2fd783e296a1e0f93468252c093481a2f00efa/jiter-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:53839b35a38f56b8be26a7851a48b89bc47e5d88e900929df10ed93b95fea3d6", size = 317965 }, - { url = "https://files.pythonhosted.org/packages/18/af/1788031cd22e29c3b14bc6ca80b16a39a0b10e611367ffd480c06a259831/jiter-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94f669548e55c91ab47fef8bddd9c954dab1938644e715ea49d7e117015110a4", size = 345831 }, - { url = "https://files.pythonhosted.org/packages/05/17/710bf8472d1dff0d3caf4ced6031060091c1320f84ee7d5dcbed1f352417/jiter-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:351d54f2b09a41600ffea43d081522d792e81dcfb915f6d2d242744c1cc48beb", size = 361272 }, - { url = "https://files.pythonhosted.org/packages/fb/f1/1dcc4618b59761fef92d10bcbb0b038b5160be653b003651566a185f1a5c/jiter-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2a5e90604620f94bf62264e7c2c038704d38217b7465b863896c6d7c902b06c7", size = 204604 }, - { url = "https://files.pythonhosted.org/packages/d9/32/63cb1d9f1c5c6632a783c0052cde9ef7ba82688f7065e2f0d5f10a7e3edb/jiter-0.12.0-cp313-cp313t-win_arm64.whl", hash = "sha256:88ef757017e78d2860f96250f9393b7b577b06a956ad102c29c8237554380db3", size = 185628 }, - { url = "https://files.pythonhosted.org/packages/a8/99/45c9f0dbe4a1416b2b9a8a6d1236459540f43d7fb8883cff769a8db0612d/jiter-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:c46d927acd09c67a9fb1416df45c5a04c27e83aae969267e98fba35b74e99525", size = 312478 }, - { url = "https://files.pythonhosted.org/packages/4c/a7/54ae75613ba9e0f55fcb0bc5d1f807823b5167cc944e9333ff322e9f07dd/jiter-0.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:774ff60b27a84a85b27b88cd5583899c59940bcc126caca97eb2a9df6aa00c49", size = 318706 }, - { url = "https://files.pythonhosted.org/packages/59/31/2aa241ad2c10774baf6c37f8b8e1f39c07db358f1329f4eb40eba179c2a2/jiter-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5433fab222fb072237df3f637d01b81f040a07dcac1cb4a5c75c7aa9ed0bef1", size = 351894 }, - { url = "https://files.pythonhosted.org/packages/54/4f/0f2759522719133a9042781b18cc94e335b6d290f5e2d3e6899d6af933e3/jiter-0.12.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8c593c6e71c07866ec6bfb790e202a833eeec885022296aff6b9e0b92d6a70e", size = 365714 }, - { url = "https://files.pythonhosted.org/packages/dc/6f/806b895f476582c62a2f52c453151edd8a0fde5411b0497baaa41018e878/jiter-0.12.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90d32894d4c6877a87ae00c6b915b609406819dce8bc0d4e962e4de2784e567e", size = 478989 }, - { url = "https://files.pythonhosted.org/packages/86/6c/012d894dc6e1033acd8db2b8346add33e413ec1c7c002598915278a37f79/jiter-0.12.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:798e46eed9eb10c3adbbacbd3bdb5ecd4cf7064e453d00dbef08802dae6937ff", size = 378615 }, - { url = "https://files.pythonhosted.org/packages/87/30/d718d599f6700163e28e2c71c0bbaf6dace692e7df2592fd793ac9276717/jiter-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3f1368f0a6719ea80013a4eb90ba72e75d7ea67cfc7846db2ca504f3df0169a", size = 364745 }, - { url = "https://files.pythonhosted.org/packages/8f/85/315b45ce4b6ddc7d7fceca24068543b02bdc8782942f4ee49d652e2cc89f/jiter-0.12.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65f04a9d0b4406f7e51279710b27484af411896246200e461d80d3ba0caa901a", size = 386502 }, - { url = "https://files.pythonhosted.org/packages/74/0b/ce0434fb40c5b24b368fe81b17074d2840748b4952256bab451b72290a49/jiter-0.12.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:fd990541982a24281d12b67a335e44f117e4c6cbad3c3b75c7dea68bf4ce3a67", size = 519845 }, - { url = "https://files.pythonhosted.org/packages/e8/a3/7a7a4488ba052767846b9c916d208b3ed114e3eb670ee984e4c565b9cf0d/jiter-0.12.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:b111b0e9152fa7df870ecaebb0bd30240d9f7fff1f2003bcb4ed0f519941820b", size = 510701 }, - { url = "https://files.pythonhosted.org/packages/c3/16/052ffbf9d0467b70af24e30f91e0579e13ded0c17bb4a8eb2aed3cb60131/jiter-0.12.0-cp314-cp314-win32.whl", hash = "sha256:a78befb9cc0a45b5a5a0d537b06f8544c2ebb60d19d02c41ff15da28a9e22d42", size = 205029 }, - { url = "https://files.pythonhosted.org/packages/e4/18/3cf1f3f0ccc789f76b9a754bdb7a6977e5d1d671ee97a9e14f7eb728d80e/jiter-0.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:e1fe01c082f6aafbe5c8faf0ff074f38dfb911d53f07ec333ca03f8f6226debf", size = 204960 }, - { url = "https://files.pythonhosted.org/packages/02/68/736821e52ecfdeeb0f024b8ab01b5a229f6b9293bbdb444c27efade50b0f/jiter-0.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:d72f3b5a432a4c546ea4bedc84cce0c3404874f1d1676260b9c7f048a9855451", size = 185529 }, - { url = "https://files.pythonhosted.org/packages/30/61/12ed8ee7a643cce29ac97c2281f9ce3956eb76b037e88d290f4ed0d41480/jiter-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e6ded41aeba3603f9728ed2b6196e4df875348ab97b28fc8afff115ed42ba7a7", size = 318974 }, - { url = "https://files.pythonhosted.org/packages/2d/c6/f3041ede6d0ed5e0e79ff0de4c8f14f401bbf196f2ef3971cdbe5fd08d1d/jiter-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a947920902420a6ada6ad51892082521978e9dd44a802663b001436e4b771684", size = 345932 }, - { url = "https://files.pythonhosted.org/packages/d5/5d/4d94835889edd01ad0e2dbfc05f7bdfaed46292e7b504a6ac7839aa00edb/jiter-0.12.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:add5e227e0554d3a52cf390a7635edaffdf4f8fce4fdbcef3cc2055bb396a30c", size = 367243 }, - { url = "https://files.pythonhosted.org/packages/fd/76/0051b0ac2816253a99d27baf3dda198663aff882fa6ea7deeb94046da24e/jiter-0.12.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f9b1cda8fcb736250d7e8711d4580ebf004a46771432be0ae4796944b5dfa5d", size = 479315 }, - { url = "https://files.pythonhosted.org/packages/70/ae/83f793acd68e5cb24e483f44f482a1a15601848b9b6f199dacb970098f77/jiter-0.12.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:deeb12a2223fe0135c7ff1356a143d57f95bbf1f4a66584f1fc74df21d86b993", size = 380714 }, - { url = "https://files.pythonhosted.org/packages/b1/5e/4808a88338ad2c228b1126b93fcd8ba145e919e886fe910d578230dabe3b/jiter-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c596cc0f4cb574877550ce4ecd51f8037469146addd676d7c1a30ebe6391923f", size = 365168 }, - { url = "https://files.pythonhosted.org/packages/0c/d4/04619a9e8095b42aef436b5aeb4c0282b4ff1b27d1db1508df9f5dc82750/jiter-0.12.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ab4c823b216a4aeab3fdbf579c5843165756bd9ad87cc6b1c65919c4715f783", size = 387893 }, - { url = "https://files.pythonhosted.org/packages/17/ea/d3c7e62e4546fdc39197fa4a4315a563a89b95b6d54c0d25373842a59cbe/jiter-0.12.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:e427eee51149edf962203ff8db75a7514ab89be5cb623fb9cea1f20b54f1107b", size = 520828 }, - { url = "https://files.pythonhosted.org/packages/cc/0b/c6d3562a03fd767e31cb119d9041ea7958c3c80cb3d753eafb19b3b18349/jiter-0.12.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:edb868841f84c111255ba5e80339d386d937ec1fdce419518ce1bd9370fac5b6", size = 511009 }, - { url = "https://files.pythonhosted.org/packages/aa/51/2cb4468b3448a8385ebcd15059d325c9ce67df4e2758d133ab9442b19834/jiter-0.12.0-cp314-cp314t-win32.whl", hash = "sha256:8bbcfe2791dfdb7c5e48baf646d37a6a3dcb5a97a032017741dea9f817dca183", size = 205110 }, - { url = "https://files.pythonhosted.org/packages/b2/c5/ae5ec83dec9c2d1af805fd5fe8f74ebded9c8670c5210ec7820ce0dbeb1e/jiter-0.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2fa940963bf02e1d8226027ef461e36af472dea85d36054ff835aeed944dd873", size = 205223 }, - { url = "https://files.pythonhosted.org/packages/97/9a/3c5391907277f0e55195550cf3fa8e293ae9ee0c00fb402fec1e38c0c82f/jiter-0.12.0-cp314-cp314t-win_arm64.whl", hash = "sha256:506c9708dd29b27288f9f8f1140c3cb0e3d8ddb045956d7757b1fa0e0f39a473", size = 185564 }, - { url = "https://files.pythonhosted.org/packages/fe/54/5339ef1ecaa881c6948669956567a64d2670941925f245c434f494ffb0e5/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:4739a4657179ebf08f85914ce50332495811004cc1747852e8b2041ed2aab9b8", size = 311144 }, - { url = "https://files.pythonhosted.org/packages/27/74/3446c652bffbd5e81ab354e388b1b5fc1d20daac34ee0ed11ff096b1b01a/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:41da8def934bf7bec16cb24bd33c0ca62126d2d45d81d17b864bd5ad721393c3", size = 305877 }, - { url = "https://files.pythonhosted.org/packages/a1/f4/ed76ef9043450f57aac2d4fbeb27175aa0eb9c38f833be6ef6379b3b9a86/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c44ee814f499c082e69872d426b624987dbc5943ab06e9bbaa4f81989fdb79e", size = 340419 }, - { url = "https://files.pythonhosted.org/packages/21/01/857d4608f5edb0664aa791a3d45702e1a5bcfff9934da74035e7b9803846/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd2097de91cf03eaa27b3cbdb969addf83f0179c6afc41bbc4513705e013c65d", size = 347212 }, - { url = "https://files.pythonhosted.org/packages/cb/f5/12efb8ada5f5c9edc1d4555fe383c1fb2eac05ac5859258a72d61981d999/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:e8547883d7b96ef2e5fe22b88f8a4c8725a56e7f4abafff20fd5272d634c7ecb", size = 309974 }, - { url = "https://files.pythonhosted.org/packages/85/15/d6eb3b770f6a0d332675141ab3962fd4a7c270ede3515d9f3583e1d28276/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:89163163c0934854a668ed783a2546a0617f71706a2551a4a0666d91ab365d6b", size = 304233 }, - { url = "https://files.pythonhosted.org/packages/8c/3e/e7e06743294eea2cf02ced6aa0ff2ad237367394e37a0e2b4a1108c67a36/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d96b264ab7d34bbb2312dedc47ce07cd53f06835eacbc16dde3761f47c3a9e7f", size = 338537 }, - { url = "https://files.pythonhosted.org/packages/2f/9c/6753e6522b8d0ef07d3a3d239426669e984fb0eba15a315cdbc1253904e4/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24e864cb30ab82311c6425655b0cdab0a98c5d973b065c66a3f020740c2324c", size = 346110 }, + { url = "https://files.pythonhosted.org/packages/3b/91/13cb9505f7be74a933f37da3af22e029f6ba64f5669416cb8b2774bc9682/jiter-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:e7acbaba9703d5de82a2c98ae6a0f59ab9770ab5af5fa35e43a303aee962cf65", size = 316652, upload-time = "2025-11-09T20:46:41.021Z" }, + { url = "https://files.pythonhosted.org/packages/4e/76/4e9185e5d9bb4e482cf6dec6410d5f78dfeb374cfcecbbe9888d07c52daa/jiter-0.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:364f1a7294c91281260364222f535bc427f56d4de1d8ffd718162d21fbbd602e", size = 319829, upload-time = "2025-11-09T20:46:43.281Z" }, + { url = "https://files.pythonhosted.org/packages/86/af/727de50995d3a153138139f259baae2379d8cb0522c0c00419957bc478a6/jiter-0.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ee4d25805d4fb23f0a5167a962ef8e002dbfb29c0989378488e32cf2744b62", size = 350568, upload-time = "2025-11-09T20:46:45.075Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c1/d6e9f4b7a3d5ac63bcbdfddeb50b2dcfbdc512c86cffc008584fdc350233/jiter-0.12.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:796f466b7942107eb889c08433b6e31b9a7ed31daceaecf8af1be26fb26c0ca8", size = 369052, upload-time = "2025-11-09T20:46:46.818Z" }, + { url = "https://files.pythonhosted.org/packages/eb/be/00824cd530f30ed73fa8a4f9f3890a705519e31ccb9e929f1e22062e7c76/jiter-0.12.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:35506cb71f47dba416694e67af996bbdefb8e3608f1f78799c2e1f9058b01ceb", size = 481585, upload-time = "2025-11-09T20:46:48.319Z" }, + { url = "https://files.pythonhosted.org/packages/74/b6/2ad7990dff9504d4b5052eef64aa9574bd03d722dc7edced97aad0d47be7/jiter-0.12.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:726c764a90c9218ec9e4f99a33d6bf5ec169163f2ca0fc21b654e88c2abc0abc", size = 380541, upload-time = "2025-11-09T20:46:49.643Z" }, + { url = "https://files.pythonhosted.org/packages/b5/c7/f3c26ecbc1adbf1db0d6bba99192143d8fe8504729d9594542ecc4445784/jiter-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa47810c5565274810b726b0dc86d18dce5fd17b190ebdc3890851d7b2a0e74", size = 364423, upload-time = "2025-11-09T20:46:51.731Z" }, + { url = "https://files.pythonhosted.org/packages/18/51/eac547bf3a2d7f7e556927278e14c56a0604b8cddae75815d5739f65f81d/jiter-0.12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8ec0259d3f26c62aed4d73b198c53e316ae11f0f69c8fbe6682c6dcfa0fcce2", size = 389958, upload-time = "2025-11-09T20:46:53.432Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1f/9ca592e67175f2db156cff035e0d817d6004e293ee0c1d73692d38fcb596/jiter-0.12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:79307d74ea83465b0152fa23e5e297149506435535282f979f18b9033c0bb025", size = 522084, upload-time = "2025-11-09T20:46:54.848Z" }, + { url = "https://files.pythonhosted.org/packages/83/ff/597d9cdc3028f28224f53e1a9d063628e28b7a5601433e3196edda578cdd/jiter-0.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cf6e6dd18927121fec86739f1a8906944703941d000f0639f3eb6281cc601dca", size = 513054, upload-time = "2025-11-09T20:46:56.487Z" }, + { url = "https://files.pythonhosted.org/packages/24/6d/1970bce1351bd02e3afcc5f49e4f7ef3dabd7fb688f42be7e8091a5b809a/jiter-0.12.0-cp310-cp310-win32.whl", hash = "sha256:b6ae2aec8217327d872cbfb2c1694489057b9433afce447955763e6ab015b4c4", size = 206368, upload-time = "2025-11-09T20:46:58.638Z" }, + { url = "https://files.pythonhosted.org/packages/e3/6b/eb1eb505b2d86709b59ec06681a2b14a94d0941db091f044b9f0e16badc0/jiter-0.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:c7f49ce90a71e44f7e1aa9e7ec415b9686bbc6a5961e57eab511015e6759bc11", size = 204847, upload-time = "2025-11-09T20:47:00.295Z" }, + { url = "https://files.pythonhosted.org/packages/32/f9/eaca4633486b527ebe7e681c431f529b63fe2709e7c5242fc0f43f77ce63/jiter-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8f8a7e317190b2c2d60eb2e8aa835270b008139562d70fe732e1c0020ec53c9", size = 316435, upload-time = "2025-11-09T20:47:02.087Z" }, + { url = "https://files.pythonhosted.org/packages/10/c1/40c9f7c22f5e6ff715f28113ebaba27ab85f9af2660ad6e1dd6425d14c19/jiter-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2218228a077e784c6c8f1a8e5d6b8cb1dea62ce25811c356364848554b2056cd", size = 320548, upload-time = "2025-11-09T20:47:03.409Z" }, + { url = "https://files.pythonhosted.org/packages/6b/1b/efbb68fe87e7711b00d2cfd1f26bb4bfc25a10539aefeaa7727329ffb9cb/jiter-0.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9354ccaa2982bf2188fd5f57f79f800ef622ec67beb8329903abf6b10da7d423", size = 351915, upload-time = "2025-11-09T20:47:05.171Z" }, + { url = "https://files.pythonhosted.org/packages/15/2d/c06e659888c128ad1e838123d0638f0efad90cc30860cb5f74dd3f2fc0b3/jiter-0.12.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f2607185ea89b4af9a604d4c7ec40e45d3ad03ee66998b031134bc510232bb7", size = 368966, upload-time = "2025-11-09T20:47:06.508Z" }, + { url = "https://files.pythonhosted.org/packages/6b/20/058db4ae5fb07cf6a4ab2e9b9294416f606d8e467fb74c2184b2a1eeacba/jiter-0.12.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3a585a5e42d25f2e71db5f10b171f5e5ea641d3aa44f7df745aa965606111cc2", size = 482047, upload-time = "2025-11-09T20:47:08.382Z" }, + { url = "https://files.pythonhosted.org/packages/49/bb/dc2b1c122275e1de2eb12905015d61e8316b2f888bdaac34221c301495d6/jiter-0.12.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd9e21d34edff5a663c631f850edcb786719c960ce887a5661e9c828a53a95d9", size = 380835, upload-time = "2025-11-09T20:47:09.81Z" }, + { url = "https://files.pythonhosted.org/packages/23/7d/38f9cd337575349de16da575ee57ddb2d5a64d425c9367f5ef9e4612e32e/jiter-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a612534770470686cd5431478dc5a1b660eceb410abade6b1b74e320ca98de6", size = 364587, upload-time = "2025-11-09T20:47:11.529Z" }, + { url = "https://files.pythonhosted.org/packages/f0/a3/b13e8e61e70f0bb06085099c4e2462647f53cc2ca97614f7fedcaa2bb9f3/jiter-0.12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3985aea37d40a908f887b34d05111e0aae822943796ebf8338877fee2ab67725", size = 390492, upload-time = "2025-11-09T20:47:12.993Z" }, + { url = "https://files.pythonhosted.org/packages/07/71/e0d11422ed027e21422f7bc1883c61deba2d9752b720538430c1deadfbca/jiter-0.12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b1207af186495f48f72529f8d86671903c8c10127cac6381b11dddc4aaa52df6", size = 522046, upload-time = "2025-11-09T20:47:14.6Z" }, + { url = "https://files.pythonhosted.org/packages/9f/59/b968a9aa7102a8375dbbdfbd2aeebe563c7e5dddf0f47c9ef1588a97e224/jiter-0.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef2fb241de583934c9915a33120ecc06d94aa3381a134570f59eed784e87001e", size = 513392, upload-time = "2025-11-09T20:47:16.011Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e4/7df62002499080dbd61b505c5cb351aa09e9959d176cac2aa8da6f93b13b/jiter-0.12.0-cp311-cp311-win32.whl", hash = "sha256:453b6035672fecce8007465896a25b28a6b59cfe8fbc974b2563a92f5a92a67c", size = 206096, upload-time = "2025-11-09T20:47:17.344Z" }, + { url = "https://files.pythonhosted.org/packages/bb/60/1032b30ae0572196b0de0e87dce3b6c26a1eff71aad5fe43dee3082d32e0/jiter-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:ca264b9603973c2ad9435c71a8ec8b49f8f715ab5ba421c85a51cde9887e421f", size = 204899, upload-time = "2025-11-09T20:47:19.365Z" }, + { url = "https://files.pythonhosted.org/packages/49/d5/c145e526fccdb834063fb45c071df78b0cc426bbaf6de38b0781f45d956f/jiter-0.12.0-cp311-cp311-win_arm64.whl", hash = "sha256:cb00ef392e7d684f2754598c02c409f376ddcef857aae796d559e6cacc2d78a5", size = 188070, upload-time = "2025-11-09T20:47:20.75Z" }, + { url = "https://files.pythonhosted.org/packages/92/c9/5b9f7b4983f1b542c64e84165075335e8a236fa9e2ea03a0c79780062be8/jiter-0.12.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:305e061fa82f4680607a775b2e8e0bcb071cd2205ac38e6ef48c8dd5ebe1cf37", size = 314449, upload-time = "2025-11-09T20:47:22.999Z" }, + { url = "https://files.pythonhosted.org/packages/98/6e/e8efa0e78de00db0aee82c0cf9e8b3f2027efd7f8a71f859d8f4be8e98ef/jiter-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5c1860627048e302a528333c9307c818c547f214d8659b0705d2195e1a94b274", size = 319855, upload-time = "2025-11-09T20:47:24.779Z" }, + { url = "https://files.pythonhosted.org/packages/20/26/894cd88e60b5d58af53bec5c6759d1292bd0b37a8b5f60f07abf7a63ae5f/jiter-0.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df37577a4f8408f7e0ec3205d2a8f87672af8f17008358063a4d6425b6081ce3", size = 350171, upload-time = "2025-11-09T20:47:26.469Z" }, + { url = "https://files.pythonhosted.org/packages/f5/27/a7b818b9979ac31b3763d25f3653ec3a954044d5e9f5d87f2f247d679fd1/jiter-0.12.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:75fdd787356c1c13a4f40b43c2156276ef7a71eb487d98472476476d803fb2cf", size = 365590, upload-time = "2025-11-09T20:47:27.918Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7e/e46195801a97673a83746170b17984aa8ac4a455746354516d02ca5541b4/jiter-0.12.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1eb5db8d9c65b112aacf14fcd0faae9913d07a8afea5ed06ccdd12b724e966a1", size = 479462, upload-time = "2025-11-09T20:47:29.654Z" }, + { url = "https://files.pythonhosted.org/packages/ca/75/f833bfb009ab4bd11b1c9406d333e3b4357709ed0570bb48c7c06d78c7dd/jiter-0.12.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:73c568cc27c473f82480abc15d1301adf333a7ea4f2e813d6a2c7d8b6ba8d0df", size = 378983, upload-time = "2025-11-09T20:47:31.026Z" }, + { url = "https://files.pythonhosted.org/packages/71/b3/7a69d77943cc837d30165643db753471aff5df39692d598da880a6e51c24/jiter-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4321e8a3d868919bcb1abb1db550d41f2b5b326f72df29e53b2df8b006eb9403", size = 361328, upload-time = "2025-11-09T20:47:33.286Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ac/a78f90caf48d65ba70d8c6efc6f23150bc39dc3389d65bbec2a95c7bc628/jiter-0.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0a51bad79f8cc9cac2b4b705039f814049142e0050f30d91695a2d9a6611f126", size = 386740, upload-time = "2025-11-09T20:47:34.703Z" }, + { url = "https://files.pythonhosted.org/packages/39/b6/5d31c2cc8e1b6a6bcf3c5721e4ca0a3633d1ab4754b09bc7084f6c4f5327/jiter-0.12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2a67b678f6a5f1dd6c36d642d7db83e456bc8b104788262aaefc11a22339f5a9", size = 520875, upload-time = "2025-11-09T20:47:36.058Z" }, + { url = "https://files.pythonhosted.org/packages/30/b5/4df540fae4e9f68c54b8dab004bd8c943a752f0b00efd6e7d64aa3850339/jiter-0.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efe1a211fe1fd14762adea941e3cfd6c611a136e28da6c39272dbb7a1bbe6a86", size = 511457, upload-time = "2025-11-09T20:47:37.932Z" }, + { url = "https://files.pythonhosted.org/packages/07/65/86b74010e450a1a77b2c1aabb91d4a91dd3cd5afce99f34d75fd1ac64b19/jiter-0.12.0-cp312-cp312-win32.whl", hash = "sha256:d779d97c834b4278276ec703dc3fc1735fca50af63eb7262f05bdb4e62203d44", size = 204546, upload-time = "2025-11-09T20:47:40.47Z" }, + { url = "https://files.pythonhosted.org/packages/1c/c7/6659f537f9562d963488e3e55573498a442503ced01f7e169e96a6110383/jiter-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e8269062060212b373316fe69236096aaf4c49022d267c6736eebd66bbbc60bb", size = 205196, upload-time = "2025-11-09T20:47:41.794Z" }, + { url = "https://files.pythonhosted.org/packages/21/f4/935304f5169edadfec7f9c01eacbce4c90bb9a82035ac1de1f3bd2d40be6/jiter-0.12.0-cp312-cp312-win_arm64.whl", hash = "sha256:06cb970936c65de926d648af0ed3d21857f026b1cf5525cb2947aa5e01e05789", size = 186100, upload-time = "2025-11-09T20:47:43.007Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a6/97209693b177716e22576ee1161674d1d58029eb178e01866a0422b69224/jiter-0.12.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:6cc49d5130a14b732e0612bc76ae8db3b49898732223ef8b7599aa8d9810683e", size = 313658, upload-time = "2025-11-09T20:47:44.424Z" }, + { url = "https://files.pythonhosted.org/packages/06/4d/125c5c1537c7d8ee73ad3d530a442d6c619714b95027143f1b61c0b4dfe0/jiter-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:37f27a32ce36364d2fa4f7fdc507279db604d27d239ea2e044c8f148410defe1", size = 318605, upload-time = "2025-11-09T20:47:45.973Z" }, + { url = "https://files.pythonhosted.org/packages/99/bf/a840b89847885064c41a5f52de6e312e91fa84a520848ee56c97e4fa0205/jiter-0.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbc0944aa3d4b4773e348cda635252824a78f4ba44328e042ef1ff3f6080d1cf", size = 349803, upload-time = "2025-11-09T20:47:47.535Z" }, + { url = "https://files.pythonhosted.org/packages/8a/88/e63441c28e0db50e305ae23e19c1d8fae012d78ed55365da392c1f34b09c/jiter-0.12.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:da25c62d4ee1ffbacb97fac6dfe4dcd6759ebdc9015991e92a6eae5816287f44", size = 365120, upload-time = "2025-11-09T20:47:49.284Z" }, + { url = "https://files.pythonhosted.org/packages/0a/7c/49b02714af4343970eb8aca63396bc1c82fa01197dbb1e9b0d274b550d4e/jiter-0.12.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:048485c654b838140b007390b8182ba9774621103bd4d77c9c3f6f117474ba45", size = 479918, upload-time = "2025-11-09T20:47:50.807Z" }, + { url = "https://files.pythonhosted.org/packages/69/ba/0a809817fdd5a1db80490b9150645f3aae16afad166960bcd562be194f3b/jiter-0.12.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:635e737fbb7315bef0037c19b88b799143d2d7d3507e61a76751025226b3ac87", size = 379008, upload-time = "2025-11-09T20:47:52.211Z" }, + { url = "https://files.pythonhosted.org/packages/5f/c3/c9fc0232e736c8877d9e6d83d6eeb0ba4e90c6c073835cc2e8f73fdeef51/jiter-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e017c417b1ebda911bd13b1e40612704b1f5420e30695112efdbed8a4b389ed", size = 361785, upload-time = "2025-11-09T20:47:53.512Z" }, + { url = "https://files.pythonhosted.org/packages/96/61/61f69b7e442e97ca6cd53086ddc1cf59fb830549bc72c0a293713a60c525/jiter-0.12.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:89b0bfb8b2bf2351fba36bb211ef8bfceba73ef58e7f0c68fb67b5a2795ca2f9", size = 386108, upload-time = "2025-11-09T20:47:54.893Z" }, + { url = "https://files.pythonhosted.org/packages/e9/2e/76bb3332f28550c8f1eba3bf6e5efe211efda0ddbbaf24976bc7078d42a5/jiter-0.12.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:f5aa5427a629a824a543672778c9ce0c5e556550d1569bb6ea28a85015287626", size = 519937, upload-time = "2025-11-09T20:47:56.253Z" }, + { url = "https://files.pythonhosted.org/packages/84/d6/fa96efa87dc8bff2094fb947f51f66368fa56d8d4fc9e77b25d7fbb23375/jiter-0.12.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed53b3d6acbcb0fd0b90f20c7cb3b24c357fe82a3518934d4edfa8c6898e498c", size = 510853, upload-time = "2025-11-09T20:47:58.32Z" }, + { url = "https://files.pythonhosted.org/packages/8a/28/93f67fdb4d5904a708119a6ab58a8f1ec226ff10a94a282e0215402a8462/jiter-0.12.0-cp313-cp313-win32.whl", hash = "sha256:4747de73d6b8c78f2e253a2787930f4fffc68da7fa319739f57437f95963c4de", size = 204699, upload-time = "2025-11-09T20:47:59.686Z" }, + { url = "https://files.pythonhosted.org/packages/c4/1f/30b0eb087045a0abe2a5c9c0c0c8da110875a1d3be83afd4a9a4e548be3c/jiter-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:e25012eb0c456fcc13354255d0338cd5397cce26c77b2832b3c4e2e255ea5d9a", size = 204258, upload-time = "2025-11-09T20:48:01.01Z" }, + { url = "https://files.pythonhosted.org/packages/2c/f4/2b4daf99b96bce6fc47971890b14b2a36aef88d7beb9f057fafa032c6141/jiter-0.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:c97b92c54fe6110138c872add030a1f99aea2401ddcdaa21edf74705a646dd60", size = 185503, upload-time = "2025-11-09T20:48:02.35Z" }, + { url = "https://files.pythonhosted.org/packages/39/ca/67bb15a7061d6fe20b9b2a2fd783e296a1e0f93468252c093481a2f00efa/jiter-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:53839b35a38f56b8be26a7851a48b89bc47e5d88e900929df10ed93b95fea3d6", size = 317965, upload-time = "2025-11-09T20:48:03.783Z" }, + { url = "https://files.pythonhosted.org/packages/18/af/1788031cd22e29c3b14bc6ca80b16a39a0b10e611367ffd480c06a259831/jiter-0.12.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94f669548e55c91ab47fef8bddd9c954dab1938644e715ea49d7e117015110a4", size = 345831, upload-time = "2025-11-09T20:48:05.55Z" }, + { url = "https://files.pythonhosted.org/packages/05/17/710bf8472d1dff0d3caf4ced6031060091c1320f84ee7d5dcbed1f352417/jiter-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:351d54f2b09a41600ffea43d081522d792e81dcfb915f6d2d242744c1cc48beb", size = 361272, upload-time = "2025-11-09T20:48:06.951Z" }, + { url = "https://files.pythonhosted.org/packages/fb/f1/1dcc4618b59761fef92d10bcbb0b038b5160be653b003651566a185f1a5c/jiter-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2a5e90604620f94bf62264e7c2c038704d38217b7465b863896c6d7c902b06c7", size = 204604, upload-time = "2025-11-09T20:48:08.328Z" }, + { url = "https://files.pythonhosted.org/packages/d9/32/63cb1d9f1c5c6632a783c0052cde9ef7ba82688f7065e2f0d5f10a7e3edb/jiter-0.12.0-cp313-cp313t-win_arm64.whl", hash = "sha256:88ef757017e78d2860f96250f9393b7b577b06a956ad102c29c8237554380db3", size = 185628, upload-time = "2025-11-09T20:48:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/a8/99/45c9f0dbe4a1416b2b9a8a6d1236459540f43d7fb8883cff769a8db0612d/jiter-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:c46d927acd09c67a9fb1416df45c5a04c27e83aae969267e98fba35b74e99525", size = 312478, upload-time = "2025-11-09T20:48:10.898Z" }, + { url = "https://files.pythonhosted.org/packages/4c/a7/54ae75613ba9e0f55fcb0bc5d1f807823b5167cc944e9333ff322e9f07dd/jiter-0.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:774ff60b27a84a85b27b88cd5583899c59940bcc126caca97eb2a9df6aa00c49", size = 318706, upload-time = "2025-11-09T20:48:12.266Z" }, + { url = "https://files.pythonhosted.org/packages/59/31/2aa241ad2c10774baf6c37f8b8e1f39c07db358f1329f4eb40eba179c2a2/jiter-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5433fab222fb072237df3f637d01b81f040a07dcac1cb4a5c75c7aa9ed0bef1", size = 351894, upload-time = "2025-11-09T20:48:13.673Z" }, + { url = "https://files.pythonhosted.org/packages/54/4f/0f2759522719133a9042781b18cc94e335b6d290f5e2d3e6899d6af933e3/jiter-0.12.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8c593c6e71c07866ec6bfb790e202a833eeec885022296aff6b9e0b92d6a70e", size = 365714, upload-time = "2025-11-09T20:48:15.083Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6f/806b895f476582c62a2f52c453151edd8a0fde5411b0497baaa41018e878/jiter-0.12.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90d32894d4c6877a87ae00c6b915b609406819dce8bc0d4e962e4de2784e567e", size = 478989, upload-time = "2025-11-09T20:48:16.706Z" }, + { url = "https://files.pythonhosted.org/packages/86/6c/012d894dc6e1033acd8db2b8346add33e413ec1c7c002598915278a37f79/jiter-0.12.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:798e46eed9eb10c3adbbacbd3bdb5ecd4cf7064e453d00dbef08802dae6937ff", size = 378615, upload-time = "2025-11-09T20:48:18.614Z" }, + { url = "https://files.pythonhosted.org/packages/87/30/d718d599f6700163e28e2c71c0bbaf6dace692e7df2592fd793ac9276717/jiter-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3f1368f0a6719ea80013a4eb90ba72e75d7ea67cfc7846db2ca504f3df0169a", size = 364745, upload-time = "2025-11-09T20:48:20.117Z" }, + { url = "https://files.pythonhosted.org/packages/8f/85/315b45ce4b6ddc7d7fceca24068543b02bdc8782942f4ee49d652e2cc89f/jiter-0.12.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65f04a9d0b4406f7e51279710b27484af411896246200e461d80d3ba0caa901a", size = 386502, upload-time = "2025-11-09T20:48:21.543Z" }, + { url = "https://files.pythonhosted.org/packages/74/0b/ce0434fb40c5b24b368fe81b17074d2840748b4952256bab451b72290a49/jiter-0.12.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:fd990541982a24281d12b67a335e44f117e4c6cbad3c3b75c7dea68bf4ce3a67", size = 519845, upload-time = "2025-11-09T20:48:22.964Z" }, + { url = "https://files.pythonhosted.org/packages/e8/a3/7a7a4488ba052767846b9c916d208b3ed114e3eb670ee984e4c565b9cf0d/jiter-0.12.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:b111b0e9152fa7df870ecaebb0bd30240d9f7fff1f2003bcb4ed0f519941820b", size = 510701, upload-time = "2025-11-09T20:48:24.483Z" }, + { url = "https://files.pythonhosted.org/packages/c3/16/052ffbf9d0467b70af24e30f91e0579e13ded0c17bb4a8eb2aed3cb60131/jiter-0.12.0-cp314-cp314-win32.whl", hash = "sha256:a78befb9cc0a45b5a5a0d537b06f8544c2ebb60d19d02c41ff15da28a9e22d42", size = 205029, upload-time = "2025-11-09T20:48:25.749Z" }, + { url = "https://files.pythonhosted.org/packages/e4/18/3cf1f3f0ccc789f76b9a754bdb7a6977e5d1d671ee97a9e14f7eb728d80e/jiter-0.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:e1fe01c082f6aafbe5c8faf0ff074f38dfb911d53f07ec333ca03f8f6226debf", size = 204960, upload-time = "2025-11-09T20:48:27.415Z" }, + { url = "https://files.pythonhosted.org/packages/02/68/736821e52ecfdeeb0f024b8ab01b5a229f6b9293bbdb444c27efade50b0f/jiter-0.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:d72f3b5a432a4c546ea4bedc84cce0c3404874f1d1676260b9c7f048a9855451", size = 185529, upload-time = "2025-11-09T20:48:29.125Z" }, + { url = "https://files.pythonhosted.org/packages/30/61/12ed8ee7a643cce29ac97c2281f9ce3956eb76b037e88d290f4ed0d41480/jiter-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e6ded41aeba3603f9728ed2b6196e4df875348ab97b28fc8afff115ed42ba7a7", size = 318974, upload-time = "2025-11-09T20:48:30.87Z" }, + { url = "https://files.pythonhosted.org/packages/2d/c6/f3041ede6d0ed5e0e79ff0de4c8f14f401bbf196f2ef3971cdbe5fd08d1d/jiter-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a947920902420a6ada6ad51892082521978e9dd44a802663b001436e4b771684", size = 345932, upload-time = "2025-11-09T20:48:32.658Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5d/4d94835889edd01ad0e2dbfc05f7bdfaed46292e7b504a6ac7839aa00edb/jiter-0.12.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:add5e227e0554d3a52cf390a7635edaffdf4f8fce4fdbcef3cc2055bb396a30c", size = 367243, upload-time = "2025-11-09T20:48:34.093Z" }, + { url = "https://files.pythonhosted.org/packages/fd/76/0051b0ac2816253a99d27baf3dda198663aff882fa6ea7deeb94046da24e/jiter-0.12.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f9b1cda8fcb736250d7e8711d4580ebf004a46771432be0ae4796944b5dfa5d", size = 479315, upload-time = "2025-11-09T20:48:35.507Z" }, + { url = "https://files.pythonhosted.org/packages/70/ae/83f793acd68e5cb24e483f44f482a1a15601848b9b6f199dacb970098f77/jiter-0.12.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:deeb12a2223fe0135c7ff1356a143d57f95bbf1f4a66584f1fc74df21d86b993", size = 380714, upload-time = "2025-11-09T20:48:40.014Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/4808a88338ad2c228b1126b93fcd8ba145e919e886fe910d578230dabe3b/jiter-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c596cc0f4cb574877550ce4ecd51f8037469146addd676d7c1a30ebe6391923f", size = 365168, upload-time = "2025-11-09T20:48:41.462Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d4/04619a9e8095b42aef436b5aeb4c0282b4ff1b27d1db1508df9f5dc82750/jiter-0.12.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ab4c823b216a4aeab3fdbf579c5843165756bd9ad87cc6b1c65919c4715f783", size = 387893, upload-time = "2025-11-09T20:48:42.921Z" }, + { url = "https://files.pythonhosted.org/packages/17/ea/d3c7e62e4546fdc39197fa4a4315a563a89b95b6d54c0d25373842a59cbe/jiter-0.12.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:e427eee51149edf962203ff8db75a7514ab89be5cb623fb9cea1f20b54f1107b", size = 520828, upload-time = "2025-11-09T20:48:44.278Z" }, + { url = "https://files.pythonhosted.org/packages/cc/0b/c6d3562a03fd767e31cb119d9041ea7958c3c80cb3d753eafb19b3b18349/jiter-0.12.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:edb868841f84c111255ba5e80339d386d937ec1fdce419518ce1bd9370fac5b6", size = 511009, upload-time = "2025-11-09T20:48:45.726Z" }, + { url = "https://files.pythonhosted.org/packages/aa/51/2cb4468b3448a8385ebcd15059d325c9ce67df4e2758d133ab9442b19834/jiter-0.12.0-cp314-cp314t-win32.whl", hash = "sha256:8bbcfe2791dfdb7c5e48baf646d37a6a3dcb5a97a032017741dea9f817dca183", size = 205110, upload-time = "2025-11-09T20:48:47.033Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c5/ae5ec83dec9c2d1af805fd5fe8f74ebded9c8670c5210ec7820ce0dbeb1e/jiter-0.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2fa940963bf02e1d8226027ef461e36af472dea85d36054ff835aeed944dd873", size = 205223, upload-time = "2025-11-09T20:48:49.076Z" }, + { url = "https://files.pythonhosted.org/packages/97/9a/3c5391907277f0e55195550cf3fa8e293ae9ee0c00fb402fec1e38c0c82f/jiter-0.12.0-cp314-cp314t-win_arm64.whl", hash = "sha256:506c9708dd29b27288f9f8f1140c3cb0e3d8ddb045956d7757b1fa0e0f39a473", size = 185564, upload-time = "2025-11-09T20:48:50.376Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/5339ef1ecaa881c6948669956567a64d2670941925f245c434f494ffb0e5/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:4739a4657179ebf08f85914ce50332495811004cc1747852e8b2041ed2aab9b8", size = 311144, upload-time = "2025-11-09T20:49:10.503Z" }, + { url = "https://files.pythonhosted.org/packages/27/74/3446c652bffbd5e81ab354e388b1b5fc1d20daac34ee0ed11ff096b1b01a/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:41da8def934bf7bec16cb24bd33c0ca62126d2d45d81d17b864bd5ad721393c3", size = 305877, upload-time = "2025-11-09T20:49:12.269Z" }, + { url = "https://files.pythonhosted.org/packages/a1/f4/ed76ef9043450f57aac2d4fbeb27175aa0eb9c38f833be6ef6379b3b9a86/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c44ee814f499c082e69872d426b624987dbc5943ab06e9bbaa4f81989fdb79e", size = 340419, upload-time = "2025-11-09T20:49:13.803Z" }, + { url = "https://files.pythonhosted.org/packages/21/01/857d4608f5edb0664aa791a3d45702e1a5bcfff9934da74035e7b9803846/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd2097de91cf03eaa27b3cbdb969addf83f0179c6afc41bbc4513705e013c65d", size = 347212, upload-time = "2025-11-09T20:49:15.643Z" }, + { url = "https://files.pythonhosted.org/packages/cb/f5/12efb8ada5f5c9edc1d4555fe383c1fb2eac05ac5859258a72d61981d999/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:e8547883d7b96ef2e5fe22b88f8a4c8725a56e7f4abafff20fd5272d634c7ecb", size = 309974, upload-time = "2025-11-09T20:49:17.187Z" }, + { url = "https://files.pythonhosted.org/packages/85/15/d6eb3b770f6a0d332675141ab3962fd4a7c270ede3515d9f3583e1d28276/jiter-0.12.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:89163163c0934854a668ed783a2546a0617f71706a2551a4a0666d91ab365d6b", size = 304233, upload-time = "2025-11-09T20:49:18.734Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3e/e7e06743294eea2cf02ced6aa0ff2ad237367394e37a0e2b4a1108c67a36/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d96b264ab7d34bbb2312dedc47ce07cd53f06835eacbc16dde3761f47c3a9e7f", size = 338537, upload-time = "2025-11-09T20:49:20.317Z" }, + { url = "https://files.pythonhosted.org/packages/2f/9c/6753e6522b8d0ef07d3a3d239426669e984fb0eba15a315cdbc1253904e4/jiter-0.12.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24e864cb30ab82311c6425655b0cdab0a98c5d973b065c66a3f020740c2324c", size = 346110, upload-time = "2025-11-09T20:49:21.817Z" }, ] [[package]] @@ -586,18 +545,18 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d8/b1/12fe1c196bea326261718eb037307c1c1fe1dedc2d2d4de777df822e6238/openai-2.14.0.tar.gz", hash = "sha256:419357bedde9402d23bf8f2ee372fca1985a73348debba94bddff06f19459952", size = 626938 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/b1/12fe1c196bea326261718eb037307c1c1fe1dedc2d2d4de777df822e6238/openai-2.14.0.tar.gz", hash = "sha256:419357bedde9402d23bf8f2ee372fca1985a73348debba94bddff06f19459952", size = 626938, upload-time = "2025-12-19T03:28:45.742Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/27/4b/7c1a00c2c3fbd004253937f7520f692a9650767aa73894d7a34f0d65d3f4/openai-2.14.0-py3-none-any.whl", hash = "sha256:7ea40aca4ffc4c4a776e77679021b47eec1160e341f42ae086ba949c9dcc9183", size = 1067558 }, + { url = "https://files.pythonhosted.org/packages/27/4b/7c1a00c2c3fbd004253937f7520f692a9650767aa73894d7a34f0d65d3f4/openai-2.14.0-py3-none-any.whl", hash = "sha256:7ea40aca4ffc4c4a776e77679021b47eec1160e341f42ae086ba949c9dcc9183", size = 1067558, upload-time = "2025-12-19T03:28:43.727Z" }, ] [[package]] name = "orderly-set" version = "5.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4a/88/39c83c35d5e97cc203e9e77a4f93bf87ec89cf6a22ac4818fdcc65d66584/orderly_set-5.5.0.tar.gz", hash = "sha256:e87185c8e4d8afa64e7f8160ee2c542a475b738bc891dc3f58102e654125e6ce", size = 27414 } +sdist = { url = "https://files.pythonhosted.org/packages/4a/88/39c83c35d5e97cc203e9e77a4f93bf87ec89cf6a22ac4818fdcc65d66584/orderly_set-5.5.0.tar.gz", hash = "sha256:e87185c8e4d8afa64e7f8160ee2c542a475b738bc891dc3f58102e654125e6ce", size = 27414, upload-time = "2025-07-10T20:10:55.885Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl", hash = "sha256:46f0b801948e98f427b412fcabb831677194c05c3b699b80de260374baa0b1e7", size = 13068 }, + { url = "https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl", hash = "sha256:46f0b801948e98f427b412fcabb831677194c05c3b699b80de260374baa0b1e7", size = 13068, upload-time = "2025-07-10T20:10:54.377Z" }, ] [[package]] @@ -607,36 +566,36 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/98/df/77698abfac98571e65ffeb0c1fba8ffd692ab8458d617a0eed7d9a8d38f2/outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8", size = 21060 } +sdist = { url = "https://files.pythonhosted.org/packages/98/df/77698abfac98571e65ffeb0c1fba8ffd692ab8458d617a0eed7d9a8d38f2/outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8", size = 21060, upload-time = "2023-10-26T04:26:04.361Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b", size = 10692 }, + { url = "https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b", size = 10692, upload-time = "2023-10-26T04:26:02.532Z" }, ] [[package]] name = "packaging" version = "25.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 }, + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, ] [[package]] name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] name = "pycparser" version = "2.23" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734 } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140 }, + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, ] [[package]] @@ -649,9 +608,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591 } +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580 }, + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, ] [[package]] @@ -661,133 +620,133 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952 } +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146", size = 2107298 }, - { url = "https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2", size = 1901475 }, - { url = "https://files.pythonhosted.org/packages/5d/b6/338abf60225acc18cdc08b4faef592d0310923d19a87fba1faf05af5346e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97", size = 1918815 }, - { url = "https://files.pythonhosted.org/packages/d1/1c/2ed0433e682983d8e8cba9c8d8ef274d4791ec6a6f24c58935b90e780e0a/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9", size = 2065567 }, - { url = "https://files.pythonhosted.org/packages/b3/24/cf84974ee7d6eae06b9e63289b7b8f6549d416b5c199ca2d7ce13bbcf619/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52", size = 2230442 }, - { url = "https://files.pythonhosted.org/packages/fd/21/4e287865504b3edc0136c89c9c09431be326168b1eb7841911cbc877a995/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941", size = 2350956 }, - { url = "https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a", size = 2068253 }, - { url = "https://files.pythonhosted.org/packages/d5/8c/a4abfc79604bcb4c748e18975c44f94f756f08fb04218d5cb87eb0d3a63e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c", size = 2177050 }, - { url = "https://files.pythonhosted.org/packages/67/b1/de2e9a9a79b480f9cb0b6e8b6ba4c50b18d4e89852426364c66aa82bb7b3/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2", size = 2147178 }, - { url = "https://files.pythonhosted.org/packages/16/c1/dfb33f837a47b20417500efaa0378adc6635b3c79e8369ff7a03c494b4ac/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556", size = 2341833 }, - { url = "https://files.pythonhosted.org/packages/47/36/00f398642a0f4b815a9a558c4f1dca1b4020a7d49562807d7bc9ff279a6c/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49", size = 2321156 }, - { url = "https://files.pythonhosted.org/packages/7e/70/cad3acd89fde2010807354d978725ae111ddf6d0ea46d1ea1775b5c1bd0c/pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba", size = 1989378 }, - { url = "https://files.pythonhosted.org/packages/76/92/d338652464c6c367e5608e4488201702cd1cbb0f33f7b6a85a60fe5f3720/pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9", size = 2013622 }, - { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873 }, - { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826 }, - { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869 }, - { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890 }, - { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740 }, - { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021 }, - { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378 }, - { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761 }, - { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303 }, - { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355 }, - { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875 }, - { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549 }, - { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305 }, - { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902 }, - { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990 }, - { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003 }, - { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200 }, - { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578 }, - { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504 }, - { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816 }, - { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366 }, - { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698 }, - { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603 }, - { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591 }, - { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068 }, - { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908 }, - { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145 }, - { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179 }, - { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403 }, - { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206 }, - { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307 }, - { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258 }, - { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917 }, - { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186 }, - { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164 }, - { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146 }, - { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788 }, - { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133 }, - { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852 }, - { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679 }, - { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766 }, - { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005 }, - { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622 }, - { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725 }, - { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040 }, - { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691 }, - { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897 }, - { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302 }, - { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877 }, - { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680 }, - { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960 }, - { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102 }, - { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039 }, - { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126 }, - { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489 }, - { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288 }, - { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255 }, - { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760 }, - { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092 }, - { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385 }, - { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832 }, - { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585 }, - { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078 }, - { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914 }, - { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560 }, - { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244 }, - { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955 }, - { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906 }, - { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607 }, - { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769 }, - { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441 }, - { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291 }, - { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632 }, - { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905 }, - { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495 }, - { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388 }, - { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879 }, - { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017 }, - { url = "https://files.pythonhosted.org/packages/e6/b0/1a2aa41e3b5a4ba11420aba2d091b2d17959c8d1519ece3627c371951e73/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8", size = 2103351 }, - { url = "https://files.pythonhosted.org/packages/a4/ee/31b1f0020baaf6d091c87900ae05c6aeae101fa4e188e1613c80e4f1ea31/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a", size = 1925363 }, - { url = "https://files.pythonhosted.org/packages/e1/89/ab8e86208467e467a80deaca4e434adac37b10a9d134cd2f99b28a01e483/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b", size = 2135615 }, - { url = "https://files.pythonhosted.org/packages/99/0a/99a53d06dd0348b2008f2f30884b34719c323f16c3be4e6cc1203b74a91d/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2", size = 2175369 }, - { url = "https://files.pythonhosted.org/packages/6d/94/30ca3b73c6d485b9bb0bc66e611cff4a7138ff9736b7e66bcf0852151636/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093", size = 2144218 }, - { url = "https://files.pythonhosted.org/packages/87/57/31b4f8e12680b739a91f472b5671294236b82586889ef764b5fbc6669238/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a", size = 2329951 }, - { url = "https://files.pythonhosted.org/packages/7d/73/3c2c8edef77b8f7310e6fb012dbc4b8551386ed575b9eb6fb2506e28a7eb/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963", size = 2318428 }, - { url = "https://files.pythonhosted.org/packages/2f/02/8559b1f26ee0d502c74f9cca5c0d2fd97e967e083e006bbbb4e97f3a043a/pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a", size = 2147009 }, - { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980 }, - { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865 }, - { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256 }, - { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762 }, - { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141 }, - { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317 }, - { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992 }, - { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302 }, + { url = "https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146", size = 2107298, upload-time = "2025-11-04T13:39:04.116Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2", size = 1901475, upload-time = "2025-11-04T13:39:06.055Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b6/338abf60225acc18cdc08b4faef592d0310923d19a87fba1faf05af5346e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97", size = 1918815, upload-time = "2025-11-04T13:39:10.41Z" }, + { url = "https://files.pythonhosted.org/packages/d1/1c/2ed0433e682983d8e8cba9c8d8ef274d4791ec6a6f24c58935b90e780e0a/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9", size = 2065567, upload-time = "2025-11-04T13:39:12.244Z" }, + { url = "https://files.pythonhosted.org/packages/b3/24/cf84974ee7d6eae06b9e63289b7b8f6549d416b5c199ca2d7ce13bbcf619/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52", size = 2230442, upload-time = "2025-11-04T13:39:13.962Z" }, + { url = "https://files.pythonhosted.org/packages/fd/21/4e287865504b3edc0136c89c9c09431be326168b1eb7841911cbc877a995/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941", size = 2350956, upload-time = "2025-11-04T13:39:15.889Z" }, + { url = "https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a", size = 2068253, upload-time = "2025-11-04T13:39:17.403Z" }, + { url = "https://files.pythonhosted.org/packages/d5/8c/a4abfc79604bcb4c748e18975c44f94f756f08fb04218d5cb87eb0d3a63e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c", size = 2177050, upload-time = "2025-11-04T13:39:19.351Z" }, + { url = "https://files.pythonhosted.org/packages/67/b1/de2e9a9a79b480f9cb0b6e8b6ba4c50b18d4e89852426364c66aa82bb7b3/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2", size = 2147178, upload-time = "2025-11-04T13:39:21Z" }, + { url = "https://files.pythonhosted.org/packages/16/c1/dfb33f837a47b20417500efaa0378adc6635b3c79e8369ff7a03c494b4ac/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556", size = 2341833, upload-time = "2025-11-04T13:39:22.606Z" }, + { url = "https://files.pythonhosted.org/packages/47/36/00f398642a0f4b815a9a558c4f1dca1b4020a7d49562807d7bc9ff279a6c/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49", size = 2321156, upload-time = "2025-11-04T13:39:25.843Z" }, + { url = "https://files.pythonhosted.org/packages/7e/70/cad3acd89fde2010807354d978725ae111ddf6d0ea46d1ea1775b5c1bd0c/pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba", size = 1989378, upload-time = "2025-11-04T13:39:27.92Z" }, + { url = "https://files.pythonhosted.org/packages/76/92/d338652464c6c367e5608e4488201702cd1cbb0f33f7b6a85a60fe5f3720/pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9", size = 2013622, upload-time = "2025-11-04T13:39:29.848Z" }, + { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload-time = "2025-11-04T13:39:31.373Z" }, + { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload-time = "2025-11-04T13:39:32.897Z" }, + { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload-time = "2025-11-04T13:39:34.469Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload-time = "2025-11-04T13:39:36.053Z" }, + { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload-time = "2025-11-04T13:39:37.753Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload-time = "2025-11-04T13:39:40.94Z" }, + { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload-time = "2025-11-04T13:39:42.523Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload-time = "2025-11-04T13:39:44.553Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload-time = "2025-11-04T13:39:46.238Z" }, + { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload-time = "2025-11-04T13:39:48.002Z" }, + { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload-time = "2025-11-04T13:39:49.705Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload-time = "2025-11-04T13:39:51.842Z" }, + { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload-time = "2025-11-04T13:39:53.485Z" }, + { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload-time = "2025-11-04T13:39:56.488Z" }, + { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" }, + { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" }, + { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" }, + { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" }, + { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" }, + { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" }, + { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" }, + { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" }, + { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" }, + { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" }, + { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" }, + { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload-time = "2025-11-04T13:42:47.156Z" }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b0/1a2aa41e3b5a4ba11420aba2d091b2d17959c8d1519ece3627c371951e73/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8", size = 2103351, upload-time = "2025-11-04T13:43:02.058Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ee/31b1f0020baaf6d091c87900ae05c6aeae101fa4e188e1613c80e4f1ea31/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a", size = 1925363, upload-time = "2025-11-04T13:43:05.159Z" }, + { url = "https://files.pythonhosted.org/packages/e1/89/ab8e86208467e467a80deaca4e434adac37b10a9d134cd2f99b28a01e483/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b", size = 2135615, upload-time = "2025-11-04T13:43:08.116Z" }, + { url = "https://files.pythonhosted.org/packages/99/0a/99a53d06dd0348b2008f2f30884b34719c323f16c3be4e6cc1203b74a91d/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2", size = 2175369, upload-time = "2025-11-04T13:43:12.49Z" }, + { url = "https://files.pythonhosted.org/packages/6d/94/30ca3b73c6d485b9bb0bc66e611cff4a7138ff9736b7e66bcf0852151636/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093", size = 2144218, upload-time = "2025-11-04T13:43:15.431Z" }, + { url = "https://files.pythonhosted.org/packages/87/57/31b4f8e12680b739a91f472b5671294236b82586889ef764b5fbc6669238/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a", size = 2329951, upload-time = "2025-11-04T13:43:18.062Z" }, + { url = "https://files.pythonhosted.org/packages/7d/73/3c2c8edef77b8f7310e6fb012dbc4b8551386ed575b9eb6fb2506e28a7eb/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963", size = 2318428, upload-time = "2025-11-04T13:43:20.679Z" }, + { url = "https://files.pythonhosted.org/packages/2f/02/8559b1f26ee0d502c74f9cca5c0d2fd97e967e083e006bbbb4e97f3a043a/pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a", size = 2147009, upload-time = "2025-11-04T13:43:23.286Z" }, + { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload-time = "2025-11-04T13:43:25.97Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload-time = "2025-11-04T13:43:28.763Z" }, + { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload-time = "2025-11-04T13:43:31.71Z" }, + { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload-time = "2025-11-04T13:43:34.744Z" }, + { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload-time = "2025-11-04T13:43:37.701Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload-time = "2025-11-04T13:43:40.406Z" }, + { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload-time = "2025-11-04T13:43:43.602Z" }, + { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" }, ] [[package]] name = "pygments" version = "2.19.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631 } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217 }, + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, ] [[package]] name = "pysocks" version = "1.7.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429 } +sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload-time = "2019-09-20T02:07:35.714Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725 }, + { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload-time = "2019-09-20T02:06:22.938Z" }, ] [[package]] @@ -803,9 +762,9 @@ dependencies = [ { name = "pygments" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801 }, + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, ] [[package]] @@ -817,9 +776,9 @@ dependencies = [ { name = "pluggy" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1", size = 54328 } +sdist = { url = "https://files.pythonhosted.org/packages/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1", size = 54328, upload-time = "2025-09-09T10:57:02.113Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424 }, + { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424, upload-time = "2025-09-09T10:57:00.695Z" }, ] [[package]] @@ -829,9 +788,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c5/5b/607b017994cca28de3a1ad22a3eee8418e5d428dcd8ec25b26b18e995a73/pytest_retry-1.7.0.tar.gz", hash = "sha256:f8d52339f01e949df47c11ba9ee8d5b362f5824dff580d3870ec9ae0057df80f", size = 19977 } +sdist = { url = "https://files.pythonhosted.org/packages/c5/5b/607b017994cca28de3a1ad22a3eee8418e5d428dcd8ec25b26b18e995a73/pytest_retry-1.7.0.tar.gz", hash = "sha256:f8d52339f01e949df47c11ba9ee8d5b362f5824dff580d3870ec9ae0057df80f", size = 19977, upload-time = "2025-01-19T01:56:13.115Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/ff/3266c8a73b9b93c4b14160a7e2b31d1e1088e28ed29f4c2d93ae34093bfd/pytest_retry-1.7.0-py3-none-any.whl", hash = "sha256:a2dac85b79a4e2375943f1429479c65beb6c69553e7dae6b8332be47a60954f4", size = 13775 }, + { url = "https://files.pythonhosted.org/packages/7c/ff/3266c8a73b9b93c4b14160a7e2b31d1e1088e28ed29f4c2d93ae34093bfd/pytest_retry-1.7.0-py3-none-any.whl", hash = "sha256:a2dac85b79a4e2375943f1429479c65beb6c69553e7dae6b8332be47a60954f4", size = 13775, upload-time = "2025-01-19T01:56:11.199Z" }, ] [[package]] @@ -842,9 +801,22 @@ dependencies = [ { name = "pytest" }, { name = "termcolor" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0b/4e/60fed105549297ba1a700e1ea7b828044842ea27d72c898990510b79b0e2/pytest-sugar-1.1.1.tar.gz", hash = "sha256:73b8b65163ebf10f9f671efab9eed3d56f20d2ca68bda83fa64740a92c08f65d", size = 16533 } +sdist = { url = "https://files.pythonhosted.org/packages/0b/4e/60fed105549297ba1a700e1ea7b828044842ea27d72c898990510b79b0e2/pytest-sugar-1.1.1.tar.gz", hash = "sha256:73b8b65163ebf10f9f671efab9eed3d56f20d2ca68bda83fa64740a92c08f65d", size = 16533, upload-time = "2025-08-23T12:19:35.737Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/d5/81d38a91c1fdafb6711f053f5a9b92ff788013b19821257c2c38c1e132df/pytest_sugar-1.1.1-py3-none-any.whl", hash = "sha256:2f8319b907548d5b9d03a171515c1d43d2e38e32bd8182a1781eb20b43344cc8", size = 11440 }, + { url = "https://files.pythonhosted.org/packages/87/d5/81d38a91c1fdafb6711f053f5a9b92ff788013b19821257c2c38c1e132df/pytest_sugar-1.1.1-py3-none-any.whl", hash = "sha256:2f8319b907548d5b9d03a171515c1d43d2e38e32bd8182a1781eb20b43344cc8", size = 11440, upload-time = "2025-08-23T12:19:34.894Z" }, +] + +[[package]] +name = "pytest-xdist" +version = "3.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/b4/439b179d1ff526791eb921115fca8e44e596a13efeda518b9d845a619450/pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1", size = 88069, upload-time = "2025-07-01T13:30:59.346Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" }, ] [[package]] @@ -857,9 +829,9 @@ dependencies = [ { name = "idna" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517 } +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738 }, + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, ] [[package]] @@ -874,85 +846,85 @@ dependencies = [ { name = "urllib3", extra = ["socks"] }, { name = "websocket-client" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/af/19/27c1bf9eb1f7025632d35a956b50746efb4b10aa87f961b263fa7081f4c5/selenium-4.39.0.tar.gz", hash = "sha256:12f3325f02d43b6c24030fc9602b34a3c6865abbb1db9406641d13d108aa1889", size = 928575 } +sdist = { url = "https://files.pythonhosted.org/packages/af/19/27c1bf9eb1f7025632d35a956b50746efb4b10aa87f961b263fa7081f4c5/selenium-4.39.0.tar.gz", hash = "sha256:12f3325f02d43b6c24030fc9602b34a3c6865abbb1db9406641d13d108aa1889", size = 928575, upload-time = "2025-12-06T23:12:34.896Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/58/d0/55a6b7c6f35aad4c8a54be0eb7a52c1ff29a59542fc3e655f0ecbb14456d/selenium-4.39.0-py3-none-any.whl", hash = "sha256:c85f65d5610642ca0f47dae9d5cc117cd9e831f74038bc09fe1af126288200f9", size = 9655249 }, + { url = "https://files.pythonhosted.org/packages/58/d0/55a6b7c6f35aad4c8a54be0eb7a52c1ff29a59542fc3e655f0ecbb14456d/selenium-4.39.0-py3-none-any.whl", hash = "sha256:c85f65d5610642ca0f47dae9d5cc117cd9e831f74038bc09fe1af126288200f9", size = 9655249, upload-time = "2025-12-06T23:12:33.085Z" }, ] [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] [[package]] name = "sortedcontainers" version = "2.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594 } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 }, + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, ] [[package]] name = "termcolor" version = "3.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/87/56/ab275c2b56a5e2342568838f0d5e3e66a32354adcc159b495e374cda43f5/termcolor-3.2.0.tar.gz", hash = "sha256:610e6456feec42c4bcd28934a8c87a06c3fa28b01561d46aa09a9881b8622c58", size = 14423 } +sdist = { url = "https://files.pythonhosted.org/packages/87/56/ab275c2b56a5e2342568838f0d5e3e66a32354adcc159b495e374cda43f5/termcolor-3.2.0.tar.gz", hash = "sha256:610e6456feec42c4bcd28934a8c87a06c3fa28b01561d46aa09a9881b8622c58", size = 14423, upload-time = "2025-10-25T19:11:42.586Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/d5/141f53d7c1eb2a80e6d3e9a390228c3222c27705cbe7f048d3623053f3ca/termcolor-3.2.0-py3-none-any.whl", hash = "sha256:a10343879eba4da819353c55cb8049b0933890c2ebf9ad5d3ecd2bb32ea96ea6", size = 7698 }, + { url = "https://files.pythonhosted.org/packages/f9/d5/141f53d7c1eb2a80e6d3e9a390228c3222c27705cbe7f048d3623053f3ca/termcolor-3.2.0-py3-none-any.whl", hash = "sha256:a10343879eba4da819353c55cb8049b0933890c2ebf9ad5d3ecd2bb32ea96ea6", size = 7698, upload-time = "2025-10-25T19:11:41.536Z" }, ] [[package]] name = "tomli" version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392 } +sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392, upload-time = "2025-10-08T22:01:47.119Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236 }, - { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084 }, - { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832 }, - { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052 }, - { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555 }, - { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128 }, - { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445 }, - { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165 }, - { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891 }, - { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796 }, - { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121 }, - { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070 }, - { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859 }, - { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296 }, - { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124 }, - { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698 }, - { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819 }, - { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766 }, - { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771 }, - { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586 }, - { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792 }, - { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909 }, - { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946 }, - { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705 }, - { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244 }, - { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637 }, - { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925 }, - { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045 }, - { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835 }, - { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109 }, - { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930 }, - { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964 }, - { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065 }, - { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088 }, - { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193 }, - { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488 }, - { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669 }, - { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709 }, - { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563 }, - { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756 }, - { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408 }, + { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236, upload-time = "2025-10-08T22:01:00.137Z" }, + { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084, upload-time = "2025-10-08T22:01:01.63Z" }, + { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832, upload-time = "2025-10-08T22:01:02.543Z" }, + { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052, upload-time = "2025-10-08T22:01:03.836Z" }, + { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555, upload-time = "2025-10-08T22:01:04.834Z" }, + { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128, upload-time = "2025-10-08T22:01:05.84Z" }, + { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445, upload-time = "2025-10-08T22:01:06.896Z" }, + { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165, upload-time = "2025-10-08T22:01:08.107Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891, upload-time = "2025-10-08T22:01:09.082Z" }, + { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796, upload-time = "2025-10-08T22:01:10.266Z" }, + { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121, upload-time = "2025-10-08T22:01:11.332Z" }, + { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070, upload-time = "2025-10-08T22:01:12.498Z" }, + { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859, upload-time = "2025-10-08T22:01:13.551Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296, upload-time = "2025-10-08T22:01:14.614Z" }, + { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124, upload-time = "2025-10-08T22:01:15.629Z" }, + { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698, upload-time = "2025-10-08T22:01:16.51Z" }, + { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819, upload-time = "2025-10-08T22:01:17.964Z" }, + { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766, upload-time = "2025-10-08T22:01:18.959Z" }, + { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771, upload-time = "2025-10-08T22:01:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586, upload-time = "2025-10-08T22:01:21.164Z" }, + { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792, upload-time = "2025-10-08T22:01:22.417Z" }, + { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909, upload-time = "2025-10-08T22:01:23.859Z" }, + { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946, upload-time = "2025-10-08T22:01:24.893Z" }, + { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705, upload-time = "2025-10-08T22:01:26.153Z" }, + { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244, upload-time = "2025-10-08T22:01:27.06Z" }, + { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637, upload-time = "2025-10-08T22:01:28.059Z" }, + { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925, upload-time = "2025-10-08T22:01:29.066Z" }, + { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045, upload-time = "2025-10-08T22:01:31.98Z" }, + { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835, upload-time = "2025-10-08T22:01:32.989Z" }, + { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109, upload-time = "2025-10-08T22:01:34.052Z" }, + { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930, upload-time = "2025-10-08T22:01:35.082Z" }, + { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964, upload-time = "2025-10-08T22:01:36.057Z" }, + { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065, upload-time = "2025-10-08T22:01:37.27Z" }, + { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088, upload-time = "2025-10-08T22:01:38.235Z" }, + { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193, upload-time = "2025-10-08T22:01:39.712Z" }, + { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488, upload-time = "2025-10-08T22:01:40.773Z" }, + { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669, upload-time = "2025-10-08T22:01:41.824Z" }, + { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709, upload-time = "2025-10-08T22:01:43.177Z" }, + { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563, upload-time = "2025-10-08T22:01:44.233Z" }, + { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756, upload-time = "2025-10-08T22:01:45.234Z" }, + { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408, upload-time = "2025-10-08T22:01:46.04Z" }, ] [[package]] @@ -960,11 +932,11 @@ name = "tqdm" version = "4.67.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, ] [[package]] @@ -980,9 +952,9 @@ dependencies = [ { name = "sniffio" }, { name = "sortedcontainers" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d8/ce/0041ddd9160aac0031bcf5ab786c7640d795c797e67c438e15cfedf815c8/trio-0.32.0.tar.gz", hash = "sha256:150f29ec923bcd51231e1d4c71c7006e65247d68759dd1c19af4ea815a25806b", size = 605323 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/ce/0041ddd9160aac0031bcf5ab786c7640d795c797e67c438e15cfedf815c8/trio-0.32.0.tar.gz", hash = "sha256:150f29ec923bcd51231e1d4c71c7006e65247d68759dd1c19af4ea815a25806b", size = 605323, upload-time = "2025-10-31T07:18:17.466Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/bf/945d527ff706233636c73880b22c7c953f3faeb9d6c7e2e85bfbfd0134a0/trio-0.32.0-py3-none-any.whl", hash = "sha256:4ab65984ef8370b79a76659ec87aa3a30c5c7c83ff250b4de88c29a8ab6123c5", size = 512030 }, + { url = "https://files.pythonhosted.org/packages/41/bf/945d527ff706233636c73880b22c7c953f3faeb9d6c7e2e85bfbfd0134a0/trio-0.32.0-py3-none-any.whl", hash = "sha256:4ab65984ef8370b79a76659ec87aa3a30c5c7c83ff250b4de88c29a8ab6123c5", size = 512030, upload-time = "2025-10-31T07:18:15.885Z" }, ] [[package]] @@ -995,18 +967,18 @@ dependencies = [ { name = "trio" }, { name = "wsproto" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d1/3c/8b4358e81f2f2cfe71b66a267f023a91db20a817b9425dd964873796980a/trio_websocket-0.12.2.tar.gz", hash = "sha256:22c72c436f3d1e264d0910a3951934798dcc5b00ae56fc4ee079d46c7cf20fae", size = 33549 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/3c/8b4358e81f2f2cfe71b66a267f023a91db20a817b9425dd964873796980a/trio_websocket-0.12.2.tar.gz", hash = "sha256:22c72c436f3d1e264d0910a3951934798dcc5b00ae56fc4ee079d46c7cf20fae", size = 33549, upload-time = "2025-02-25T05:16:58.947Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/19/eb640a397bba49ba49ef9dbe2e7e5c04202ba045b6ce2ec36e9cadc51e04/trio_websocket-0.12.2-py3-none-any.whl", hash = "sha256:df605665f1db533f4a386c94525870851096a223adcb97f72a07e8b4beba45b6", size = 21221 }, + { url = "https://files.pythonhosted.org/packages/c7/19/eb640a397bba49ba49ef9dbe2e7e5c04202ba045b6ce2ec36e9cadc51e04/trio_websocket-0.12.2-py3-none-any.whl", hash = "sha256:df605665f1db533f4a386c94525870851096a223adcb97f72a07e8b4beba45b6", size = 21221, upload-time = "2025-02-25T05:16:57.545Z" }, ] [[package]] name = "typing-extensions" version = "4.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391 } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614 }, + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] [[package]] @@ -1016,18 +988,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949 } +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611 }, + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, ] [[package]] name = "urllib3" -version = "2.6.2" +version = "2.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930 } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182 }, + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, ] [package.optional-dependencies] @@ -1039,9 +1011,9 @@ socks = [ name = "websocket-client" version = "1.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576 } +sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576, upload-time = "2025-10-07T21:16:36.495Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616 }, + { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616, upload-time = "2025-10-07T21:16:34.951Z" }, ] [[package]] @@ -1051,7 +1023,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c7/79/12135bdf8b9c9367b8701c2c19a14c913c120b882d50b014ca0d38083c2c/wsproto-1.3.2.tar.gz", hash = "sha256:b86885dcf294e15204919950f666e06ffc6c7c114ca900b060d6e16293528294", size = 50116 } +sdist = { url = "https://files.pythonhosted.org/packages/c7/79/12135bdf8b9c9367b8701c2c19a14c913c120b882d50b014ca0d38083c2c/wsproto-1.3.2.tar.gz", hash = "sha256:b86885dcf294e15204919950f666e06ffc6c7c114ca900b060d6e16293528294", size = 50116, upload-time = "2025-11-20T18:18:01.871Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/f5/10b68b7b1544245097b2a1b8238f66f2fc6dcaeb24ba5d917f52bd2eed4f/wsproto-1.3.2-py3-none-any.whl", hash = "sha256:61eea322cdf56e8cc904bd3ad7573359a242ba65688716b0710a5eb12beab584", size = 24405 }, + { url = "https://files.pythonhosted.org/packages/a4/f5/10b68b7b1544245097b2a1b8238f66f2fc6dcaeb24ba5d917f52bd2eed4f/wsproto-1.3.2-py3-none-any.whl", hash = "sha256:61eea322cdf56e8cc904bd3ad7573359a242ba65688716b0710a5eb12beab584", size = 24405, upload-time = "2025-11-20T18:18:00.454Z" }, ] From ef285f1213b1cb5cf7bcb51a67b91e35f4a87722 Mon Sep 17 00:00:00 2001 From: Musa Date: Sat, 14 Feb 2026 15:28:45 -0800 Subject: [PATCH 07/18] Add error handling for OTLP/gRPC listener binding in trace command (#748) --- cli/planoai/trace_cmd.py | 26 ++++++++++++++++++++-- cli/test/test_trace_cmd.py | 44 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 cli/test/test_trace_cmd.py diff --git a/cli/planoai/trace_cmd.py b/cli/planoai/trace_cmd.py index dd8194ef..5012f419 100644 --- a/cli/planoai/trace_cmd.py +++ b/cli/planoai/trace_cmd.py @@ -28,6 +28,17 @@ MAX_TRACES = 50 MAX_SPANS_PER_TRACE = 500 +class TraceListenerBindError(RuntimeError): + """Raised when the OTLP/gRPC listener cannot bind to the requested address.""" + + +def _trace_listener_bind_error_message(address: str) -> str: + return ( + f"Failed to start OTLP listener on {address}: address is already in use.\n" + "Stop the process using that port or run `planoai trace listen --port `." + ) + + @dataclass class TraceSummary: trace_id: str @@ -501,7 +512,15 @@ def _create_trace_server(host: str, grpc_port: int) -> grpc.Server: trace_service_pb2_grpc.add_TraceServiceServicer_to_server( _OTLPTraceServicer(), grpc_server ) - grpc_server.add_insecure_port(f"{host}:{grpc_port}") + address = f"{host}:{grpc_port}" + try: + bound_port = grpc_server.add_insecure_port(address) + except RuntimeError as exc: + raise TraceListenerBindError( + _trace_listener_bind_error_message(address) + ) from exc + if bound_port == 0: + raise TraceListenerBindError(_trace_listener_bind_error_message(address)) grpc_server.start() return grpc_server @@ -509,7 +528,10 @@ def _create_trace_server(host: str, grpc_port: int) -> grpc.Server: def _start_trace_listener(host: str, grpc_port: int) -> None: """Start the OTLP/gRPC listener and block until interrupted.""" console = Console() - grpc_server = _create_trace_server(host, grpc_port) + try: + grpc_server = _create_trace_server(host, grpc_port) + except TraceListenerBindError as exc: + raise click.ClickException(str(exc)) from exc console.print() console.print(f"[bold {PLANO_COLOR}]Listening for traces...[/bold {PLANO_COLOR}]") diff --git a/cli/test/test_trace_cmd.py b/cli/test/test_trace_cmd.py new file mode 100644 index 00000000..23373277 --- /dev/null +++ b/cli/test/test_trace_cmd.py @@ -0,0 +1,44 @@ +import pytest +import rich_click as click + +from planoai import trace_cmd + + +class _FakeGrpcServer: + def add_insecure_port(self, _address: str) -> int: + raise RuntimeError("bind failed") + + def start(self) -> None: + return None + + +def test_create_trace_server_raises_bind_error(monkeypatch): + monkeypatch.setattr( + trace_cmd.grpc, "server", lambda *_args, **_kwargs: _FakeGrpcServer() + ) + monkeypatch.setattr( + trace_cmd.trace_service_pb2_grpc, + "add_TraceServiceServicer_to_server", + lambda *_args, **_kwargs: None, + ) + + with pytest.raises(trace_cmd.TraceListenerBindError) as excinfo: + trace_cmd._create_trace_server("0.0.0.0", 4317) + + assert "already in use" in str(excinfo.value) + assert "planoai trace listen --port" in str(excinfo.value) + + +def test_start_trace_listener_converts_bind_error_to_click_exception(monkeypatch): + monkeypatch.setattr( + trace_cmd, + "_create_trace_server", + lambda *_args, **_kwargs: (_ for _ in ()).throw( + trace_cmd.TraceListenerBindError("port in use") + ), + ) + + with pytest.raises(click.ClickException) as excinfo: + trace_cmd._start_trace_listener("0.0.0.0", 4317) + + assert "port in use" in str(excinfo.value) From 8a39446d954b234a649a34cb86c685a98de4fb8e Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Sat, 14 Feb 2026 18:49:08 -0800 Subject: [PATCH 08/18] Consolidate GitHub Actions CI from 15 to 5 workflow files (#757) --- .github/workflows/ci.yml | 479 ++++++++++++++++++ .github/workflows/docker-push-main.yml | 65 ++- .github/workflows/docker-push-release.yml | 59 ++- .github/workflows/docker-security-scan.yml | 56 -- .github/workflows/e2e_plano_tests.yml | 72 --- .../workflows/e2e_test_currency_convert.yml | 54 -- .../e2e_test_preference_based_routing.yml | 56 -- .github/workflows/e2e_tests.yml | 203 -------- .github/workflows/ghrc-push-main.yml | 88 ---- .github/workflows/ghrc-push-release.yml | 87 ---- .github/workflows/plano_tools_tests.yml | 37 -- .github/workflows/pre-commit.yml | 17 - .github/workflows/rust_tests.yml | 34 -- .github/workflows/validate_plano_config.yml | 34 -- 14 files changed, 563 insertions(+), 778 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/docker-security-scan.yml delete mode 100644 .github/workflows/e2e_plano_tests.yml delete mode 100644 .github/workflows/e2e_test_currency_convert.yml delete mode 100644 .github/workflows/e2e_test_preference_based_routing.yml delete mode 100644 .github/workflows/e2e_tests.yml delete mode 100644 .github/workflows/ghrc-push-main.yml delete mode 100644 .github/workflows/ghrc-push-release.yml delete mode 100644 .github/workflows/plano_tools_tests.yml delete mode 100644 .github/workflows/pre-commit.yml delete mode 100644 .github/workflows/rust_tests.yml delete mode 100644 .github/workflows/validate_plano_config.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..3cca8fb0 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,479 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + +permissions: + contents: read + security-events: write + +env: + PLANO_DOCKER_IMAGE: katanemo/plano:e2e + DOCKER_IMAGE: katanemo/plano + +jobs: + # ────────────────────────────────────────────── + # Pre-commit (fmt, clippy, cargo test, black, yaml) + # ────────────────────────────────────────────── + pre-commit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + - uses: pre-commit/action@v3.0.1 + + # ────────────────────────────────────────────── + # Plano tools (CLI) tests — no Docker needed + # ────────────────────────────────────────────── + plano-tools-tests: + runs-on: ubuntu-latest-m + defaults: + run: + working-directory: ./cli + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install uv + run: curl -LsSf https://astral.sh/uv/install.sh | sh + + - name: Install plano tools + run: uv sync --extra dev + + - name: Run tests + run: uv run pytest + + # ────────────────────────────────────────────── + # Single Docker build — shared by all downstream jobs + # ────────────────────────────────────────────── + docker-build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Free disk space on runner + run: | + sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc + docker system prune -af || true + docker volume prune -f || true + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build plano image (with GHA cache) + uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile + load: true + tags: | + ${{ env.PLANO_DOCKER_IMAGE }} + ${{ env.DOCKER_IMAGE }}:0.4.6 + ${{ env.DOCKER_IMAGE }}:latest + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Save image as artifact + run: docker save ${{ env.PLANO_DOCKER_IMAGE }} ${{ env.DOCKER_IMAGE }}:0.4.6 ${{ env.DOCKER_IMAGE }}:latest -o /tmp/plano-image.tar + + - name: Upload image artifact + uses: actions/upload-artifact@v4 + with: + name: plano-image + path: /tmp/plano-image.tar + retention-days: 1 + + # ────────────────────────────────────────────── + # Validate plano config + # ────────────────────────────────────────────── + validate-config: + needs: docker-build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Download plano image + uses: actions/download-artifact@v4 + with: + name: plano-image + path: /tmp + + - name: Load plano image + run: docker load -i /tmp/plano-image.tar + + - name: Validate plano config + run: bash config/validate_plano_config.sh + + # ────────────────────────────────────────────── + # Docker security scan (Trivy) + # ────────────────────────────────────────────── + security-scan: + needs: docker-build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Download plano image + uses: actions/download-artifact@v4 + with: + name: plano-image + path: /tmp + + - name: Load plano image + run: docker load -i /tmp/plano-image.tar + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: ${{ env.DOCKER_IMAGE }}:latest + format: table + exit-code: ${{ github.event_name == 'pull_request' && '1' || '0' }} + ignore-unfixed: true + severity: CRITICAL,HIGH + + - name: Run Trivy scanner (SARIF for GitHub Security tab) + if: always() + uses: aquasecurity/trivy-action@master + with: + image-ref: ${{ env.DOCKER_IMAGE }}:latest + format: sarif + output: trivy-results.sarif + ignore-unfixed: true + severity: CRITICAL,HIGH + + - name: Upload Trivy results to GitHub Security tab + if: always() + uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: trivy-results.sarif + + # ────────────────────────────────────────────── + # E2E: prompt_gateway tests + # ────────────────────────────────────────────── + test-prompt-gateway: + needs: docker-build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Free disk space on runner + run: | + sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc + docker system prune -af || true + docker volume prune -f || true + + - name: Download plano image + uses: actions/download-artifact@v4 + with: + name: plano-image + path: /tmp + + - name: Load plano image + run: docker load -i /tmp/plano-image.tar + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + enable-cache: true + cache-dependency-glob: | + tests/e2e/uv.lock + cli/uv.lock + + - name: Run prompt_gateway tests + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} + GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} + AWS_BEARER_TOKEN_BEDROCK: ${{ secrets.AWS_BEARER_TOKEN_BEDROCK }} + GROK_API_KEY: ${{ secrets.GROK_API_KEY }} + run: | + cd tests/e2e && bash run_prompt_gateway_tests.sh + + # ────────────────────────────────────────────── + # E2E: model_alias_routing tests + # ────────────────────────────────────────────── + test-model-alias-routing: + needs: docker-build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Free disk space on runner + run: | + sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc + docker system prune -af || true + docker volume prune -f || true + + - name: Download plano image + uses: actions/download-artifact@v4 + with: + name: plano-image + path: /tmp + + - name: Load plano image + run: docker load -i /tmp/plano-image.tar + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + enable-cache: true + cache-dependency-glob: | + tests/e2e/uv.lock + cli/uv.lock + + - name: Run model alias routing tests + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} + GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} + AWS_BEARER_TOKEN_BEDROCK: ${{ secrets.AWS_BEARER_TOKEN_BEDROCK }} + GROK_API_KEY: ${{ secrets.GROK_API_KEY }} + run: | + cd tests/e2e && bash run_model_alias_tests.sh + + # ────────────────────────────────────────────── + # E2E: responses API with state tests + # ────────────────────────────────────────────── + test-responses-api-with-state: + needs: docker-build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Free disk space on runner + run: | + sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc + docker system prune -af || true + docker volume prune -f || true + + - name: Download plano image + uses: actions/download-artifact@v4 + with: + name: plano-image + path: /tmp + + - name: Load plano image + run: docker load -i /tmp/plano-image.tar + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + enable-cache: true + cache-dependency-glob: | + tests/e2e/uv.lock + cli/uv.lock + + - name: Run responses API with state tests + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} + GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} + AWS_BEARER_TOKEN_BEDROCK: ${{ secrets.AWS_BEARER_TOKEN_BEDROCK }} + GROK_API_KEY: ${{ secrets.GROK_API_KEY }} + run: | + cd tests/e2e && bash run_responses_state_tests.sh + + # ────────────────────────────────────────────── + # E2E: plano tests (multi-Python matrix) + # ────────────────────────────────────────────── + e2e-plano-tests: + needs: docker-build + runs-on: ubuntu-latest-m + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + defaults: + run: + working-directory: ./tests/archgw + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Download plano image + uses: actions/download-artifact@v4 + with: + name: plano-image + path: /tmp + + - name: Load plano image + run: docker load -i /tmp/plano-image.tar + + - name: Start plano + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} + GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} + AWS_BEARER_TOKEN_BEDROCK: ${{ secrets.AWS_BEARER_TOKEN_BEDROCK }} + run: | + docker compose up | tee &> plano.logs & + + - name: Wait for plano to be healthy + run: | + source common.sh && wait_for_healthz http://localhost:10000/healthz + + - name: Install uv + run: curl -LsSf https://astral.sh/uv/install.sh | sh + + - name: Install test dependencies + run: uv sync + + - name: Run plano tests + run: | + uv run pytest || tail -100 plano.logs + + - name: Stop plano docker container + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} + GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + run: | + docker compose down + + # ────────────────────────────────────────────── + # E2E: demo — preference based routing + # ────────────────────────────────────────────── + e2e-demo-preference: + needs: docker-build + runs-on: ubuntu-latest-m + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Download plano image + uses: actions/download-artifact@v4 + with: + name: plano-image + path: /tmp + + - name: Load plano image + run: docker load -i /tmp/plano-image.tar + + - name: Install uv + run: curl -LsSf https://astral.sh/uv/install.sh | sh + + - name: Setup python venv + run: python -m venv venv + + - name: Install hurl + run: | + curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/4.0.0/hurl_4.0.0_amd64.deb + sudo dpkg -i hurl_4.0.0_amd64.deb + + - name: Install plano gateway and test dependencies + run: | + source venv/bin/activate + cd cli && echo "installing plano cli" && uv sync && uv tool install . + cd ../demos/shared/test_runner && echo "installing test dependencies" && uv sync + + - name: Run demo tests + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} + GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} + ARCH_API_KEY: ${{ secrets.ARCH_API_KEY }} + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + run: | + source venv/bin/activate + cd demos/shared/test_runner && sh run_demo_tests.sh use_cases/preference_based_routing + + # ────────────────────────────────────────────── + # E2E: demo — currency conversion + # ────────────────────────────────────────────── + e2e-demo-currency: + needs: docker-build + runs-on: ubuntu-latest-m + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Download plano image + uses: actions/download-artifact@v4 + with: + name: plano-image + path: /tmp + + - name: Load plano image + run: docker load -i /tmp/plano-image.tar + + - name: Install uv + run: curl -LsSf https://astral.sh/uv/install.sh | sh + + - name: Setup python venv + run: python -m venv venv + + - name: Install hurl + run: | + curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/4.0.0/hurl_4.0.0_amd64.deb + sudo dpkg -i hurl_4.0.0_amd64.deb + + - name: Install plano gateway and test dependencies + run: | + source venv/bin/activate + cd cli && echo "installing plano cli" && uv sync && uv tool install . + cd ../demos/shared/test_runner && echo "installing test dependencies" && uv sync + + - name: Run demo tests + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} + GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} + run: | + source venv/bin/activate + cd demos/shared/test_runner && sh run_demo_tests.sh samples_python/currency_exchange diff --git a/.github/workflows/docker-push-main.yml b/.github/workflows/docker-push-main.yml index 224f2682..d62b91d6 100644 --- a/.github/workflows/docker-push-main.yml +++ b/.github/workflows/docker-push-main.yml @@ -2,6 +2,7 @@ name: Publish docker image (latest) env: DOCKER_IMAGE: katanemo/plano + GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/plano on: push: @@ -10,9 +11,10 @@ on: permissions: contents: read + packages: write jobs: - # Build ARM64 image on native ARM64 runner. + # Build ARM64 image on native ARM64 runner — push to both registries build-arm64: runs-on: [linux-arm64] steps: @@ -25,13 +27,12 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5 + - name: Log in to GHCR + uses: docker/login-action@v3 with: - images: ${{ env.DOCKER_IMAGE }} - tags: | - type=raw,value=latest # Force the tag to be "latest" + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Build and Push ARM64 Image uses: docker/build-push-action@v5 @@ -40,9 +41,11 @@ jobs: file: ./Dockerfile platforms: linux/arm64 push: true - tags: ${{ steps.meta.outputs.tags }}-arm64 + tags: | + ${{ env.DOCKER_IMAGE }}:latest-arm64 + ${{ env.GHCR_IMAGE }}:latest-arm64 - # Build AMD64 image on GitHub's AMD64 runner + # Build AMD64 image on GitHub's AMD64 runner — push to both registries build-amd64: runs-on: ubuntu-latest steps: @@ -55,13 +58,12 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5 + - name: Log in to GHCR + uses: docker/login-action@v3 with: - images: ${{ env.DOCKER_IMAGE }} - tags: | - type=raw,value=latest # Force the tag to be "latest" + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Build and Push AMD64 Image uses: docker/build-push-action@v5 @@ -70,13 +72,14 @@ jobs: file: ./Dockerfile platforms: linux/amd64 push: true - tags: ${{ steps.meta.outputs.tags }}-amd64 + tags: | + ${{ env.DOCKER_IMAGE }}:latest-amd64 + ${{ env.GHCR_IMAGE }}:latest-amd64 - - # Combine ARM64 and AMD64 images into a multi-arch manifest + # Combine ARM64 and AMD64 images into multi-arch manifests for both registries create-manifest: runs-on: ubuntu-latest - needs: [build-arm64, build-amd64] # Wait for both builds + needs: [build-arm64, build-amd64] steps: - name: Log in to Docker Hub uses: docker/login-action@v3 @@ -84,17 +87,23 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5 + - name: Log in to GHCR + uses: docker/login-action@v3 with: - images: ${{ env.DOCKER_IMAGE }} - tags: | - type=raw,value=latest # Force the tag to be "latest" + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - - name: Create Multi-Arch Manifest + - name: Create Docker Hub Multi-Arch Manifest run: | - # Combine the architecture-specific images into a "latest" manifest - docker buildx imagetools create -t ${{ steps.meta.outputs.tags }} \ + docker buildx imagetools create \ + -t ${{ env.DOCKER_IMAGE }}:latest \ ${{ env.DOCKER_IMAGE }}:latest-arm64 \ ${{ env.DOCKER_IMAGE }}:latest-amd64 + + - name: Create GHCR Multi-Arch Manifest + run: | + docker buildx imagetools create \ + -t ${{ env.GHCR_IMAGE }}:latest \ + ${{ env.GHCR_IMAGE }}:latest-arm64 \ + ${{ env.GHCR_IMAGE }}:latest-amd64 diff --git a/.github/workflows/docker-push-release.yml b/.github/workflows/docker-push-release.yml index cdaf1258..a3acbccd 100644 --- a/.github/workflows/docker-push-release.yml +++ b/.github/workflows/docker-push-release.yml @@ -2,6 +2,7 @@ name: Publish docker image (release) env: DOCKER_IMAGE: katanemo/plano + GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/plano on: release: @@ -9,9 +10,10 @@ on: permissions: contents: read + packages: write jobs: - # Build ARM64 image on native ARM64 runner + # Build ARM64 image on native ARM64 runner — push to both registries build-arm64: runs-on: [linux-arm64] steps: @@ -24,7 +26,14 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Extract metadata (tags, labels) for Docker + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata for Docker id: meta uses: docker/metadata-action@v5 with: @@ -39,9 +48,11 @@ jobs: file: ./Dockerfile platforms: linux/arm64 push: true - tags: ${{ steps.meta.outputs.tags }}-arm64 + tags: | + ${{ steps.meta.outputs.tags }}-arm64 + ${{ env.GHCR_IMAGE }}:${{ github.event.release.tag_name }}-arm64 - # Build AMD64 image on GitHub's AMD64 runner + # Build AMD64 image on GitHub's AMD64 runner — push to both registries build-amd64: runs-on: ubuntu-latest steps: @@ -54,7 +65,14 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Extract metadata (tags, labels) for Docker + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata for Docker id: meta uses: docker/metadata-action@v5 with: @@ -69,12 +87,14 @@ jobs: file: ./Dockerfile platforms: linux/amd64 push: true - tags: ${{ steps.meta.outputs.tags }}-amd64 + tags: | + ${{ steps.meta.outputs.tags }}-amd64 + ${{ env.GHCR_IMAGE }}:${{ github.event.release.tag_name }}-amd64 - # Combine ARM64 and AMD64 images into a multi-arch manifest + # Combine ARM64 and AMD64 images into multi-arch manifests for both registries create-manifest: runs-on: ubuntu-latest - needs: [build-arm64, build-amd64] # Wait for both builds + needs: [build-arm64, build-amd64] steps: - name: Log in to Docker Hub uses: docker/login-action@v3 @@ -82,7 +102,14 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - name: Extract metadata (tags, labels) for Docker + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata for Docker id: meta uses: docker/metadata-action@v5 with: @@ -90,9 +117,17 @@ jobs: tags: | type=raw,value={{tag}} - - name: Create Multi-Arch Manifest + - name: Create Docker Hub Multi-Arch Manifest run: | - # Combine the architecture-specific images into a single manifest - docker buildx imagetools create -t ${{ steps.meta.outputs.tags }} \ + docker buildx imagetools create \ + -t ${{ steps.meta.outputs.tags }} \ ${{ steps.meta.outputs.tags }}-arm64 \ ${{ steps.meta.outputs.tags }}-amd64 + + - name: Create GHCR Multi-Arch Manifest + run: | + TAG=${{ github.event.release.tag_name }} + docker buildx imagetools create \ + -t ${{ env.GHCR_IMAGE }}:${TAG} \ + ${{ env.GHCR_IMAGE }}:${TAG}-arm64 \ + ${{ env.GHCR_IMAGE }}:${TAG}-amd64 diff --git a/.github/workflows/docker-security-scan.yml b/.github/workflows/docker-security-scan.yml deleted file mode 100644 index 03150064..00000000 --- a/.github/workflows/docker-security-scan.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Docker Security Scan - -env: - DOCKER_IMAGE: katanemo/plano - -on: - push: - branches: - - main - pull_request: - -permissions: - contents: read - security-events: write - -jobs: - scan: - runs-on: ubuntu-latest - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - - name: Build Docker Image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - platforms: linux/amd64 - push: false - tags: ${{ env.DOCKER_IMAGE }}:scan - - - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@master - with: - image-ref: ${{ env.DOCKER_IMAGE }}:scan - format: table - # Fail on PRs so vulnerabilities block merge; on main just report - exit-code: ${{ github.event_name == 'pull_request' && '1' || '0' }} - ignore-unfixed: true - severity: CRITICAL,HIGH - - - name: Run Trivy scanner (SARIF for GitHub Security tab) - if: always() - uses: aquasecurity/trivy-action@master - with: - image-ref: ${{ env.DOCKER_IMAGE }}:scan - format: sarif - output: trivy-results.sarif - ignore-unfixed: true - severity: CRITICAL,HIGH - - - name: Upload Trivy results to GitHub Security tab - if: always() - uses: github/codeql-action/upload-sarif@v3 - with: - sarif_file: trivy-results.sarif diff --git a/.github/workflows/e2e_plano_tests.yml b/.github/workflows/e2e_plano_tests.yml deleted file mode 100644 index 66e879ba..00000000 --- a/.github/workflows/e2e_plano_tests.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: e2e plano tests - -on: - push: - branches: - - main - pull_request: - -permissions: - contents: read - -jobs: - e2e_plano_tests: - runs-on: ubuntu-latest-m - strategy: - fail-fast: false - matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] - - defaults: - run: - working-directory: ./tests/archgw - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - cache: "pip" # auto-caches based on requirements files - - - name: build plano docker image - run: | - cd ../../ && docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.6 -t katanemo/plano:latest - - - name: start plano - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} - GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} - AWS_BEARER_TOKEN_BEDROCK: ${{ secrets.AWS_BEARER_TOKEN_BEDROCK }} - - run: | - docker compose up | tee &> plano.logs & - - - name: wait for plano to be healthy - run: | - source common.sh && wait_for_healthz http://localhost:10000/healthz - - - name: install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - - name: install test dependencies - run: | - uv sync - - - name: run plano tests - run: | - uv run pytest || tail -100 plano.logs - - - name: stop plano docker container - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} - GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - run: | - docker compose down diff --git a/.github/workflows/e2e_test_currency_convert.yml b/.github/workflows/e2e_test_currency_convert.yml deleted file mode 100644 index 9788bc52..00000000 --- a/.github/workflows/e2e_test_currency_convert.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: e2e demo tests currency conversion - -permissions: - contents: read - -on: - push: - branches: - - main - pull_request: - -jobs: - e2e_demo_tests: - runs-on: ubuntu-latest-m - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.12" - - - name: build plano docker image - run: | - docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.6 - - - name: install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - - name: setup python venv - run: | - python -m venv venv - - - name: install hurl - run: | - curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/4.0.0/hurl_4.0.0_amd64.deb - sudo dpkg -i hurl_4.0.0_amd64.deb - - - name: install plano gateway and test dependencies - run: | - source venv/bin/activate - cd cli && echo "installing plano cli" && uv sync && uv tool install . - cd ../demos/shared/test_runner && echo "installing test dependencies" && uv sync - - - name: run demo tests - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} - GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} - run: | - source venv/bin/activate - cd demos/shared/test_runner && sh run_demo_tests.sh samples_python/currency_exchange diff --git a/.github/workflows/e2e_test_preference_based_routing.yml b/.github/workflows/e2e_test_preference_based_routing.yml deleted file mode 100644 index 59866592..00000000 --- a/.github/workflows/e2e_test_preference_based_routing.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: e2e demo preference based routing tests - -permissions: - contents: read - -on: - push: - branches: - - main - pull_request: - -jobs: - e2e_demo_tests: - runs-on: ubuntu-latest-m - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.12" - - - name: build plano docker image - run: | - docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.6 - - - name: install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - - name: setup python venv - run: | - python -m venv venv - - - name: install hurl - run: | - curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/4.0.0/hurl_4.0.0_amd64.deb - sudo dpkg -i hurl_4.0.0_amd64.deb - - - name: install plano gateway and test dependencies - run: | - source venv/bin/activate - cd cli && echo "installing plano cli" && uv sync && uv tool install . - cd ../demos/shared/test_runner && echo "installing test dependencies" && uv sync - - - name: run demo tests - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} - GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} - ARCH_API_KEY: ${{ secrets.ARCH_API_KEY }} - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - run: | - source venv/bin/activate - cd demos/shared/test_runner && sh run_demo_tests.sh use_cases/preference_based_routing diff --git a/.github/workflows/e2e_tests.yml b/.github/workflows/e2e_tests.yml deleted file mode 100644 index 22dcc910..00000000 --- a/.github/workflows/e2e_tests.yml +++ /dev/null @@ -1,203 +0,0 @@ -name: e2e tests - -on: - push: - branches: - - main - pull_request: - -permissions: - contents: read - -# Shared env vars for all jobs that run tests -env: - PLANO_DOCKER_IMAGE: katanemo/plano:e2e - -jobs: - # ────────────────────────────────────────────── - # Job 1: Build the Docker image once, with cache - # ────────────────────────────────────────────── - build: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Free disk space on runner - run: | - sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc - docker system prune -af || true - docker volume prune -f || true - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build plano image (with GHA cache) - uses: docker/build-push-action@v6 - with: - context: . - file: Dockerfile - load: true - tags: ${{ env.PLANO_DOCKER_IMAGE }} - cache-from: type=gha - cache-to: type=gha,mode=max - - - name: Save image as artifact - run: docker save ${{ env.PLANO_DOCKER_IMAGE }} -o /tmp/plano-image.tar - - - name: Upload image artifact - uses: actions/upload-artifact@v4 - with: - name: plano-image - path: /tmp/plano-image.tar - retention-days: 1 - - # ────────────────────────────────────────────── - # Job 2a: prompt_gateway tests - # ────────────────────────────────────────────── - test-prompt-gateway: - needs: build - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Free disk space on runner - run: | - sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc - docker system prune -af || true - docker volume prune -f || true - - - name: Download plano image - uses: actions/download-artifact@v4 - with: - name: plano-image - path: /tmp - - - name: Load plano image - run: docker load -i /tmp/plano-image.tar - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - name: Install uv - uses: astral-sh/setup-uv@v5 - with: - enable-cache: true - cache-dependency-glob: | - tests/e2e/uv.lock - cli/uv.lock - - - name: Run prompt_gateway tests - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} - GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} - AWS_BEARER_TOKEN_BEDROCK: ${{ secrets.AWS_BEARER_TOKEN_BEDROCK }} - GROK_API_KEY: ${{ secrets.GROK_API_KEY }} - run: | - cd tests/e2e && bash run_prompt_gateway_tests.sh - - # ────────────────────────────────────────────── - # Job 2b: model_alias_routing + responses API tests - # ────────────────────────────────────────────── - test-model-alias-routing: - needs: build - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Free disk space on runner - run: | - sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc - docker system prune -af || true - docker volume prune -f || true - - - name: Download plano image - uses: actions/download-artifact@v4 - with: - name: plano-image - path: /tmp - - - name: Load plano image - run: docker load -i /tmp/plano-image.tar - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - name: Install uv - uses: astral-sh/setup-uv@v5 - with: - enable-cache: true - cache-dependency-glob: | - tests/e2e/uv.lock - cli/uv.lock - - - name: Run model alias routing tests - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} - GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} - AWS_BEARER_TOKEN_BEDROCK: ${{ secrets.AWS_BEARER_TOKEN_BEDROCK }} - GROK_API_KEY: ${{ secrets.GROK_API_KEY }} - run: | - cd tests/e2e && bash run_model_alias_tests.sh - - # ────────────────────────────────────────────── - # Job 2c: responses API with state storage tests - # ────────────────────────────────────────────── - test-responses-api-with-state: - needs: build - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Free disk space on runner - run: | - sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc - docker system prune -af || true - docker volume prune -f || true - - - name: Download plano image - uses: actions/download-artifact@v4 - with: - name: plano-image - path: /tmp - - - name: Load plano image - run: docker load -i /tmp/plano-image.tar - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - name: Install uv - uses: astral-sh/setup-uv@v5 - with: - enable-cache: true - cache-dependency-glob: | - tests/e2e/uv.lock - cli/uv.lock - - - name: Run responses API with state tests - env: - OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} - GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} - ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} - AWS_BEARER_TOKEN_BEDROCK: ${{ secrets.AWS_BEARER_TOKEN_BEDROCK }} - GROK_API_KEY: ${{ secrets.GROK_API_KEY }} - run: | - cd tests/e2e && bash run_responses_state_tests.sh diff --git a/.github/workflows/ghrc-push-main.yml b/.github/workflows/ghrc-push-main.yml deleted file mode 100644 index a029e46f..00000000 --- a/.github/workflows/ghrc-push-main.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: Publish docker image to ghcr (latest) - -env: - IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/plano - -on: - push: - branches: [main] - -jobs: - build-arm64: - runs-on: [linux-arm64] - permissions: { contents: read, packages: write } - steps: - - uses: actions/checkout@v4 - - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.IMAGE_NAME }} - tags: | - type=raw,value=latest - - - name: Build and Push ARM64 Image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - platforms: linux/arm64 - push: true - # produce ghcr.io//plano:latest-arm64 - tags: ${{ steps.meta.outputs.tags }}-arm64 - - build-amd64: - runs-on: ubuntu-latest - permissions: { contents: read, packages: write } - steps: - - uses: actions/checkout@v4 - - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.IMAGE_NAME }} - tags: | - type=raw,value=latest - - - name: Build and Push AMD64 Image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - platforms: linux/amd64 - push: true - tags: ${{ steps.meta.outputs.tags }}-amd64 - - create-manifest: - runs-on: ubuntu-latest - needs: [build-arm64, build-amd64] - permissions: { contents: read, packages: write } - steps: - - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.IMAGE_NAME }} - tags: | - type=raw,value=latest - - - name: Create Multi-Arch Manifest - run: | - docker buildx imagetools create -t ${{ steps.meta.outputs.tags }} \ - ${{ env.IMAGE_NAME }}:latest-arm64 \ - ${{ env.IMAGE_NAME }}:latest-amd64 diff --git a/.github/workflows/ghrc-push-release.yml b/.github/workflows/ghrc-push-release.yml deleted file mode 100644 index 99e693a2..00000000 --- a/.github/workflows/ghrc-push-release.yml +++ /dev/null @@ -1,87 +0,0 @@ -name: release - publish docker image to ghcr (latest) - -env: - IMAGE_NAME: ghcr.io/${{ github.repository_owner }}/plano - -on: - release: - types: [published] - -jobs: - build-arm64: - runs-on: [linux-arm64] - permissions: { contents: read, packages: write } - steps: - - uses: actions/checkout@v4 - - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.IMAGE_NAME }} - tags: | - type=raw,value={{tag}} - - - name: Build and Push ARM64 Image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - platforms: linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }}-arm64 - - build-amd64: - runs-on: ubuntu-latest - permissions: { contents: read, packages: write } - steps: - - uses: actions/checkout@v4 - - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.IMAGE_NAME }} - tags: | - type=raw,value={{tag}} - - - name: Build and Push AMD64 Image - uses: docker/build-push-action@v5 - with: - context: . - file: ./Dockerfile - platforms: linux/amd64 - push: true - tags: ${{ steps.meta.outputs.tags }}-amd64 - - create-manifest: - runs-on: ubuntu-latest - needs: [build-arm64, build-amd64] - permissions: { contents: read, packages: write } - steps: - - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.IMAGE_NAME }} - tags: | - type=raw,value={{tag}} - - - name: Create Multi-Arch Manifest - run: | - docker buildx imagetools create -t ${{ steps.meta.outputs.tags }} \ - ${{ steps.meta.outputs.tags }}-arm64 \ - ${{ steps.meta.outputs.tags }}-amd64 diff --git a/.github/workflows/plano_tools_tests.yml b/.github/workflows/plano_tools_tests.yml deleted file mode 100644 index 57f01048..00000000 --- a/.github/workflows/plano_tools_tests.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: plano tools tests - -permissions: - contents: read - -on: - push: - branches: - - main - pull_request: - -jobs: - plano_tools_tests: - runs-on: ubuntu-latest-m - defaults: - run: - working-directory: ./cli - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.12" - - - name: install uv - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - - name: install plano tools - run: | - uv sync --extra dev - - - name: run tests - run: | - uv run pytest diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml deleted file mode 100644 index b3754b72..00000000 --- a/.github/workflows/pre-commit.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: pre-commit - -on: - pull_request: - push: - branches: [main] - -permissions: - contents: read - -jobs: - pre-commit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v3 - - uses: pre-commit/action@v3.0.1 diff --git a/.github/workflows/rust_tests.yml b/.github/workflows/rust_tests.yml deleted file mode 100644 index 5b1867e5..00000000 --- a/.github/workflows/rust_tests.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: rust tests (prompt and llm gateway) - -on: - pull_request: - push: - branches: [main] - -permissions: - contents: read - -jobs: - test: - name: Test - runs-on: ubuntu-latest - defaults: - run: - working-directory: ./crates - - steps: - - name: Setup | Checkout - uses: actions/checkout@v4 - - - name: Setup | Rust - run: rustup toolchain install 1.92 --profile minimal - - - name: Setup | Install wasm toolchain - run: rustup target add wasm32-wasip1 - - - name: Build wasm module - run: | - cargo build --release --target=wasm32-wasip1 -p llm_gateway -p prompt_gateway - - - name: Run unit tests - run: cargo test --lib diff --git a/.github/workflows/validate_plano_config.yml b/.github/workflows/validate_plano_config.yml deleted file mode 100644 index 9d20c98a..00000000 --- a/.github/workflows/validate_plano_config.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: plano config tests - -on: - push: - branches: - - main - pull_request: - -permissions: - contents: read - -jobs: - validate_plano_config: - runs-on: ubuntu-latest - defaults: - run: - working-directory: . - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.12" - - - name: build plano docker image - run: | - docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.6 - - - name: validate plano config - run: | - bash config/validate_plano_config.sh From 2fcae0453a131fc64c1dc62c1f56b06af2ad7dc1 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Sun, 15 Feb 2026 00:26:44 -0800 Subject: [PATCH 09/18] Update GitHub badges after CI consolidation (#758) * Update GitHub badges after CI workflow consolidation Fix broken README badges pointing to deleted workflow files (pre-commit.yml, rust_tests.yml, e2e_tests.yml) and replace with consolidated CI badge. Add Docker image publish badge and dynamic Trivy security scan badge. Co-Authored-By: Claude Opus 4.6 * Use existing ADIL_GITHUB_TOKEN secret for security badge Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- .github/workflows/ci.yml | 11 +++++++++++ README.md | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3cca8fb0..f7214c9d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -161,6 +161,17 @@ jobs: with: sarif_file: trivy-results.sarif + - name: Update security scan badge + if: always() && github.ref == 'refs/heads/main' + uses: schneegans/dynamic-badges-action@v1.7.0 + with: + auth: ${{ secrets.ADIL_GITHUB_TOKEN }} + gistID: ${{ vars.SECURITY_BADGE_GIST_ID }} + filename: security-scan-badge.json + label: Security Scan + message: ${{ job.status == 'success' && 'passing' || 'failing' }} + color: ${{ job.status == 'success' && 'green' || 'red' }} + # ────────────────────────────────────────────── # E2E: prompt_gateway tests # ────────────────────────────────────────────── diff --git a/README.md b/README.md index 29ede79c..83b02b1d 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,9 @@ [Documentation](https://docs.planoai.dev) • [Contact](#Contact) -[![pre-commit](https://github.com/katanemo/plano/actions/workflows/pre-commit.yml/badge.svg)](https://github.com/katanemo/plano/actions/workflows/pre-commit.yml) -[![rust tests (prompt and llm gateway)](https://github.com/katanemo/plano/actions/workflows/rust_tests.yml/badge.svg)](https://github.com/katanemo/plano/actions/workflows/rust_tests.yml) -[![e2e tests](https://github.com/katanemo/plano/actions/workflows/e2e_tests.yml/badge.svg)](https://github.com/katanemo/plano/actions/workflows/e2e_tests.yml) +[![CI](https://github.com/katanemo/plano/actions/workflows/ci.yml/badge.svg)](https://github.com/katanemo/plano/actions/workflows/ci.yml) +[![Docker Image](https://github.com/katanemo/plano/actions/workflows/docker-push-main.yml/badge.svg)](https://github.com/katanemo/plano/actions/workflows/docker-push-main.yml) +[![Security Scan](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/katanemo/SECURITY_BADGE_GIST_ID/raw/security-scan-badge.json)](https://github.com/katanemo/plano/security/code-scanning) [![Build and Deploy Documentation](https://github.com/katanemo/plano/actions/workflows/static.yml/badge.svg)](https://github.com/katanemo/plano/actions/workflows/static.yml) Star ⭐️ the repo if you found Plano useful — new releases and updates land here first. From b5de62c307884da11a092978ff88feaa4b6b4f5d Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Sun, 15 Feb 2026 00:32:13 -0800 Subject: [PATCH 10/18] trigger CI to test security scan badge From 9c4b2fc570253cc13c12345c3eb984cee5c379fc Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Sun, 15 Feb 2026 00:41:06 -0800 Subject: [PATCH 11/18] Remove security scan badge and keep CI, Docker, and Docs badges Co-Authored-By: Claude Opus 4.6 --- .github/workflows/ci.yml | 11 ----------- README.md | 1 - 2 files changed, 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f7214c9d..3cca8fb0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -161,17 +161,6 @@ jobs: with: sarif_file: trivy-results.sarif - - name: Update security scan badge - if: always() && github.ref == 'refs/heads/main' - uses: schneegans/dynamic-badges-action@v1.7.0 - with: - auth: ${{ secrets.ADIL_GITHUB_TOKEN }} - gistID: ${{ vars.SECURITY_BADGE_GIST_ID }} - filename: security-scan-badge.json - label: Security Scan - message: ${{ job.status == 'success' && 'passing' || 'failing' }} - color: ${{ job.status == 'success' && 'green' || 'red' }} - # ────────────────────────────────────────────── # E2E: prompt_gateway tests # ────────────────────────────────────────────── diff --git a/README.md b/README.md index 83b02b1d..347d5781 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ [![CI](https://github.com/katanemo/plano/actions/workflows/ci.yml/badge.svg)](https://github.com/katanemo/plano/actions/workflows/ci.yml) [![Docker Image](https://github.com/katanemo/plano/actions/workflows/docker-push-main.yml/badge.svg)](https://github.com/katanemo/plano/actions/workflows/docker-push-main.yml) -[![Security Scan](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/katanemo/SECURITY_BADGE_GIST_ID/raw/security-scan-badge.json)](https://github.com/katanemo/plano/security/code-scanning) [![Build and Deploy Documentation](https://github.com/katanemo/plano/actions/workflows/static.yml/badge.svg)](https://github.com/katanemo/plano/actions/workflows/static.yml) Star ⭐️ the repo if you found Plano useful — new releases and updates land here first. From c3591bcbf3a8517103ad43071ac94f2fdb8f80ca Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Sun, 15 Feb 2026 10:22:33 -0800 Subject: [PATCH 12/18] Upgrade CI, Docker, and demos to Python 3.14 (#759) Update all GitHub Actions workflows and Dockerfiles to use Python 3.14 as the default version. Remove the upper bound on requires-python in model_choice_with_test_harness to allow 3.14+. The CLI's requires-python stays at >=3.10 for broad compatibility. --- .github/workflows/ci.yml | 14 +- .github/workflows/publish-pypi.yml | 2 +- Dockerfile | 2 +- .../multi_turn_rag_agent/Dockerfile | 4 +- .../weather_forecast/Dockerfile | 4 +- demos/shared/chatbot_ui/Dockerfile | 4 +- demos/use_cases/http_filter/Dockerfile | 2 +- demos/use_cases/mcp_filter/Dockerfile | 2 +- .../pyproject.toml | 2 +- .../model_choice_with_test_harness/uv.lock | 156 +++++++++++++++++- .../Dockerfile | 2 +- demos/use_cases/travel_agents/Dockerfile | 2 +- tests/e2e/README.md | 2 +- 13 files changed, 176 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3cca8fb0..92be5228 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,7 +38,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - name: Install uv run: curl -LsSf https://astral.sh/uv/install.sh | sh @@ -103,7 +103,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - name: Download plano image uses: actions/download-artifact@v4 @@ -189,7 +189,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - name: Install uv uses: astral-sh/setup-uv@v5 @@ -239,7 +239,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - name: Install uv uses: astral-sh/setup-uv@v5 @@ -289,7 +289,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - name: Install uv uses: astral-sh/setup-uv@v5 @@ -389,7 +389,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - name: Download plano image uses: actions/download-artifact@v4 @@ -441,7 +441,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" + python-version: "3.14" - name: Download plano image uses: actions/download-artifact@v4 diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index 27d5470e..e6846a64 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -22,7 +22,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: "3.12" + python-version: "3.14" - name: Install uv uses: astral-sh/setup-uv@v4 diff --git a/Dockerfile b/Dockerfile index 4f49f4a5..faeeec4d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,7 +42,7 @@ RUN cargo build --release -p brightstaff FROM docker.io/envoyproxy/envoy:v1.37.0 AS envoy -FROM python:3.13.11-slim AS arch +FROM python:3.14-slim AS arch RUN set -eux; \ apt-get update; \ diff --git a/demos/samples_python/multi_turn_rag_agent/Dockerfile b/demos/samples_python/multi_turn_rag_agent/Dockerfile index d54fa746..c53106e8 100644 --- a/demos/samples_python/multi_turn_rag_agent/Dockerfile +++ b/demos/samples_python/multi_turn_rag_agent/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.12 AS base +FROM python:3.14 AS base FROM base AS builder @@ -9,7 +9,7 @@ RUN pip install --prefix=/runtime --force-reinstall -r requirements.txt COPY . /src -FROM python:3.12-slim AS output +FROM python:3.14-slim AS output COPY --from=builder /runtime /usr/local diff --git a/demos/samples_python/weather_forecast/Dockerfile b/demos/samples_python/weather_forecast/Dockerfile index e7f8856c..0fd6a2d6 100644 --- a/demos/samples_python/weather_forecast/Dockerfile +++ b/demos/samples_python/weather_forecast/Dockerfile @@ -1,7 +1,7 @@ # Blazing fast Python Docker builds with uv # The builder image, used to build the virtual environment -FROM python:3.12 as builder +FROM python:3.14 as builder # Install uv RUN pip install --no-cache-dir uv @@ -17,7 +17,7 @@ RUN touch README.md RUN uv sync --frozen --no-dev # The runtime image, used to just run the code provided its virtual environment -FROM python:3.12-slim as runtime +FROM python:3.14-slim as runtime RUN apt-get update && apt-get install -y curl diff --git a/demos/shared/chatbot_ui/Dockerfile b/demos/shared/chatbot_ui/Dockerfile index 588f9721..cb8ddb8d 100644 --- a/demos/shared/chatbot_ui/Dockerfile +++ b/demos/shared/chatbot_ui/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.12 AS base +FROM python:3.14 AS base FROM base AS builder @@ -8,7 +8,7 @@ COPY requirements.txt /src/ RUN pip install --prefix=/runtime --force-reinstall -r requirements.txt -FROM python:3.12-slim AS output +FROM python:3.14-slim AS output COPY --from=builder /runtime /usr/local diff --git a/demos/use_cases/http_filter/Dockerfile b/demos/use_cases/http_filter/Dockerfile index 3c0a3b52..f104a6dc 100644 --- a/demos/use_cases/http_filter/Dockerfile +++ b/demos/use_cases/http_filter/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.13.11-slim +FROM python:3.14-slim WORKDIR /app diff --git a/demos/use_cases/mcp_filter/Dockerfile b/demos/use_cases/mcp_filter/Dockerfile index 3c0a3b52..f104a6dc 100644 --- a/demos/use_cases/mcp_filter/Dockerfile +++ b/demos/use_cases/mcp_filter/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.13.11-slim +FROM python:3.14-slim WORKDIR /app diff --git a/demos/use_cases/model_choice_with_test_harness/pyproject.toml b/demos/use_cases/model_choice_with_test_harness/pyproject.toml index 7737db3f..fc930434 100644 --- a/demos/use_cases/model_choice_with_test_harness/pyproject.toml +++ b/demos/use_cases/model_choice_with_test_harness/pyproject.toml @@ -5,7 +5,7 @@ description = "Benchmarking model alias routing with Plano." authors = [{name = "Your Name", email = "your@email.com"}] license = {text = "Apache 2.0"} readme = "README.md" -requires-python = ">=3.10,<3.13.3" +requires-python = ">=3.10" dependencies = [ "pydantic>=2.0", "openai>=1.0", diff --git a/demos/use_cases/model_choice_with_test_harness/uv.lock b/demos/use_cases/model_choice_with_test_harness/uv.lock index 429a4887..9563914d 100644 --- a/demos/use_cases/model_choice_with_test_harness/uv.lock +++ b/demos/use_cases/model_choice_with_test_harness/uv.lock @@ -1,6 +1,6 @@ version = 1 revision = 3 -requires-python = ">=3.10, <3.13.3" +requires-python = ">=3.10" [[package]] name = "annotated-types" @@ -113,6 +113,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] @@ -287,6 +303,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/05/17/710bf8472d1dff0d3caf4ced6031060091c1320f84ee7d5dcbed1f352417/jiter-0.12.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:351d54f2b09a41600ffea43d081522d792e81dcfb915f6d2d242744c1cc48beb", size = 361272, upload-time = "2025-11-09T20:48:06.951Z" }, { url = "https://files.pythonhosted.org/packages/fb/f1/1dcc4618b59761fef92d10bcbb0b038b5160be653b003651566a185f1a5c/jiter-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2a5e90604620f94bf62264e7c2c038704d38217b7465b863896c6d7c902b06c7", size = 204604, upload-time = "2025-11-09T20:48:08.328Z" }, { url = "https://files.pythonhosted.org/packages/d9/32/63cb1d9f1c5c6632a783c0052cde9ef7ba82688f7065e2f0d5f10a7e3edb/jiter-0.12.0-cp313-cp313t-win_arm64.whl", hash = "sha256:88ef757017e78d2860f96250f9393b7b577b06a956ad102c29c8237554380db3", size = 185628, upload-time = "2025-11-09T20:48:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/a8/99/45c9f0dbe4a1416b2b9a8a6d1236459540f43d7fb8883cff769a8db0612d/jiter-0.12.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:c46d927acd09c67a9fb1416df45c5a04c27e83aae969267e98fba35b74e99525", size = 312478, upload-time = "2025-11-09T20:48:10.898Z" }, + { url = "https://files.pythonhosted.org/packages/4c/a7/54ae75613ba9e0f55fcb0bc5d1f807823b5167cc944e9333ff322e9f07dd/jiter-0.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:774ff60b27a84a85b27b88cd5583899c59940bcc126caca97eb2a9df6aa00c49", size = 318706, upload-time = "2025-11-09T20:48:12.266Z" }, + { url = "https://files.pythonhosted.org/packages/59/31/2aa241ad2c10774baf6c37f8b8e1f39c07db358f1329f4eb40eba179c2a2/jiter-0.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5433fab222fb072237df3f637d01b81f040a07dcac1cb4a5c75c7aa9ed0bef1", size = 351894, upload-time = "2025-11-09T20:48:13.673Z" }, + { url = "https://files.pythonhosted.org/packages/54/4f/0f2759522719133a9042781b18cc94e335b6d290f5e2d3e6899d6af933e3/jiter-0.12.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f8c593c6e71c07866ec6bfb790e202a833eeec885022296aff6b9e0b92d6a70e", size = 365714, upload-time = "2025-11-09T20:48:15.083Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6f/806b895f476582c62a2f52c453151edd8a0fde5411b0497baaa41018e878/jiter-0.12.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:90d32894d4c6877a87ae00c6b915b609406819dce8bc0d4e962e4de2784e567e", size = 478989, upload-time = "2025-11-09T20:48:16.706Z" }, + { url = "https://files.pythonhosted.org/packages/86/6c/012d894dc6e1033acd8db2b8346add33e413ec1c7c002598915278a37f79/jiter-0.12.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:798e46eed9eb10c3adbbacbd3bdb5ecd4cf7064e453d00dbef08802dae6937ff", size = 378615, upload-time = "2025-11-09T20:48:18.614Z" }, + { url = "https://files.pythonhosted.org/packages/87/30/d718d599f6700163e28e2c71c0bbaf6dace692e7df2592fd793ac9276717/jiter-0.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3f1368f0a6719ea80013a4eb90ba72e75d7ea67cfc7846db2ca504f3df0169a", size = 364745, upload-time = "2025-11-09T20:48:20.117Z" }, + { url = "https://files.pythonhosted.org/packages/8f/85/315b45ce4b6ddc7d7fceca24068543b02bdc8782942f4ee49d652e2cc89f/jiter-0.12.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65f04a9d0b4406f7e51279710b27484af411896246200e461d80d3ba0caa901a", size = 386502, upload-time = "2025-11-09T20:48:21.543Z" }, + { url = "https://files.pythonhosted.org/packages/74/0b/ce0434fb40c5b24b368fe81b17074d2840748b4952256bab451b72290a49/jiter-0.12.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:fd990541982a24281d12b67a335e44f117e4c6cbad3c3b75c7dea68bf4ce3a67", size = 519845, upload-time = "2025-11-09T20:48:22.964Z" }, + { url = "https://files.pythonhosted.org/packages/e8/a3/7a7a4488ba052767846b9c916d208b3ed114e3eb670ee984e4c565b9cf0d/jiter-0.12.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:b111b0e9152fa7df870ecaebb0bd30240d9f7fff1f2003bcb4ed0f519941820b", size = 510701, upload-time = "2025-11-09T20:48:24.483Z" }, + { url = "https://files.pythonhosted.org/packages/c3/16/052ffbf9d0467b70af24e30f91e0579e13ded0c17bb4a8eb2aed3cb60131/jiter-0.12.0-cp314-cp314-win32.whl", hash = "sha256:a78befb9cc0a45b5a5a0d537b06f8544c2ebb60d19d02c41ff15da28a9e22d42", size = 205029, upload-time = "2025-11-09T20:48:25.749Z" }, + { url = "https://files.pythonhosted.org/packages/e4/18/3cf1f3f0ccc789f76b9a754bdb7a6977e5d1d671ee97a9e14f7eb728d80e/jiter-0.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:e1fe01c082f6aafbe5c8faf0ff074f38dfb911d53f07ec333ca03f8f6226debf", size = 204960, upload-time = "2025-11-09T20:48:27.415Z" }, + { url = "https://files.pythonhosted.org/packages/02/68/736821e52ecfdeeb0f024b8ab01b5a229f6b9293bbdb444c27efade50b0f/jiter-0.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:d72f3b5a432a4c546ea4bedc84cce0c3404874f1d1676260b9c7f048a9855451", size = 185529, upload-time = "2025-11-09T20:48:29.125Z" }, + { url = "https://files.pythonhosted.org/packages/30/61/12ed8ee7a643cce29ac97c2281f9ce3956eb76b037e88d290f4ed0d41480/jiter-0.12.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e6ded41aeba3603f9728ed2b6196e4df875348ab97b28fc8afff115ed42ba7a7", size = 318974, upload-time = "2025-11-09T20:48:30.87Z" }, + { url = "https://files.pythonhosted.org/packages/2d/c6/f3041ede6d0ed5e0e79ff0de4c8f14f401bbf196f2ef3971cdbe5fd08d1d/jiter-0.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a947920902420a6ada6ad51892082521978e9dd44a802663b001436e4b771684", size = 345932, upload-time = "2025-11-09T20:48:32.658Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5d/4d94835889edd01ad0e2dbfc05f7bdfaed46292e7b504a6ac7839aa00edb/jiter-0.12.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:add5e227e0554d3a52cf390a7635edaffdf4f8fce4fdbcef3cc2055bb396a30c", size = 367243, upload-time = "2025-11-09T20:48:34.093Z" }, + { url = "https://files.pythonhosted.org/packages/fd/76/0051b0ac2816253a99d27baf3dda198663aff882fa6ea7deeb94046da24e/jiter-0.12.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f9b1cda8fcb736250d7e8711d4580ebf004a46771432be0ae4796944b5dfa5d", size = 479315, upload-time = "2025-11-09T20:48:35.507Z" }, + { url = "https://files.pythonhosted.org/packages/70/ae/83f793acd68e5cb24e483f44f482a1a15601848b9b6f199dacb970098f77/jiter-0.12.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:deeb12a2223fe0135c7ff1356a143d57f95bbf1f4a66584f1fc74df21d86b993", size = 380714, upload-time = "2025-11-09T20:48:40.014Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/4808a88338ad2c228b1126b93fcd8ba145e919e886fe910d578230dabe3b/jiter-0.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c596cc0f4cb574877550ce4ecd51f8037469146addd676d7c1a30ebe6391923f", size = 365168, upload-time = "2025-11-09T20:48:41.462Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d4/04619a9e8095b42aef436b5aeb4c0282b4ff1b27d1db1508df9f5dc82750/jiter-0.12.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ab4c823b216a4aeab3fdbf579c5843165756bd9ad87cc6b1c65919c4715f783", size = 387893, upload-time = "2025-11-09T20:48:42.921Z" }, + { url = "https://files.pythonhosted.org/packages/17/ea/d3c7e62e4546fdc39197fa4a4315a563a89b95b6d54c0d25373842a59cbe/jiter-0.12.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:e427eee51149edf962203ff8db75a7514ab89be5cb623fb9cea1f20b54f1107b", size = 520828, upload-time = "2025-11-09T20:48:44.278Z" }, + { url = "https://files.pythonhosted.org/packages/cc/0b/c6d3562a03fd767e31cb119d9041ea7958c3c80cb3d753eafb19b3b18349/jiter-0.12.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:edb868841f84c111255ba5e80339d386d937ec1fdce419518ce1bd9370fac5b6", size = 511009, upload-time = "2025-11-09T20:48:45.726Z" }, + { url = "https://files.pythonhosted.org/packages/aa/51/2cb4468b3448a8385ebcd15059d325c9ce67df4e2758d133ab9442b19834/jiter-0.12.0-cp314-cp314t-win32.whl", hash = "sha256:8bbcfe2791dfdb7c5e48baf646d37a6a3dcb5a97a032017741dea9f817dca183", size = 205110, upload-time = "2025-11-09T20:48:47.033Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c5/ae5ec83dec9c2d1af805fd5fe8f74ebded9c8670c5210ec7820ce0dbeb1e/jiter-0.12.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2fa940963bf02e1d8226027ef461e36af472dea85d36054ff835aeed944dd873", size = 205223, upload-time = "2025-11-09T20:48:49.076Z" }, + { url = "https://files.pythonhosted.org/packages/97/9a/3c5391907277f0e55195550cf3fa8e293ae9ee0c00fb402fec1e38c0c82f/jiter-0.12.0-cp314-cp314t-win_arm64.whl", hash = "sha256:506c9708dd29b27288f9f8f1140c3cb0e3d8ddb045956d7757b1fa0e0f39a473", size = 185564, upload-time = "2025-11-09T20:48:50.376Z" }, { url = "https://files.pythonhosted.org/packages/fe/54/5339ef1ecaa881c6948669956567a64d2670941925f245c434f494ffb0e5/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:4739a4657179ebf08f85914ce50332495811004cc1747852e8b2041ed2aab9b8", size = 311144, upload-time = "2025-11-09T20:49:10.503Z" }, { url = "https://files.pythonhosted.org/packages/27/74/3446c652bffbd5e81ab354e388b1b5fc1d20daac34ee0ed11ff096b1b01a/jiter-0.12.0-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:41da8def934bf7bec16cb24bd33c0ca62126d2d45d81d17b864bd5ad721393c3", size = 305877, upload-time = "2025-11-09T20:49:12.269Z" }, { url = "https://files.pythonhosted.org/packages/a1/f4/ed76ef9043450f57aac2d4fbeb27175aa0eb9c38f833be6ef6379b3b9a86/jiter-0.12.0-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c44ee814f499c082e69872d426b624987dbc5943ab06e9bbaa4f81989fdb79e", size = 340419, upload-time = "2025-11-09T20:49:13.803Z" }, @@ -385,6 +426,28 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, ] [[package]] @@ -545,6 +608,34 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" }, { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" }, { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" }, { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" }, @@ -642,6 +733,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, ] [[package]] @@ -752,6 +861,35 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, @@ -805,6 +943,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909, upload-time = "2025-10-08T22:01:23.859Z" }, { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946, upload-time = "2025-10-08T22:01:24.893Z" }, { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705, upload-time = "2025-10-08T22:01:26.153Z" }, + { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244, upload-time = "2025-10-08T22:01:27.06Z" }, + { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637, upload-time = "2025-10-08T22:01:28.059Z" }, + { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925, upload-time = "2025-10-08T22:01:29.066Z" }, + { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045, upload-time = "2025-10-08T22:01:31.98Z" }, + { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835, upload-time = "2025-10-08T22:01:32.989Z" }, + { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109, upload-time = "2025-10-08T22:01:34.052Z" }, + { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930, upload-time = "2025-10-08T22:01:35.082Z" }, + { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964, upload-time = "2025-10-08T22:01:36.057Z" }, + { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065, upload-time = "2025-10-08T22:01:37.27Z" }, + { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088, upload-time = "2025-10-08T22:01:38.235Z" }, + { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193, upload-time = "2025-10-08T22:01:39.712Z" }, + { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488, upload-time = "2025-10-08T22:01:40.773Z" }, + { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669, upload-time = "2025-10-08T22:01:41.824Z" }, + { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709, upload-time = "2025-10-08T22:01:43.177Z" }, + { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563, upload-time = "2025-10-08T22:01:44.233Z" }, + { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756, upload-time = "2025-10-08T22:01:45.234Z" }, { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408, upload-time = "2025-10-08T22:01:46.04Z" }, ] diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile b/demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile index b5598a04..886039c1 100644 --- a/demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile +++ b/demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.13.11-slim +FROM python:3.14-slim WORKDIR /app diff --git a/demos/use_cases/travel_agents/Dockerfile b/demos/use_cases/travel_agents/Dockerfile index effb5387..2360b11b 100644 --- a/demos/use_cases/travel_agents/Dockerfile +++ b/demos/use_cases/travel_agents/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-slim +FROM python:3.14-slim WORKDIR /app diff --git a/tests/e2e/README.md b/tests/e2e/README.md index 5b056d66..55783af2 100644 --- a/tests/e2e/README.md +++ b/tests/e2e/README.md @@ -23,7 +23,7 @@ To run locally make sure that following requirements are met. ### Requirements -- Python 3.10 +- Python 3.10+ - uv - Docker From 473996d35deebffa808dd4383c11f431f4427da8 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Tue, 17 Feb 2026 03:09:28 -0800 Subject: [PATCH 13/18] Overhaul demos directory: cleanup, restructure, and standardize configs (#760) --- .github/workflows/ci.yml | 4 +- README.md | 4 +- .../templates/coding_agent_routing.yaml | 16 +- .../conversational_state_v1_responses.yaml | 31 +- .../templates/preference_aware_routing.yaml | 16 +- cli/planoai/utils.py | 5 +- cli/test/test_init.py | 2 +- config/docker-compose.dev.yaml | 2 +- .../currency_exchange/README.md | 0 .../currency_exchange/config.yaml | 10 +- .../currency_exchange/docker-compose.yaml | 25 + .../currency_exchange/hurl_tests/simple.hurl | 0 .../hurl_tests/simple_stream.hurl | 0 .../currency_exchange}/run_demo.sh | 0 .../currency_exchange/test_data.yaml | 0 .../model_choice_test_harness}/README.md | 0 .../model_choice_test_harness}/bench.py | 0 .../evals_summarize.yaml | 0 .../plano_config_with_aliases.yaml | 13 +- .../model_choice_test_harness}/pyproject.toml | 0 .../model_choice_test_harness}/run_demo.sh | 0 .../model_choice_test_harness}/uv.lock | 0 .../multi_turn_rag}/Dockerfile | 0 .../multi_turn_rag}/README.md | 0 .../multi_turn_rag}/config.yaml | 10 +- .../multi_turn_rag/docker-compose.yaml | 28 + .../multi_turn_rag}/main.py | 0 .../multi_turn_rag}/mutli-turn-example.png | Bin .../multi_turn_rag}/requirements.txt | 0 .../multi_turn_rag}/run_demo.sh | 0 .../stock_quote/README.md | 0 .../stock_quote/config.yaml | 10 +- .../advanced/stock_quote/docker-compose.yaml | 25 + .../stock_quote}/run_demo.sh | 0 .../stock_quote/stock_quote_demo.png | Bin .../multi_agent_crewai_langchain}/Dockerfile | 0 .../multi_agent_crewai_langchain}/README.md | 2 +- .../multi_agent_crewai_langchain}/config.yaml | 0 .../crewai/flight_agent.py | 0 .../docker-compose.yaml | 0 .../langchain/weather_agent.py | 0 .../openai_protocol.py | 0 .../pyproject.toml | 0 .../multi_agent_crewai_langchain}/traces.png | Bin .../multi_agent_crewai_langchain}/uv.lock | 0 .../travel_agents/Dockerfile | 0 .../travel_agents/README.md | 0 .../travel_agents/config.yaml | 0 .../travel_agents/docker-compose.yaml | 0 .../travel_agents/pyproject.toml | 0 .../src/travel_agents/flight_agent.py | 0 .../src/travel_agents/weather_agent.py | 0 .../travel_agents/test.rest | 0 .../travel_agents/tracing.png | Bin .../travel_agents/travel_agent_request.rest | 0 .../travel_agents/uv.lock | 0 .../http_filter/Dockerfile | 0 .../http_filter/README.md | 0 .../http_filter/config.yaml | 0 .../http_filter/docker-compose.yaml | 0 .../http_filter/http.rest | 0 .../http_filter/mcp_query.rest | 0 .../http_filter/pyproject.toml | 0 .../http_filter/sample_queries.md | 0 .../http_filter/src/rag_agent/__init__.py | 0 .../http_filter/src/rag_agent/__main__.py | 0 .../http_filter/src/rag_agent/api.py | 0 .../src/rag_agent/context_builder.py | 0 .../http_filter/src/rag_agent/input_guards.py | 0 .../src/rag_agent/query_rewriter.py | 0 .../http_filter/src/rag_agent/rag_agent.py | 0 .../src/rag_agent/sample_knowledge_base.csv | 0 .../http_filter/start_agents.sh | 0 .../http_filter/test.rest | 0 .../http_filter/uv.lock | 0 .../mcp_filter/Dockerfile | 0 .../mcp_filter/README.md | 0 .../mcp_filter/config.yaml | 0 .../mcp_filter/docker-compose.yaml | 0 .../mcp_filter/mcp_query.rest | 0 .../mcp_filter/pyproject.toml | 0 .../mcp_filter/sample_queries.md | 0 .../mcp_filter/src/rag_agent/__init__.py | 0 .../mcp_filter/src/rag_agent/__main__.py | 0 .../mcp_filter/src/rag_agent/api.py | 0 .../src/rag_agent/context_builder.py | 0 .../mcp_filter/src/rag_agent/input_guards.py | 0 .../src/rag_agent/query_rewriter.py | 0 .../mcp_filter/src/rag_agent/rag_agent.py | 0 .../src/rag_agent/sample_knowledge_base.csv | 0 .../mcp_filter/start_agents.sh | 0 .../mcp_filter/test.rest | 0 .../mcp_filter/uv.lock | 0 .../llm_gateway}/README.md | 10 +- .../llm_gateway}/config.yaml | 0 .../llm_gateway}/docker-compose.yaml | 10 - .../jaeger_tracing_llm_routing.png | Bin .../llm_gateway}/llm_routing_demo.png | Bin .../llm_gateway}/run_demo.sh | 0 .../weather_forecast/Dockerfile | 0 .../weather_forecast/README.md | 28 + .../weather_forecast/config.yaml | 16 +- .../weather_forecast/docker-compose.yaml | 27 + .../weather_forecast/hurl_tests/simple.hurl | 0 .../hurl_tests/simple_stream.hurl | 0 .../weather_forecast/main.py | 0 .../weather_forecast/pyproject.toml | 0 .../weather_forecast/run_demo.sh | 0 .../weather_forecast/uv.lock | 0 .../ollama/README.md | 0 .../ollama/config.yaml | 10 +- demos/integrations/ollama/docker-compose.yaml | 25 + .../ollama}/run_demo.sh | 0 .../spotify_bearer_auth/README.md | 0 .../spotify_bearer_auth/config.yaml | 15 +- .../spotify_bearer_auth/docker-compose.yaml | 25 + .../spotify_bearer_auth}/run_demo.sh | 0 .../spotify_bearer_auth.png | Bin .../claude_code_router/README.md | 2 +- .../claude_code_router/claude_code.png | Bin .../claude_code_router/config.yaml | 10 +- .../claude_code_router/model_selection.png | Bin .../pretty_model_resolution.sh | 0 .../model_alias_routing/README.md | 0 .../config_with_aliases.yaml | 13 +- .../model_alias_routing/run_demo.sh | 0 .../preference_based_routing/README.md | 4 +- .../preference_based_routing/config.yaml | 10 +- .../docker-compose.yaml | 10 - .../hurl_tests/simple.hurl | 0 .../hurl_tests/simple_stream.hurl | 0 .../plano_config_local.yaml | 10 +- .../test_router_endpoint.rest | 0 .../weather_forcecast_service/.classpath | 57 - .../weather_forcecast_service/.project | 34 - .../org.eclipse.core.resources.prefs | 4 - .../.settings/org.eclipse.jdt.apt.core.prefs | 2 - .../.settings/org.eclipse.jdt.core.prefs | 10 - .../.settings/org.eclipse.m2e.core.prefs | 4 - .../.vscode/launch.json | 15 - .../weather_forcecast_service/Dockerfile | 23 - .../weather_forcecast_service/config.yaml | 50 - .../docker-compose.yaml | 29 - .../weather_forcecast_service/pom.xml | 49 - .../weather/WeatherForecastApplication.java | 12 - .../weather/controller/WeatherController.java | 53 - .../main/java/weather/model/DayForecast.java | 40 - .../model/WeatherForecastResponse.java | 37 - .../java/weather/model/WeatherRequest.java | 29 - .../src/main/resources/application.properties | 1 - .../currency_exchange/docker-compose.yaml | 21 - .../multi_turn_rag_agent/docker-compose.yaml | 24 - .../stock_quote/docker-compose.yaml | 21 - .../samples_python/weather_forecast/README.md | 63 - .../docker-compose-honeycomb.yaml | 46 - .../docker-compose-jaeger.yaml | 41 - .../docker-compose-logfire.yaml | 46 - .../docker-compose-signoz.yaml | 36 - .../weather_forecast/docker-compose.yaml | 23 - demos/shared/chatbot_ui/.vscode/launch.json | 36 - demos/shared/chatbot_ui/Dockerfile | 18 - demos/shared/chatbot_ui/common.py | 206 --- demos/shared/chatbot_ui/requirements.txt | 9 - demos/shared/chatbot_ui/run_stream.py | 160 --- demos/shared/grafana/Dockerfile | 15 - demos/shared/grafana/dashboard.yaml | 12 - .../grafana/dashboards/envoy_overview.json | 794 ------------ demos/shared/grafana/datasource.yaml | 9 - demos/shared/honeycomb/Dockerfile | 5 - .../honeycomb/otel-collector-config.yaml | 24 - demos/shared/logfire/Dockerfile | 5 - .../shared/logfire/otel-collector-config.yaml | 24 - demos/shared/prometheus/Dockerfile | 11 - demos/shared/prometheus/prometheus.yaml | 23 - demos/shared/signoz/alertmanager.yml | 35 - demos/shared/signoz/alerts.yml | 11 - demos/shared/signoz/clickhouse-cluster.xml | 75 -- demos/shared/signoz/clickhouse-config.xml | 1143 ----------------- demos/shared/signoz/clickhouse-storage.xml | 41 - demos/shared/signoz/clickhouse-users.xml | 123 -- demos/shared/signoz/custom-function.xml | 21 - demos/shared/signoz/docker-compose-core.yaml | 133 -- demos/shared/signoz/docker-compose-local.yaml | 67 - .../shared/signoz/docker-compose-minimal.yaml | 296 ----- .../shared/signoz/docker-compose.testing.yaml | 284 ---- demos/shared/signoz/docker-compose.yaml | 3 - demos/shared/signoz/keeper_config.xml | 64 - demos/shared/signoz/nginx-config.conf | 64 - .../shared/signoz/otel-collector-config.yaml | 188 --- .../signoz/otel-collector-opamp-config.yaml | 1 - demos/shared/signoz/prometheus.yml | 25 - .../signoz/test-app-docker-compose.yaml | 26 - .../signoz/user_scripts/histogramQuantile | Bin 1849156 -> 0 bytes .../signoz/user_scripts/histogramQuantile.go | 237 ---- demos/shared/test_runner/run_demo_tests.sh | 4 +- demos/use_cases/ollama/docker-compose.yaml | 21 - .../ollama/docker-compose_honeycomb.yaml | 26 - .../spotify_bearer_auth/docker-compose.yaml | 21 - .../use_cases/spotify_bearer_auth/run_demo.sh | 47 - docs/source/concepts/prompt_target.rst | 2 +- docs/source/guides/orchestration.rst | 2 +- tests/e2e/docker-compose.yaml | 2 +- tests/e2e/run_e2e_tests.sh | 8 +- tests/e2e/run_model_alias_tests.sh | 2 +- tests/e2e/run_prompt_gateway_tests.sh | 6 +- 205 files changed, 304 insertions(+), 5223 deletions(-) rename demos/{samples_python => advanced}/currency_exchange/README.md (100%) rename demos/{samples_python => advanced}/currency_exchange/config.yaml (91%) create mode 100644 demos/advanced/currency_exchange/docker-compose.yaml rename demos/{samples_python => advanced}/currency_exchange/hurl_tests/simple.hurl (100%) rename demos/{samples_python => advanced}/currency_exchange/hurl_tests/simple_stream.hurl (100%) rename demos/{samples_java/weather_forcecast_service => advanced/currency_exchange}/run_demo.sh (100%) rename demos/{samples_python => advanced}/currency_exchange/test_data.yaml (100%) rename demos/{use_cases/model_choice_with_test_harness => advanced/model_choice_test_harness}/README.md (100%) rename demos/{use_cases/model_choice_with_test_harness => advanced/model_choice_test_harness}/bench.py (100%) rename demos/{use_cases/model_choice_with_test_harness => advanced/model_choice_test_harness}/evals_summarize.yaml (100%) rename demos/{use_cases/model_choice_with_test_harness => advanced/model_choice_test_harness}/plano_config_with_aliases.yaml (69%) rename demos/{use_cases/model_choice_with_test_harness => advanced/model_choice_test_harness}/pyproject.toml (100%) rename demos/{use_cases/model_choice_with_test_harness => advanced/model_choice_test_harness}/run_demo.sh (100%) rename demos/{use_cases/model_choice_with_test_harness => advanced/model_choice_test_harness}/uv.lock (100%) rename demos/{samples_python/multi_turn_rag_agent => advanced/multi_turn_rag}/Dockerfile (100%) rename demos/{samples_python/multi_turn_rag_agent => advanced/multi_turn_rag}/README.md (100%) rename demos/{samples_python/multi_turn_rag_agent => advanced/multi_turn_rag}/config.yaml (93%) create mode 100644 demos/advanced/multi_turn_rag/docker-compose.yaml rename demos/{samples_python/multi_turn_rag_agent => advanced/multi_turn_rag}/main.py (100%) rename demos/{samples_python/multi_turn_rag_agent => advanced/multi_turn_rag}/mutli-turn-example.png (100%) rename demos/{samples_python/multi_turn_rag_agent => advanced/multi_turn_rag}/requirements.txt (100%) rename demos/{samples_python/multi_turn_rag_agent => advanced/multi_turn_rag}/run_demo.sh (100%) rename demos/{samples_python => advanced}/stock_quote/README.md (100%) rename demos/{samples_python => advanced}/stock_quote/config.yaml (93%) create mode 100644 demos/advanced/stock_quote/docker-compose.yaml rename demos/{samples_python/currency_exchange => advanced/stock_quote}/run_demo.sh (100%) rename demos/{samples_python => advanced}/stock_quote/stock_quote_demo.png (100%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/Dockerfile (100%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/README.md (98%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/config.yaml (100%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/crewai/flight_agent.py (100%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/docker-compose.yaml (100%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/langchain/weather_agent.py (100%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/openai_protocol.py (100%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/pyproject.toml (100%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/traces.png (100%) rename demos/{use_cases/multi_agent_with_crewai_langchain => agent_orchestration/multi_agent_crewai_langchain}/uv.lock (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/Dockerfile (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/README.md (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/config.yaml (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/docker-compose.yaml (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/pyproject.toml (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/src/travel_agents/flight_agent.py (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/src/travel_agents/weather_agent.py (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/test.rest (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/tracing.png (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/travel_agent_request.rest (100%) rename demos/{use_cases => agent_orchestration}/travel_agents/uv.lock (100%) rename demos/{use_cases => filter_chains}/http_filter/Dockerfile (100%) rename demos/{use_cases => filter_chains}/http_filter/README.md (100%) rename demos/{use_cases => filter_chains}/http_filter/config.yaml (100%) rename demos/{use_cases => filter_chains}/http_filter/docker-compose.yaml (100%) rename demos/{use_cases => filter_chains}/http_filter/http.rest (100%) rename demos/{use_cases => filter_chains}/http_filter/mcp_query.rest (100%) rename demos/{use_cases => filter_chains}/http_filter/pyproject.toml (100%) rename demos/{use_cases => filter_chains}/http_filter/sample_queries.md (100%) rename demos/{use_cases => filter_chains}/http_filter/src/rag_agent/__init__.py (100%) rename demos/{use_cases => filter_chains}/http_filter/src/rag_agent/__main__.py (100%) rename demos/{use_cases => filter_chains}/http_filter/src/rag_agent/api.py (100%) rename demos/{use_cases => filter_chains}/http_filter/src/rag_agent/context_builder.py (100%) rename demos/{use_cases => filter_chains}/http_filter/src/rag_agent/input_guards.py (100%) rename demos/{use_cases => filter_chains}/http_filter/src/rag_agent/query_rewriter.py (100%) rename demos/{use_cases => filter_chains}/http_filter/src/rag_agent/rag_agent.py (100%) rename demos/{use_cases => filter_chains}/http_filter/src/rag_agent/sample_knowledge_base.csv (100%) rename demos/{use_cases => filter_chains}/http_filter/start_agents.sh (100%) rename demos/{use_cases => filter_chains}/http_filter/test.rest (100%) rename demos/{use_cases => filter_chains}/http_filter/uv.lock (100%) rename demos/{use_cases => filter_chains}/mcp_filter/Dockerfile (100%) rename demos/{use_cases => filter_chains}/mcp_filter/README.md (100%) rename demos/{use_cases => filter_chains}/mcp_filter/config.yaml (100%) rename demos/{use_cases => filter_chains}/mcp_filter/docker-compose.yaml (100%) rename demos/{use_cases => filter_chains}/mcp_filter/mcp_query.rest (100%) rename demos/{use_cases => filter_chains}/mcp_filter/pyproject.toml (100%) rename demos/{use_cases => filter_chains}/mcp_filter/sample_queries.md (100%) rename demos/{use_cases => filter_chains}/mcp_filter/src/rag_agent/__init__.py (100%) rename demos/{use_cases => filter_chains}/mcp_filter/src/rag_agent/__main__.py (100%) rename demos/{use_cases => filter_chains}/mcp_filter/src/rag_agent/api.py (100%) rename demos/{use_cases => filter_chains}/mcp_filter/src/rag_agent/context_builder.py (100%) rename demos/{use_cases => filter_chains}/mcp_filter/src/rag_agent/input_guards.py (100%) rename demos/{use_cases => filter_chains}/mcp_filter/src/rag_agent/query_rewriter.py (100%) rename demos/{use_cases => filter_chains}/mcp_filter/src/rag_agent/rag_agent.py (100%) rename demos/{use_cases => filter_chains}/mcp_filter/src/rag_agent/sample_knowledge_base.csv (100%) rename demos/{use_cases => filter_chains}/mcp_filter/start_agents.sh (100%) rename demos/{use_cases => filter_chains}/mcp_filter/test.rest (100%) rename demos/{use_cases => filter_chains}/mcp_filter/uv.lock (100%) rename demos/{use_cases/llm_routing => getting_started/llm_gateway}/README.md (72%) rename demos/{use_cases/llm_routing => getting_started/llm_gateway}/config.yaml (100%) rename demos/{use_cases/llm_routing => getting_started/llm_gateway}/docker-compose.yaml (86%) rename demos/{use_cases/llm_routing => getting_started/llm_gateway}/jaeger_tracing_llm_routing.png (100%) rename demos/{use_cases/llm_routing => getting_started/llm_gateway}/llm_routing_demo.png (100%) rename demos/{use_cases/llm_routing => getting_started/llm_gateway}/run_demo.sh (100%) rename demos/{samples_python => getting_started}/weather_forecast/Dockerfile (100%) create mode 100644 demos/getting_started/weather_forecast/README.md rename demos/{samples_python => getting_started}/weather_forecast/config.yaml (89%) create mode 100644 demos/getting_started/weather_forecast/docker-compose.yaml rename demos/{samples_python => getting_started}/weather_forecast/hurl_tests/simple.hurl (100%) rename demos/{samples_python => getting_started}/weather_forecast/hurl_tests/simple_stream.hurl (100%) rename demos/{samples_python => getting_started}/weather_forecast/main.py (100%) rename demos/{samples_python => getting_started}/weather_forecast/pyproject.toml (100%) rename demos/{samples_python => getting_started}/weather_forecast/run_demo.sh (100%) rename demos/{samples_python => getting_started}/weather_forecast/uv.lock (100%) rename demos/{use_cases => integrations}/ollama/README.md (100%) rename demos/{use_cases => integrations}/ollama/config.yaml (90%) create mode 100644 demos/integrations/ollama/docker-compose.yaml rename demos/{samples_python/stock_quote => integrations/ollama}/run_demo.sh (100%) rename demos/{use_cases => integrations}/spotify_bearer_auth/README.md (100%) rename demos/{use_cases => integrations}/spotify_bearer_auth/config.yaml (95%) create mode 100644 demos/integrations/spotify_bearer_auth/docker-compose.yaml rename demos/{use_cases/ollama => integrations/spotify_bearer_auth}/run_demo.sh (100%) rename demos/{use_cases => integrations}/spotify_bearer_auth/spotify_bearer_auth.png (100%) rename demos/{use_cases => llm_routing}/claude_code_router/README.md (99%) rename demos/{use_cases => llm_routing}/claude_code_router/claude_code.png (100%) rename demos/{use_cases => llm_routing}/claude_code_router/config.yaml (89%) rename demos/{use_cases => llm_routing}/claude_code_router/model_selection.png (100%) rename demos/{use_cases => llm_routing}/claude_code_router/pretty_model_resolution.sh (100%) rename demos/{use_cases => llm_routing}/model_alias_routing/README.md (100%) rename demos/{use_cases => llm_routing}/model_alias_routing/config_with_aliases.yaml (94%) rename demos/{use_cases => llm_routing}/model_alias_routing/run_demo.sh (100%) rename demos/{use_cases => llm_routing}/preference_based_routing/README.md (93%) rename demos/{use_cases => llm_routing}/preference_based_routing/config.yaml (84%) rename demos/{use_cases => llm_routing}/preference_based_routing/docker-compose.yaml (87%) rename demos/{use_cases => llm_routing}/preference_based_routing/hurl_tests/simple.hurl (100%) rename demos/{use_cases => llm_routing}/preference_based_routing/hurl_tests/simple_stream.hurl (100%) rename demos/{use_cases => llm_routing}/preference_based_routing/plano_config_local.yaml (87%) rename demos/{use_cases => llm_routing}/preference_based_routing/test_router_endpoint.rest (100%) delete mode 100644 demos/samples_java/weather_forcecast_service/.classpath delete mode 100644 demos/samples_java/weather_forcecast_service/.project delete mode 100644 demos/samples_java/weather_forcecast_service/.settings/org.eclipse.core.resources.prefs delete mode 100644 demos/samples_java/weather_forcecast_service/.settings/org.eclipse.jdt.apt.core.prefs delete mode 100644 demos/samples_java/weather_forcecast_service/.settings/org.eclipse.jdt.core.prefs delete mode 100644 demos/samples_java/weather_forcecast_service/.settings/org.eclipse.m2e.core.prefs delete mode 100644 demos/samples_java/weather_forcecast_service/.vscode/launch.json delete mode 100644 demos/samples_java/weather_forcecast_service/Dockerfile delete mode 100644 demos/samples_java/weather_forcecast_service/config.yaml delete mode 100644 demos/samples_java/weather_forcecast_service/docker-compose.yaml delete mode 100644 demos/samples_java/weather_forcecast_service/pom.xml delete mode 100644 demos/samples_java/weather_forcecast_service/src/main/java/weather/WeatherForecastApplication.java delete mode 100644 demos/samples_java/weather_forcecast_service/src/main/java/weather/controller/WeatherController.java delete mode 100644 demos/samples_java/weather_forcecast_service/src/main/java/weather/model/DayForecast.java delete mode 100644 demos/samples_java/weather_forcecast_service/src/main/java/weather/model/WeatherForecastResponse.java delete mode 100644 demos/samples_java/weather_forcecast_service/src/main/java/weather/model/WeatherRequest.java delete mode 100644 demos/samples_java/weather_forcecast_service/src/main/resources/application.properties delete mode 100644 demos/samples_python/currency_exchange/docker-compose.yaml delete mode 100644 demos/samples_python/multi_turn_rag_agent/docker-compose.yaml delete mode 100644 demos/samples_python/stock_quote/docker-compose.yaml delete mode 100644 demos/samples_python/weather_forecast/README.md delete mode 100644 demos/samples_python/weather_forecast/docker-compose-honeycomb.yaml delete mode 100644 demos/samples_python/weather_forecast/docker-compose-jaeger.yaml delete mode 100644 demos/samples_python/weather_forecast/docker-compose-logfire.yaml delete mode 100644 demos/samples_python/weather_forecast/docker-compose-signoz.yaml delete mode 100644 demos/samples_python/weather_forecast/docker-compose.yaml delete mode 100644 demos/shared/chatbot_ui/.vscode/launch.json delete mode 100644 demos/shared/chatbot_ui/Dockerfile delete mode 100644 demos/shared/chatbot_ui/common.py delete mode 100644 demos/shared/chatbot_ui/requirements.txt delete mode 100644 demos/shared/chatbot_ui/run_stream.py delete mode 100644 demos/shared/grafana/Dockerfile delete mode 100644 demos/shared/grafana/dashboard.yaml delete mode 100644 demos/shared/grafana/dashboards/envoy_overview.json delete mode 100644 demos/shared/grafana/datasource.yaml delete mode 100644 demos/shared/honeycomb/Dockerfile delete mode 100644 demos/shared/honeycomb/otel-collector-config.yaml delete mode 100644 demos/shared/logfire/Dockerfile delete mode 100644 demos/shared/logfire/otel-collector-config.yaml delete mode 100644 demos/shared/prometheus/Dockerfile delete mode 100644 demos/shared/prometheus/prometheus.yaml delete mode 100644 demos/shared/signoz/alertmanager.yml delete mode 100644 demos/shared/signoz/alerts.yml delete mode 100644 demos/shared/signoz/clickhouse-cluster.xml delete mode 100644 demos/shared/signoz/clickhouse-config.xml delete mode 100644 demos/shared/signoz/clickhouse-storage.xml delete mode 100644 demos/shared/signoz/clickhouse-users.xml delete mode 100644 demos/shared/signoz/custom-function.xml delete mode 100644 demos/shared/signoz/docker-compose-core.yaml delete mode 100644 demos/shared/signoz/docker-compose-local.yaml delete mode 100644 demos/shared/signoz/docker-compose-minimal.yaml delete mode 100644 demos/shared/signoz/docker-compose.testing.yaml delete mode 100644 demos/shared/signoz/docker-compose.yaml delete mode 100644 demos/shared/signoz/keeper_config.xml delete mode 100644 demos/shared/signoz/nginx-config.conf delete mode 100644 demos/shared/signoz/otel-collector-config.yaml delete mode 100644 demos/shared/signoz/otel-collector-opamp-config.yaml delete mode 100644 demos/shared/signoz/prometheus.yml delete mode 100644 demos/shared/signoz/test-app-docker-compose.yaml delete mode 100755 demos/shared/signoz/user_scripts/histogramQuantile delete mode 100644 demos/shared/signoz/user_scripts/histogramQuantile.go delete mode 100644 demos/use_cases/ollama/docker-compose.yaml delete mode 100644 demos/use_cases/ollama/docker-compose_honeycomb.yaml delete mode 100644 demos/use_cases/spotify_bearer_auth/docker-compose.yaml delete mode 100644 demos/use_cases/spotify_bearer_auth/run_demo.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92be5228..4211257e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -426,7 +426,7 @@ jobs: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} run: | source venv/bin/activate - cd demos/shared/test_runner && sh run_demo_tests.sh use_cases/preference_based_routing + cd demos/shared/test_runner && sh run_demo_tests.sh llm_routing/preference_based_routing # ────────────────────────────────────────────── # E2E: demo — currency conversion @@ -476,4 +476,4 @@ jobs: GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} run: | source venv/bin/activate - cd demos/shared/test_runner && sh run_demo_tests.sh samples_python/currency_exchange + cd demos/shared/test_runner && sh run_demo_tests.sh advanced/currency_exchange diff --git a/README.md b/README.md index 347d5781..db398507 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Plano pulls rote plumbing out of your framework so you can stay focused on what Plano handles **orchestration, model management, and observability** as modular building blocks - letting you configure only what you need (edge proxying for agentic orchestration and guardrails, or LLM routing from your services, or both together) to fit cleanly into existing architectures. Below is a simple multi-agent travel agent built with Plano that showcases all three core capabilities -> 📁 **Full working code:** See [`demos/use_cases/travel_agents/`](demos/use_cases/travel_agents/) for complete weather and flight agents you can run locally. +> 📁 **Full working code:** See [`demos/agent_orchestration/travel_agents/`](demos/agent_orchestration/travel_agents/) for complete weather and flight agents you can run locally. @@ -113,7 +113,7 @@ async def chat(request: Request): days = 7 # Your agent logic: fetch data, call APIs, run tools - # See demos/use_cases/travel_agents/ for the full implementation + # See demos/agent_orchestration/travel_agents/ for the full implementation weather_data = await get_weather_data(request, messages, days) # Stream the response back through Plano diff --git a/cli/planoai/templates/coding_agent_routing.yaml b/cli/planoai/templates/coding_agent_routing.yaml index e41db0c0..b0e40000 100644 --- a/cli/planoai/templates/coding_agent_routing.yaml +++ b/cli/planoai/templates/coding_agent_routing.yaml @@ -1,13 +1,6 @@ -version: v0.1 +version: v0.3.0 -listeners: - egress_traffic: - address: 0.0.0.0 - port: 12000 - message_format: openai - timeout: 30s - -llm_providers: +model_providers: # OpenAI Models - model: openai/gpt-5-2025-08-07 access_key: $OPENAI_API_KEY @@ -39,5 +32,10 @@ model_aliases: arch.claude.code.small.fast: target: claude-haiku-4-5 +listeners: + - type: model + name: model_listener + port: 12000 + tracing: random_sampling: 100 diff --git a/cli/planoai/templates/conversational_state_v1_responses.yaml b/cli/planoai/templates/conversational_state_v1_responses.yaml index afc40910..403278a9 100644 --- a/cli/planoai/templates/conversational_state_v1_responses.yaml +++ b/cli/planoai/templates/conversational_state_v1_responses.yaml @@ -1,25 +1,36 @@ -version: v0.1 +version: v0.3.0 -listeners: - egress_traffic: - address: 0.0.0.0 - port: 12000 - message_format: openai - timeout: 30s - -llm_providers: +agents: + - id: assistant + url: http://localhost:10510 +model_providers: # OpenAI Models - model: openai/gpt-5-mini-2025-08-07 access_key: $OPENAI_API_KEY default: true - # Anthropic Models + # Anthropic Models - model: anthropic/claude-sonnet-4-20250514 access_key: $ANTHROPIC_API_KEY +listeners: + - type: agent + name: conversation_service + port: 8001 + router: plano_orchestrator_v1 + agents: + - id: assistant + description: | + A conversational assistant that maintains context across multi-turn + conversations. It can answer follow-up questions, remember previous + context, and provide coherent responses in ongoing dialogues. + # State storage configuration for v1/responses API # Manages conversation state for multi-turn conversations state_storage: # Type: memory | postgres type: memory + +tracing: + random_sampling: 100 diff --git a/cli/planoai/templates/preference_aware_routing.yaml b/cli/planoai/templates/preference_aware_routing.yaml index cb9f685a..e38b3881 100644 --- a/cli/planoai/templates/preference_aware_routing.yaml +++ b/cli/planoai/templates/preference_aware_routing.yaml @@ -1,13 +1,6 @@ -version: v0.1.0 +version: v0.3.0 -listeners: - egress_traffic: - address: 0.0.0.0 - port: 12000 - message_format: openai - timeout: 30s - -llm_providers: +model_providers: - model: openai/gpt-4o-mini access_key: $OPENAI_API_KEY @@ -25,5 +18,10 @@ llm_providers: - name: code generation description: generating new code snippets, functions, or boilerplate based on user prompts or requirements +listeners: + - type: model + name: model_listener + port: 12000 + tracing: random_sampling: 100 diff --git a/cli/planoai/utils.py b/cli/planoai/utils.py index 2ffe7b58..171006f1 100644 --- a/cli/planoai/utils.py +++ b/cli/planoai/utils.py @@ -154,7 +154,10 @@ def convert_legacy_listeners( ) listener["model_providers"] = model_providers or [] model_provider_set = True - llm_gateway_listener = listener + # Merge user listener values into defaults for the Envoy template + llm_gateway_listener = {**llm_gateway_listener, **listener} + elif listener.get("type") == "prompt": + prompt_gateway_listener = {**prompt_gateway_listener, **listener} if not model_provider_set: listeners.append(llm_gateway_listener) diff --git a/cli/test/test_init.py b/cli/test/test_init.py index b9665a2a..cfb7e6cb 100644 --- a/cli/test/test_init.py +++ b/cli/test/test_init.py @@ -26,7 +26,7 @@ def test_init_template_builtin_writes_config(tmp_path, monkeypatch): config_path = tmp_path / "config.yaml" assert config_path.exists() config_text = config_path.read_text(encoding="utf-8") - assert "llm_providers:" in config_text + assert "model_providers:" in config_text def test_init_refuses_overwrite_without_force(tmp_path, monkeypatch): diff --git a/config/docker-compose.dev.yaml b/config/docker-compose.dev.yaml index 15d75a62..1384f955 100644 --- a/config/docker-compose.dev.yaml +++ b/config/docker-compose.dev.yaml @@ -8,7 +8,7 @@ services: - "12000:12000" - "19901:9901" volumes: - - ${PLANO_CONFIG_FILE:-../demos/samples_python/weather_forecast/plano_config.yaml}:/app/plano_config.yaml + - ${PLANO_CONFIG_FILE:-../demos/getting_started/weather_forecast/plano_config.yaml}:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem - ./envoy.template.yaml:/app/envoy.template.yaml - ./plano_config_schema.yaml:/app/plano_config_schema.yaml diff --git a/demos/samples_python/currency_exchange/README.md b/demos/advanced/currency_exchange/README.md similarity index 100% rename from demos/samples_python/currency_exchange/README.md rename to demos/advanced/currency_exchange/README.md diff --git a/demos/samples_python/currency_exchange/config.yaml b/demos/advanced/currency_exchange/config.yaml similarity index 91% rename from demos/samples_python/currency_exchange/config.yaml rename to demos/advanced/currency_exchange/config.yaml index 064befa1..f99da77b 100644 --- a/demos/samples_python/currency_exchange/config.yaml +++ b/demos/advanced/currency_exchange/config.yaml @@ -1,13 +1,11 @@ -version: v0.1.0 +version: v0.3.0 listeners: - ingress_traffic: - address: 0.0.0.0 + - type: prompt + name: prompt_listener port: 10000 - message_format: openai - timeout: 30s -llm_providers: +model_providers: - model: openai/gpt-4o-mini access_key: $OPENAI_API_KEY default: true diff --git a/demos/advanced/currency_exchange/docker-compose.yaml b/demos/advanced/currency_exchange/docker-compose.yaml new file mode 100644 index 00000000..ff161662 --- /dev/null +++ b/demos/advanced/currency_exchange/docker-compose.yaml @@ -0,0 +1,25 @@ +services: + anythingllm: + image: mintplexlabs/anythingllm + restart: always + ports: + - "3001:3001" + cap_add: + - SYS_ADMIN + environment: + - STORAGE_DIR=/app/server/storage + - LLM_PROVIDER=generic-openai + - GENERIC_OPEN_AI_BASE_PATH=http://host.docker.internal:10000/v1 + - GENERIC_OPEN_AI_MODEL_PREF=gpt-4o-mini + - GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=128000 + - GENERIC_OPEN_AI_API_KEY=sk-placeholder + extra_hosts: + - "host.docker.internal:host-gateway" + + jaeger: + build: + context: ../../shared/jaeger + ports: + - "16686:16686" + - "4317:4317" + - "4318:4318" diff --git a/demos/samples_python/currency_exchange/hurl_tests/simple.hurl b/demos/advanced/currency_exchange/hurl_tests/simple.hurl similarity index 100% rename from demos/samples_python/currency_exchange/hurl_tests/simple.hurl rename to demos/advanced/currency_exchange/hurl_tests/simple.hurl diff --git a/demos/samples_python/currency_exchange/hurl_tests/simple_stream.hurl b/demos/advanced/currency_exchange/hurl_tests/simple_stream.hurl similarity index 100% rename from demos/samples_python/currency_exchange/hurl_tests/simple_stream.hurl rename to demos/advanced/currency_exchange/hurl_tests/simple_stream.hurl diff --git a/demos/samples_java/weather_forcecast_service/run_demo.sh b/demos/advanced/currency_exchange/run_demo.sh similarity index 100% rename from demos/samples_java/weather_forcecast_service/run_demo.sh rename to demos/advanced/currency_exchange/run_demo.sh diff --git a/demos/samples_python/currency_exchange/test_data.yaml b/demos/advanced/currency_exchange/test_data.yaml similarity index 100% rename from demos/samples_python/currency_exchange/test_data.yaml rename to demos/advanced/currency_exchange/test_data.yaml diff --git a/demos/use_cases/model_choice_with_test_harness/README.md b/demos/advanced/model_choice_test_harness/README.md similarity index 100% rename from demos/use_cases/model_choice_with_test_harness/README.md rename to demos/advanced/model_choice_test_harness/README.md diff --git a/demos/use_cases/model_choice_with_test_harness/bench.py b/demos/advanced/model_choice_test_harness/bench.py similarity index 100% rename from demos/use_cases/model_choice_with_test_harness/bench.py rename to demos/advanced/model_choice_test_harness/bench.py diff --git a/demos/use_cases/model_choice_with_test_harness/evals_summarize.yaml b/demos/advanced/model_choice_test_harness/evals_summarize.yaml similarity index 100% rename from demos/use_cases/model_choice_with_test_harness/evals_summarize.yaml rename to demos/advanced/model_choice_test_harness/evals_summarize.yaml diff --git a/demos/use_cases/model_choice_with_test_harness/plano_config_with_aliases.yaml b/demos/advanced/model_choice_test_harness/plano_config_with_aliases.yaml similarity index 69% rename from demos/use_cases/model_choice_with_test_harness/plano_config_with_aliases.yaml rename to demos/advanced/model_choice_test_harness/plano_config_with_aliases.yaml index 3bd84b34..b25331e1 100644 --- a/demos/use_cases/model_choice_with_test_harness/plano_config_with_aliases.yaml +++ b/demos/advanced/model_choice_test_harness/plano_config_with_aliases.yaml @@ -1,13 +1,11 @@ -version: v0.1.0 +version: v0.3.0 listeners: - egress_traffic: - address: 0.0.0.0 + - type: model + name: model_listener port: 12000 - message_format: openai - timeout: 30s -llm_providers: +model_providers: - model: openai/gpt-4o-mini access_key: $OPENAI_API_KEY default: true @@ -20,3 +18,6 @@ model_aliases: target: gpt-4o-mini arch.reason.v1: target: o3 + +tracing: + random_sampling: 100 diff --git a/demos/use_cases/model_choice_with_test_harness/pyproject.toml b/demos/advanced/model_choice_test_harness/pyproject.toml similarity index 100% rename from demos/use_cases/model_choice_with_test_harness/pyproject.toml rename to demos/advanced/model_choice_test_harness/pyproject.toml diff --git a/demos/use_cases/model_choice_with_test_harness/run_demo.sh b/demos/advanced/model_choice_test_harness/run_demo.sh similarity index 100% rename from demos/use_cases/model_choice_with_test_harness/run_demo.sh rename to demos/advanced/model_choice_test_harness/run_demo.sh diff --git a/demos/use_cases/model_choice_with_test_harness/uv.lock b/demos/advanced/model_choice_test_harness/uv.lock similarity index 100% rename from demos/use_cases/model_choice_with_test_harness/uv.lock rename to demos/advanced/model_choice_test_harness/uv.lock diff --git a/demos/samples_python/multi_turn_rag_agent/Dockerfile b/demos/advanced/multi_turn_rag/Dockerfile similarity index 100% rename from demos/samples_python/multi_turn_rag_agent/Dockerfile rename to demos/advanced/multi_turn_rag/Dockerfile diff --git a/demos/samples_python/multi_turn_rag_agent/README.md b/demos/advanced/multi_turn_rag/README.md similarity index 100% rename from demos/samples_python/multi_turn_rag_agent/README.md rename to demos/advanced/multi_turn_rag/README.md diff --git a/demos/samples_python/multi_turn_rag_agent/config.yaml b/demos/advanced/multi_turn_rag/config.yaml similarity index 93% rename from demos/samples_python/multi_turn_rag_agent/config.yaml rename to demos/advanced/multi_turn_rag/config.yaml index a29622ec..2c677eec 100644 --- a/demos/samples_python/multi_turn_rag_agent/config.yaml +++ b/demos/advanced/multi_turn_rag/config.yaml @@ -1,18 +1,16 @@ -version: v0.1.0 +version: v0.3.0 listeners: - ingress_traffic: - address: 0.0.0.0 + - type: prompt + name: prompt_listener port: 10000 - message_format: openai - timeout: 30s endpoints: rag_energy_source_agent: endpoint: host.docker.internal:18083 connect_timeout: 0.005s -llm_providers: +model_providers: - access_key: $OPENAI_API_KEY model: openai/gpt-4o-mini default: true diff --git a/demos/advanced/multi_turn_rag/docker-compose.yaml b/demos/advanced/multi_turn_rag/docker-compose.yaml new file mode 100644 index 00000000..1c3ed73c --- /dev/null +++ b/demos/advanced/multi_turn_rag/docker-compose.yaml @@ -0,0 +1,28 @@ +services: + rag_energy_source_agent: + build: + context: . + dockerfile: Dockerfile + ports: + - "18083:80" + healthcheck: + test: ["CMD", "curl" ,"http://localhost:80/healthz"] + interval: 5s + retries: 20 + + anythingllm: + image: mintplexlabs/anythingllm + restart: always + ports: + - "3001:3001" + cap_add: + - SYS_ADMIN + environment: + - STORAGE_DIR=/app/server/storage + - LLM_PROVIDER=generic-openai + - GENERIC_OPEN_AI_BASE_PATH=http://host.docker.internal:10000/v1 + - GENERIC_OPEN_AI_MODEL_PREF=gpt-4o-mini + - GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=128000 + - GENERIC_OPEN_AI_API_KEY=sk-placeholder + extra_hosts: + - "host.docker.internal:host-gateway" diff --git a/demos/samples_python/multi_turn_rag_agent/main.py b/demos/advanced/multi_turn_rag/main.py similarity index 100% rename from demos/samples_python/multi_turn_rag_agent/main.py rename to demos/advanced/multi_turn_rag/main.py diff --git a/demos/samples_python/multi_turn_rag_agent/mutli-turn-example.png b/demos/advanced/multi_turn_rag/mutli-turn-example.png similarity index 100% rename from demos/samples_python/multi_turn_rag_agent/mutli-turn-example.png rename to demos/advanced/multi_turn_rag/mutli-turn-example.png diff --git a/demos/samples_python/multi_turn_rag_agent/requirements.txt b/demos/advanced/multi_turn_rag/requirements.txt similarity index 100% rename from demos/samples_python/multi_turn_rag_agent/requirements.txt rename to demos/advanced/multi_turn_rag/requirements.txt diff --git a/demos/samples_python/multi_turn_rag_agent/run_demo.sh b/demos/advanced/multi_turn_rag/run_demo.sh similarity index 100% rename from demos/samples_python/multi_turn_rag_agent/run_demo.sh rename to demos/advanced/multi_turn_rag/run_demo.sh diff --git a/demos/samples_python/stock_quote/README.md b/demos/advanced/stock_quote/README.md similarity index 100% rename from demos/samples_python/stock_quote/README.md rename to demos/advanced/stock_quote/README.md diff --git a/demos/samples_python/stock_quote/config.yaml b/demos/advanced/stock_quote/config.yaml similarity index 93% rename from demos/samples_python/stock_quote/config.yaml rename to demos/advanced/stock_quote/config.yaml index 5cd20a44..bef46082 100644 --- a/demos/samples_python/stock_quote/config.yaml +++ b/demos/advanced/stock_quote/config.yaml @@ -1,13 +1,11 @@ -version: v0.1.0 +version: v0.3.0 listeners: - ingress_traffic: - address: 0.0.0.0 + - type: prompt + name: prompt_listener port: 10000 - message_format: openai - timeout: 30s -llm_providers: +model_providers: - access_key: $OPENAI_API_KEY model: openai/gpt-4o diff --git a/demos/advanced/stock_quote/docker-compose.yaml b/demos/advanced/stock_quote/docker-compose.yaml new file mode 100644 index 00000000..ff161662 --- /dev/null +++ b/demos/advanced/stock_quote/docker-compose.yaml @@ -0,0 +1,25 @@ +services: + anythingllm: + image: mintplexlabs/anythingllm + restart: always + ports: + - "3001:3001" + cap_add: + - SYS_ADMIN + environment: + - STORAGE_DIR=/app/server/storage + - LLM_PROVIDER=generic-openai + - GENERIC_OPEN_AI_BASE_PATH=http://host.docker.internal:10000/v1 + - GENERIC_OPEN_AI_MODEL_PREF=gpt-4o-mini + - GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=128000 + - GENERIC_OPEN_AI_API_KEY=sk-placeholder + extra_hosts: + - "host.docker.internal:host-gateway" + + jaeger: + build: + context: ../../shared/jaeger + ports: + - "16686:16686" + - "4317:4317" + - "4318:4318" diff --git a/demos/samples_python/currency_exchange/run_demo.sh b/demos/advanced/stock_quote/run_demo.sh similarity index 100% rename from demos/samples_python/currency_exchange/run_demo.sh rename to demos/advanced/stock_quote/run_demo.sh diff --git a/demos/samples_python/stock_quote/stock_quote_demo.png b/demos/advanced/stock_quote/stock_quote_demo.png similarity index 100% rename from demos/samples_python/stock_quote/stock_quote_demo.png rename to demos/advanced/stock_quote/stock_quote_demo.png diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile b/demos/agent_orchestration/multi_agent_crewai_langchain/Dockerfile similarity index 100% rename from demos/use_cases/multi_agent_with_crewai_langchain/Dockerfile rename to demos/agent_orchestration/multi_agent_crewai_langchain/Dockerfile diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/README.md b/demos/agent_orchestration/multi_agent_crewai_langchain/README.md similarity index 98% rename from demos/use_cases/multi_agent_with_crewai_langchain/README.md rename to demos/agent_orchestration/multi_agent_crewai_langchain/README.md index e36af9a2..deedda23 100644 --- a/demos/use_cases/multi_agent_with_crewai_langchain/README.md +++ b/demos/agent_orchestration/multi_agent_crewai_langchain/README.md @@ -37,7 +37,7 @@ Plano acts as a **framework-agnostic proxy and data plane** that: ```bash # From the demo directory -cd demos/use_cases/multi_agent_with_crewai_langchain +cd demos/agent_orchestration/multi_agent_crewai_langchain # Build and start all services docker-compose up -d diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/config.yaml b/demos/agent_orchestration/multi_agent_crewai_langchain/config.yaml similarity index 100% rename from demos/use_cases/multi_agent_with_crewai_langchain/config.yaml rename to demos/agent_orchestration/multi_agent_crewai_langchain/config.yaml diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/crewai/flight_agent.py b/demos/agent_orchestration/multi_agent_crewai_langchain/crewai/flight_agent.py similarity index 100% rename from demos/use_cases/multi_agent_with_crewai_langchain/crewai/flight_agent.py rename to demos/agent_orchestration/multi_agent_crewai_langchain/crewai/flight_agent.py diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/docker-compose.yaml b/demos/agent_orchestration/multi_agent_crewai_langchain/docker-compose.yaml similarity index 100% rename from demos/use_cases/multi_agent_with_crewai_langchain/docker-compose.yaml rename to demos/agent_orchestration/multi_agent_crewai_langchain/docker-compose.yaml diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/langchain/weather_agent.py b/demos/agent_orchestration/multi_agent_crewai_langchain/langchain/weather_agent.py similarity index 100% rename from demos/use_cases/multi_agent_with_crewai_langchain/langchain/weather_agent.py rename to demos/agent_orchestration/multi_agent_crewai_langchain/langchain/weather_agent.py diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/openai_protocol.py b/demos/agent_orchestration/multi_agent_crewai_langchain/openai_protocol.py similarity index 100% rename from demos/use_cases/multi_agent_with_crewai_langchain/openai_protocol.py rename to demos/agent_orchestration/multi_agent_crewai_langchain/openai_protocol.py diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/pyproject.toml b/demos/agent_orchestration/multi_agent_crewai_langchain/pyproject.toml similarity index 100% rename from demos/use_cases/multi_agent_with_crewai_langchain/pyproject.toml rename to demos/agent_orchestration/multi_agent_crewai_langchain/pyproject.toml diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/traces.png b/demos/agent_orchestration/multi_agent_crewai_langchain/traces.png similarity index 100% rename from demos/use_cases/multi_agent_with_crewai_langchain/traces.png rename to demos/agent_orchestration/multi_agent_crewai_langchain/traces.png diff --git a/demos/use_cases/multi_agent_with_crewai_langchain/uv.lock b/demos/agent_orchestration/multi_agent_crewai_langchain/uv.lock similarity index 100% rename from demos/use_cases/multi_agent_with_crewai_langchain/uv.lock rename to demos/agent_orchestration/multi_agent_crewai_langchain/uv.lock diff --git a/demos/use_cases/travel_agents/Dockerfile b/demos/agent_orchestration/travel_agents/Dockerfile similarity index 100% rename from demos/use_cases/travel_agents/Dockerfile rename to demos/agent_orchestration/travel_agents/Dockerfile diff --git a/demos/use_cases/travel_agents/README.md b/demos/agent_orchestration/travel_agents/README.md similarity index 100% rename from demos/use_cases/travel_agents/README.md rename to demos/agent_orchestration/travel_agents/README.md diff --git a/demos/use_cases/travel_agents/config.yaml b/demos/agent_orchestration/travel_agents/config.yaml similarity index 100% rename from demos/use_cases/travel_agents/config.yaml rename to demos/agent_orchestration/travel_agents/config.yaml diff --git a/demos/use_cases/travel_agents/docker-compose.yaml b/demos/agent_orchestration/travel_agents/docker-compose.yaml similarity index 100% rename from demos/use_cases/travel_agents/docker-compose.yaml rename to demos/agent_orchestration/travel_agents/docker-compose.yaml diff --git a/demos/use_cases/travel_agents/pyproject.toml b/demos/agent_orchestration/travel_agents/pyproject.toml similarity index 100% rename from demos/use_cases/travel_agents/pyproject.toml rename to demos/agent_orchestration/travel_agents/pyproject.toml diff --git a/demos/use_cases/travel_agents/src/travel_agents/flight_agent.py b/demos/agent_orchestration/travel_agents/src/travel_agents/flight_agent.py similarity index 100% rename from demos/use_cases/travel_agents/src/travel_agents/flight_agent.py rename to demos/agent_orchestration/travel_agents/src/travel_agents/flight_agent.py diff --git a/demos/use_cases/travel_agents/src/travel_agents/weather_agent.py b/demos/agent_orchestration/travel_agents/src/travel_agents/weather_agent.py similarity index 100% rename from demos/use_cases/travel_agents/src/travel_agents/weather_agent.py rename to demos/agent_orchestration/travel_agents/src/travel_agents/weather_agent.py diff --git a/demos/use_cases/travel_agents/test.rest b/demos/agent_orchestration/travel_agents/test.rest similarity index 100% rename from demos/use_cases/travel_agents/test.rest rename to demos/agent_orchestration/travel_agents/test.rest diff --git a/demos/use_cases/travel_agents/tracing.png b/demos/agent_orchestration/travel_agents/tracing.png similarity index 100% rename from demos/use_cases/travel_agents/tracing.png rename to demos/agent_orchestration/travel_agents/tracing.png diff --git a/demos/use_cases/travel_agents/travel_agent_request.rest b/demos/agent_orchestration/travel_agents/travel_agent_request.rest similarity index 100% rename from demos/use_cases/travel_agents/travel_agent_request.rest rename to demos/agent_orchestration/travel_agents/travel_agent_request.rest diff --git a/demos/use_cases/travel_agents/uv.lock b/demos/agent_orchestration/travel_agents/uv.lock similarity index 100% rename from demos/use_cases/travel_agents/uv.lock rename to demos/agent_orchestration/travel_agents/uv.lock diff --git a/demos/use_cases/http_filter/Dockerfile b/demos/filter_chains/http_filter/Dockerfile similarity index 100% rename from demos/use_cases/http_filter/Dockerfile rename to demos/filter_chains/http_filter/Dockerfile diff --git a/demos/use_cases/http_filter/README.md b/demos/filter_chains/http_filter/README.md similarity index 100% rename from demos/use_cases/http_filter/README.md rename to demos/filter_chains/http_filter/README.md diff --git a/demos/use_cases/http_filter/config.yaml b/demos/filter_chains/http_filter/config.yaml similarity index 100% rename from demos/use_cases/http_filter/config.yaml rename to demos/filter_chains/http_filter/config.yaml diff --git a/demos/use_cases/http_filter/docker-compose.yaml b/demos/filter_chains/http_filter/docker-compose.yaml similarity index 100% rename from demos/use_cases/http_filter/docker-compose.yaml rename to demos/filter_chains/http_filter/docker-compose.yaml diff --git a/demos/use_cases/http_filter/http.rest b/demos/filter_chains/http_filter/http.rest similarity index 100% rename from demos/use_cases/http_filter/http.rest rename to demos/filter_chains/http_filter/http.rest diff --git a/demos/use_cases/http_filter/mcp_query.rest b/demos/filter_chains/http_filter/mcp_query.rest similarity index 100% rename from demos/use_cases/http_filter/mcp_query.rest rename to demos/filter_chains/http_filter/mcp_query.rest diff --git a/demos/use_cases/http_filter/pyproject.toml b/demos/filter_chains/http_filter/pyproject.toml similarity index 100% rename from demos/use_cases/http_filter/pyproject.toml rename to demos/filter_chains/http_filter/pyproject.toml diff --git a/demos/use_cases/http_filter/sample_queries.md b/demos/filter_chains/http_filter/sample_queries.md similarity index 100% rename from demos/use_cases/http_filter/sample_queries.md rename to demos/filter_chains/http_filter/sample_queries.md diff --git a/demos/use_cases/http_filter/src/rag_agent/__init__.py b/demos/filter_chains/http_filter/src/rag_agent/__init__.py similarity index 100% rename from demos/use_cases/http_filter/src/rag_agent/__init__.py rename to demos/filter_chains/http_filter/src/rag_agent/__init__.py diff --git a/demos/use_cases/http_filter/src/rag_agent/__main__.py b/demos/filter_chains/http_filter/src/rag_agent/__main__.py similarity index 100% rename from demos/use_cases/http_filter/src/rag_agent/__main__.py rename to demos/filter_chains/http_filter/src/rag_agent/__main__.py diff --git a/demos/use_cases/http_filter/src/rag_agent/api.py b/demos/filter_chains/http_filter/src/rag_agent/api.py similarity index 100% rename from demos/use_cases/http_filter/src/rag_agent/api.py rename to demos/filter_chains/http_filter/src/rag_agent/api.py diff --git a/demos/use_cases/http_filter/src/rag_agent/context_builder.py b/demos/filter_chains/http_filter/src/rag_agent/context_builder.py similarity index 100% rename from demos/use_cases/http_filter/src/rag_agent/context_builder.py rename to demos/filter_chains/http_filter/src/rag_agent/context_builder.py diff --git a/demos/use_cases/http_filter/src/rag_agent/input_guards.py b/demos/filter_chains/http_filter/src/rag_agent/input_guards.py similarity index 100% rename from demos/use_cases/http_filter/src/rag_agent/input_guards.py rename to demos/filter_chains/http_filter/src/rag_agent/input_guards.py diff --git a/demos/use_cases/http_filter/src/rag_agent/query_rewriter.py b/demos/filter_chains/http_filter/src/rag_agent/query_rewriter.py similarity index 100% rename from demos/use_cases/http_filter/src/rag_agent/query_rewriter.py rename to demos/filter_chains/http_filter/src/rag_agent/query_rewriter.py diff --git a/demos/use_cases/http_filter/src/rag_agent/rag_agent.py b/demos/filter_chains/http_filter/src/rag_agent/rag_agent.py similarity index 100% rename from demos/use_cases/http_filter/src/rag_agent/rag_agent.py rename to demos/filter_chains/http_filter/src/rag_agent/rag_agent.py diff --git a/demos/use_cases/http_filter/src/rag_agent/sample_knowledge_base.csv b/demos/filter_chains/http_filter/src/rag_agent/sample_knowledge_base.csv similarity index 100% rename from demos/use_cases/http_filter/src/rag_agent/sample_knowledge_base.csv rename to demos/filter_chains/http_filter/src/rag_agent/sample_knowledge_base.csv diff --git a/demos/use_cases/http_filter/start_agents.sh b/demos/filter_chains/http_filter/start_agents.sh similarity index 100% rename from demos/use_cases/http_filter/start_agents.sh rename to demos/filter_chains/http_filter/start_agents.sh diff --git a/demos/use_cases/http_filter/test.rest b/demos/filter_chains/http_filter/test.rest similarity index 100% rename from demos/use_cases/http_filter/test.rest rename to demos/filter_chains/http_filter/test.rest diff --git a/demos/use_cases/http_filter/uv.lock b/demos/filter_chains/http_filter/uv.lock similarity index 100% rename from demos/use_cases/http_filter/uv.lock rename to demos/filter_chains/http_filter/uv.lock diff --git a/demos/use_cases/mcp_filter/Dockerfile b/demos/filter_chains/mcp_filter/Dockerfile similarity index 100% rename from demos/use_cases/mcp_filter/Dockerfile rename to demos/filter_chains/mcp_filter/Dockerfile diff --git a/demos/use_cases/mcp_filter/README.md b/demos/filter_chains/mcp_filter/README.md similarity index 100% rename from demos/use_cases/mcp_filter/README.md rename to demos/filter_chains/mcp_filter/README.md diff --git a/demos/use_cases/mcp_filter/config.yaml b/demos/filter_chains/mcp_filter/config.yaml similarity index 100% rename from demos/use_cases/mcp_filter/config.yaml rename to demos/filter_chains/mcp_filter/config.yaml diff --git a/demos/use_cases/mcp_filter/docker-compose.yaml b/demos/filter_chains/mcp_filter/docker-compose.yaml similarity index 100% rename from demos/use_cases/mcp_filter/docker-compose.yaml rename to demos/filter_chains/mcp_filter/docker-compose.yaml diff --git a/demos/use_cases/mcp_filter/mcp_query.rest b/demos/filter_chains/mcp_filter/mcp_query.rest similarity index 100% rename from demos/use_cases/mcp_filter/mcp_query.rest rename to demos/filter_chains/mcp_filter/mcp_query.rest diff --git a/demos/use_cases/mcp_filter/pyproject.toml b/demos/filter_chains/mcp_filter/pyproject.toml similarity index 100% rename from demos/use_cases/mcp_filter/pyproject.toml rename to demos/filter_chains/mcp_filter/pyproject.toml diff --git a/demos/use_cases/mcp_filter/sample_queries.md b/demos/filter_chains/mcp_filter/sample_queries.md similarity index 100% rename from demos/use_cases/mcp_filter/sample_queries.md rename to demos/filter_chains/mcp_filter/sample_queries.md diff --git a/demos/use_cases/mcp_filter/src/rag_agent/__init__.py b/demos/filter_chains/mcp_filter/src/rag_agent/__init__.py similarity index 100% rename from demos/use_cases/mcp_filter/src/rag_agent/__init__.py rename to demos/filter_chains/mcp_filter/src/rag_agent/__init__.py diff --git a/demos/use_cases/mcp_filter/src/rag_agent/__main__.py b/demos/filter_chains/mcp_filter/src/rag_agent/__main__.py similarity index 100% rename from demos/use_cases/mcp_filter/src/rag_agent/__main__.py rename to demos/filter_chains/mcp_filter/src/rag_agent/__main__.py diff --git a/demos/use_cases/mcp_filter/src/rag_agent/api.py b/demos/filter_chains/mcp_filter/src/rag_agent/api.py similarity index 100% rename from demos/use_cases/mcp_filter/src/rag_agent/api.py rename to demos/filter_chains/mcp_filter/src/rag_agent/api.py diff --git a/demos/use_cases/mcp_filter/src/rag_agent/context_builder.py b/demos/filter_chains/mcp_filter/src/rag_agent/context_builder.py similarity index 100% rename from demos/use_cases/mcp_filter/src/rag_agent/context_builder.py rename to demos/filter_chains/mcp_filter/src/rag_agent/context_builder.py diff --git a/demos/use_cases/mcp_filter/src/rag_agent/input_guards.py b/demos/filter_chains/mcp_filter/src/rag_agent/input_guards.py similarity index 100% rename from demos/use_cases/mcp_filter/src/rag_agent/input_guards.py rename to demos/filter_chains/mcp_filter/src/rag_agent/input_guards.py diff --git a/demos/use_cases/mcp_filter/src/rag_agent/query_rewriter.py b/demos/filter_chains/mcp_filter/src/rag_agent/query_rewriter.py similarity index 100% rename from demos/use_cases/mcp_filter/src/rag_agent/query_rewriter.py rename to demos/filter_chains/mcp_filter/src/rag_agent/query_rewriter.py diff --git a/demos/use_cases/mcp_filter/src/rag_agent/rag_agent.py b/demos/filter_chains/mcp_filter/src/rag_agent/rag_agent.py similarity index 100% rename from demos/use_cases/mcp_filter/src/rag_agent/rag_agent.py rename to demos/filter_chains/mcp_filter/src/rag_agent/rag_agent.py diff --git a/demos/use_cases/mcp_filter/src/rag_agent/sample_knowledge_base.csv b/demos/filter_chains/mcp_filter/src/rag_agent/sample_knowledge_base.csv similarity index 100% rename from demos/use_cases/mcp_filter/src/rag_agent/sample_knowledge_base.csv rename to demos/filter_chains/mcp_filter/src/rag_agent/sample_knowledge_base.csv diff --git a/demos/use_cases/mcp_filter/start_agents.sh b/demos/filter_chains/mcp_filter/start_agents.sh similarity index 100% rename from demos/use_cases/mcp_filter/start_agents.sh rename to demos/filter_chains/mcp_filter/start_agents.sh diff --git a/demos/use_cases/mcp_filter/test.rest b/demos/filter_chains/mcp_filter/test.rest similarity index 100% rename from demos/use_cases/mcp_filter/test.rest rename to demos/filter_chains/mcp_filter/test.rest diff --git a/demos/use_cases/mcp_filter/uv.lock b/demos/filter_chains/mcp_filter/uv.lock similarity index 100% rename from demos/use_cases/mcp_filter/uv.lock rename to demos/filter_chains/mcp_filter/uv.lock diff --git a/demos/use_cases/llm_routing/README.md b/demos/getting_started/llm_gateway/README.md similarity index 72% rename from demos/use_cases/llm_routing/README.md rename to demos/getting_started/llm_gateway/README.md index 4b431603..e87467fc 100644 --- a/demos/use_cases/llm_routing/README.md +++ b/demos/getting_started/llm_gateway/README.md @@ -7,7 +7,7 @@ This demo shows how you can use Plano gateway to manage keys and route to upstre ```sh sh run_demo.sh ``` -1. Navigate to http://localhost:18080/ +1. Navigate to http://localhost:3001/ Following screen shows an example of interaction with Plano gateway showing dynamic routing. You can select between different LLMs using "override model" option in the chat UI. @@ -32,7 +32,7 @@ $ curl --header 'Content-Type: application/json' \ "messages": { "role": "assistant", "tool_calls": null, - "content": "Hello! How can I assist you today? Let's chat about anything you'd like. 😊" + "content": "Hello! How can I assist you today? Let's chat about anything you'd like." }, "finish_reason": "stop" } @@ -47,11 +47,7 @@ $ curl --header 'Content-Type: application/json' \ ``` # Observability -Plano gateway publishes stats endpoint at http://localhost:19901/stats. In this demo we are using prometheus to pull stats from Plano and we are using grafana to visualize the stats in dashboard. To see grafana dashboard follow instructions below, - -1. Navigate to http://localhost:3000/ to open grafana UI (use admin/grafana as credentials) -1. From grafana left nav click on dashboards and select "Intelligent Gateway Overview" to view Plano gateway stats -1. For tracing you can head over to http://localhost:16686/ to view recent traces. +For tracing you can head over to http://localhost:16686/ to view recent traces. Following is a screenshot of tracing UI showing call received by Plano gateway and making upstream call to LLM, diff --git a/demos/use_cases/llm_routing/config.yaml b/demos/getting_started/llm_gateway/config.yaml similarity index 100% rename from demos/use_cases/llm_routing/config.yaml rename to demos/getting_started/llm_gateway/config.yaml diff --git a/demos/use_cases/llm_routing/docker-compose.yaml b/demos/getting_started/llm_gateway/docker-compose.yaml similarity index 86% rename from demos/use_cases/llm_routing/docker-compose.yaml rename to demos/getting_started/llm_gateway/docker-compose.yaml index 784578d0..52723fbf 100644 --- a/demos/use_cases/llm_routing/docker-compose.yaml +++ b/demos/getting_started/llm_gateway/docker-compose.yaml @@ -37,13 +37,3 @@ services: - "16686:16686" - "4317:4317" - "4318:4318" - - prometheus: - build: - context: ../../shared/prometheus - - grafana: - build: - context: ../../shared/grafana - ports: - - "3000:3000" diff --git a/demos/use_cases/llm_routing/jaeger_tracing_llm_routing.png b/demos/getting_started/llm_gateway/jaeger_tracing_llm_routing.png similarity index 100% rename from demos/use_cases/llm_routing/jaeger_tracing_llm_routing.png rename to demos/getting_started/llm_gateway/jaeger_tracing_llm_routing.png diff --git a/demos/use_cases/llm_routing/llm_routing_demo.png b/demos/getting_started/llm_gateway/llm_routing_demo.png similarity index 100% rename from demos/use_cases/llm_routing/llm_routing_demo.png rename to demos/getting_started/llm_gateway/llm_routing_demo.png diff --git a/demos/use_cases/llm_routing/run_demo.sh b/demos/getting_started/llm_gateway/run_demo.sh similarity index 100% rename from demos/use_cases/llm_routing/run_demo.sh rename to demos/getting_started/llm_gateway/run_demo.sh diff --git a/demos/samples_python/weather_forecast/Dockerfile b/demos/getting_started/weather_forecast/Dockerfile similarity index 100% rename from demos/samples_python/weather_forecast/Dockerfile rename to demos/getting_started/weather_forecast/Dockerfile diff --git a/demos/getting_started/weather_forecast/README.md b/demos/getting_started/weather_forecast/README.md new file mode 100644 index 00000000..8a9eb6c0 --- /dev/null +++ b/demos/getting_started/weather_forecast/README.md @@ -0,0 +1,28 @@ +# Function calling + +This demo shows how you can use Plano's core function calling capabilities. + +# Starting the demo + +1. Please make sure the [pre-requisites](https://github.com/katanemo/arch/?tab=readme-ov-file#prerequisites) are installed correctly +2. Start Plano + +3. ```sh + sh run_demo.sh + ``` +4. Navigate to http://localhost:3001/ +5. You can type in queries like "how is the weather?" + +Here is a sample interaction, +image + +## Tracing + +To see a tracing dashboard, navigate to http://localhost:16686/ to open Jaeger UI. + +### Stopping Demo + +1. To end the demo, run the following command: + ```sh + sh run_demo.sh down + ``` diff --git a/demos/samples_python/weather_forecast/config.yaml b/demos/getting_started/weather_forecast/config.yaml similarity index 89% rename from demos/samples_python/weather_forecast/config.yaml rename to demos/getting_started/weather_forecast/config.yaml index eba38764..69451552 100644 --- a/demos/samples_python/weather_forecast/config.yaml +++ b/demos/getting_started/weather_forecast/config.yaml @@ -1,17 +1,13 @@ -version: v0.1.0 +version: v0.3.0 listeners: - ingress_traffic: - address: 0.0.0.0 + - type: prompt + name: prompt_listener port: 10000 - message_format: openai - timeout: 30s - egress_traffic: - address: 0.0.0.0 + - type: model + name: model_listener port: 12000 - message_format: openai - timeout: 30s endpoints: weather_forecast_service: @@ -22,7 +18,7 @@ overrides: # confidence threshold for prompt target intent matching prompt_target_intent_matching_threshold: 0.6 -llm_providers: +model_providers: - access_key: $GROQ_API_KEY model: groq/llama-3.2-3b-preview diff --git a/demos/getting_started/weather_forecast/docker-compose.yaml b/demos/getting_started/weather_forecast/docker-compose.yaml new file mode 100644 index 00000000..84074ab9 --- /dev/null +++ b/demos/getting_started/weather_forecast/docker-compose.yaml @@ -0,0 +1,27 @@ +services: + weather_forecast_service: + build: + context: ./ + environment: + - OLTP_HOST=http://jaeger:4317 + extra_hosts: + - "host.docker.internal:host-gateway" + ports: + - "18083:80" + + anythingllm: + image: mintplexlabs/anythingllm + restart: always + ports: + - "3001:3001" + cap_add: + - SYS_ADMIN + environment: + - STORAGE_DIR=/app/server/storage + - LLM_PROVIDER=generic-openai + - GENERIC_OPEN_AI_BASE_PATH=http://host.docker.internal:10000/v1 + - GENERIC_OPEN_AI_MODEL_PREF=gpt-4o-mini + - GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=128000 + - GENERIC_OPEN_AI_API_KEY=sk-placeholder + extra_hosts: + - "host.docker.internal:host-gateway" diff --git a/demos/samples_python/weather_forecast/hurl_tests/simple.hurl b/demos/getting_started/weather_forecast/hurl_tests/simple.hurl similarity index 100% rename from demos/samples_python/weather_forecast/hurl_tests/simple.hurl rename to demos/getting_started/weather_forecast/hurl_tests/simple.hurl diff --git a/demos/samples_python/weather_forecast/hurl_tests/simple_stream.hurl b/demos/getting_started/weather_forecast/hurl_tests/simple_stream.hurl similarity index 100% rename from demos/samples_python/weather_forecast/hurl_tests/simple_stream.hurl rename to demos/getting_started/weather_forecast/hurl_tests/simple_stream.hurl diff --git a/demos/samples_python/weather_forecast/main.py b/demos/getting_started/weather_forecast/main.py similarity index 100% rename from demos/samples_python/weather_forecast/main.py rename to demos/getting_started/weather_forecast/main.py diff --git a/demos/samples_python/weather_forecast/pyproject.toml b/demos/getting_started/weather_forecast/pyproject.toml similarity index 100% rename from demos/samples_python/weather_forecast/pyproject.toml rename to demos/getting_started/weather_forecast/pyproject.toml diff --git a/demos/samples_python/weather_forecast/run_demo.sh b/demos/getting_started/weather_forecast/run_demo.sh similarity index 100% rename from demos/samples_python/weather_forecast/run_demo.sh rename to demos/getting_started/weather_forecast/run_demo.sh diff --git a/demos/samples_python/weather_forecast/uv.lock b/demos/getting_started/weather_forecast/uv.lock similarity index 100% rename from demos/samples_python/weather_forecast/uv.lock rename to demos/getting_started/weather_forecast/uv.lock diff --git a/demos/use_cases/ollama/README.md b/demos/integrations/ollama/README.md similarity index 100% rename from demos/use_cases/ollama/README.md rename to demos/integrations/ollama/README.md diff --git a/demos/use_cases/ollama/config.yaml b/demos/integrations/ollama/config.yaml similarity index 90% rename from demos/use_cases/ollama/config.yaml rename to demos/integrations/ollama/config.yaml index 911af238..c86fe002 100644 --- a/demos/use_cases/ollama/config.yaml +++ b/demos/integrations/ollama/config.yaml @@ -1,13 +1,11 @@ -version: v0.1.0 +version: v0.3.0 listeners: - egress_traffic: - address: 0.0.0.0 + - type: model + name: model_listener port: 12000 - message_format: openai - timeout: 30s -llm_providers: +model_providers: - model: my_llm_provider/llama3.2 provider_interface: openai diff --git a/demos/integrations/ollama/docker-compose.yaml b/demos/integrations/ollama/docker-compose.yaml new file mode 100644 index 00000000..c272dbca --- /dev/null +++ b/demos/integrations/ollama/docker-compose.yaml @@ -0,0 +1,25 @@ +services: + anythingllm: + image: mintplexlabs/anythingllm + restart: always + ports: + - "3001:3001" + cap_add: + - SYS_ADMIN + environment: + - STORAGE_DIR=/app/server/storage + - LLM_PROVIDER=generic-openai + - GENERIC_OPEN_AI_BASE_PATH=http://host.docker.internal:12000/v1 + - GENERIC_OPEN_AI_MODEL_PREF=gpt-4o-mini + - GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=128000 + - GENERIC_OPEN_AI_API_KEY=sk-placeholder + extra_hosts: + - "host.docker.internal:host-gateway" + + jaeger: + build: + context: ../../shared/jaeger + ports: + - "16686:16686" + - "4317:4317" + - "4318:4318" diff --git a/demos/samples_python/stock_quote/run_demo.sh b/demos/integrations/ollama/run_demo.sh similarity index 100% rename from demos/samples_python/stock_quote/run_demo.sh rename to demos/integrations/ollama/run_demo.sh diff --git a/demos/use_cases/spotify_bearer_auth/README.md b/demos/integrations/spotify_bearer_auth/README.md similarity index 100% rename from demos/use_cases/spotify_bearer_auth/README.md rename to demos/integrations/spotify_bearer_auth/README.md diff --git a/demos/use_cases/spotify_bearer_auth/config.yaml b/demos/integrations/spotify_bearer_auth/config.yaml similarity index 95% rename from demos/use_cases/spotify_bearer_auth/config.yaml rename to demos/integrations/spotify_bearer_auth/config.yaml index b848d718..5b1f82a9 100644 --- a/demos/use_cases/spotify_bearer_auth/config.yaml +++ b/demos/integrations/spotify_bearer_auth/config.yaml @@ -1,11 +1,9 @@ -version: v0.1.0 +version: v0.3.0 listeners: - ingress_traffic: - address: 0.0.0.0 + - type: prompt + name: prompt_listener port: 10000 - message_format: openai - timeout: 30s overrides: optimize_context_window: true @@ -84,14 +82,14 @@ system_prompt: | Make sure your output is valid Markdown. And don't say "formatted in Markdown". Thanks! -llm_providers: +model_providers: - access_key: $OPENAI_API_KEY model: openai/gpt-4o default: true prompt_targets: - name: get_new_releases - description: Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s “Browse” tab). + description: Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player's "Browse" tab). parameters: - name: country description: the country where the album is released @@ -121,3 +119,6 @@ prompt_targets: path: /v1/artists/{artist_id}/top-tracks http_headers: Authorization: "Bearer $SPOTIFY_CLIENT_KEY" + +tracing: + random_sampling: 100 diff --git a/demos/integrations/spotify_bearer_auth/docker-compose.yaml b/demos/integrations/spotify_bearer_auth/docker-compose.yaml new file mode 100644 index 00000000..ff161662 --- /dev/null +++ b/demos/integrations/spotify_bearer_auth/docker-compose.yaml @@ -0,0 +1,25 @@ +services: + anythingllm: + image: mintplexlabs/anythingllm + restart: always + ports: + - "3001:3001" + cap_add: + - SYS_ADMIN + environment: + - STORAGE_DIR=/app/server/storage + - LLM_PROVIDER=generic-openai + - GENERIC_OPEN_AI_BASE_PATH=http://host.docker.internal:10000/v1 + - GENERIC_OPEN_AI_MODEL_PREF=gpt-4o-mini + - GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=128000 + - GENERIC_OPEN_AI_API_KEY=sk-placeholder + extra_hosts: + - "host.docker.internal:host-gateway" + + jaeger: + build: + context: ../../shared/jaeger + ports: + - "16686:16686" + - "4317:4317" + - "4318:4318" diff --git a/demos/use_cases/ollama/run_demo.sh b/demos/integrations/spotify_bearer_auth/run_demo.sh similarity index 100% rename from demos/use_cases/ollama/run_demo.sh rename to demos/integrations/spotify_bearer_auth/run_demo.sh diff --git a/demos/use_cases/spotify_bearer_auth/spotify_bearer_auth.png b/demos/integrations/spotify_bearer_auth/spotify_bearer_auth.png similarity index 100% rename from demos/use_cases/spotify_bearer_auth/spotify_bearer_auth.png rename to demos/integrations/spotify_bearer_auth/spotify_bearer_auth.png diff --git a/demos/use_cases/claude_code_router/README.md b/demos/llm_routing/claude_code_router/README.md similarity index 99% rename from demos/use_cases/claude_code_router/README.md rename to demos/llm_routing/claude_code_router/README.md index ac7a2f7c..d7aeab9e 100644 --- a/demos/use_cases/claude_code_router/README.md +++ b/demos/llm_routing/claude_code_router/README.md @@ -47,7 +47,7 @@ docker --version ```bash # Clone and navigate to demo git clone https://github.com/katanemo/arch.git -cd arch/demos/use_cases/claude_code +cd arch/demos/llm_routing/claude_code_router ``` ### Step 2: Set API Keys diff --git a/demos/use_cases/claude_code_router/claude_code.png b/demos/llm_routing/claude_code_router/claude_code.png similarity index 100% rename from demos/use_cases/claude_code_router/claude_code.png rename to demos/llm_routing/claude_code_router/claude_code.png diff --git a/demos/use_cases/claude_code_router/config.yaml b/demos/llm_routing/claude_code_router/config.yaml similarity index 89% rename from demos/use_cases/claude_code_router/config.yaml rename to demos/llm_routing/claude_code_router/config.yaml index e41db0c0..be763325 100644 --- a/demos/use_cases/claude_code_router/config.yaml +++ b/demos/llm_routing/claude_code_router/config.yaml @@ -1,13 +1,11 @@ -version: v0.1 +version: v0.3.0 listeners: - egress_traffic: - address: 0.0.0.0 + - type: model + name: model_listener port: 12000 - message_format: openai - timeout: 30s -llm_providers: +model_providers: # OpenAI Models - model: openai/gpt-5-2025-08-07 access_key: $OPENAI_API_KEY diff --git a/demos/use_cases/claude_code_router/model_selection.png b/demos/llm_routing/claude_code_router/model_selection.png similarity index 100% rename from demos/use_cases/claude_code_router/model_selection.png rename to demos/llm_routing/claude_code_router/model_selection.png diff --git a/demos/use_cases/claude_code_router/pretty_model_resolution.sh b/demos/llm_routing/claude_code_router/pretty_model_resolution.sh similarity index 100% rename from demos/use_cases/claude_code_router/pretty_model_resolution.sh rename to demos/llm_routing/claude_code_router/pretty_model_resolution.sh diff --git a/demos/use_cases/model_alias_routing/README.md b/demos/llm_routing/model_alias_routing/README.md similarity index 100% rename from demos/use_cases/model_alias_routing/README.md rename to demos/llm_routing/model_alias_routing/README.md diff --git a/demos/use_cases/model_alias_routing/config_with_aliases.yaml b/demos/llm_routing/model_alias_routing/config_with_aliases.yaml similarity index 94% rename from demos/use_cases/model_alias_routing/config_with_aliases.yaml rename to demos/llm_routing/model_alias_routing/config_with_aliases.yaml index 891fa4fe..53b679ae 100644 --- a/demos/use_cases/model_alias_routing/config_with_aliases.yaml +++ b/demos/llm_routing/model_alias_routing/config_with_aliases.yaml @@ -1,13 +1,11 @@ -version: v0.1 +version: v0.3.0 listeners: - egress_traffic: - address: 0.0.0.0 + - type: model + name: model_listener port: 12000 - message_format: openai - timeout: 30s -llm_providers: +model_providers: # OpenAI Models - model: openai/gpt-5-mini-2025-08-07 @@ -95,3 +93,6 @@ model_aliases: # Alias for grok testing arch.grok.v1: target: grok-4-0709 + +tracing: + random_sampling: 100 diff --git a/demos/use_cases/model_alias_routing/run_demo.sh b/demos/llm_routing/model_alias_routing/run_demo.sh similarity index 100% rename from demos/use_cases/model_alias_routing/run_demo.sh rename to demos/llm_routing/model_alias_routing/run_demo.sh diff --git a/demos/use_cases/preference_based_routing/README.md b/demos/llm_routing/preference_based_routing/README.md similarity index 93% rename from demos/use_cases/preference_based_routing/README.md rename to demos/llm_routing/preference_based_routing/README.md index 0f4530a1..4cf2ec05 100644 --- a/demos/use_cases/preference_based_routing/README.md +++ b/demos/llm_routing/preference_based_routing/README.md @@ -8,7 +8,7 @@ Make sure your machine is up to date with [latest version of plano]([url](https: 1. start anythingllm ```bash -(venv) $ cd demos/use_cases/preference_based_routing +(venv) $ cd demos/llm_routing/preference_based_routing (venv) $ docker compose up -d ``` 2. start plano in the foreground @@ -16,7 +16,7 @@ Make sure your machine is up to date with [latest version of plano]([url](https: (venv) $ planoai up --service plano --foreground # Or if installed with uv: uvx planoai up --service plano --foreground 2025-05-30 18:00:09,953 - planoai.main - INFO - Starting plano cli version: 0.4.6 -2025-05-30 18:00:09,953 - planoai.main - INFO - Validating /Users/adilhafeez/src/intelligent-prompt-gateway/demos/use_cases/preference_based_routing/config.yaml +2025-05-30 18:00:09,953 - planoai.main - INFO - Validating /Users/adilhafeez/src/intelligent-prompt-gateway/demos/llm_routing/preference_based_routing/config.yaml 2025-05-30 18:00:10,422 - cli.core - INFO - Starting plano gateway, image name: plano, tag: katanemo/plano:0.4.6 2025-05-30 18:00:10,662 - cli.core - INFO - plano status: running, health status: starting 2025-05-30 18:00:11,712 - cli.core - INFO - plano status: running, health status: starting diff --git a/demos/use_cases/preference_based_routing/config.yaml b/demos/llm_routing/preference_based_routing/config.yaml similarity index 84% rename from demos/use_cases/preference_based_routing/config.yaml rename to demos/llm_routing/preference_based_routing/config.yaml index cb9f685a..38e8920a 100644 --- a/demos/use_cases/preference_based_routing/config.yaml +++ b/demos/llm_routing/preference_based_routing/config.yaml @@ -1,13 +1,11 @@ -version: v0.1.0 +version: v0.3.0 listeners: - egress_traffic: - address: 0.0.0.0 + - type: model + name: model_listener port: 12000 - message_format: openai - timeout: 30s -llm_providers: +model_providers: - model: openai/gpt-4o-mini access_key: $OPENAI_API_KEY diff --git a/demos/use_cases/preference_based_routing/docker-compose.yaml b/demos/llm_routing/preference_based_routing/docker-compose.yaml similarity index 87% rename from demos/use_cases/preference_based_routing/docker-compose.yaml rename to demos/llm_routing/preference_based_routing/docker-compose.yaml index 37af57e2..7c88594a 100644 --- a/demos/use_cases/preference_based_routing/docker-compose.yaml +++ b/demos/llm_routing/preference_based_routing/docker-compose.yaml @@ -40,13 +40,3 @@ services: - "16686:16686" - "4317:4317" - "4318:4318" - - # prometheus: - # build: - # context: ../../shared/prometheus - - # grafana: - # build: - # context: ../../shared/grafana - # ports: - # - "3000:3000" diff --git a/demos/use_cases/preference_based_routing/hurl_tests/simple.hurl b/demos/llm_routing/preference_based_routing/hurl_tests/simple.hurl similarity index 100% rename from demos/use_cases/preference_based_routing/hurl_tests/simple.hurl rename to demos/llm_routing/preference_based_routing/hurl_tests/simple.hurl diff --git a/demos/use_cases/preference_based_routing/hurl_tests/simple_stream.hurl b/demos/llm_routing/preference_based_routing/hurl_tests/simple_stream.hurl similarity index 100% rename from demos/use_cases/preference_based_routing/hurl_tests/simple_stream.hurl rename to demos/llm_routing/preference_based_routing/hurl_tests/simple_stream.hurl diff --git a/demos/use_cases/preference_based_routing/plano_config_local.yaml b/demos/llm_routing/preference_based_routing/plano_config_local.yaml similarity index 87% rename from demos/use_cases/preference_based_routing/plano_config_local.yaml rename to demos/llm_routing/preference_based_routing/plano_config_local.yaml index b965cd0c..0a3db8bf 100644 --- a/demos/use_cases/preference_based_routing/plano_config_local.yaml +++ b/demos/llm_routing/preference_based_routing/plano_config_local.yaml @@ -1,17 +1,15 @@ -version: v0.1.0 +version: v0.3.0 routing: model: Arch-Router llm_provider: arch-router listeners: - egress_traffic: - address: 0.0.0.0 + - type: model + name: model_listener port: 12000 - message_format: openai - timeout: 30s -llm_providers: +model_providers: - name: arch-router model: arch/hf.co/katanemo/Arch-Router-1.5B.gguf:Q4_K_M diff --git a/demos/use_cases/preference_based_routing/test_router_endpoint.rest b/demos/llm_routing/preference_based_routing/test_router_endpoint.rest similarity index 100% rename from demos/use_cases/preference_based_routing/test_router_endpoint.rest rename to demos/llm_routing/preference_based_routing/test_router_endpoint.rest diff --git a/demos/samples_java/weather_forcecast_service/.classpath b/demos/samples_java/weather_forcecast_service/.classpath deleted file mode 100644 index e16ec965..00000000 --- a/demos/samples_java/weather_forcecast_service/.classpath +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demos/samples_java/weather_forcecast_service/.project b/demos/samples_java/weather_forcecast_service/.project deleted file mode 100644 index efcdddf7..00000000 --- a/demos/samples_java/weather_forcecast_service/.project +++ /dev/null @@ -1,34 +0,0 @@ - - - weather-forecast-service - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - - - 1742579142020 - - 30 - - org.eclipse.core.resources.regexFilterMatcher - node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ - - - - diff --git a/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.core.resources.prefs b/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index abdea9ac..00000000 --- a/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,4 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding/=UTF-8 diff --git a/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.jdt.apt.core.prefs b/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.jdt.apt.core.prefs deleted file mode 100644 index d4313d4b..00000000 --- a/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.jdt.apt.core.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.apt.aptEnabled=false diff --git a/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.jdt.core.prefs b/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 951833c6..00000000 --- a/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,10 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.methodParameters=generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore -org.eclipse.jdt.core.compiler.processAnnotations=disabled -org.eclipse.jdt.core.compiler.release=disabled -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.m2e.core.prefs b/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1..00000000 --- a/demos/samples_java/weather_forcecast_service/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/demos/samples_java/weather_forcecast_service/.vscode/launch.json b/demos/samples_java/weather_forcecast_service/.vscode/launch.json deleted file mode 100644 index a9232a53..00000000 --- a/demos/samples_java/weather_forcecast_service/.vscode/launch.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "java", - "name": "WeatherForecastApplication", - "request": "launch", - "mainClass": "weather.WeatherForecastApplication", - "projectName": "weather-forecast-service" - } - ] -} diff --git a/demos/samples_java/weather_forcecast_service/Dockerfile b/demos/samples_java/weather_forcecast_service/Dockerfile deleted file mode 100644 index 909d9796..00000000 --- a/demos/samples_java/weather_forcecast_service/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# Stage 1: Build the application using Maven -FROM maven:3.8.7-openjdk-18-slim AS build -WORKDIR /app -# Copy pom.xml and download dependencies first (caching) -COPY pom.xml . -RUN mvn dependency:go-offline -# Copy the source code and build the application -COPY src ./src -RUN mvn clean package -DskipTests - -# Stage 2: Run the application using a slim JDK image -FROM openjdk:17-jdk-slim -WORKDIR /app -# Copy the built jar from the previous stage -COPY --from=build /app/target/weather-forecast-service-0.0.1-SNAPSHOT.jar app.jar -# Expose the port on which the app runs (default Spring Boot is 8080) - -# Expose the application port and the debug port -EXPOSE 8081 -EXPOSE 5005 - -# Start the application with remote debugging enabled -ENTRYPOINT ["java", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005", "-jar", "app.jar"] diff --git a/demos/samples_java/weather_forcecast_service/config.yaml b/demos/samples_java/weather_forcecast_service/config.yaml deleted file mode 100644 index 68c3841d..00000000 --- a/demos/samples_java/weather_forcecast_service/config.yaml +++ /dev/null @@ -1,50 +0,0 @@ -version: v0.1.0 - -listeners: - ingress_traffic: - address: 0.0.0.0 - port: 10000 - message_format: openai - timeout: 30s - -# Centralized way to manage LLMs, manage keys, retry logic, failover and limits in a central way -llm_providers: - - access_key: $OPENAI_API_KEY - model: openai/gpt-4o-mini - default: true - -# Arch creates a round-robin load balancing between different endpoints, managed via the cluster subsystem. -endpoints: - weather_forecast_service: - # value could be ip address or a hostname with port - # this could also be a list of endpoints for load balancing - # for example endpoint: [ ip1:port, ip2:port ] - endpoint: host.docker.internal:18081 - # max time to wait for a connection to be established - connect_timeout: 0.005s - -# default system prompt used by all prompt targets -system_prompt: | - You are a helpful weather assistant. - -prompt_targets: - - name: weather_forecast - description: get the weather forecast - parameters: - - name: location - description: the location for which to get the weather forecast - required: true - type: string - format: City, State - - name: days - description: the number of days for the forecast - required: true - type: int - endpoint: - name: weather_forecast_service - path: /weather - http_method: POST - -tracing: - random_sampling: 100 - trace_arch_internal: true diff --git a/demos/samples_java/weather_forcecast_service/docker-compose.yaml b/demos/samples_java/weather_forcecast_service/docker-compose.yaml deleted file mode 100644 index b3df0266..00000000 --- a/demos/samples_java/weather_forcecast_service/docker-compose.yaml +++ /dev/null @@ -1,29 +0,0 @@ -services: - weather_forecast_service: - build: - context: . - dockerfile: Dockerfile - ports: - - "18081:8081" - - "5005:5005" - - chatbot_ui: - build: - context: ../../shared/chatbot_ui - dockerfile: Dockerfile - ports: - - "18080:8080" - environment: - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - jaeger: - build: - context: ../../shared/jaeger - ports: - - "16686:16686" - - "4317:4317" - - "4318:4318" diff --git a/demos/samples_java/weather_forcecast_service/pom.xml b/demos/samples_java/weather_forcecast_service/pom.xml deleted file mode 100644 index db65d95a..00000000 --- a/demos/samples_java/weather_forcecast_service/pom.xml +++ /dev/null @@ -1,49 +0,0 @@ - - 4.0.0 - - weather - weather-forecast-service - 0.0.1-SNAPSHOT - jar - - - org.springframework.boot - spring-boot-starter-parent - 2.7.10 - - - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - true - lines,vars,source - - - - - diff --git a/demos/samples_java/weather_forcecast_service/src/main/java/weather/WeatherForecastApplication.java b/demos/samples_java/weather_forcecast_service/src/main/java/weather/WeatherForecastApplication.java deleted file mode 100644 index b31a3444..00000000 --- a/demos/samples_java/weather_forcecast_service/src/main/java/weather/WeatherForecastApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -// File: src/main/java/com/example/weather/WeatherForecastApplication.java -package weather; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class WeatherForecastApplication { - public static void main(String[] args) { - SpringApplication.run(WeatherForecastApplication.class, args); - } -} diff --git a/demos/samples_java/weather_forcecast_service/src/main/java/weather/controller/WeatherController.java b/demos/samples_java/weather_forcecast_service/src/main/java/weather/controller/WeatherController.java deleted file mode 100644 index d7caeaf9..00000000 --- a/demos/samples_java/weather_forcecast_service/src/main/java/weather/controller/WeatherController.java +++ /dev/null @@ -1,53 +0,0 @@ -package weather.controller; - -import weather.model.DayForecast; -import weather.model.WeatherForecastResponse; -import weather.model.WeatherRequest; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -@RestController -public class WeatherController { - - private Random random = new Random(); - - @PostMapping("/weather") - public WeatherForecastResponse getRandomWeatherForecast(@RequestBody WeatherRequest req) { - WeatherForecastResponse response = new WeatherForecastResponse(); - response.setLocation(req.getLocation()); - response.setUnits(req.getUnits()); - - List forecasts = new ArrayList<>(); - for (int i = 0; i < req.getDays(); i++) { - // Generate a random min temperature between 50 and 89 (inclusive) - int minTemp = random.nextInt(90 - 50) + 50; - // Generate a max temperature between (minTemp + 5) and (minTemp + 19) - int maxTemp = random.nextInt(15) + (minTemp + 5); - - double finalMinTemp = minTemp; - double finalMaxTemp = maxTemp; - - // Convert to Celsius if necessary - if (req.getUnits().equalsIgnoreCase("celsius") || req.getUnits().equalsIgnoreCase("c")) { - finalMinTemp = (minTemp - 32) * 5.0 / 9.0; - finalMaxTemp = (maxTemp - 32) * 5.0 / 9.0; - } - - DayForecast dayForecast = new DayForecast(); - dayForecast.setDate(LocalDate.now().plusDays(i).toString()); - dayForecast.setMin(finalMinTemp); - dayForecast.setMax(finalMaxTemp); - dayForecast.setUnits(req.getUnits()); - - forecasts.add(dayForecast); - } - response.setDailyForecast(forecasts); - return response; - } -} diff --git a/demos/samples_java/weather_forcecast_service/src/main/java/weather/model/DayForecast.java b/demos/samples_java/weather_forcecast_service/src/main/java/weather/model/DayForecast.java deleted file mode 100644 index 0077a3a7..00000000 --- a/demos/samples_java/weather_forcecast_service/src/main/java/weather/model/DayForecast.java +++ /dev/null @@ -1,40 +0,0 @@ -package weather.model; - -public class DayForecast { - private String date; - private String units; - private double min; - private double max; - - public DayForecast() {} - - // Getters and setters - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public String getUnits() { - return units; - } - - public void setUnits(String units) { - this.units = units; - } - - public double getMin() { - return min; - } - public void setMin(double min) { - this.min = min; - } - public double getMax() { - return max; - } - public void setMax(double max) { - this.max = max; - } -} diff --git a/demos/samples_java/weather_forcecast_service/src/main/java/weather/model/WeatherForecastResponse.java b/demos/samples_java/weather_forcecast_service/src/main/java/weather/model/WeatherForecastResponse.java deleted file mode 100644 index 3fc4d116..00000000 --- a/demos/samples_java/weather_forcecast_service/src/main/java/weather/model/WeatherForecastResponse.java +++ /dev/null @@ -1,37 +0,0 @@ -package weather.model; - -import java.util.List; - -public class WeatherForecastResponse { - private String location; - private String units; - private List forecast; - - // Default Constructor - public WeatherForecastResponse() {} - - // Getters and Setters - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getUnits() { - return units; - } - - public void setUnits(String units) { - this.units = units; - } - - public List getDailyForecast() { - return forecast; - } - - public void setDailyForecast(List forecast) { - this.forecast = forecast; - } -} diff --git a/demos/samples_java/weather_forcecast_service/src/main/java/weather/model/WeatherRequest.java b/demos/samples_java/weather_forcecast_service/src/main/java/weather/model/WeatherRequest.java deleted file mode 100644 index 8b5e1340..00000000 --- a/demos/samples_java/weather_forcecast_service/src/main/java/weather/model/WeatherRequest.java +++ /dev/null @@ -1,29 +0,0 @@ -package weather.model; - -public class WeatherRequest { - private String location; - private int days = 7; - private String units = "Farenheit"; - - public WeatherRequest() {} - - // Getters and setters - public String getLocation() { - return location; - } - public void setLocation(String location) { - this.location = location; - } - public int getDays() { - return days; - } - public void setDays(int days) { - this.days = days; - } - public String getUnits() { - return units; - } - public void setUnits(String units) { - this.units = units; - } -} diff --git a/demos/samples_java/weather_forcecast_service/src/main/resources/application.properties b/demos/samples_java/weather_forcecast_service/src/main/resources/application.properties deleted file mode 100644 index 4d360de1..00000000 --- a/demos/samples_java/weather_forcecast_service/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -server.port=8081 diff --git a/demos/samples_python/currency_exchange/docker-compose.yaml b/demos/samples_python/currency_exchange/docker-compose.yaml deleted file mode 100644 index bde2b082..00000000 --- a/demos/samples_python/currency_exchange/docker-compose.yaml +++ /dev/null @@ -1,21 +0,0 @@ -services: - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environemtn as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - jaeger: - build: - context: ../../shared/jaeger - ports: - - "16686:16686" - - "4317:4317" - - "4318:4318" diff --git a/demos/samples_python/multi_turn_rag_agent/docker-compose.yaml b/demos/samples_python/multi_turn_rag_agent/docker-compose.yaml deleted file mode 100644 index 4232ff9e..00000000 --- a/demos/samples_python/multi_turn_rag_agent/docker-compose.yaml +++ /dev/null @@ -1,24 +0,0 @@ -services: - rag_energy_source_agent: - build: - context: . - dockerfile: Dockerfile - ports: - - "18083:80" - healthcheck: - test: ["CMD", "curl" ,"http://localhost:80/healthz"] - interval: 5s - retries: 20 - - chatbot_ui: - build: - context: ../../shared/chatbot_ui - dockerfile: Dockerfile - ports: - - "18080:8080" - environment: - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml diff --git a/demos/samples_python/stock_quote/docker-compose.yaml b/demos/samples_python/stock_quote/docker-compose.yaml deleted file mode 100644 index 6e02922d..00000000 --- a/demos/samples_python/stock_quote/docker-compose.yaml +++ /dev/null @@ -1,21 +0,0 @@ -services: - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environment as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - jaeger: - build: - context: ../../shared/jaeger - ports: - - "16686:16686" - - "4317:4317" - - "4318:4318" diff --git a/demos/samples_python/weather_forecast/README.md b/demos/samples_python/weather_forecast/README.md deleted file mode 100644 index 66109772..00000000 --- a/demos/samples_python/weather_forecast/README.md +++ /dev/null @@ -1,63 +0,0 @@ -# Function calling - -This demo shows how you can use Plano's core function calling capabilities. - -# Starting the demo - -1. Please make sure the [pre-requisites](https://github.com/katanemo/arch/?tab=readme-ov-file#prerequisites) are installed correctly -2. Start Plano - -3. ```sh - sh run_demo.sh - ``` -4. Navigate to http://localhost:18080/ -5. You can type in queries like "how is the weather?" - -# Observability - -Plano gateway publishes stats endpoint at http://localhost:19901/stats. In this demo we are using prometheus to pull stats from Plano and we are using grafana to visalize the stats in dashboard. To see grafana dashboard follow instructions below, - -1. Start grafana and prometheus using following command - ```yaml - docker compose --profile monitoring up - ``` -2. Navigate to http://localhost:3000/ to open grafana UI (use admin/grafana as credentials) -3. From grafana left nav click on dashboards and select "Intelligent Gateway Overview" to view Plano gateway stats - -Here is a sample interaction, -image - -## Tracing - -To see a tracing dashboard follow instructions below, - -1. For Jaeger, you can either use the default run_demo.sh script or run the following command: - -```sh -sh run_demo.sh jaeger -``` - -2. For Logfire, first make sure to add a LOGFIRE_API_KEY to the .env file. You can either use the default run_demo.sh script or run the following command: - -```sh -sh run_demo.sh logfire -``` - -3. For Signoz, you can either use the default run_demo.sh script or run the following command: - -```sh -sh run_demo.sh signoz -``` - -If using Jaeger, navigate to http://localhost:16686/ to open Jaeger UI - -If using Signoz, navigate to http://localhost:3301/ to open Signoz UI - -If using Logfire, navigate to your logfire dashboard that you got the write key from to view the dashboard - -### Stopping Demo - -1. To end the demo, run the following command: - ```sh - sh run_demo.sh down - ``` diff --git a/demos/samples_python/weather_forecast/docker-compose-honeycomb.yaml b/demos/samples_python/weather_forecast/docker-compose-honeycomb.yaml deleted file mode 100644 index 5d5e1786..00000000 --- a/demos/samples_python/weather_forecast/docker-compose-honeycomb.yaml +++ /dev/null @@ -1,46 +0,0 @@ -services: - weather_forecast_service: - build: - context: ./ - environment: - - OLTP_HOST=http://otel-collector:4317 - extra_hosts: - - "host.docker.internal:host-gateway" - ports: - - "18083:80" - - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environment as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - otel-collector: - build: - context: ../../shared/honeycomb/ - ports: - - "4317:4317" - - "4318:4318" - volumes: - - ../../shared/honeycomb/otel-collector-config.yaml:/etc/otel-collector-config.yaml - env_file: - - .env - environment: - - HONEYCOMB_API_KEY - - prometheus: - build: - context: ../../shared/prometheus - - grafana: - build: - context: ../../shared/grafana - ports: - - "3000:3000" diff --git a/demos/samples_python/weather_forecast/docker-compose-jaeger.yaml b/demos/samples_python/weather_forecast/docker-compose-jaeger.yaml deleted file mode 100644 index 1a64e8fa..00000000 --- a/demos/samples_python/weather_forecast/docker-compose-jaeger.yaml +++ /dev/null @@ -1,41 +0,0 @@ -services: - weather_forecast_service: - build: - context: ./ - environment: - - OLTP_HOST=http://jaeger:4317 - extra_hosts: - - "host.docker.internal:host-gateway" - ports: - - "18083:80" - - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environemtn as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - jaeger: - build: - context: ../../shared/jaeger - ports: - - "16686:16686" - - "4317:4317" - - "4318:4318" - - prometheus: - build: - context: ../../shared/prometheus - - grafana: - build: - context: ../../shared/grafana - ports: - - "3000:3000" diff --git a/demos/samples_python/weather_forecast/docker-compose-logfire.yaml b/demos/samples_python/weather_forecast/docker-compose-logfire.yaml deleted file mode 100644 index db3363f4..00000000 --- a/demos/samples_python/weather_forecast/docker-compose-logfire.yaml +++ /dev/null @@ -1,46 +0,0 @@ -services: - weather_forecast_service: - build: - context: ./ - environment: - - OLTP_HOST=http://otel-collector:4317 - extra_hosts: - - "host.docker.internal:host-gateway" - ports: - - "18083:80" - - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environment as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - otel-collector: - build: - context: ../../shared/logfire/ - ports: - - "4317:4317" - - "4318:4318" - volumes: - - ../../shared/logfire/otel-collector-config.yaml:/etc/otel-collector-config.yaml - env_file: - - .env - environment: - - LOGFIRE_API_KEY - - prometheus: - build: - context: ../../shared/prometheus - - grafana: - build: - context: ../../shared/grafana - ports: - - "3000:3000" diff --git a/demos/samples_python/weather_forecast/docker-compose-signoz.yaml b/demos/samples_python/weather_forecast/docker-compose-signoz.yaml deleted file mode 100644 index 4cfb56a9..00000000 --- a/demos/samples_python/weather_forecast/docker-compose-signoz.yaml +++ /dev/null @@ -1,36 +0,0 @@ -include: - - ../../shared/signoz/docker-compose-minimal.yaml - -services: - weather_forecast_service: - build: - context: . - environment: - - OLTP_HOST=http://otel-collector:4317 - extra_hosts: - - "host.docker.internal:host-gateway" - ports: - - "18083:80" - - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environemtn as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - prometheus: - build: - context: ../../shared/prometheus - - grafana: - build: - context: ../../shared/grafana - ports: - - "3000:3000" diff --git a/demos/samples_python/weather_forecast/docker-compose.yaml b/demos/samples_python/weather_forecast/docker-compose.yaml deleted file mode 100644 index 36c2e74a..00000000 --- a/demos/samples_python/weather_forecast/docker-compose.yaml +++ /dev/null @@ -1,23 +0,0 @@ -services: - weather_forecast_service: - build: - context: ./ - environment: - - OLTP_HOST=http://jaeger:4317 - extra_hosts: - - "host.docker.internal:host-gateway" - ports: - - "18083:80" - - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environemtn as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml diff --git a/demos/shared/chatbot_ui/.vscode/launch.json b/demos/shared/chatbot_ui/.vscode/launch.json deleted file mode 100644 index 9586ef4c..00000000 --- a/demos/shared/chatbot_ui/.vscode/launch.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "python": "${workspaceFolder}/venv/bin/python", - "name": "chatbot-ui", - "type": "debugpy", - "request": "launch", - "program": "run_stream.py", - "console": "integratedTerminal", - "env": { - "LLM": "1", - "CHAT_COMPLETION_ENDPOINT": "http://localhost:10000/v1", - "STREAMING": "True", - "PLANO_CONFIG": "../../samples_python/weather_forecast/plano_config.yaml" - } - }, - { - "python": "${workspaceFolder}/venv/bin/python", - "name": "chatbot-ui llm", - "type": "debugpy", - "request": "launch", - "program": "run_stream.py", - "console": "integratedTerminal", - "env": { - "LLM": "1", - "CHAT_COMPLETION_ENDPOINT": "http://localhost:12000/v1", - "STREAMING": "True", - "PLANO_CONFIG": "../../samples_python/weather_forecast/plano_config.yaml" - } - }, - ] -} diff --git a/demos/shared/chatbot_ui/Dockerfile b/demos/shared/chatbot_ui/Dockerfile deleted file mode 100644 index cb8ddb8d..00000000 --- a/demos/shared/chatbot_ui/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM python:3.14 AS base - -FROM base AS builder - -WORKDIR /src - -COPY requirements.txt /src/ - -RUN pip install --prefix=/runtime --force-reinstall -r requirements.txt - -FROM python:3.14-slim AS output - -COPY --from=builder /runtime /usr/local - -WORKDIR /app -COPY *.py . - -CMD ["python", "run_stream.py"] diff --git a/demos/shared/chatbot_ui/common.py b/demos/shared/chatbot_ui/common.py deleted file mode 100644 index 278d86d1..00000000 --- a/demos/shared/chatbot_ui/common.py +++ /dev/null @@ -1,206 +0,0 @@ -from datetime import datetime -import json -import logging -import os -import yaml -import gradio as gr -from typing import List, Optional, Tuple -from functools import partial - -logging.basicConfig( - level=logging.INFO, - format="%(asctime)s - %(levelname)s - %(message)s", -) - -log = logging.getLogger(__name__) - -GRADIO_CSS_STYLE = """ -.json-container { - height: 80vh !important; - overflow-y: auto !important; -} -.chatbot { - height: calc(80vh - 100px) !important; - overflow-y: auto !important; -} -footer {visibility: hidden} -""" - - -def chat( - query: Optional[str], - conversation: Optional[List[Tuple[str, str]]], - history: List[dict], - client, -): - history.append({"role": "user", "content": query}) - - try: - response = client.chat.completions.create( - # we select model from plano_config file - model="None", - messages=history, - temperature=1.0, - stream=True, - ) - except Exception as e: - # remove last user message in case of exception - history.pop() - log.info("Error calling gateway API: {}".format(e)) - raise gr.Error("Error calling gateway API: {}".format(e)) - - conversation.append((query, "")) - - for chunk in response: - tokens = process_stream_chunk(chunk, history) - if tokens: - conversation[-1] = ( - conversation[-1][0], - conversation[-1][1] + tokens, - ) - - yield "", conversation, history - - -def create_gradio_app(demo_description, client): - with gr.Blocks( - theme=gr.themes.Default( - font_mono=[gr.themes.GoogleFont("IBM Plex Mono"), "Arial", "sans-serif"] - ), - fill_height=True, - css=GRADIO_CSS_STYLE, - ) as demo: - with gr.Row(equal_height=True): - history = gr.State([]) - - with gr.Column(scale=1): - gr.Markdown(demo_description), - with gr.Accordion("Available Tools/APIs", open=True): - with gr.Column(scale=1): - gr.JSON( - value=get_prompt_targets(), - show_indices=False, - elem_classes="json-container", - min_height="80vh", - ) - - with gr.Column(scale=2): - chatbot = gr.Chatbot( - label="Plano Chatbot", - elem_classes="chatbot", - ) - textbox = gr.Textbox( - show_label=False, - placeholder="Enter text and press enter", - autofocus=True, - elem_classes="textbox", - ) - chat_with_client = partial(chat, client=client) - - textbox.submit( - chat_with_client, - [textbox, chatbot, history], - [textbox, chatbot, history], - ) - - return demo - - -def process_stream_chunk(chunk, history): - delta = chunk.choices[0].delta - if delta.role and delta.role != history[-1]["role"]: - # create new history item if role changes - # this is likely due to Plano tool call and api response - history.append({"role": delta.role}) - - history[-1]["model"] = chunk.model - # append tool calls to history if there are any in the chunk - if delta.tool_calls: - history[-1]["tool_calls"] = delta.tool_calls - - if delta.content: - # append content to the last history item - if history[-1]["model"] != "Arch-Function-Chat": - history[-1]["content"] = history[-1].get("content", "") + delta.content - # yield content if it is from assistant - if history[-1]["model"] == "Arch-Function": - return None - if history[-1]["role"] == "assistant": - return delta.content - - return None - - -def convert_prompt_target_to_openai_format(target): - tool = { - "description": target["description"], - "parameters": {"type": "object", "properties": {}, "required": []}, - } - - if "parameters" in target: - for param_info in target["parameters"]: - parameter = { - "type": param_info["type"], - "description": param_info["description"], - } - - for key in ["default", "format", "enum", "items", "minimum", "maximum"]: - if key in param_info: - parameter[key] = param_info[key] - - tool["parameters"]["properties"][param_info["name"]] = parameter - - required = param_info.get("required", False) - if required: - tool["parameters"]["required"].append(param_info["name"]) - - return {"name": target["name"], "info": tool} - - -def get_prompt_targets(): - try: - with open(os.getenv("PLANO_CONFIG", "config.yaml"), "r") as file: - config = yaml.safe_load(file) - - available_tools = [] - if "prompt_targets" in config: - for target in config["prompt_targets"]: - if not target.get("default", False): - available_tools.append( - convert_prompt_target_to_openai_format(target) - ) - - return {tool["name"]: tool["info"] for tool in available_tools} - elif "llm_providers" in config: - return config["llm_providers"] - - except Exception as e: - log.info(e) - return None - - -def get_llm_models(): - try: - with open(os.getenv("PLANO_CONFIG", "config.yaml"), "r") as file: - config = yaml.safe_load(file) - - available_models = [""] - default_llm = None - for llm_providers in config["llm_providers"]: - if llm_providers.get("default", False): - default_llm = llm_providers["name"] - else: - available_models.append(llm_providers["name"]) - - # place default model at the beginning of the list - if default_llm: - available_models.insert(0, default_llm) - return available_models - except Exception as e: - log.info(e) - return [] - - -def format_log(message): - time_now = datetime.now().strftime("%Y-%m-%d %H:%M:%S,%f")[:-3] - return f"{time_now} - {message}" diff --git a/demos/shared/chatbot_ui/requirements.txt b/demos/shared/chatbot_ui/requirements.txt deleted file mode 100644 index 7d94088a..00000000 --- a/demos/shared/chatbot_ui/requirements.txt +++ /dev/null @@ -1,9 +0,0 @@ -gradio==5.3.0 -huggingface_hub<1.0.0 -async_timeout==4.0.3 -loguru==0.7.2 -asyncio==3.4.3 -httpx==0.27.0 -python-dotenv==1.0.1 -pydantic==2.8.2 -openai==1.54.0 diff --git a/demos/shared/chatbot_ui/run_stream.py b/demos/shared/chatbot_ui/run_stream.py deleted file mode 100644 index 89448355..00000000 --- a/demos/shared/chatbot_ui/run_stream.py +++ /dev/null @@ -1,160 +0,0 @@ -import json -import os -import logging -import yaml -import gradio as gr - -from typing import List, Optional, Tuple -from openai import OpenAI -from dotenv import load_dotenv - -from common import format_log, get_llm_models, get_prompt_targets, process_stream_chunk - -load_dotenv() - - -logging.basicConfig( - level=logging.INFO, - format="%(asctime)s - %(levelname)s - %(message)s", -) - -log = logging.getLogger(__name__) - -CHAT_COMPLETION_ENDPOINT = os.getenv("CHAT_COMPLETION_ENDPOINT") -log.info(f"CHAT_COMPLETION_ENDPOINT: {CHAT_COMPLETION_ENDPOINT}") - - -CSS_STYLE = """ -.json-container { - height: 95vh !important; - overflow-y: auto !important; -} -.chatbot { - height: calc(95vh - 100px) !important; - overflow-y: auto !important; -} -footer {visibility: hidden} -""" - - -def chat( - query: Optional[str], - conversation: Optional[List[Tuple[str, str]]], - history: List[dict], - debug_output: str, - model_selector: str, -): - history.append({"role": "user", "content": query}) - - if debug_output is None: - debug_output = "" - - try: - headers = {} - if model_selector and model_selector != "": - headers["x-arch-llm-provider-hint"] = model_selector - client = OpenAI( - api_key="None", - base_url=CHAT_COMPLETION_ENDPOINT, - default_headers=headers, - ) - response = client.chat.completions.create( - # we select model from arch_config file - model="None", - messages=history, - temperature=1.0, - stream=True, - ) - except Exception as e: - # remove last user message in case of exception - history.pop() - log.info("Error calling gateway API: {}".format(e)) - raise gr.Error("Error calling gateway API: {}".format(e)) - - conversation.append((query, "")) - - model_is_set = False - for chunk in response: - tokens = process_stream_chunk(chunk, history) - if tokens and not model_is_set: - model_is_set = True - model = history[-1]["model"] - debug_output = debug_output + "\n" + format_log(f"model: {model}") - if tokens: - conversation[-1] = ( - conversation[-1][0], - conversation[-1][1] + tokens, - ) - - yield "", conversation, history, debug_output, model_selector - - # update assistant response to have correct format - # arch-fc 1.1 expects following format: - # { - # "response": "", - # } - # and this entire block needs to be encoded in ```json\n{json_encoded_content}\n``` - - if not history[-1]["model"].startswith("Arch"): - assistant_response = { - "response": history[-1]["content"], - } - history[-1]["content"] = "```json\n{}\n```".format( - json.dumps(assistant_response) - ) - log.info("history: {}".format(json.dumps(history))) - - -def main(): - with gr.Blocks( - theme=gr.themes.Default( - font_mono=[gr.themes.GoogleFont("IBM Plex Mono"), "Arial", "sans-serif"] - ), - fill_height=True, - css=CSS_STYLE, - ) as demo: - with gr.Row(equal_height=True): - history = gr.State([]) - - with gr.Column(scale=1): - with gr.Accordion("See available tools", open=False): - with gr.Column(scale=1): - gr.JSON( - value=get_prompt_targets(), - show_indices=False, - elem_classes="json-container", - min_height="50vh", - ) - model_selector_textbox = gr.Dropdown( - get_llm_models(), - label="override model", - elem_classes="dropdown", - ) - debug_output = gr.TextArea( - label="debug output", - elem_classes="debug_output", - ) - - with gr.Column(scale=2): - chatbot = gr.Chatbot( - label="Arch Chatbot", - elem_classes="chatbot", - ) - textbox = gr.Textbox( - show_label=False, - placeholder="Enter text and press enter", - autofocus=True, - elem_classes="textbox", - ) - - textbox.submit( - chat, - [textbox, chatbot, history, debug_output, model_selector_textbox], - [textbox, chatbot, history, debug_output, model_selector_textbox], - ) - - demo.launch(server_name="0.0.0.0", server_port=8080, show_error=True, debug=True) - - -if __name__ == "__main__": - main() diff --git a/demos/shared/grafana/Dockerfile b/demos/shared/grafana/Dockerfile deleted file mode 100644 index 40ec1b54..00000000 --- a/demos/shared/grafana/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM grafana/grafana:latest - -FROM grafana/grafana:latest - -# Set environment variables -ENV GF_SECURITY_ADMIN_USER=admin -ENV GF_SECURITY_ADMIN_PASSWORD=grafana - -# Copy provisioning files -COPY ./datasource.yaml /etc/grafana/provisioning/datasources/datasource.yaml -COPY ./dashboard.yaml /etc/grafana/provisioning/dashboards/main.yaml -COPY ./dashboards /var/lib/grafana/dashboards - -# Expose Grafana port -EXPOSE 3000 diff --git a/demos/shared/grafana/dashboard.yaml b/demos/shared/grafana/dashboard.yaml deleted file mode 100644 index fd66a479..00000000 --- a/demos/shared/grafana/dashboard.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: 1 - -providers: - - name: "Dashboard provider" - orgId: 1 - type: file - disableDeletion: false - updateIntervalSeconds: 10 - allowUiUpdates: false - options: - path: /var/lib/grafana/dashboards - foldersFromFilesStructure: true diff --git a/demos/shared/grafana/dashboards/envoy_overview.json b/demos/shared/grafana/dashboards/envoy_overview.json deleted file mode 100644 index e74e1fa1..00000000 --- a/demos/shared/grafana/dashboards/envoy_overview.json +++ /dev/null @@ -1,794 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 1, - "id": 1, - "links": [], - "panels": [ - { - "datasource": { - "default": true, - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 5, - "x": 0, - "y": 0 - }, - "id": 4, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": ["lastNotNull"], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "envoy_cluster_upstream_rq_completed{envoy_cluster_name=~\"openai|api_server\"}", - "fullMetaSearch": false, - "includeNullMetadata": false, - "instant": true, - "legendFormat": "{{envoy_cluster_name}}", - "range": false, - "refId": "A", - "useBackend": false - } - ], - "title": "# of Completed Requests", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "histogram_quantile(0.5, sum by(le) (rate(input_sequence_length_bucket[1h])))" - }, - "properties": [ - { - "id": "displayName", - "value": "Input Sequence Length" - } - ] - } - ] - }, - "gridPos": { - "h": 9, - "w": 9, - "x": 5, - "y": 0 - }, - "id": 7, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "code", - "expr": "histogram_quantile(0.9, sum by(le) (rate(input_sequence_length_bucket[5m])))", - "fullMetaSearch": false, - "includeNullMetadata": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "input sequence length (p90)", - "type": "timeseries" - }, - { - "datasource": { - "default": true, - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "histogram_quantile(0.5, sum(rate(output_sequence_length_bucket[1h])) by(le))" - }, - "properties": [ - { - "id": "displayName", - "value": "Output Sequence Length" - } - ] - } - ] - }, - "gridPos": { - "h": 9, - "w": 10, - "x": 14, - "y": 0 - }, - "id": 3, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "histogram_quantile(0.9, sum(rate(output_sequence_length_bucket[5m])) by(le))", - "fullMetaSearch": false, - "includeNullMetadata": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "output sequence length (p90)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "histogram_quantile(0.5, sum by(le) (rate(time_to_first_token_bucket[1h])))" - }, - "properties": [ - { - "id": "displayName", - "value": "Time to First Token" - } - ] - } - ] - }, - "gridPos": { - "h": 14, - "w": 11, - "x": 0, - "y": 9 - }, - "id": 8, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "code", - "expr": "histogram_quantile(0.5, sum by(le) (rate(time_to_first_token_bucket[5m])))", - "fullMetaSearch": false, - "includeNullMetadata": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "time to first token (p90)", - "type": "timeseries" - }, - { - "datasource": { - "default": true, - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "histogram_quantile(0.5, sum by(le) (rate(request_latency_bucket[1h])))" - }, - "properties": [ - { - "id": "displayName", - "value": "Request Latency" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "histogram_quantile(0.5, sum(rate(time_to_first_token_bucket[60m])) by (le))" - }, - "properties": [ - { - "id": "displayName", - "value": "Time to First Token" - } - ] - } - ] - }, - "gridPos": { - "h": 14, - "w": 13, - "x": 11, - "y": 9 - }, - "id": 1, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "histogram_quantile(0.5, sum by(le) (rate(request_latency_bucket[5m])))", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": false, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "request latency (p90)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "histogram_quantile(0.5, sum by(le) (rate(time_per_output_token_bucket[1h])))" - }, - "properties": [ - { - "id": "displayName", - "value": "Time per Output Token" - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 0, - "y": 23 - }, - "id": 9, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "builder", - "expr": "histogram_quantile(0.5, sum by(le) (rate(time_per_output_token_bucket[1h])))", - "fullMetaSearch": false, - "includeNullMetadata": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Time per Output Token (50p)", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "histogram_quantile(0.5, sum by(le) (rate(tokens_per_second_bucket[1h])))" - }, - "properties": [ - { - "id": "displayName", - "value": "Tokens per Second" - } - ] - } - ] - }, - "gridPos": { - "h": 13, - "w": 12, - "x": 12, - "y": 23 - }, - "id": 10, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.3.0", - "targets": [ - { - "disableTextWrap": false, - "editorMode": "builder", - "expr": "histogram_quantile(0.5, sum by(le) (rate(tokens_per_second_bucket[1h])))", - "fullMetaSearch": false, - "includeNullMetadata": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Tokens per Second(50p)", - "type": "timeseries" - } - ], - "preload": false, - "refresh": "", - "schemaVersion": 40, - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": {}, - "timezone": "browser", - "title": "Plano Gateway Dashboard", - "uid": "adt6uhx5lk8aob", - "version": 1, - "weekStart": "" -} diff --git a/demos/shared/grafana/datasource.yaml b/demos/shared/grafana/datasource.yaml deleted file mode 100644 index 44999d46..00000000 --- a/demos/shared/grafana/datasource.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: 1 - -datasources: - - name: Prometheus - type: prometheus - url: http://prometheus:9090 - isDefault: true - access: proxy - editable: true diff --git a/demos/shared/honeycomb/Dockerfile b/demos/shared/honeycomb/Dockerfile deleted file mode 100644 index eec82c08..00000000 --- a/demos/shared/honeycomb/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM otel/opentelemetry-collector:latest - -COPY otel-collector-config.yaml /etc/otel-collector-config.yaml - -ENTRYPOINT ["/otelcol", "--config=/etc/otel-collector-config.yaml"] diff --git a/demos/shared/honeycomb/otel-collector-config.yaml b/demos/shared/honeycomb/otel-collector-config.yaml deleted file mode 100644 index e261be84..00000000 --- a/demos/shared/honeycomb/otel-collector-config.yaml +++ /dev/null @@ -1,24 +0,0 @@ -receivers: - otlp: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - http: - endpoint: 0.0.0.0:4318 - -exporters: - otlp: - endpoint: "api.honeycomb.io:443" - headers: - "x-honeycomb-team": "${HONEYCOMB_API_KEY}" - -processors: - batch: - timeout: 5s - -service: - pipelines: - traces: - receivers: [otlp] - processors: [batch] - exporters: [otlp] diff --git a/demos/shared/logfire/Dockerfile b/demos/shared/logfire/Dockerfile deleted file mode 100644 index eec82c08..00000000 --- a/demos/shared/logfire/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM otel/opentelemetry-collector:latest - -COPY otel-collector-config.yaml /etc/otel-collector-config.yaml - -ENTRYPOINT ["/otelcol", "--config=/etc/otel-collector-config.yaml"] diff --git a/demos/shared/logfire/otel-collector-config.yaml b/demos/shared/logfire/otel-collector-config.yaml deleted file mode 100644 index d26939e4..00000000 --- a/demos/shared/logfire/otel-collector-config.yaml +++ /dev/null @@ -1,24 +0,0 @@ -receivers: - otlp: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - http: - endpoint: 0.0.0.0:4318 - -exporters: - otlphttp: - endpoint: "https://logfire-api.pydantic.dev" - headers: - Authorization: "${LOGFIRE_API_KEY}" - -processors: - batch: - timeout: 5s - -service: - pipelines: - traces: - receivers: [otlp] - processors: [batch] - exporters: [otlphttp] diff --git a/demos/shared/prometheus/Dockerfile b/demos/shared/prometheus/Dockerfile deleted file mode 100644 index 1c245059..00000000 --- a/demos/shared/prometheus/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ - -FROM prom/prometheus:latest - -# Set the command to run Prometheus with the specified configuration file -CMD ["--config.file=/etc/prometheus/prometheus.yaml"] - -# Copy the Prometheus configuration files -COPY ./prometheus.yaml /etc/prometheus/prometheus.yaml - -# Expose Prometheus port -EXPOSE 9090 diff --git a/demos/shared/prometheus/prometheus.yaml b/demos/shared/prometheus/prometheus.yaml deleted file mode 100644 index b0e1a7bb..00000000 --- a/demos/shared/prometheus/prometheus.yaml +++ /dev/null @@ -1,23 +0,0 @@ -global: - scrape_interval: 15s - scrape_timeout: 10s - evaluation_interval: 15s -alerting: - alertmanagers: - - static_configs: - - targets: [] - scheme: http - timeout: 10s - api_version: v2 -scrape_configs: - - job_name: envoy - honor_timestamps: true - scrape_interval: 15s - scrape_timeout: 10s - metrics_path: /stats - scheme: http - static_configs: - - targets: - - host.docker.internal:19901 - params: - format: ["prometheus"] diff --git a/demos/shared/signoz/alertmanager.yml b/demos/shared/signoz/alertmanager.yml deleted file mode 100644 index f59b6655..00000000 --- a/demos/shared/signoz/alertmanager.yml +++ /dev/null @@ -1,35 +0,0 @@ -global: - resolve_timeout: 1m - slack_api_url: 'https://hooks.slack.com/services/xxx' - -route: - receiver: 'slack-notifications' - -receivers: -- name: 'slack-notifications' - slack_configs: - - channel: '#alerts' - send_resolved: true - icon_url: https://avatars3.githubusercontent.com/u/3380462 - title: |- - [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }} - {{- if gt (len .CommonLabels) (len .GroupLabels) -}} - {{" "}}( - {{- with .CommonLabels.Remove .GroupLabels.Names }} - {{- range $index, $label := .SortedPairs -}} - {{ if $index }}, {{ end }} - {{- $label.Name }}="{{ $label.Value -}}" - {{- end }} - {{- end -}} - ) - {{- end }} - text: >- - {{ range .Alerts -}} - *Alert:* {{ .Annotations.title }}{{ if .Labels.severity }} - `{{ .Labels.severity }}`{{ end }} - - *Description:* {{ .Annotations.description }} - - *Details:* - {{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}` - {{ end }} - {{ end }} diff --git a/demos/shared/signoz/alerts.yml b/demos/shared/signoz/alerts.yml deleted file mode 100644 index 810a2075..00000000 --- a/demos/shared/signoz/alerts.yml +++ /dev/null @@ -1,11 +0,0 @@ -groups: -- name: ExampleCPULoadGroup - rules: - - alert: HighCpuLoad - expr: system_cpu_load_average_1m > 0.1 - for: 0m - labels: - severity: warning - annotations: - summary: High CPU load - description: "CPU load is > 0.1\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" diff --git a/demos/shared/signoz/clickhouse-cluster.xml b/demos/shared/signoz/clickhouse-cluster.xml deleted file mode 100644 index 8b475ffe..00000000 --- a/demos/shared/signoz/clickhouse-cluster.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - zookeeper-1 - 2181 - - - - - - - - - - - - - - - - clickhouse - 9000 - - - - - - - - diff --git a/demos/shared/signoz/clickhouse-config.xml b/demos/shared/signoz/clickhouse-config.xml deleted file mode 100644 index 12086ec8..00000000 --- a/demos/shared/signoz/clickhouse-config.xml +++ /dev/null @@ -1,1143 +0,0 @@ - - - - - - information - - json - - /var/log/clickhouse-server/clickhouse-server.log - /var/log/clickhouse-server/clickhouse-server.err.log - - 1000M - 10 - - - - - - - - - - - - - - - - - - 8123 - - - 9000 - - - 9004 - - - 9005 - - - - - - - - - - - - 9009 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4096 - - - 3 - - - - - false - - - /path/to/ssl_cert_file - /path/to/ssl_key_file - - - false - - - /path/to/ssl_ca_cert_file - - - none - - - 0 - - - -1 - -1 - - - false - - - - - - - - - - - none - true - true - sslv2,sslv3 - true - - - - true - true - sslv2,sslv3 - true - - - - RejectCertificateHandler - - - - - - - - - 100 - - - 0 - - - - 10000 - - - - - - 0.9 - - - 4194304 - - - 0 - - - - - - 8589934592 - - - 5368709120 - - - - 1000 - - - 134217728 - - - 10000 - - - /var/lib/clickhouse/ - - - /var/lib/clickhouse/tmp/ - - - - ` - - - - - - /var/lib/clickhouse/user_files/ - - - - - - - - - - - - - users.xml - - - - /var/lib/clickhouse/access/ - - - - - - - default - - - - - - - - - - - - default - - - - - - - - - true - - - false - - ' | sed -e 's|.*>\(.*\)<.*|\1|') - wget https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases/download/v$PKG_VER/clickhouse-jdbc-bridge_$PKG_VER-1_all.deb - apt install --no-install-recommends -f ./clickhouse-jdbc-bridge_$PKG_VER-1_all.deb - clickhouse-jdbc-bridge & - - * [CentOS/RHEL] - export MVN_URL=https://repo1.maven.org/maven2/ru/yandex/clickhouse/clickhouse-jdbc-bridge - export PKG_VER=$(curl -sL $MVN_URL/maven-metadata.xml | grep '' | sed -e 's|.*>\(.*\)<.*|\1|') - wget https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases/download/v$PKG_VER/clickhouse-jdbc-bridge-$PKG_VER-1.noarch.rpm - yum localinstall -y clickhouse-jdbc-bridge-$PKG_VER-1.noarch.rpm - clickhouse-jdbc-bridge & - - Please refer to https://github.com/ClickHouse/clickhouse-jdbc-bridge#usage for more information. - ]]> - - - - - - - - - - - - - - - 01 - example01-01-1 - - - - - - 3600 - - - - 3600 - - - 60 - - - - - - - - - - - - - system - query_log
- - toYYYYMM(event_date) - - - - - - 7500 -
- - - - system - trace_log
- - toYYYYMM(event_date) - 7500 -
- - - - system - query_thread_log
- toYYYYMM(event_date) - 7500 -
- - - - system - query_views_log
- toYYYYMM(event_date) - 7500 -
- - - - system - part_log
- toYYYYMM(event_date) - 7500 -
- - - - - - system - metric_log
- 7500 - 1000 -
- - - - system - asynchronous_metric_log
- - 7000 -
- - - - - - engine MergeTree - partition by toYYYYMM(finish_date) - order by (finish_date, finish_time_us, trace_id) - - system - opentelemetry_span_log
- 7500 -
- - - - - system - crash_log
- - - 1000 -
- - - - - - - system - processors_profile_log
- - toYYYYMM(event_date) - 7500 -
- - - - - - - - - *_dictionary.xml - - - *function.xml - /var/lib/clickhouse/user_scripts/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /clickhouse/task_queue/ddl - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - click_cost - any - - 0 - 3600 - - - 86400 - 60 - - - - max - - 0 - 60 - - - 3600 - 300 - - - 86400 - 3600 - - - - - - /var/lib/clickhouse/format_schemas/ - - - - - hide encrypt/decrypt arguments - ((?:aes_)?(?:encrypt|decrypt)(?:_mysql)?)\s*\(\s*(?:'(?:\\'|.)+'|.*?)\s*\) - - \1(???) - - - - - - - - - - false - - false - - - https://6f33034cfe684dd7a3ab9875e57b1c8d@o388870.ingest.sentry.io/5226277 - - - - - - - - - - - 268435456 - true - -
diff --git a/demos/shared/signoz/clickhouse-storage.xml b/demos/shared/signoz/clickhouse-storage.xml deleted file mode 100644 index 54ec4976..00000000 --- a/demos/shared/signoz/clickhouse-storage.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - 10485760 - - - s3 - - https://BUCKET-NAME.s3-REGION-NAME.amazonaws.com/data/ - ACCESS-KEY-ID - SECRET-ACCESS-KEY - - - - - - - - - - - default - - - s3 - 0 - - - - - - diff --git a/demos/shared/signoz/clickhouse-users.xml b/demos/shared/signoz/clickhouse-users.xml deleted file mode 100644 index f1856207..00000000 --- a/demos/shared/signoz/clickhouse-users.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - 10000000000 - - - random - - - - - 1 - - - - - - - - - - - - - ::/0 - - - - default - - - default - - - - - - - - - - - - - - 3600 - - - 0 - 0 - 0 - 0 - 0 - - - - diff --git a/demos/shared/signoz/custom-function.xml b/demos/shared/signoz/custom-function.xml deleted file mode 100644 index b2b3f91a..00000000 --- a/demos/shared/signoz/custom-function.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - executable - histogramQuantile - Float64 - - Array(Float64) - buckets - - - Array(Float64) - counts - - - Float64 - quantile - - CSV - ./histogramQuantile - - diff --git a/demos/shared/signoz/docker-compose-core.yaml b/demos/shared/signoz/docker-compose-core.yaml deleted file mode 100644 index ec9e0697..00000000 --- a/demos/shared/signoz/docker-compose-core.yaml +++ /dev/null @@ -1,133 +0,0 @@ -version: "2.4" - -include: - - test-app-docker-compose.yaml - -services: - zookeeper-1: - image: bitnami/zookeeper:3.7.1 - container_name: signoz-zookeeper-1 - hostname: zookeeper-1 - user: root - ports: - - "2181:2181" - - "2888:2888" - - "3888:3888" - volumes: - - ./data/zookeeper-1:/bitnami/zookeeper - environment: - - ZOO_SERVER_ID=1 - # - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888 - - ALLOW_ANONYMOUS_LOGIN=yes - - ZOO_AUTOPURGE_INTERVAL=1 - - clickhouse: - image: clickhouse/clickhouse-server:24.1.2-alpine - container_name: signoz-clickhouse - # ports: - # - "9000:9000" - # - "8123:8123" - tty: true - volumes: - - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml - - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml - - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml - - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml - - ./data/clickhouse/:/var/lib/clickhouse/ - - ./user_scripts:/var/lib/clickhouse/user_scripts/ - restart: on-failure - logging: - options: - max-size: 50m - max-file: "3" - healthcheck: - # "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'" - test: - [ - "CMD", - "wget", - "--spider", - "-q", - "0.0.0.0:8123/ping" - ] - interval: 30s - timeout: 5s - retries: 3 - - alertmanager: - container_name: signoz-alertmanager - image: signoz/alertmanager:0.23.7 - volumes: - - ./data/alertmanager:/data - depends_on: - query-service: - condition: service_healthy - restart: on-failure - command: - - --queryService.url=http://query-service:8085 - - --storage.path=/data - - otel-collector-migrator: - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.5} - container_name: otel-migrator - command: - - "--dsn=tcp://clickhouse:9000" - depends_on: - clickhouse: - condition: service_healthy - # clickhouse-2: - # condition: service_healthy - # clickhouse-3: - # condition: service_healthy - - # Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md` - otel-collector: - container_name: signoz-otel-collector - image: signoz/signoz-otel-collector:0.111.5 - command: - [ - "--config=/etc/otel-collector-config.yaml", - "--manager-config=/etc/manager-config.yaml", - "--copy-path=/var/tmp/collector-config.yaml", - "--feature-gates=-pkg.translator.prometheus.NormalizeName" - ] - # user: root # required for reading docker container logs - volumes: - - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml - - ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml - - /var/lib/docker/containers:/var/lib/docker/containers:ro - - /:/hostfs:ro - environment: - - OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux - ports: - # - "1777:1777" # pprof extension - - "4317:4317" # OTLP gRPC receiver - - "4318:4318" # OTLP HTTP receiver - # - "8888:8888" # OtelCollector internal metrics - # - "8889:8889" # signoz spanmetrics exposed by the agent - # - "9411:9411" # Zipkin port - # - "13133:13133" # health check extension - # - "14250:14250" # Jaeger gRPC - # - "14268:14268" # Jaeger thrift HTTP - # - "55678:55678" # OpenCensus receiver - # - "55679:55679" # zPages extension - restart: on-failure - depends_on: - clickhouse: - condition: service_healthy - otel-collector-migrator: - condition: service_completed_successfully - query-service: - condition: service_healthy - - logspout: - image: "gliderlabs/logspout:v3.2.14" - container_name: signoz-logspout - volumes: - - /etc/hostname:/etc/host_hostname:ro - - /var/run/docker.sock:/var/run/docker.sock - command: syslog+tcp://otel-collector:2255 - depends_on: - - otel-collector - restart: on-failure diff --git a/demos/shared/signoz/docker-compose-local.yaml b/demos/shared/signoz/docker-compose-local.yaml deleted file mode 100644 index 7effc129..00000000 --- a/demos/shared/signoz/docker-compose-local.yaml +++ /dev/null @@ -1,67 +0,0 @@ -version: "2.4" - -services: - query-service: - hostname: query-service - build: - context: "../../../" - dockerfile: "./pkg/query-service/Dockerfile" - args: - LDFLAGS: "" - TARGETPLATFORM: "${GOOS}/${GOARCH}" - container_name: signoz-query-service - environment: - - ClickHouseUrl=tcp://clickhouse:9000 - - ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/ - - SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db - - DASHBOARDS_PATH=/root/config/dashboards - - STORAGE=clickhouse - - GODEBUG=netdns=go - - TELEMETRY_ENABLED=true - volumes: - - ./prometheus.yml:/root/config/prometheus.yml - - ../dashboards:/root/config/dashboards - - ./data/signoz/:/var/lib/signoz/ - command: - [ - "-config=/root/config/prometheus.yml", - "--use-logs-new-schema=true" - ] - ports: - - "6060:6060" - - "8080:8080" - restart: on-failure - healthcheck: - test: - [ - "CMD", - "wget", - "--spider", - "-q", - "localhost:8080/api/v1/health" - ] - interval: 30s - timeout: 5s - retries: 3 - depends_on: - clickhouse: - condition: service_healthy - - frontend: - build: - context: "../../../frontend" - dockerfile: "./Dockerfile" - args: - TARGETOS: "${GOOS}" - TARGETPLATFORM: "${GOARCH}" - container_name: signoz-frontend - environment: - - FRONTEND_API_ENDPOINT=http://query-service:8080 - restart: on-failure - depends_on: - - alertmanager - - query-service - ports: - - "3301:3301" - volumes: - - ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf diff --git a/demos/shared/signoz/docker-compose-minimal.yaml b/demos/shared/signoz/docker-compose-minimal.yaml deleted file mode 100644 index d4861a41..00000000 --- a/demos/shared/signoz/docker-compose-minimal.yaml +++ /dev/null @@ -1,296 +0,0 @@ -x-clickhouse-defaults: &clickhouse-defaults - restart: on-failure - # addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab - image: clickhouse/clickhouse-server:24.1.2-alpine - tty: true - depends_on: - - zookeeper-1 - # - zookeeper-2 - # - zookeeper-3 - logging: - options: - max-size: 50m - max-file: "3" - healthcheck: - # "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'" - test: - [ - "CMD", - "wget", - "--spider", - "-q", - "0.0.0.0:8123/ping" - ] - interval: 30s - timeout: 5s - retries: 3 - ulimits: - nproc: 65535 - nofile: - soft: 262144 - hard: 262144 - -x-db-depend: &db-depend - depends_on: - clickhouse: - condition: service_healthy - otel-collector-migrator-sync: - condition: service_completed_successfully - # clickhouse-2: - # condition: service_healthy - # clickhouse-3: - # condition: service_healthy - -services: - - zookeeper-1: - image: bitnami/zookeeper:3.7.1 - container_name: signoz-zookeeper-1 - hostname: zookeeper-1 - user: root - ports: - - "2181:2181" - - "2888:2888" - - "3888:3888" - volumes: - - ./data/zookeeper-1:/bitnami/zookeeper - environment: - - ZOO_SERVER_ID=1 - # - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888 - - ALLOW_ANONYMOUS_LOGIN=yes - - ZOO_AUTOPURGE_INTERVAL=1 - - # zookeeper-2: - # image: bitnami/zookeeper:3.7.0 - # container_name: signoz-zookeeper-2 - # hostname: zookeeper-2 - # user: root - # ports: - # - "2182:2181" - # - "2889:2888" - # - "3889:3888" - # volumes: - # - ./data/zookeeper-2:/bitnami/zookeeper - # environment: - # - ZOO_SERVER_ID=2 - # - ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888 - # - ALLOW_ANONYMOUS_LOGIN=yes - # - ZOO_AUTOPURGE_INTERVAL=1 - - # zookeeper-3: - # image: bitnami/zookeeper:3.7.0 - # container_name: signoz-zookeeper-3 - # hostname: zookeeper-3 - # user: root - # ports: - # - "2183:2181" - # - "2890:2888" - # - "3890:3888" - # volumes: - # - ./data/zookeeper-3:/bitnami/zookeeper - # environment: - # - ZOO_SERVER_ID=3 - # - ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888 - # - ALLOW_ANONYMOUS_LOGIN=yes - # - ZOO_AUTOPURGE_INTERVAL=1 - - clickhouse: - <<: *clickhouse-defaults - container_name: signoz-clickhouse - hostname: clickhouse - ports: - - "9000:9000" - - "8123:8123" - - "9181:9181" - volumes: - - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml - - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml - - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml - - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml - - ./data/clickhouse/:/var/lib/clickhouse/ - - ./user_scripts:/var/lib/clickhouse/user_scripts/ - - # clickhouse-2: - # <<: *clickhouse-defaults - # container_name: signoz-clickhouse-2 - # hostname: clickhouse-2 - # ports: - # - "9001:9000" - # - "8124:8123" - # - "9182:9181" - # volumes: - # - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml - # - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml - # - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml - # - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - # # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml - # - ./data/clickhouse-2/:/var/lib/clickhouse/ - # - ./user_scripts:/var/lib/clickhouse/user_scripts/ - - - # clickhouse-3: - # <<: *clickhouse-defaults - # container_name: signoz-clickhouse-3 - # hostname: clickhouse-3 - # ports: - # - "9002:9000" - # - "8125:8123" - # - "9183:9181" - # volumes: - # - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml - # - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml - # - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml - # - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - # # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml - # - ./data/clickhouse-3/:/var/lib/clickhouse/ - # - ./user_scripts:/var/lib/clickhouse/user_scripts/ - - alertmanager: - image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7} - container_name: signoz-alertmanager - volumes: - - ./data/alertmanager:/data - depends_on: - query-service: - condition: service_healthy - restart: on-failure - command: - - --queryService.url=http://query-service:8085 - - --storage.path=/data - - # Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md` - - query-service: - image: signoz/query-service:${DOCKER_TAG:-0.57.0} - container_name: signoz-query-service - command: - [ - "-config=/root/config/prometheus.yml", - "--use-logs-new-schema=true" - ] - # ports: - # - "6060:6060" # pprof port - # - "8080:8080" # query-service port - volumes: - - ./prometheus.yml:/root/config/prometheus.yml - - ../dashboards:/root/config/dashboards - - ./data/signoz/:/var/lib/signoz/ - environment: - - ClickHouseUrl=tcp://clickhouse:9000 - - ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/ - - SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db - - DASHBOARDS_PATH=/root/config/dashboards - - STORAGE=clickhouse - - GODEBUG=netdns=go - - TELEMETRY_ENABLED=true - - DEPLOYMENT_TYPE=docker-standalone-amd - restart: on-failure - healthcheck: - test: - [ - "CMD", - "wget", - "--spider", - "-q", - "localhost:8080/api/v1/health" - ] - interval: 30s - timeout: 5s - retries: 3 - <<: *db-depend - - frontend: - image: signoz/frontend:${DOCKER_TAG:-0.57.0} - container_name: signoz-frontend - restart: on-failure - depends_on: - - alertmanager - - query-service - ports: - - "3301:3301" - volumes: - - ./nginx-config.conf:/etc/nginx/conf.d/default.conf - - otel-collector-migrator-sync: - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.5} - container_name: otel-migrator-sync - command: - - "sync" - - "--dsn=tcp://clickhouse:9000" - - "--up=" - depends_on: - clickhouse: - condition: service_healthy - # clickhouse-2: - # condition: service_healthy - # clickhouse-3: - # condition: service_healthy - - otel-collector-migrator-async: - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.5} - container_name: otel-migrator-async - command: - - "async" - - "--dsn=tcp://clickhouse:9000" - - "--up=" - depends_on: - clickhouse: - condition: service_healthy - otel-collector-migrator-sync: - condition: service_completed_successfully - # clickhouse-2: - # condition: service_healthy - # clickhouse-3: - # condition: service_healthy - - otel-collector: - image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.5} - container_name: signoz-otel-collector - command: - [ - "--config=/etc/otel-collector-config.yaml", - "--manager-config=/etc/manager-config.yaml", - "--copy-path=/var/tmp/collector-config.yaml", - "--feature-gates=-pkg.translator.prometheus.NormalizeName" - ] - user: root # required for reading docker container logs - volumes: - - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml - - ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml - - /var/lib/docker/containers:/var/lib/docker/containers:ro - - /:/hostfs:ro - environment: - - OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux - - LOW_CARDINAL_EXCEPTION_GROUPING=false - ports: - # - "1777:1777" # pprof extension - - "4317:4317" # OTLP gRPC receiver - - "4318:4318" # OTLP HTTP receiver - # - "8888:8888" # OtelCollector internal metrics - # - "8889:8889" # signoz spanmetrics exposed by the agent - # - "9411:9411" # Zipkin port - # - "13133:13133" # health check extension - # - "14250:14250" # Jaeger gRPC - # - "14268:14268" # Jaeger thrift HTTP - # - "55678:55678" # OpenCensus receiver - # - "55679:55679" # zPages extension - restart: on-failure - depends_on: - clickhouse: - condition: service_healthy - otel-collector-migrator-sync: - condition: service_completed_successfully - query-service: - condition: service_healthy - - logspout: - image: "gliderlabs/logspout:v3.2.14" - container_name: signoz-logspout - volumes: - - /etc/hostname:/etc/host_hostname:ro - - /var/run/docker.sock:/var/run/docker.sock - command: syslog+tcp://otel-collector:2255 - depends_on: - - otel-collector - restart: on-failure diff --git a/demos/shared/signoz/docker-compose.testing.yaml b/demos/shared/signoz/docker-compose.testing.yaml deleted file mode 100644 index d8c0db25..00000000 --- a/demos/shared/signoz/docker-compose.testing.yaml +++ /dev/null @@ -1,284 +0,0 @@ -version: "2.4" - -include: - - test-app-docker-compose.yaml - -x-clickhouse-defaults: &clickhouse-defaults - restart: on-failure - # addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab - image: clickhouse/clickhouse-server:24.1.2-alpine - tty: true - depends_on: - - zookeeper-1 - # - zookeeper-2 - # - zookeeper-3 - logging: - options: - max-size: 50m - max-file: "3" - healthcheck: - # "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'" - test: - [ - "CMD", - "wget", - "--spider", - "-q", - "0.0.0.0:8123/ping" - ] - interval: 30s - timeout: 5s - retries: 3 - ulimits: - nproc: 65535 - nofile: - soft: 262144 - hard: 262144 - -x-db-depend: &db-depend - depends_on: - clickhouse: - condition: service_healthy - otel-collector-migrator: - condition: service_completed_successfully - # clickhouse-2: - # condition: service_healthy - # clickhouse-3: - # condition: service_healthy - -services: - - zookeeper-1: - image: bitnami/zookeeper:3.7.1 - container_name: signoz-zookeeper-1 - hostname: zookeeper-1 - user: root - ports: - - "2181:2181" - - "2888:2888" - - "3888:3888" - volumes: - - ./data/zookeeper-1:/bitnami/zookeeper - environment: - - ZOO_SERVER_ID=1 - # - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888 - - ALLOW_ANONYMOUS_LOGIN=yes - - ZOO_AUTOPURGE_INTERVAL=1 - - # zookeeper-2: - # image: bitnami/zookeeper:3.7.0 - # container_name: signoz-zookeeper-2 - # hostname: zookeeper-2 - # user: root - # ports: - # - "2182:2181" - # - "2889:2888" - # - "3889:3888" - # volumes: - # - ./data/zookeeper-2:/bitnami/zookeeper - # environment: - # - ZOO_SERVER_ID=2 - # - ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888 - # - ALLOW_ANONYMOUS_LOGIN=yes - # - ZOO_AUTOPURGE_INTERVAL=1 - - # zookeeper-3: - # image: bitnami/zookeeper:3.7.0 - # container_name: signoz-zookeeper-3 - # hostname: zookeeper-3 - # user: root - # ports: - # - "2183:2181" - # - "2890:2888" - # - "3890:3888" - # volumes: - # - ./data/zookeeper-3:/bitnami/zookeeper - # environment: - # - ZOO_SERVER_ID=3 - # - ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888 - # - ALLOW_ANONYMOUS_LOGIN=yes - # - ZOO_AUTOPURGE_INTERVAL=1 - - clickhouse: - <<: *clickhouse-defaults - container_name: signoz-clickhouse - hostname: clickhouse - ports: - - "9000:9000" - - "8123:8123" - - "9181:9181" - volumes: - - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml - - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml - - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml - - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml - - ./data/clickhouse/:/var/lib/clickhouse/ - - ./user_scripts:/var/lib/clickhouse/user_scripts/ - - # clickhouse-2: - # <<: *clickhouse-defaults - # container_name: signoz-clickhouse-2 - # hostname: clickhouse-2 - # ports: - # - "9001:9000" - # - "8124:8123" - # - "9182:9181" - # volumes: - # - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml - # - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml - # - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml - # - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - # # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml - # - ./data/clickhouse-2/:/var/lib/clickhouse/ - # - ./user_scripts:/var/lib/clickhouse/user_scripts/ - - - # clickhouse-3: - # <<: *clickhouse-defaults - # container_name: signoz-clickhouse-3 - # hostname: clickhouse-3 - # ports: - # - "9002:9000" - # - "8125:8123" - # - "9183:9181" - # volumes: - # - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml - # - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml - # - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml - # - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml - # # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml - # - ./data/clickhouse-3/:/var/lib/clickhouse/ - # - ./user_scripts:/var/lib/clickhouse/user_scripts/ - - alertmanager: - image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.7} - container_name: signoz-alertmanager - volumes: - - ./data/alertmanager:/data - depends_on: - query-service: - condition: service_healthy - restart: on-failure - command: - - --queryService.url=http://query-service:8085 - - --storage.path=/data - - # Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md` - - query-service: - image: signoz/query-service:${DOCKER_TAG:-0.57.0} - container_name: signoz-query-service - command: - [ - "-config=/root/config/prometheus.yml", - "-gateway-url=https://api.staging.signoz.cloud", - "--use-logs-new-schema=true" - ] - # ports: - # - "6060:6060" # pprof port - # - "8080:8080" # query-service port - volumes: - - ./prometheus.yml:/root/config/prometheus.yml - - ../dashboards:/root/config/dashboards - - ./data/signoz/:/var/lib/signoz/ - environment: - - ClickHouseUrl=tcp://clickhouse:9000 - - ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/ - - SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db - - DASHBOARDS_PATH=/root/config/dashboards - - STORAGE=clickhouse - - GODEBUG=netdns=go - - TELEMETRY_ENABLED=true - - DEPLOYMENT_TYPE=docker-standalone-amd - restart: on-failure - healthcheck: - test: - [ - "CMD", - "wget", - "--spider", - "-q", - "localhost:8080/api/v1/health" - ] - interval: 30s - timeout: 5s - retries: 3 - <<: *db-depend - - frontend: - image: signoz/frontend:${DOCKER_TAG:-0.57.0} - container_name: signoz-frontend - restart: on-failure - depends_on: - - alertmanager - - query-service - ports: - - "3301:3301" - volumes: - - ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf - - otel-collector-migrator: - image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.111.5} - container_name: otel-migrator - command: - - "--dsn=tcp://clickhouse:9000" - depends_on: - clickhouse: - condition: service_healthy - # clickhouse-2: - # condition: service_healthy - # clickhouse-3: - # condition: service_healthy - - - otel-collector: - image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.111.5} - container_name: signoz-otel-collector - command: - [ - "--config=/etc/otel-collector-config.yaml", - "--manager-config=/etc/manager-config.yaml", - "--copy-path=/var/tmp/collector-config.yaml", - "--feature-gates=-pkg.translator.prometheus.NormalizeName" - ] - user: root # required for reading docker container logs - volumes: - - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml - - ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml - - /var/lib/docker/containers:/var/lib/docker/containers:ro - - /:/hostfs:ro - environment: - - OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux - - LOW_CARDINAL_EXCEPTION_GROUPING=false - ports: - # - "1777:1777" # pprof extension - - "4317:4317" # OTLP gRPC receiver - - "4318:4318" # OTLP HTTP receiver - # - "8888:8888" # OtelCollector internal metrics - # - "8889:8889" # signoz spanmetrics exposed by the agent - # - "9411:9411" # Zipkin port - # - "13133:13133" # health check extension - # - "14250:14250" # Jaeger gRPC - # - "14268:14268" # Jaeger thrift HTTP - # - "55678:55678" # OpenCensus receiver - # - "55679:55679" # zPages extension - restart: on-failure - depends_on: - clickhouse: - condition: service_healthy - otel-collector-migrator: - condition: service_completed_successfully - query-service: - condition: service_healthy - - logspout: - image: "gliderlabs/logspout:v3.2.14" - container_name: signoz-logspout - volumes: - - /etc/hostname:/etc/host_hostname:ro - - /var/run/docker.sock:/var/run/docker.sock - command: syslog+tcp://otel-collector:2255 - depends_on: - - otel-collector - restart: on-failure diff --git a/demos/shared/signoz/docker-compose.yaml b/demos/shared/signoz/docker-compose.yaml deleted file mode 100644 index 251ca253..00000000 --- a/demos/shared/signoz/docker-compose.yaml +++ /dev/null @@ -1,3 +0,0 @@ -include: - - test-app-docker-compose.yaml - - docker-compose-minimal.yaml diff --git a/demos/shared/signoz/keeper_config.xml b/demos/shared/signoz/keeper_config.xml deleted file mode 100644 index f9a96dca..00000000 --- a/demos/shared/signoz/keeper_config.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - information - /var/log/clickhouse-keeper/clickhouse-keeper.log - /var/log/clickhouse-keeper/clickhouse-keeper.err.log - - 1000M - 10 - - - - 0.0.0.0 - 4096 - - - 9181 - - - 1 - - /var/lib/clickhouse/coordination/logs - /var/lib/clickhouse/coordination/snapshots - - - 10000 - 10000 - 100000 - information - false - - - - - true - - - 1 - - - clickhouses-keeper-1 - 9234 - - - - - - - diff --git a/demos/shared/signoz/nginx-config.conf b/demos/shared/signoz/nginx-config.conf deleted file mode 100644 index 442a2899..00000000 --- a/demos/shared/signoz/nginx-config.conf +++ /dev/null @@ -1,64 +0,0 @@ -map $http_upgrade $connection_upgrade { - default upgrade; - '' close; -} - -server { - listen 3301; - server_name _; - - gzip on; - gzip_static on; - gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; - gzip_proxied any; - gzip_vary on; - gzip_comp_level 6; - gzip_buffers 16 8k; - gzip_http_version 1.1; - - # to handle uri issue 414 from nginx - client_max_body_size 24M; - large_client_header_buffers 8 128k; - - location / { - if ( $uri = '/index.html' ) { - add_header Cache-Control no-store always; - } - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html; - } - - location ~ ^/api/(v1|v3)/logs/(tail|livetail){ - proxy_pass http://query-service:8080; - proxy_http_version 1.1; - - # connection will be closed if no data is read for 600s between successive read operations - proxy_read_timeout 600s; - - # dont buffer the data send it directly to client. - proxy_buffering off; - proxy_cache off; - } - - location /api { - proxy_pass http://query-service:8080/api; - # connection will be closed if no data is read for 600s between successive read operations - proxy_read_timeout 600s; - } - - location /ws { - proxy_pass http://query-service:8080/ws; - proxy_http_version 1.1; - proxy_set_header Upgrade "websocket"; - proxy_set_header Connection "upgrade"; - proxy_read_timeout 86400; - } - - # redirect server error pages to the static page /50x.html - # - error_page 500 502 503 504 /50x.html; - location = /50x.html { - root /usr/share/nginx/html; - } -} diff --git a/demos/shared/signoz/otel-collector-config.yaml b/demos/shared/signoz/otel-collector-config.yaml deleted file mode 100644 index d7b491b7..00000000 --- a/demos/shared/signoz/otel-collector-config.yaml +++ /dev/null @@ -1,188 +0,0 @@ -receivers: - tcplog/docker: - listen_address: "0.0.0.0:2255" - operators: - - type: regex_parser - regex: '^<([0-9]+)>[0-9]+ (?P[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?) (?P\S+) (?P\S+) [0-9]+ - -( (?P.*))?' - timestamp: - parse_from: attributes.timestamp - layout: '%Y-%m-%dT%H:%M:%S.%LZ' - - type: move - from: attributes["body"] - to: body - - type: remove - field: attributes.timestamp - # please remove names from below if you want to collect logs from them - - type: filter - id: signoz_logs_filter - expr: 'attributes.container_name matches "^signoz-(logspout|frontend|alertmanager|query-service|otel-collector|clickhouse|zookeeper)"' - opencensus: - endpoint: 0.0.0.0:55678 - otlp: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - http: - endpoint: 0.0.0.0:4318 - jaeger: - protocols: - grpc: - endpoint: 0.0.0.0:14250 - thrift_http: - endpoint: 0.0.0.0:14268 - # thrift_compact: - # endpoint: 0.0.0.0:6831 - # thrift_binary: - # endpoint: 0.0.0.0:6832 - hostmetrics: - collection_interval: 30s - root_path: /hostfs - scrapers: - cpu: {} - load: {} - memory: {} - disk: {} - filesystem: {} - network: {} - prometheus: - config: - global: - scrape_interval: 60s - scrape_configs: - # otel-collector internal metrics - - job_name: otel-collector - static_configs: - - targets: - - localhost:8888 - labels: - job_name: otel-collector - - -processors: - batch: - send_batch_size: 10000 - send_batch_max_size: 11000 - timeout: 10s - signozspanmetrics/cumulative: - metrics_exporter: clickhousemetricswrite - metrics_flush_interval: 60s - latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ] - dimensions_cache_size: 100000 - dimensions: - - name: service.namespace - default: default - - name: deployment.environment - default: default - # This is added to ensure the uniqueness of the timeseries - # Otherwise, identical timeseries produced by multiple replicas of - # collectors result in incorrect APM metrics - - name: signoz.collector.id - - name: service.version - - name: browser.platform - - name: browser.mobile - - name: k8s.cluster.name - - name: k8s.node.name - - name: k8s.namespace.name - - name: host.name - - name: host.type - - name: container.name - # memory_limiter: - # # 80% of maximum memory up to 2G - # limit_mib: 1500 - # # 25% of limit up to 2G - # spike_limit_mib: 512 - # check_interval: 5s - # - # # 50% of the maximum memory - # limit_percentage: 50 - # # 20% of max memory usage spike expected - # spike_limit_percentage: 20 - # queued_retry: - # num_workers: 4 - # queue_size: 100 - # retry_on_failure: true - resourcedetection: - # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels. - detectors: [env, system] # include ec2 for AWS, gcp for GCP and azure for Azure. - timeout: 2s - signozspanmetrics/delta: - metrics_exporter: clickhousemetricswrite - metrics_flush_interval: 60s - latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ] - dimensions_cache_size: 100000 - aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA - enable_exp_histogram: true - dimensions: - - name: service.namespace - default: default - - name: deployment.environment - default: default - # This is added to ensure the uniqueness of the timeseries - # Otherwise, identical timeseries produced by multiple replicas of - # collectors result in incorrect APM metrics - - name: signoz.collector.id - - name: service.version - - name: browser.platform - - name: browser.mobile - - name: k8s.cluster.name - - name: k8s.node.name - - name: k8s.namespace.name - - name: host.name - - name: host.type - - name: container.name - -extensions: - health_check: - endpoint: 0.0.0.0:13133 - zpages: - endpoint: 0.0.0.0:55679 - pprof: - endpoint: 0.0.0.0:1777 - -exporters: - clickhousetraces: - datasource: tcp://clickhouse:9000/signoz_traces - low_cardinal_exception_grouping: ${env:LOW_CARDINAL_EXCEPTION_GROUPING} - clickhousemetricswrite: - endpoint: tcp://clickhouse:9000/signoz_metrics - resource_to_telemetry_conversion: - enabled: true - clickhousemetricswrite/prometheus: - endpoint: tcp://clickhouse:9000/signoz_metrics - clickhouselogsexporter: - dsn: tcp://clickhouse:9000/signoz_logs - timeout: 10s - use_new_schema: true - # logging: {} - -service: - telemetry: - logs: - encoding: json - metrics: - address: 0.0.0.0:8888 - extensions: - - health_check - - zpages - - pprof - pipelines: - traces: - receivers: [jaeger, otlp] - processors: [signozspanmetrics/cumulative, signozspanmetrics/delta, batch] - exporters: [clickhousetraces] - metrics: - receivers: [otlp] - processors: [batch] - exporters: [clickhousemetricswrite] - metrics/generic: - receivers: [hostmetrics] - processors: [resourcedetection, batch] - exporters: [clickhousemetricswrite] - metrics/prometheus: - receivers: [prometheus] - processors: [batch] - exporters: [clickhousemetricswrite/prometheus] - logs: - receivers: [otlp, tcplog/docker] - processors: [batch] - exporters: [clickhouselogsexporter] diff --git a/demos/shared/signoz/otel-collector-opamp-config.yaml b/demos/shared/signoz/otel-collector-opamp-config.yaml deleted file mode 100644 index e408b55e..00000000 --- a/demos/shared/signoz/otel-collector-opamp-config.yaml +++ /dev/null @@ -1 +0,0 @@ -server_endpoint: ws://query-service:4320/v1/opamp diff --git a/demos/shared/signoz/prometheus.yml b/demos/shared/signoz/prometheus.yml deleted file mode 100644 index d7c52893..00000000 --- a/demos/shared/signoz/prometheus.yml +++ /dev/null @@ -1,25 +0,0 @@ -# my global config -global: - scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute. - evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. - # scrape_timeout is set to the global default (10s). - -# Alertmanager configuration -alerting: - alertmanagers: - - static_configs: - - targets: - - alertmanager:9093 - -# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. -rule_files: - # - "first_rules.yml" - # - "second_rules.yml" - - 'alerts.yml' - -# A scrape configuration containing exactly one endpoint to scrape: -# Here it's Prometheus itself. -scrape_configs: [] - -remote_read: - - url: tcp://clickhouse:9000/signoz_metrics diff --git a/demos/shared/signoz/test-app-docker-compose.yaml b/demos/shared/signoz/test-app-docker-compose.yaml deleted file mode 100644 index c043d75d..00000000 --- a/demos/shared/signoz/test-app-docker-compose.yaml +++ /dev/null @@ -1,26 +0,0 @@ -services: - hotrod: - image: jaegertracing/example-hotrod:1.30 - container_name: hotrod - logging: - options: - max-size: 50m - max-file: "3" - command: [ "all" ] - environment: - - JAEGER_ENDPOINT=http://otel-collector:14268/api/traces - - load-hotrod: - image: "signoz/locust:1.2.3" - container_name: load-hotrod - hostname: load-hotrod - environment: - ATTACKED_HOST: http://hotrod:8080 - LOCUST_MODE: standalone - NO_PROXY: standalone - TASK_DELAY_FROM: 5 - TASK_DELAY_TO: 30 - QUIET_MODE: "${QUIET_MODE:-false}" - LOCUST_OPTS: "--headless -u 10 -r 1" - volumes: - - ../common/locust-scripts:/locust diff --git a/demos/shared/signoz/user_scripts/histogramQuantile b/demos/shared/signoz/user_scripts/histogramQuantile deleted file mode 100755 index 3b77a7b26dcd984e1b770659ad8f1c44f296729e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1849156 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

bdLkrR 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®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


pX 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

    X8!>RxkTlr?8ej_Gp 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

    &vFqTG|p_z;94qB4#d(cv%_&jg*JUbr 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

    &3XC;cMOBd5F=_yte5Tw z#P%#=s7zx=5HrHFV!60n4iNjb%0IYuXyJPkKkAv3*NdsI-33xY$X`J@2nzl6i^JWE z-uHzLW}LfPn3%0lqDMZ+B&vQ6_S9Q3@G^D>C@fBfRFMxX5;!k%-Fh$TxNqAkqc)35 zyAt1XucbZqm}ZNZuz?$rAICj&UhWFs!;Q-*F~BHJk*kkq2gdDG*I4GC#H)J$REU)g zm5fU%y}*aG^f#C28Vh|R{vcR9AKfPKl&Qqszi9f4SLf$)Q8@G0ude@+{C~XV&1>W0nI){m4z*Gu;xgxHg@AY zZEy$>^&42USg5dS3S~}J+dJz-BLvqB=epHDH?|k%z=}gsc2K$d?;Hi+3IHT~lrDCE z7ESZ`iK86?(PLgPqq*40|3tYlR}~48M2nx=O3W4@>wd;DId%MOq{1Svp#JmWmu72b zp#{!UBel}4d4Ej-Ovci>Vscdf4qvjc$!QaV+QP#|x(HKRMriz|KCW9TKFlow>&_tI#`W3tw)hOduy#Ivt=cE(YhW0{Z3enq3;eN$}qSOd^3r zO(ne+{~JERkXYnm!CA%t16py&#%BlLe zp}kjraE>>bl|?C=jN*TZ9VX?QjB44hnrz1Yea4H- z5eS0^7UQw2PH>|A{b5l7Xkl&t#&RS$OsvhCCaIAE7VE>JektHY{=c&}8a@7fu-36vi&#&Lyl-A2@fsIeVgf`l@9*>|DUhrFnA|OcvXxe(3~*N4Ig;?zw+-_YSaeUHxUYTxaL0_SReb{`KhSl zuXx((G5>6xU0VE-7Vm;Pz;a z4TK@&8CF!D3|jb*C4_x%#nOT|jB?Xe7L_reAfc;(Q_H2!yUjCVj#t z?_xYX*$CnM1bydvk|@e4{eZ_!bryBstDsM#Mn!p(hM181n$Y;JD&VrXE9t-J(=1}` z;l;zQ>50)bF4+-$j~q-<{ZH=06MP+J{JdS(JmrgW&c~2dI)J_w@!=vAxn%s)ZkQyT zwJA4H{jvla_qaIXdmqHJ9*hte_g=bQuK7cGc}g0+B+!jAcmzL3j$FvGMM^grmO;48 zR+@pYFZ0`Osc4UV><0Qhz*YqfE108*lMlm13CQxT70IRvN^BGAe{LqyQg+blAu$OK zEZXv>tpZqpPF(ehAaj@}%(_q0_1i5lw;w-1g@TFs_ZfyUlrw?uM(Vp(g?o}Lygp`` zOI*ax`-(OAI<%8tm&J4#a{Y*OmgMJFkQ_pQg-O1KN0kX|`>VhH8$z74W!}wI1AJuN z6Esr5Lom5hb?r{ZHKcdT-Z1Yl-JA25jx3T|tTa8?)~4QtJ-{0`lEN89hPh#Abr4qO zU0ln_RNLHZ#X5Ox^W^>@vAwCL@EI2YcIG_cadWQdYr&Z4Dpa$k zy@Ykf$V}A14|5w4YmiOruObn6L>yXhRl!$jC#QPgpV$rNy(;tzH z5P-vmTtaT_s!@-n;N%Tq`T}TXDS@CTx!|nYgR`0D_B3PyC=K77KQm(>6kyuCg^%8> zc#Cf!UWNf#eN_6@JfMBMp{^tal7VKIJ zu#~+~qubkF8ZtLxWA65Q=J*=c5)bQ87(W%A&e3?qTmgsJ_~k&DcJ&k)J5b!o4qWwY zf#aCRsK}uQg_itsRkpB(Yt$gOcrF2fDkerpK3^RX5-%x>jrap+QQa7xiZ)pX3v0h-sI<>06KA9dcH*Skq$YDfDJ5!0@PGX z`sCpi0{TKO9K?+i^{IM)*_;^<+FpU_(gy<5ybl53Pi&Rl9M7>=IN6~tU z*n;;##ly92-r8ypwr0(!mTqH8f-2Th#8q|gV07GRT`=zZQAwPqCR3t}P$h#0^3_(& ziuhPBjM1pL-reGnYdfq@E}v|0;W|bI8ces3xRalmgWspKtFHmMV=S0M-MmVBG+S_N zZCaUPaB3JeoobCL%5NCf5Z2@v^tAx}Xoc)};whz-Tq{snLdcaG3f2^>iiUv7A zvvZJw3h5u)(IX~%+xB1bkzPV|xA;a7daxN~|2`OkA^U-MHNX%Y)wwutzLE@nMZ8TW zqen&Z*)Dd)9h`Ip@>!IMBP*zvbE+t>VMA)2=2iXT?c}3$JE4P!RSGdDbdQtGS3o*e z11k#BOmi3h%ZXGtZe+KR#D;$(R~?-R48wyupsM;mvN2Z^mBZGff>Urq-82o}JnaS) zd|XKJwtO|CXNEk%GJ$X6$3>#YZ(e$8Hyh(=r}3Hv$@6Oc53}cHYvJd+2OHpc78)Q; z2^zo2q)p@E|7e15!aeK!LM2C!WSMc_&(|&-I0H_CAeiyYB#egP73Z5-(*ZqnJvIspyH^PLCjk(VwlHM@a&kx!^Uv`W^4(E%PO&*?c)Ag}rdi z>r5{vmf^jMLeh*-k1m`bTSwgAuIohyccwoK3Iq0&@P5u`M87u|*%WYmtaF%yrBHwF z?aiQtIw1@OM7JLkk72RV2W`CiTxW5QVI}HcohwK%hfH8{o|2Z+zmTblChh$>qM!W$ z)9s?htX0dXnR55`6I|dY{^4zFO&l&D6bh^H`7rw!xRHhYC;vvsT!^sD|p7 zu;70FPG|%)z6RevmQ`s%&a4i-xx(TJk7_ty*`oZGYWm|#(w7LMG&3GRk`qKXvxDBl1j$Pn05Du5@cshgTw9BC*(!%|eYkM2kze$vIKG*mmf!YlY z5Z=5hK~)~6{ye{Un}D$9>Jq-5!L*QEzF@OH{$Mnvy3QJrJCa_UHEbX04>l?|6x!-R zCniC(B~(p+U_^AZBr@d~vHntnSuJe67t5-3q283R;7et*njO*riHIJzD&sUF=wB2g zVfGeuMqcrPecr}rpp@{%e;a~FJKWW;hm7r$7C(yZ^wlR*z8|^-Hgi^47=hp#N>Rnz7sF-HL>X7)*6V z^^~;z_+^Y0a8m2Z&_buordQ8<@n+TLI67C_v59M#g25m%`lV z0VQ2q@{(Fcfs5^}k zWbMoq$l3cQmMo-sN9Q}MO$bOV>1x%=&3@-Pp)c#Ap&zXmnFWX=3%`>LUV5%&)Cj1O zbI!f8LjKec_$qf+)6)~_XFNrg&baxavG&pwAxCCES*9 z$ES!BKJrq2?3g9T`I0?AQeitu(xGUsu!-Zlvo`?C6SxtFu>DEfqx-rVs|kq{#j&Zj z=H;}_)~~9T1@sA1pUirarpvs*)Z@iwwVRo$&mYlifbhm$&i`g0gRIN$@>;NeTGK)um`u>n=fl4h9h_$0u*W#PZ|?hHSv6Gj^F1uIUmfca0k{;jvk z4%mE{Ccssnyf296_p20(c)gdU!7&mnlQ7ubN6B8ak|mMm;;E;M<~W?P$IIM~DV#H) zzC#N8-!xtC(=R{HI!){fDJdzk!jSECvciLYPx$^@;=&>p=8Kh_ja*22N0`Lj0**Ix z)lH*V^sLx72VHa-xkA_;f3YoxS23tT5XB-`SQKg@g=XV5C(OM^1ylM zQ;l0zn?nygBOAxS2-(5%IyORezr2sskJe2zsCsAlWajvcqa7mbDNUiRMCGO^Gz+se z`{7B-o)Yd?!@^MOIv8qQSg~65-MPgrHlUX&7J2ywmVe$iD4RTI9`W=O81TF%efPB; zXKh2n>!JxbDI^zCx~8Ml{}iO}sEVUa0^WSY=MoXIK8&#iljHJhiO_uOW*4<)00@-* zSG_?$2pw4w*qvqQ3yU@7ghpMW+~!o!Uv|W(EXEgOnGEK013h>_%H)Xh+cz#$dlP2e+muB6f1yc0(f_E6-*#s8vz~|xgO0|9=Ja^G zTq7L5#sMlox#-E%3&(|4__mA`B3&r+`bbL*5)UJ$nBrkG-ZQdpQCm7 zPWXO=O^|^RL9+n9<1-06QkWpFqMDZ z4Q~DhY0tnWromS<6yop-tf&8g&SP7oizvyVIMxgLW9da&AT2x+E255X|Di&8&lJ>K zg!K}noAp%G5#OlYMnmr*NBI6=$th{f!_$MuSeoK=>pw`OQGH=+w2mCn_k7M1qjD2% zd#A*lX=Wu9;5|5|2HNK^iVgRh+d2(K3G1!oL+OR{oioCzRoBm^tqe#oHqgp0YO4Ej zUJsm7Av?tN(I;1ie*RQOM$4WQLQUF=qCFa&hocSnn}p4`(@B-L1j$`+<1w) z`=o!gZyKoZUiW%Zt!F9cuOl~_T!z%#^*1Q_x|*@pu#tNuoPQRhb8-&OZNf}k3mEXx^8r0Y{;%>{enK=;mhv7eR%2KZCO=?;|%q+Ygud zEkvyh)B!kk^U^HV8!Hg5*V2pr!=Z2nXCh;3Hbf z0x(voTYQC@gDqqBfV*~Jh)-p|88k@{82-vwCkFFby{O+6ikS%2v`pNjo(RtbaD9Rb ze*rRxE0OBpzjVAxj$pD8&3jL0_jv_weFit4vZ=G5uP9K&Qqd7yY)YoSqP}F>a zl`-}HXvDw2Sw$1$p6|BhC*ODHf)k&3FnZImFO6z?VOy!mkwIFq28g^&m661(J?A2+uo%*LM+4OK&zCZ6&S$6)aM5NS`_{^?v?UDud?$BtTQ0b^DPOUSj|3G!vv?oh>$2}dY!EOGtdZvTt+z% zZBc9JDv6Eo6EUlD5Hk<>u1P9&!2Xc+*jMnup0lz%0NUccNW3EVl4xs#)0vi$;6$N{ z^&D*hmel|aMA#Y6u{uK8?^yz(N{NbMFx{Lb0!y8w#YJhGf1v4C=f|dUN*ukP@awyF zSli5CLqb)3mQL+%LyjXBQ2`2o>`pI{%fB*fA8UY?NDgFtk` za1+tlZ*8rACefAcEZQ7pP1`^!k{!0EhpMGsIjdgVdZ}I88bo7wN>?EffOpNU+g29Rw4fgYb`0 zlmIjU+39CU=0F9kY@l(F^MxC55;@=*RMr6u@zVtdr#(aY`kN%%!ByN?+SX7lqwIcC zoOp4}>S+R&9}eF*WEy+Xb2;PtBJQ6D$N62rQx-!631k%9h8y+GT%A<0JfEVF$Z+o_Ur1qClyc2oizr!zpXz_cvHyj6t|jb;2kH+L@Nv2797BYyKcRSqJT1Fi>9IvFJ(Eb71z z?Vmz|cb|OsIhylS*2Yn?On;A_iR^cd%drD299Gm70}fi!3F{Df)voRPDZKK8cSI5< zAJ?Z6Qg?YP2IlbfW0?1uu&AYY#@lfMFR#~k``2~6ODU>c%8Z@u7d%uMT?%D?5E6^Y zi_Ql!%x9v%8I7?%dIx+fp7-B0Gx}{$%LiHD4ax!cI(FhL?caaDp09@$gkH#k5l$nJ z5GBaGb73S~3ZM(!^{o;)7xUthcXUwUMoE>HaRV_RDg_5~-HhZw&*@)jVIa8(_C-_p zJ)!LOtG57!aN6kvgyPb5?P0~_R$9DHtuqOwg|di@6RkKTA=j7kNH~+-5e10~o|4`X zg-e_5VS`7nHv`7V4}@~|PqXvcE)@JtlO7=;Dg^(_zw|>?75>FvU2*p##DLfsoZde( z&;L&Tgv=k6=S`uoBjkZ+Xr@P1d_P_&tfJchr5rV2UYy+htzt~84yE8PwlT>ewA#Dj-T|u^sz7#D-U)1wzom@Zrjh z+7}UbT<3wx&xZQ3W;F`)W&!(MMz$3v8n;*Xn&M@=9bRf*wfQ$|92jT5W)0SI26#G<^XGBp740 z|C$P%12`4jlP`>o#bjbPopESIYVLK44iLNBsR8wRCGKgl@bNS#f*nnQ(+j-Q9+g8# zoA7uGPE#8(wvK-*JA&Mt-}>2qsWvu>cf}Wu~YvhnlWJ~p2La`jE2+)K^?)t!-N@X zORFcXLaI?G&{E|sCAL1{A`{ro{lGyZJ@pz?H{K$n`76Sc@`X{VYv(cuDv{>)dOXz+ zxp`3~DYM`8IS;x*O?1?AZlfE1UPIkIRl0dDzOcP%7O^9IVtxNliCcUi(d{eP6bv;9>)19LGBF5b)Pa?`W( zjf*QD7cl0QqnT8l#Vim-#gNfDX#_-@Q$7=*POo(X@)1nZ>?q>5tT}ukJNMaH3de>v zJkcAujr$?9h*7iaXie?jBrIQDa*kzfZ{$Hqo%s^BF+uSZw@YS{v&The$D-V4-Gyy4 z8{IVUHPbJ%_xhS_M5d}QTkRH*>!N&TsSxK0s_rB9`)OURt)gF zuv+M$IE40SMQX-K=L5sZ{kv+B-Cvr}8)L9>qA$*sEjUIfh z)_oAF*$^ZzA9w@pyIoVG{Rm6JhIGE$U6%H*?nK$@Y6&7#jIrltinz$U$6;7}_S+EG ze&(OHYH0J2^e4s#2w2u-zNXGjP0l#3q6#wMt&PlFWs#U_cQCr>Vj-AN7VI+oyGP`& ze`S)Kn7Si?$)PmXj>3Rid=jIXuhGSBND5S7#Tt5n3%7rHgADGhe{4@;oC2D3$&NaQ zL!vJ-=bv22s0iSMLf;w$HJ_2lOojh6tSv?)ziYp57a(;0X z;UXnI+nQN!#q8Pe%BjL5&jqJ?LB30p0q9?3TBo8$Qi(+_%%IZf6a%3;NO*^E`njuW zk5@bJ8Nrz-!mp#+R(VH5wr-}fJVs(QwAhq!pfw;kG3HQzc|?0dW{&&mzGgm$_EE)> z#hOWU2zi9_mU#FetW)(5xw0UWcXpg7kuq3y&awM6lX#DBLzbOZXf7jR7jg5g+o-}* zpANG#$1Rzusn>)v#ccXhXmk~jKNs1Aeax@Y$ zbr|HkR;9W8{N1#@nxAIR05|0S0C7Q%zI;4gnO8>})6v7Q34QWA?ORKMV7gkFH}2QK z#3zB0ZtC%9ViKPOYMvn{fpTzxlRz^wpbvYM-@n)Tn#|V_`U;YGud+Ww_9}OE1~=Z9 znJHX93IzAOBz^^_d1phv2$=)!(lozYrJQWBNJM;CY`!wqhC=*adT4V&kY*UMUHLgI?4X?EJZyRY9GE4h+u37Io=3hDk` z%$c+^3x{ED;SZjBI9er*?UnPAB2P`HR4KeeE>v4CDG|V|*Om3(xGL*zjXX z&ca@b7G}#`%1L72mjdD3zxv7Q4G8OFoxck8qCjw+OX5?RExkyZT8k7#FVQ~M5(uV? zNzUgNDa!Rqb#X!~FAzLSbah{|B8=tt39*JiFfG$e2f##JU2UPhC=gtib#-NZQr*Ks zdr}~Hq`Ielup8C27UBy6!6emn1CyRw+X>Yp5M2Kzg{^7Y3&CQ*Tv9r<21Y3AE*#?o zLdEqY=a>sy0$DX07`-$}qWX|P z5Jy+x9_xVuq-%Ylh4V;{9rr$#5_VMooN%QHgr=d|lr7+5rVJtW6$qx`n&}3ZN=J8Y ze3|hJg!_mhLlM(M;e5`V+yF*rZz?UUf+^r@ z6oYy^TT}&O+&N%M#<<0ds~N<@RmrJkY(R$~atdeF8%m{31j56mRkZgH3+{P=pe@th z4`&4!)ZP$cFM(iMS%n9+)j=6$JVMJB2p$<_F0djrTaFNW2n3UiGBrcoY^bicP`?le zu2s6aw?k6hV4;l=2p*|!7&LKp6NFeG5KL0tDlq9mZH7?47YMF(;dwq&2o^&`p7WTr zQ8{rqr6p~eIEw14mk$JzPdZC;O&epb3>kh*PYb@ z=S}m3ZKlB6*@Z_|mCJ7-p~4HVGr&WB%nntiIRe$USCV ztlt%95CSB{PAFm{@C&!$XcX~%l3(t_OQF%-u+pRf_pkliM(?8#40WLo?;rBHLD9MR zSd5AyM{0)erSxl*wRsfY03Hmm^MtlcAb4b0 zyow5#X@d~M70Iwzw>Mgb?6Bj2u*GfAu0q#zZBt5bvFUf=DHFycHjM-iY&s=8mjyzP z*t8ziF;lcC2v;OFT>%s6ZDUhmdqN;|&8o`V#yWj4-(lhMf)HO32&Oqz`M^-eK5}5F zjnFI}42t@|&~)h0GefE{WeS9%Lapeer6^5k7Eh_7CLbV{JUag(Oos$Q(SoYHO9z2kv-3#xWD@mY2W8zX!LcXylQwpdRJe3g2f%|qJQS}qiT?E4kYd+&#i_|J{ZM-yw2S= zNPkwt$grZXL5TylXgkcU8aljqi-+>7;pLqQ{qX6~4njI3(BZ`?a(+pgCRTIbWl&*1 zm{j`q2^BE9Wq*tZb?(4`2(DP18ayL<@~Y|n z`kch}b%78XQY|d&o)?0}fW(Q+y0a4V8v>zXYBlbu{|L$=LD)ycKhM@6R(twwHRr(Y zihdbr5dT_Dl|kqcaf20=|53MhC4o>puNv8L%H|Qly($p2RpQeJ+qB#efuQ|bjSoHM z3CbeDAZ(&Abet914S^6V7C!`Kkst;?@S0^_toGwrHGYSy*C2U^YYr~(4%Z*Jz-yMy zkKq}<@iTq9ws5^bRCTf%fA8lRX2SWu4MN-^P&4r--Fh+;J}$9Uh}#8%=~Oj-B>gRz zN=G+&P~@jP>DE6Blrc?jsBUmVUVv!HqO@CPz~iT4VZX6c+a4h{vO0R}ql0ndGovGo zs*W!09c)ly3t>MY(2)V5Nf)EeKFXlZqfe49RzXIw>+I?Jkub+|kc8z2z57TMv( z3uU@M*t4oScen|HvPck)80PtebDGDUMn%Fpc5g&*Fa|fE-`LQ*hTt{T94{T=VsjKT zFh=9MU1zFew#ylU`L9eA;bSSkSI4?|IoLY8yLwvYh63(3R9qbo`OXZ%aG4BFe&uOU z4dlT6LnY*cY9N7L8)}fN06f`#`m_eLO#+JkhtbkcpVYW>j6vImqPfYH3@qB~a~6&o zhJ362j-U$kB3e-ciS=H- zLGqQ3l{HZ9x_o5X9Z`5+vK#GZp$9+3Ggo&ogx5xCP)(%NqEF>syk;R+o+FAJauxtD zgwXFbkdVhAi}UtW%(@znz_ic2Ssss{4l}mL2sq_xduJ5sPlS9@^R2rLnhmroAJ`Br zuK7Z;K?hkLn5@iTh?X(mGb16cpJ*rFr4w#Zjj-NcB;i>n5bYS*+kX zTckgQ1Yv6-d|Yss1ww3HO%^*LD2pUwygtYiBlp+P>w`JJ=w@3c5Ndv_!E>pj5Pf!*KVyF#YmK-Rw5dtB0zJ~7B z3k0`LAZXXLB?|>*k)YDDWRK7e353{<@P^wf1d9Q}B@M@+ERs<6t*O7Q@Wih=CanZQ z<;OMk4d)($>n#wpAvGyBzrUimIGs0(YdUB3SJZ2yL2>i?E7~*CAiIB=3;lDh4aYW<;O>% z5Ad+|v2cwM2u&+>QVtfBMS>X-GgrV9a(D3%9nevHv{*xH1jBBFcJT<{A7$-KcGbkl zK@KndToZ%Jf>8#!{BgWn`;{?eM;qiyDjTIgfA(8V%tBeCd9?eBg*R}adr+!BR1;&z zePiGfAG+IKR=3XH@R(K;BWnwUGo{IaRbyPd7Q0cCSB;&=$f|J-F0g96hzqP59~+Bl z4Ud|v9@C2h+5p+O^J6o zfnbgJ)gFI<&$YX=vM5=2)(Mn0((A6zYaxQ<2zY`tnXi3gakDI5+Mu8o+F%pBE}cw7 zxzFpNVo^HbppJ$p*UQ)WEd1|SD*@(n1-v*}Pz%e6`r{0~v$UiZR;W4S46^T>tLQON z)=?m0w7Hh^$XrD;$DyrDr?u41o;04gtSMDQ?)o#*9!#nEwNc9{)QJU6ZCFrcJmxH4 zY8OvhHjQ9Zd!RDY8q&zxn860>Vj~*M#e?JZgjUZV3ed#bE%9sg_|3$6SspJ<0NC5dmg<64^) z^E40M?)Ib+?chL9nSf2UuN&>G1xJod(3VS)TuJ4)>lN36(e)?F+OL=!ZSq9)O)zBp z=^!`O4sdj)KWf1*+a$cxNq=&o*(7{+49uBnbcieSO+q`7D=tAVMz6Dq&0uT`6c&m% zxTdO~=^VJpIq*74x;-)|j~i?-P-u_7wXt4bu8WOm0Jlf^&+)V=tucMf#o*_tmq+~k z1l_53*3y$_4++~qfoO!iwZg{UoCXa&dBn03gmd-$0PJ2;l6w_vSpFjH1Gk8nhgpJiqCfE zqKwQmLZ2)qMNE}ak)AK>@i z7fg{y(y3xdXMu3zw|e{~gzFF{JERMQx>X>!KG&KWe1Wc0GPLIS)9{J*%xq7fEk1ro zbV_@ANT3x`Jlpu09Zvm1K783!SXv51Ex$d$H?X&X2S4G|OlTGl+EL%YuKgtp;U^qz z#o6B<;3pgdzLX~%yS_9iuEJtP=2U~?sx4O3Y^pUe7l`7o1)}nU4{)YV5tKzjoe|3# zJ|&C%q0`#gxHB4B&T{jfWN)*l%J+fq72XyCQQ?^fcqQ>2%$q-7(G^@^B~fRZd_$9}$nIY!+XBhg))R(xxld0V^ z;1ZrpB_--49ax9kEq11~+rXL9TuWx6jZ2aZy$WGZ7Taq76Jetc`y96GNpSdQuHP>*_J5UCB!2F!L+cBv(^$t1+xrtHeRA=C%A8OFPP=)M#}I|lU-OS=hEhAz&N@vC z46=P=kmG$iRp-8{1~vP}pu|EkWvf6(Chccg-#55DRESVz(s4$80Tc(xIHwJF2!#J9 zbdY{7VR}r6PYDFmY0YGxZH2p)5T6$arZbx9QD(vf_<|7M6bPnsb;2gYHbSr%(5XwO zZA^x53CALVP;tHv&xdJ(nj{b;nGZ7sl_e0Q()n<)VAl%-^+FvUWtIraBEg`DQAV=8 z6E{w>ENAhQ2hHu*X#Urzd=*D#E*vPdL1m?j?U(czrpQP|65*| z-Q+?i6ugvI7ky#ow+6Z5%JZ~B{pzCg?EltkiY&1rBoOZOugjT#=NvHM1V|4d_7@1I zzIB~TMksoUnJ~kQ6yiLAVCq-bxpt(YL30e^NoyN(L*+{0S|bqLqqNGXLez^C*e=B1 z1cGUF-LMq+NeC7LA|9Cn2ZW=(L>Vf^)O8l-D|)t2)<(yKCn=0aa^bX){t*cA(p+dD z0*?y>b!=VEg@%H%NU-d-T)^m@Cyb{BT4}%&&g8lno%0Lj^Nf?Z@hI{W%9HD2^uuBG z+z?Hvi-B!Tp+SjrM4_eF(V1p(K3pv1O!=A%wdU#-$Q)MPVJADBgIrv==ZUZRUSpC7-ZVT41A*rC;P4T@*(mq{(Ei*f0~T!YGbQ9{b{ zNR5v^(qeX~);!MiA|`e~Aw;XV@C6F*ducV7ex8Ss9;u#5KQqSuok6YwU^4u)o1J|0 zJ4`|B<$Ypn6M^t@iT2X_U5S_cLPTp}$rA|HrFES@^-(nCJGuSRL1-NXf@iHh`nn61 z@-UhyM87~Vt=CNE_n1d9A)P6&=TUhfq8SLppJ-}OK~whVy0gDG^e3A9f)|MbNN{}) zX@@w0s85XAS;AC7h)Dv$Bt{wY5w6HNEhFIWM9IRt?ec##^g(Xurt=Mo*TWqhtm`f? z=z|i>Gah#uuxRh~!16~wOFs5V2RW}D3#@tWAajzdutF4a`A;skUtrK3A^M98m;(>- z)r18Gxf)c&U261-W1K|i7GQGA12&UBsfT*oEW`#3m<$?H4_zm3A$uE(K9E#Nhx(?@ zi0>AbWJF{%*l;SAFs!@sAK@5R4;|UD$e?(CBa&h}6j`{`>v8qan?G7)c|EQk#%pqf zXgpiIcoFvYG=U4WSa;sZ%+wgA&h#ad(iexH;!N{B>&*;Nv6%MjjYtziL|-@fsKB7{ ziw$!5E8$Lk$Q=k#Q3KpS_#KKndD49W53Op@c8WnYmf#mzG6TU-s~m4CZEk=s#eA>? z&)x6ldkfz;z`3psOAJbU`l_z%Wr2=RBU-?<-L(|4cI9c2EiBR;I9D-H9&Z}$U;_p( zMRl~h0e=5w2MYc!8MLRtuD@+$TZY?&opRD?UxP-E8{}UmcRREwzQ_7fZ$M%4O0%nGZJeNMo|9gyUaH&s zdLT38dBv0J3#3u8G-2*dZJL^7Cn6Q!iRhH-e2+oDEywy8XW{6S!fGLIg_TpM6mpCl zodR@PRXJs&7Avr1>_%s})De?O7%ntkB_Yli3r7irgM*`Vh{p+T zvOv&=MsbL{ud+gH5vSkI^bIp1#1?UG1d|T&YQb$6h+0NO{dc-{L#|SaMDvjCwx||z zRDWNEkJ0Kwm{b^rQ<%@MMxcG&P#%BPMq5$toEAVi`(A_EtT8B_^SUq!F9BU#qa(YO zBRhF5KJXl(101{^TuP(ET(YghP|+pRPe-}@F3Op7E(&ASR20(OAvc}oYHqB<&6s;} zMl>_qL(8K6K4zm`>+y6FNEompD)(<2nHzW%Yfza7zDun6(GB=oNGe@o)n0J8ioxK^ zN~0TW=oGMcJ>BRg7k7atcJ2~I{-h|5?4l^=&LxV>jTkw8U7~2a5SB$bZ!S?3+-Q)q z+)_oqZ!{?G-ldA3-vrkBOBE$o(K^;eIbUC@XzC_|oE?`cirZ{ZT;@_mpKb;#dTybx zZi&)8`Fo|CYLP%R@>WT+O@iAl5VQk2&DKI84+Z(rTEQrRV7d`S_8vE^rHU2^?^=P7$%}UWy;RXVTMTlZTdF933)2W<;d;8!L@w6aitYrv zYKoSJ1j4RK+O7^;#jfGtF15=Y$OuxN@c$uDO?s3^?o^`3akp^wR)cU#( zO8m<3u?8}=ANSZb6b-JnusoBVftH#-$TawDOFXF{`^q_rdWql&fvEUdXYm|Gvwkr2 zyx3nzg9U=68By$wrHYE~i{kRL&hpC?)%nq&xcinVnuv=!%M|_jV?--t_&naO!HzlJ z%v?$mQ=f}{T839BRt_({3~OE65cvDK2fYr&JKGRu*!-MGb`S`;SJ>v?w~5U!3+WAk zU}+{UZxY-u0zrF&#pAb&_;w-f5eOE{^d(^rd4i#m)A1?dLHqwjcv8yEhdn4o$j{vs z!RGMLa0LfjZs#$6r0Rd#M%}s4P)f5=dXGk_7BL1Lh-&hn6Wyxj%|M_(?gRU8ZR6PX@(#mMQuR7yf065_cf9wnd6|IJ9kN1;X)3 zQE_;!`8hC^`s8;9f}S)_r<{zg?m&=I#3@g_R$wJy0b0;cr=zei>%GGuSA(kDre}Fn z?6(ukxJ*x08l7R5e}L%X=}yKl#ux8`nq zvY`w0jmBL2_HLX&JzG{YUloXN0S;vPFwlu&dyiMNy{eAUz-Z_2@rqXMHYjfFctua{ zF(|HJyrRIKh)nk6hCJT1SMZy1*_0QMw*b^dk5O>9<4pSV@8Jci8^t@k)1v^xUbs5X@UyAKUcItjqn_{#V^Rl z{GN)w6w#RiQFU#7U}1@%)(Hfu9^YnJDj16*w^{i4&aXl%76_>({CH;HQV;(hLDw%5QIfEp5van#{sbcP(=P_OiV&FqJ&6$_ zaXQr#b zMhAdGedz&rwkJr`3AH}*o8A+rV&6Ohg&+lC<2qaie7+Ecnty4~9S3k1tO4aO4|I$)|#x)Tpf!Iinl%) zM3Z@gIRd!w_L;2EKy(ntSGAxZCE*w8!vdjrj#m7upe&Lowr^Ud=mClH!vZ0;D{>!;uJnq}7phh7 z{Txq@hl+%?Wo7NJ)j%9%I>u4%^QS@5zm9Q>%>^O|GU9&EUxwA)j&b9q{e|-}_-4}? zW*CdIKSXEMiK~?eIE3cF58T8(pqt~HsJJ1yism0O^bgz|#l_@Y zMU@U?94i?ZYKHlf=FuLdh$rLj`!A1HMImoqJY3?@swm{(jKc<%P50$^(@3p~f>%@) z`$)Bl_mSlA2WfQ_%>U&uHiEQv)1m!BEa?CAe#V89o0hdeKM(nC}rwr#lo zzib>74I8tM8Wf*PG$Zfw`S$`W8-<@bG>z#~B{4|{lJ5b1_8C+=_>A(7n!dGLbj~)iRFqOKQ6Lyb+l}GmhFEW31@G;T+y#0 zb6Fr{M%ieW@W#3z_sCISTG_3?eww&|B<%(WCA@$~qY(VPj|D-_DQKXuCDg?ZkGK{ z%kEsR=$y#J*3h;?*5y38T+tOvwyntC!?I7F;(9MGSJYT!UJwY`L}%OzMFUPrz4;=0 zFUxMxvK3Y+>MkOI5yPeBdD0=Fw)Vp0|?`PS8XSv?>@KT7?ivTV73SoUxDD>8T0D)skXXY@)%Z~i0owiVfGEIV1t-my|qQ;~T|AnL8` ztiDpwAxk!2WUI661LwHj`YRQ67num2WPTP1 z*(y%oN=4T#*|-MU-#RSY;yl-zyHe3jkx8mu>hFEdPgg4X_`KBHR%Gk4>^3bsVWpy% zM5c>C)O)}4yOoNZ7eqE+Wb3i)+ZVXrWh)g;5}8E;AzRh?^GZciEZOZMTc2f*ux!LM zoSBgt$_>@RF<-ws;A!jjW~Ne-jQ5uXs?u@4A;$f>7jZi_GlQrh?n4Ao#G%`USbtBy zh#4=Hnq#ZG4~3wgTA+}0Nv4bDddx+Ceq5?}Mj(7>!Tq`2C9E#cu5k^c7~h=Ra{MKU zOWTIJJ#<_C4t9z?uu@UJ@IULkzEV-O%LX}ZMT)xMBB4mp=a&tNyT3@$q00uv!iw!8 z@e0>m{)*HP*GSi(N0N81Ao8(wixjnOq%C^Y`FxS0saFhgwkuL}%o5BO!6qE`d#R}FIZD^m2;RjbCvy2i#V_$vz%OSWySt9*ea@4F_Fov(>xeuU)2 zYpAlcr8B*mA#SibIz@k~tD&0o7|-bbfCnr@?_=Y2@ERVGHs;$nz0tx6|6+yvNs%J2 zDELGm#0MznXGMzo{cBL%v?4`kz#Usyq{!bSia7=<=e8n6k6cHS{#m4`SO`Ov^Lmk@ z>DLX4v#nB;a07OitP}A$iA=wTipAWA>P47sziXAEt3o58!J@5E2@kANL~)H*DQX?5 zGtJj7Go!6OGEd1O)V_X%V$SBBQAp<=H}GM)P;Q85XB3jZ=my?fcn~*?yU-qf=40N} z_ly0hw1@BhH@k^=J-$j&ic~OKAgtRR<$QCMqU@Un@rm)?LhCQ^5hB_f<$Pd-qVJ%H z?5V31eJRvJfzY%k%K5=6MOSVb#62bDL7gPExThqONxW()cu;4R?kNMw#Qj+NpjE0w z*`i3LQ&%bakxb$)I#*~G54va_?kG+LP2A^-AJi?qFN!-|2W9F`_a!dS>2@nqce>ap zQ+K+ghqSS}(>(?>mRKndX=8P#>mS8cpwkryzwUIKqfFiD%0`Qq#UiLX-P6%5h)$RE zu&zjVx=*4_-RX8%f+-K{8g-|$#XvBu?*ub5T6sdLom*3iWJ#JptM{Z54T(l>ybxoO zK4Uo~8p#u>B@}RH`!jr$C*q?UMkXD1(Am-Ga392&6rbtEt&rK#_fIuw9T2IZT%y_0 zc<_FQ&7?b0X)aewjtrW|6}GdPuFF z?6X%XG8fLi{|KbFio-}I*Wu>Bv41{mLw=KzikUj5yQV1XgPq7T@H!ClsViqDY2W7 zX9>Im49~@ zv|7=7jkQ%}nrMiSPLFYZv|3SmtVwbCs};@0#rV~V{$R1`s};Q^>>UL{Y(b23^J+!T zGM4TXA(D6wriEJfGi5~ga9lw5T8KsD818Cic>c&SWDhW#3Y zo|^hUlaOH{qF-asRlfoP%cEaoFeaS-pQ&Gc|BZ{|@8FJnAO_1Qp2ZK4UDBnb-fcUtbNyNMSiKTw?Nc8$(C>igHi02)ryiI z)%Dg(NL*7oKz%6eqXk0jvv70sL@eCgqDTMJTzX6!_LXH=ELI`OC0Hj`9?kAD_2Ogt zT}a6#y%eQBqC@2s2pg8z_|)w_FvVh$&l5H4!;LF?O#2jW96kP@#w9?ok7@|h|B7+0!{RE=q_CNyN1RD<=T<429Vdh0O_7Zf zSv@F9F6m@yC8XB{Lj9qbuw?Q-al5I7x0{LujisYwq%JII^lIh}Ay^E&nn}P71UxAm zI9Jh`Cv*&t*qoowRa6X@ismXRSJtGs&2tsCDvLHnU{{E;Z31EWvG5=#KY6?5c~9OJ zWLR$L*b}L%)bi~@uoxmN=Y?e1$8`H73WPbwZDcR=wW8jF%NGdRDO*D2uknnbCjW1U z|ITJ#E9%Z3;w`wv!oEQu#4g*&{`y=+l^@sD)e;CAK6eu_Tk8#_jGqmfYY7=g9T`+$ zU`+g`tVyv+YZMhdsbfFIa5h<^=pTgqnKgqLG4IClEB8e*1on zqVOTzlhc$R2G?WH2Sw!{=jHvuN9{~8;se^glL@>`rC<t0i7@hdsL6MmL%ClO|3WX;(GlUP> z(7$Yzt-MM0u5%P!6n?w#L;nqX!q_mMJdTTlZV7QkFQZQxjcq_Sg}EL?Gp$qhTd*P zHg2itE*d0yPRF2*K(V9L<}hx_V&NS2yp|LR{&L$FvD`3hc!<7?#bVp2U{Wj=)&*ks zSFyZ?ZdSo0Ugu_4Kvyhjrmzb6ozDWPXWa{t^?C9AI9kZDDX3tQ>r67=8Cn#JN4vYA zH1_-&MafU;a4n9FbFEcmRy2uX|DK~LPY6q5ow0?Ant{M^{6K0NArNs~etR5qykVvW zsaUwZZ6fSUtRv+#fsSB^)^TLAQ6ujzi^P;4V|jNu1%%Rw=wTqpd*?jS@~c3JJ|3Tr zDT8-2cU45zglKFT1mCP=5^qnw68>)m!l!X%czg0_rHJ?kGc$rX?_MmNEnl+y3GzL; zAW>_ir?-;TiCc3Yc2V;voGfY!;uPp~wFQQo>2)A?0a@x+w!4cbn3b98N%i@=Q;Jlx zqODb3bFR)4BC3AzPaBzcn-m}NWqG_r)zQSwfJhJcvP)6f7K*4k2AYDqO}X*GMRJ6E z*`92wfnnzA-6lCubqS`&JtjElVTkU!$0S#N^C-H**VPk9$7_@PMFXtYaut!786yzJ zKFVkIGw(IY>FBPg@LqJxs%sVH2-C*`!CdFRB0)vMG5+P-qwofzaOqx?;b8au+E9F*Dk>3kgH@cowcnvNIA zx`Doo$#trlLW!-Euz@%-<7k%M~bp*nq)uMPtilKXh)L;rV~+|Gq%5? zeKir;bNv+M3a!6D@WhjSd|yRd1hr2fNada1^i|Zd7CI!?oiBACQmpRocDl-{0wEKp zt$9OGsRBWgnx+ftdx0R8C$gukRdiZ#7X_kyk1AdH8L9jqUHL=pb>+zdp++jt6;ywL zAW7xx1+_~cNaaaa(DrE^*(*A-b8AUtpLtc+)K(y5bY%ZRXgC!8gf>JVc%;frg8Eq? zNIJ5KwGmlf1zvNPi4$qk1yYpq39{tfozBrqiJBP{^fXW=pDL zlB@7(p3wGj3bzA>T1Js0mwsWMkLs{9eb*|w?@et&HGweXpmI)Ft7tK}?B4#0a)sDS zAeeqp&Vl_EonR(t`ap>N1cGV5*3`Hz>bpG}=>d<2k|YSqu7Ac%Gtb!qBiwRvcK9xQ46UoMPLOY8f$ZQ z>7gjE9*m5ID+MBbNt^#2QzFezb*Far1U%`PSy@yhmhb8i=|L*d=%^u27<9N^sRyH@ z(71K#o6??>qTu64DD!L4pYijSgY_}!>NYE2j>j5cWWWo>cStpf0ukuXqxkz2z6Pc~ zHD>WRg$IYT^!F(iKo4H6&%5v zDok?(f@zVC(=A}ik@g{Qe4qmMejE?NiP6C5x2(+M63=+ z@d{vZQR)xsm%9h0B(rg9Pr8(P1ATxO58xw@(62^x_U;t0{{7V$!H+XZjRH zm7Bp5WX;o}^JRh1JuaF@hn9k}NYIK8D`7(EC$x_QLTp+zPbjajZrH7)QB8qhx~WrZ zKr>0LD4|(As6?mMR_M{E$qU8$zS^)vk*OvSGB6Ay|MP--Q6TCZ5Y0nkxkuqNm_8KZ zK!ITTSTnT((=DmWvmABO!M~8Eq1B`DV^A0D@+ zPA=-_FK1Z+x$?nTnx!{6OKUy>Ej-1Zd0waK>1du=Q^mnNfqG^ooziVz(7ZQwO8cLX zlwJUJ_SyxCc8l0Cfr#l3(at9d6y12jBxkDvMQ=Qb7C>q^Q*{)p2?TduOjt_0gkUkC zjZ0FRGxu5HcugQw^oy}$UVBbZ774;g5M=IqLJJCn*jb&qpOlzaP8zv_KrsCg%`^1j zCna+egl6%e5}mnqlM!P!vX(G45eP+p=`5}-D2oJnAL;c=zJ&W&bXYFxr>TBlrZ?mX z1c^L4gpLdiOA<2G?e!Dw;U|5eWRv1MbwzP=7lUS?=uUf2KgZt_({s8(zW|pGj;E^_ zBT5=yhq2FC#D6qTYfqbbM}yp9_A9AVp5+LlG7*H19EMLpx>WE*JAKy z?*0~tE|ER4r=m;=LbgD}_h<~oVxJ!OlFr!^F}$?D?`b4oT5m-^3-exq5IP-mTcr7g z4oZ^nzV}{am^GCK*;E&UUVYl6cy}NJWo#h7ecGC}2HE%yiNgx|$2P?L?v~iPc6u*J z<88;g7&I8=EMKZS3z)y-4Jy~lBnQ7|IiAaJx5DK15{G%E4g3Euf$_J+DAMUYDzdFg zGiW!YeCg@5il5HLw#GA6chEzt`623KDEnzW7kpd@1=8@g@ehpp4XBJ%#{6i*E1SW38f}aA9AkDCRk=_8@=eW!-dpw9LcLiOjU;L}o88AoIWHA=7HKqP$nM%nvrF zceJ7>o;NA3>u5#qGspZc+|R9VmShz@h1NSw}{fouzc*)YOgsYN3aQ~~h zlV1``f+gH{3)e#e!F^qGPq(=Dm2f{STpoeozM;AAXe+v(Y>WIXU4(Y`rs|do=A`-X zMzqMD&bqy&rW$CeKwFdIbAtH9=~RBgviW?RARs+L`2RyiU>j zb|%F=wN89+!T zu5;GzrRXFJmo^LT%JQz0C|kF~4}J~9d(IwikEB;ke0;APN0at&MABb1$-!;(JD10! z?1fgkz=(rDSZ#L3I6d87od_k05}w~tt-=x5=o>(i>Ca+K+uxlYlymZsgpV+-T?%f_0{ zLlakL2r*pI8O>DVO|GtJouWsDtBXKXH^y}CU8m@+H^uPBgci;-KpS4bno8T->*=PO zyI7j}pI+JxX>Nz!?yWM>0e8NM-h+oB89DAiS_3-C4=*dd1+DEYF|I4cSn z^%qd6DYJ)%<}#|z+gRuL0v>#`=Pxt!s*OH>Tc)>>{3w%L`LE&)Vd2@xJUib;huaQ< zKNS=0F1Enl0n3?GuRGgAyUbmG+b9(nOZF$0jd=&M4PJv%cP=etJDR@3ecF@eNux!K z$pVHmcrlkJL(D#_x1zG|>(C?!MCjL;{EgKe%yiE@McagUNg$Z6o6aWl6xrTI8e#=> zD5NzV6$qvUc72lJp>CR%ED*Gjc4E0%xtcaxAZWWyeVoJDQ`4#m1g+R~;yA}6@0#Sq ziHD_68|goZObD?G$HS^g8B5eZ!2O^)Bv&+i1XM;fFTX z#^T<(D-~V?8KiZwSh>Cr480LW`bR$2Gx9(xf=%RV3qmICVvW_(@bC|qApOjIdB79{ zZ*+4_T#n-an~7VzGfboQ~(W?m&hoHj$B_&yv){xG6-+9bY4l+k@IBob6H2H{w%bnw$~-W`pedbYZWvGo`#U06UWpjE zrZZRBOyQbtanW1&u_9W*<*ZEX;ehc{Q5p2l$(h`U7zbbJt0UGyAX?yfEX6J;RFwag z9zX_^iTkBc(T+@$;tm%ovb|?g-04C^kKp2Jp`tFhFy<=y{5>pFAiQ0Kr)%M#zyX<< zF4*i8DtZ_fka@2QI(7Z^iaPYu#)JgIm`}?%Td!C2Sr?O>?bj=EWSM#o-bI)!=2}FQ zAM32&Q_*`_>>pG<(_gDh5eSuYMP-(#ylkm_U6?H9FqN-nLnV8b{I(9u3hmjTYzfO! zT)@RsxPXgQye6@W?Y(djcL)BKDo*y-cEO%iWt{l*-as&w&I`d%7hk9MaB_z7B&`bv zX(1Vx9PUn;uXr+^3Sl>K3g7CcDBQuCEz|6xIESnw6=Z9vo-7W~SkhEjTrETwr| zY9gg$-7R}qO_)7=7^PG9kSFBRX-+g;+w!--h^V{_o9^#nQam~-y^Q-^uc7EAdKp<+ zh(a(FAoVf~zSIN#nY@?)9_VROVsFtpTcE>F9uVK}8IghkcQTdM1TIVQNhBHYG zNgd_466p@FCxcGvYe$Zk&PA;|Wut$3V-G|_`2ofAeK0nl_h-_1R;Nr?lb;w=Il zsdOO<_m;2s!G_=4kZ!Q979Sw?rTsrW)0^ha$;zT6v3Re*lE@HEjz-gW{lKz(G8;m; zks9=bXaN_$`T&s$1!y5Z(22>z(B@9}yx{TDQsxNcnUwgdsJE(dglI)HTCO+`2LiNT zMa*BWZ=|W6+-X7n`F386P_bx=8)=0aP?3Spn-mDPLq4*O%HRxu4 zlN_136kI?Cwf>MJoH%K`_TVRhj;u_thbHnT@Opd*qwqbaiQL0xLxwjkjYesy2L;0W z4tnKL{B9H%eY_s~_d{8D)E^-0u}-+a!ecZpu(sMb05dlBLPN!fe1T9qHvH2%o?O4% zo7N)3r(1)PCH{*z0ZQA!pGtHyLl{6MGgKy;NIIcoSWzzH*jJS6V!d;m(n$B9A z4?@hwu2Ir0~cW+2Z;`gI7bamo?Jb3&>yVH8!9Mf^B0JMd zm)Om}x#-TN%Uo+^3wd%wPo<>=C|SII zerBZi*=aapg=YSJD9-kzr#Ef{42GI&!>r63%MXEg(4=vE{l+kp903oWXdy{I8HTiR zqr=if8(RC&Fc@88R;wIuYAas=Z=s3>ugr?H1R1}Dm6acE)w{)p;e=c%tXT$&?KX@S z9f!+kp^M}yW}aO7nV*g=8E%p*xf2YM5oEUwL&(YDSkYpH*vov+w9gj$%AkCd zxGnbB&=zY@=J8`Mm+O5hmF{Ol@yFdhUwj%V5ZU>IO%Eppo%C?B-Nxg|_)ld#*@_En zWNzXD<4L0tvXSwO!2WLUdPT(|yw~Q8-k@mQ2$P(5Zcr3G61@joOV3w2jJ*Y->ixE` zo=~$kVqdG?i@1N8B0;x(t);9^kWO@jWBvR{EA~g&V{)W>>A3A=WrO;RG%0boD3~hH zk)BB>Id*f|q>399^%h#5K$vvG=6qy>qQAft`_u+SNvS$4XKc=QHYiFQWm0VV21O}? z9~tHBzd_M+qfCnX1WIu+W`m+NxR|m*QS4}w;=bLW=&{jAwbER(JZ{M|P?EShO<e!w1$Oz1(IzE6ErPEIgv*!M<)2Y8yZn&QnhJ!=7q!dwF=$MWTc}AQGI_QoiYgTM%f&49M~Rlj296V0+twup#t-K>tf5k0N>8UE z1H;GLK;+UomK}yddU_|?WT;sNtwJ#~EtfVk>-lje*_Uom^q?4#A`m7lF`TYN|OfV_#fsKkf;v#vYq7f4i zP~0O}C{?Twh^jUjPMq*x2d2_|@~7%A#ui9qc6=8Zp>(3-9FWTs^bm?NB9Jr*uQs^l z#uXjsNPG_@AG-twH^>~HVa*;2WTu9I!s2S!XI6t9H?Y`|mA2Mk#eIm0xZm|T;vVpH z^{3KseqfQ$7#hl-irveFR2s&l?+b9I&Yea1Ce+?2knwCFQ^}Q-#yj&%Z0R#oOmgJ` zlS!8i4C+0npr^UE1Lx~PBTU%33T*iv7M#p_&QCGP;h_Sv|15)Qe8Do5j=Q^EXerCQ z1*H9jjf#pTs3!%Y87>*ljE#zhG82|nvES;5-ysl815Dxpu&dw(2n21I&`t}E=4g4) z1`4gS;64xt+DMaP%YCRQIb9D;>GvjFHF7GuJEO-wO{xWKC(Y$ z3UyTp0-<)Y$^Lu*F1C5?T+OsoAea`3UCZZb+Ae{hEel`Np||oJRV;Zp;Cn3*HnRO_ zqJ!@J(#oPA`MH%oLblCp`KOI2w%bNUl%XBnW|AG>-+n+;wGoKQx0z0SjJw8EQ-6%x ziwk^=`-`dYx@3xnUH&c^es`!d6^Q)9^KUb42b=cuRLis-+BDpw=Z_ORreV#6$!aH4 zlBfNb^LQNL>L~6^I}m(?J?MU4rxzE)XQ!jN5|53kq7GBXdY#n9(QM=tpK? z1D2WP@%o5Pvd!~nST>*3Hp_j(Q#=qHoq_I}fwg947Q1?m-yE$p(=xoh)D;v6!_RBO zUz{n1kH!TI-vqJ9*2TK1A<;r@xoeSzVU}NI%m1AjG3;ICF~Rdy*dTY62Z5DenN$|G zlDew>DT^9V!r)|ica6QPFpC#z9FChz56&`)46Krp#FB0T)gj=Mw@)O*5fRy2Us2#(3{?}G34dvHd zaXx++U#Lle&TZHBX+CjBi*-0XOEe6tek@miu|)4!)@H?LoE_6Z$8WH^a_7<{ zCN4(NPvh;l@#C6}DI%37u*H{9!W=M>IqQ6Dl50EC#@B^D=Qm{C-y&nMp74oLJq03T zCfM~Lc1Unn1cEl%9u{0bKc3NZXP$VKu=Fl*SLdJ$mv)6PzZz1KIJ8(`ShLM%$LbcAIyRpj8>KOpWAoXu4M0jB&1c810%I); z=5xc;ooo3zpFM=Hi}@;LuK3zs?C=PLAB(lGBf$e--xgY`K=6pK>*xNTzBZyF;eT=2 z)7bii`?`{Sy)w7d*Olz+GxHc@`MQ#Q?K#hKVUCXsY+*d&#=&`!ZUjRfKcxuY;pLI$`-%2*KS}rw_lr|e#K~3re3RnQQE0!t&HoH? zqnwVPqyh#@pBeK_D(m%h^OMpVsI0FGu0bS6PFFp$9N7Yy{clDM zSzuD^<&BEsI_pXKFT3;3O^OaJFv;oKq^Q{fZY5>fXFE}-rwTtHpSQc?HLQUtVQu21v1 z)6(#%>;TaU9nC>2HB^(D;67Ho-%m6#DmB@l{H4eNl!|ZIX!lZ+V&DB<(e}t)g)(WHH)>H z#FdtsuSEQiK&aWE)jYRS)J$dWxWS5EUZpF2O(3|pM>%T_Re{8%lqnK5 zX+@|MYSxPQCV^11LaP}ICRVdu)U4KOHd|_{u0lw|@~5PIlcil-uGLnC=g)bL?CY!W z-3gK>28FAv=GIRT^chUL%8wJutj6ugYp%~RcKSCdIt#*o8QXwT#L7eKZnt(sG_w7Olz5^fvQ%xFB8UVw7Y^FGSBp_jDYitd~IVMql$sb_S1LK=y)$|z#CXz zJT~ytaSqqk4JJAua9&ThcDj;(xf0rlb02;`^^HMb-`a?aj^tvZ(nm#yMq^qCT5Va?aYMXf9Y6Z&LKX zEwB$g@rg~^z7_(Z_;@sT=qH#7Z{fTw#McFa>4bjG<^3&k0_hc@Sv)xYqfa0$f*yT* zC_|V60-@-Xe$Az`pez#PaRLfK94WLF0wMN~_WtG;@xIkocn|J8@&1z-9s|3BP}&2L zWcZa3ycx4a``+>g4XwU_>1Ge-$v0au-DGAn_nw%*GX|a8isy5F?)!UV&(ChM8L9epY(gcr<&u$T$^K)_$gKwJIHy$3_P?xQyh^oBe3;t5h$?xJ}nVjsT`k8rwi%l6|t8QJ^Lvaap9+-K(T z?VeE)h2co2+y%`<4nANI#~>#1macRgub zHN%c_7KlaD1abo<$g94bCgsJ}Y69WoFgu?{tsp3i1Yuuz>jpE^Lpgr#<&+}K>wb;! z9V?2@?P!h(`}LaZb30n`%zmp6>M}WavGE0a_3*D~%WOYQx1-sn{)%C(2O>c;S$fZ} zaJ!@#U`Lv-n^#*>EEb$OaGNCy*^+yH)0Qk`UBTaY6Sas7OHg1-ma!%3fLKz*mb`rc zgC{IWrPVAj3=FA_X$_Z>e#at)Hn42>-*FoR%-tH(4~*LJJM1nsypvmxkwm|1Tk8sx z%pv2Y-ine1=@n?5-iSvAglW@1Uz#Uey9KIAeR%hjo<>v&3$gOW*pm`f!b8vJQScH~ z!u_#6#a5$mF-&y`Ka=%}$DQU0P_ZbUT&!(YlO9I}I?K27%gp4+@Y6oNoLg+_VdOqx zuP+cnyQ0H#^?o5(3`n=gTzyG6ItYY{-Fn^7R!|lR!dN%pMTqx=<`W39ebHpcM@=nU zZW!&C=!65k_={~AN4pEO1u2ceRnEE1}Y7$rCeExUTWAxaV6 zc7H@hz|)oJV}AFy`X9Kd+a=Qv1O|$1Al!kBAQ0L28ua}ixGm|Y!7*6>JO0F|nVCj| zW01kgD0a$82YJgZgC_hLet)#ok{5ibT|8-&B6jRPe2YD~p@6%2_mC$@G?mTx;ZLkk z{3xPY`U`z1GYw_b+ZtuAm!@*XJ%E5)Q`xOmC~CK~KKmgYU}U$ZvRf}5lBS;)b841B z(^1TJ=eEPam>FyW9mZIcnc5{tb7HXmYi%K(&P-3ILdFdR&Wkm}Laulx%KV~ATVIfh zSW%rL*iU-Aep(&V@=qJhM%mMqtNMvK>K(;6*Au^CMw?i#`zY2GNSJRWW^)B16{f{- z!i*|m`bmhp1cK=+&9s4;?%J$Mh`)w0&5Ci>-K^;9QInhxZC3Qu-&oH-xmnS6N#Ip6 z&bK!!3jJ-8)3aI8Qs(e(RutDur}(-U=a9{cPJv_0W#!1n760En3B>c+Dvrkj8r0c~ak!g$k+|T*><|&hqk3{?VGwVZ8*7>)eTR7{q zHPr9t_SIkX)*twud|H2);y3=j_YRc!H`x!cWQ8+0GM7fjd5;q~b6W>{D)s%G%z&qP zPI@|S<{i~G_7Z5#7TJDMXV_LMi;kqua7UuD+>6v1?nU|$+F8w(SW{HA7U=NPKfFJi z1|xXqoG)QL8^infy&&-3wT;NUB@hXDA^ZyxFABk8z%W)ag5J^&uXwUN?x5vio=6@S zC?3YcE4s>F{qL-)$I%JGGeaQE_%|lO#B{@Ju8Bgh7+{7k0k6Ii>3aZQ3&&3aq2fji z-;sFYEC%e7Wf2c|t+H~0or(U|tfTAM!^F-T;OhZGk=jYq4S5ap34PY9E3JV-S@FC9PQ zymb7X=S|YAMZ#L3Su0!+);1S}b>sz8?x>tNrrY(3Kv?~yEiA823c+GPP)hQuG-Ybm z=A_|)rac~=)vD*u2~nP;jpLNA#!4R?W2A{jt8Wb2cLC{>8bldC?9k|su(r60H+b-h{L|eg4XWa9b zO+7;BB9W_*=`@#jiX$##ZIDWHxz2S^5IbwLqB9@pwwYo$f7q<(@@12pdp0Y2`HD%- zgPRroe8r@=6Pp#;ubLEhd9$LAubLDWy+zR5W@6)n*=IAK?MS>SS-6}T z$yL}liX8m?W?F5&`K>|E-9(qh`&UW*bh9isop|S}Hwg9?TNGUoYc2~!6xW-Yc13Xi z3IuI~>GW?=R0suRbl;+=K>YYuVED($xl>~w(k|rl6P?i>FBE8bjvJnTn7A?V=S{uF zK4fCC>mobh6?s1$Hov}Vqj$)zyPYQMnKwl|J7n_AJC*E2c081OQfg@>5Y`_to&CO7 zw1=5+v(_)f@dCkg%;ZU}jItBo!F^fT!`qa7YTcq;H;>2P4sT*pkqF;?R{JM@IXe0~ z(nogq^&wP5%dNvm4Su(ml0if3q&oGbS;1VS1rC40gpT6 zp*&Ij#<_?p;=P`38ARXmx6%`%?ZhWEzhy_?iMHeIJ(|Z4l=Gv*Ph;p7@af>Eh|a?E z5xN~6Gdj{j*1QI)&=!mA$fAqU60^}FIZhzFS)#qE6@!==>3tLxiC)JAOMhISK8iYk zmF>Gn;D`aVadG| zS#2mtbc}B-&F5M&I?^S!;u>nXH7f182b=SHEl<=ud^u7b`u}y#w0ee}9NB)#i$(u; zqvXp<^HbkgwA@TX`oAXY{$C*dKQEU1|7pYO|0|`o^#T#GezDyD?=!)K{(nY@6~rVk z4T$Cb|Eekde-gOKI5XXJMQ&1z$@pt>qd@lbR-rt$Fp|% zJcdVvI}3!2i`Be8tOzn9%k{0{dVT;PoVAGp97e`l;+zpVUBEILbx$r&Cm zr+Oz$rgT-iU&q-J8wpaA0C5z%0Z|p$*E1H0>$i%#QOpWh#n;Q&i9bSB<@h-p4Ms`t zCaa*!EJxX&%A1KQIOmf2KRd*km(K43$W%ZAiBAO`j=bUCH-lm zAMdo2gIVw#`Bk8j@3QOX{CJn)*{3N_?LK9rLBM*cuY#hYI6FDg>3y8k%PWUUGkh&j zZ+k3oCnSQ(ud}uJzKcP&^5Edl6!htxVNkR3c5)^4#~J0EKnB%7;65yGCvv3#32*6B zb@r5v7D6&TD?qChs;XAOPOkicQRK)9v<(I5cYbN>EU+nq@Qp8DTXyy=f5QC5ifDCL z+{gI-d>5J?1?Pxd+dszr@>JT+-_0FU(M}Fd2Y)KKxlyMrE=Cfc_5>f+-7I4{@1VyeCsNux@fy44Eqhs-tP06F8 z2nIgPzt~i@ik%W>&BYHJeUJZf_|c}UDi|!&dMg@vO?T!o0wEZnSdj8W&k04bqqZn2 zlJblw=eJuFO@`tPTcG$L{%fHIqjlxKMmziTRy3fRo%A3SH%1ccK%wU9|)xF03a~Z&yK;!d9DEl7b=RmKG&e?4Kb`_cJ*+su4Dc& zCAhR)TF*Cx&H)v~s`aIGertFG->t3Q$WC`;24BeR>Y=SM3kwaRJJ`~Ov?s=gA5e1m zGwBrHhwIzOPL5!fF9fZpS^TxeKtU@V<=;8{uCa8mA~r;?+O<*S+CBzj6aB-Y*Bhfp zkHw?W9`un7E2EZ85V2T%6r{m8od`uS+;X{1q~*TG1!kiIxIoL5eNbkjryne7e-U1% zg}Z?RpCg%t3kd&)3kb(OB*HBoLbE4qRdm*+Tcup0hWOvlMoeofxPU;=ZpLWZ0>Kpv z1nsiWYL!Qc=y`!C4G4e1jYE#);5QH&QHrES(~4j%O%c2*KzlfTT_3{q*~2O>e{$nK^spUAx%cuN*xnD@DRG?Cv{0ZU*f}#jMEkjpwGSgIIBq*c$oT?c z*4`L?)94a2E&4!}5JyHb?fgJd?MLhsxBml0?>vGwzP(ql;|(cU93CjpS~jrbTiK}m zN8q^Ssm85&#G1XgavEaPl^*d!40_PTN9=-2%cUQJs6L+-&G0}53f>GK=dWNQ1{NdHrP3?q^J%Z3%kp=Ngem{69-OKO&WqYob!%69uv-rU6?autok(ax?k&o*qHL3JLr z<7L*+YwoPfH2RM9P6Vz~SK7=H7av7q4(zR{S0!!nP=P3|4^Ky)OtExok>P9M^WqI$ z$`d!w-V63pcV!i}*LL=hjcPrHy&M(`SoY9fHp2&`c5g5HvH%D#$XN9JjS?^2_HsG< zal5Qzb(tJ)Z})cHvpe~+GJAN^=vP+y{o`2tWcb>)2+}@VCuPuGPv|+4_S>3#Wzf@4 zU^O&euStI6db=qQQ=coc1;uZ1p*;9(9qSb6I`)C&;}Vq27YfbMSTBWpqk{w z$N4U!ike?5dZ4*oe@X9MT;NN3pEeKgnJuUTo!S!rJ z5li(T(H91GCU>>8lfz4EjJ1E;s837#|Hs*zz{gP>?ZY)%OWp;X7=w)rAyG~YNsN48 zOs-e5EXjJ2C83qgk&xABceEb7yR*#9$`T}G3HKEoAe;_SNFW>moDj}%h$|uCGB<%F zC_uOm=O941zTZ<_vpu6-!T0_JKle`8)7910)z!yz_t3npY{FTm4SR%LkAB&(qtQTj zv}35>d@kOh7SfjIJ1*Vd@bEkJ^foAo9Zxf;c&_SJuWH~gKYqCb<{t}|r`RZ4B`r@o z;R9$wO16HtXbCI1(4(A<-w~&s_WXhZT`A$LVH}ZtoYzYq>cF@qO^>r$T03DeneQ4j zDcENu1czrDrZ&qe!7vzSPh1wk7Vd$Rx~hkXUTJ{eJ)u(?&nukslbu0Jd4pTZXI2Hn z@>jW~9D-+VIdAau%r0p;?{adQw;4(fW)`nCpo2Lyz^F%>H~YNM%;NP1%q*_!LVr9; zTRGPcx}ba>?ev|es^zr?9_=jtUm5LK_<;e-+4zA0%iZ{aaq9d3i_s36=|)NXhH9FN z_LZhNiXUj2Pwxvw!|`v}T`A~z3GwufG|eAL++`Ai_HMWm(qe5bqUA4q5fH6yH9bFa zCVcuH-K=n)pC36Blh=d01Fx9L)w8=%DRd0;ySqEw z`b3go$RKiDC80QJcx5>fyc!*SQJ$9IDT^n}kB9NZk{`zzorC8u6zJHQ&zcQ%51v#9 zcN~}E3q4p&d*o7sCM36mz7%L-?u(ZibaGFe=Kk|igKoi(_bxT)pFKgrPv#s#X6>zW zHmK3Upm3S@<$xPP0~UN5pGQ2bH?EdLPGhnEhR0#-%{0=(L$w zU+6?sdYzri;LD3D?y$Zp2I`Ci@^)-%gjDx_`9f}2FNzb}Mny4r_{HnE74 z$SEw-CO#qAv0q50O)S$mqAD_}xaal@WKzk31(@-f=*zy;4`aZA+AH{!rQ07@)7VKd z{_&YSkKHyoWgd&K5bu|as|oE{Ni+m_99s&LlMqF^XeRNzuPkvJB?Rr#nLO|NBN!yS z%?34XQZ4rSnRAcdY|!ihw8rLp3>wsg)%O^52?*N5W*yfl`F6otXYtN9+7sM~7A#Vs z*e(w+9_1QYu_lg2;i*FfkMSPT;}N&PwEbbnrI%)6Q{Hb8C7{2sisr73Q{t)X4H_4T zo|~y|O+8!k+$14#erzW92Y+4*1z`u^wL-jCLV&RABo_1)mCn}j*P#z;krM2)7*K5< zd5h>BF3D&1j|Y|dE?4S0M5Ie@wn!f^;`aT6S{0GsRkgb70deA*9K{bTP5klz2#P_& z4U+GJ5+e7b;yYsCKs#d8Ks(|-Uz&^Y!c#~#Z5aZ8A|+^F0$#c#81$VIhtt^SK#Vr*X$Q*P#AA~7dlG`f58|xbI}e1&=!72^;$I~M=qv^LPjXTKSzIYVX!2#hZe z`6lYmp23tv2eOfLhyScPI34F67D-o2--_=_6ga8(Z5$33=gi_vW^~C4N97ky^%`Siga&8 zw{CM6HPF2W%e>~EZ7{Fd;oEWA>0(Lxo`kc~bUR<-dGNP+5cuOdMBU3#7b0qk9K8iA zB1&0A`0hSYQ7~A3g1J2Y?O=iZiEYrse=?=ksED4}=6lyPkd+Elr|8K4Nk;xM6(_!P z;1$Va?sAn0{(WYf*`K-5pgjlU#3%OCgK(tp|JI=5kClggQ6Vl35PtbYoW@h5^CvUK@Uog>t&0LQDv(2m5G|+)&*nBavR+C;#F6k?fljv~?19oac zd+fGo8Yi1*Dy3nfW4Fa%=avfp6SoEbFAqr-ZrpbC+6EdN3TL-qkCZ=Fw02*JbJB$@ zO-e@2S5?NwrWr7fIX=-||9PgK&KL?by%(l+I3>CaKb{zhQ~aA{gWeSe^}+zjm(AT! zHfaBJoaTP7Y|xL>5!C{9;3RP*dR*+@nEX zQ{}i=!Vs&I4DgC&0$wK>C^h4va`Ud(A==11& z47Ytc!&v%aJ>7;lR>t9iKSn|*;}nCn5w}DeJyt{;uH`wo5ervy@J&FHvi*NlIRg2M zzS~t;&9~DL-DqGEaHJI{wN!PZanLjM^cyQE*^S1hpU21HhD^_*2?Iv+j>RiB9^J=j z*9>C`-zgO`bRWNG*)$xdc`YbbK0~(}xFF#fL~TSAt}VNr+04sA_<36p%ZEE2WM~(n z;|Jbj(AU4NK_uS5HO%MR+} z__{xSse!(DNKhZg^ZP%kk00<$!eb6m^>Jz)4E`xRLCZg5;^)`LXsFGra=4;HHo$#lQ7VFf#}v4e9inER=3Ewm0t*U=P-Dq zJNYGv2k`=@m*+MTi46ZaT&RW44m|8S2%&*8^|_ZT!kAE(5hF|85g^)Y@O zutsuCONjDa8N-HQfUl6)Yb6Brk1FAn5)~$K!pb;_i|CtKniS|G?NPfb5Z%uu?9Qta z-p?icUY<+%5SQ>OeppNo^V4(rII&=_3Cn*;2*I|*c6|FDoV{U z2Q>1%f@ox`AVnkdMatbI1ZyrBvu(aWDf(f>_SfJBMgJW?z_!s5wnae-TSwS!kg&p* z%X6v3UL_%@k19o9CQ)G$%M(>}aecNAmt9Q?e9z7*Wk1Qv-q#5l?USr-nw6ucSi46! zal%!^G|7*@!XqjXzTxjNbc1g?ahkXJ0=&{*OiwfFi$#p{V1rvPP^x)Kspi{7(fH5t z1FCtfD5`1snL=J4(X(hIS)!>H& z7Nl6&uw?2>h=OskwXhhX=J2r>yI}h?DZtIEmA*vUSwOABuIsmBci-4RU-huy>sll9 zZVc}HC_JmXT|Igy_U#=SsM(LxysbaStE>#Y$EfoW)p8+@(dMYk@9N$`)FemIku%V# zEG*##NY3_rI)28%H#E=*C1`hE-$h85rytFr9UAD1Bd|P<%F)@(>R3e4FMy(RnALrV zX+ccdEM)8qHZGpalruJ9W6Uq=Xgklc3UuC#_in^km;d6M#tb@Ul`8)x38A=mVzaLv zGiaAl$Wy6oXvS+lv}ERJLXAGT9Df+P*x483WtzGj&! znV(+6lW!O3b*}!sz8j}mBbCQZc=Vl;Pj4{!6+DmV=VOmhg=S)BW4mYex8o4U;o7hy0nb4<>@$n`X`=z+aD{^Y4vCdUpW$FjyRno zzJDb0rFqSlp;`HKZvCm<4RkeN`4KvgpWXpxC#PST;H47ID*AMO{Z8L#pcUUo#g5QV z`04oXqi{v=^G4`r^-FGQp!5&;cP3t&XrfDZ1jm0s{a8DJ~xP(AIs?fIt=!Rp^!yI*r zK`p;jKK}I?bANn_LHisNr`Z>tV$k=Fi4*rE69Txrj_*qQ^)Yc`hy4~<5c8nRBRsx% ztnhG;6~BK(pDMtK5<(>5cj2+Z@0DXwFNt5DVo;y(dt=7jdrvXwQ^&<=_9LelWZ}o( zPBG~0-{Ey>> z@$wVESbMRIm3A_gTPj#o7Vq`VZz=hVP2cBb3XkY(n8mL@Ax?AF6MYS&`WH2GbdnDsIT?O0kaGiW|%)?8E_H`MT1|@^L27`<`IU@jwh6iqHpj}Rk z(;Q%F_}+;I>Nyd%>(e2a4IYUHo>#9mGZ~i(*sk~+L}tbcf=a6NG|*#*UC6ApT+en2G%0$UIaEu3*BMaYHK(A*!Qsj4jQO`W(7UGuUCea` zSJ|wLHB2`dvnCp-?FV8&JDZB(t`eeJ{$Owu+WZ4FJ}l!+Y_4O%tp?w~y3MI^bpz{u z_<=h*k2$qU`aaY3EVZKNQIm*$p`~&&BGrFCi+|mzN_;La-OnPwe`=hzGmFLC7(Hw} zbq99L(66v8%9?wbHMeLZDsD5Py|H{(A!Ciwf0**qjquCAt|Mg^?{MVyKZK}JO^0Qb zb?ym~bT}K8xRM1u%YUjfS5z(1srdDu0-lf3V+l*r7+bfIFWC7avq8m(N5L zI)O(Gtd(DKTAboD?lmYeta6<#A!_AOW9}#JHR#W$!GZ2}uR*&Au}MOJ9y8Q3?U52U zE+J@tR<-x>)1~(I#}CxrNvA_45!*9Mqa#$7vVUcrk|wA%Ozh}Hp3L8TIx5Y~1<(ID zJx)7aBTBgRF6p0@(Af09;DbdzqCM}eZ=eIu;JsTLi1vhA8HX?t zer-;^Xu4KwA(Px-76Zm~h!X6Z5=I!W0^{ew*vVyxR)O)t9|igFW9dhMS*(KNg7sO$ zIV@n?>8VT&|Nz;jm!6D!Q?0C&h{A&)b~Z-9Vo?6Yd&M z-`KZ-*5Juz;uYNubo`mTI4*@0z6ER4rxxMoOBnD)+P`ty-_}aI-WsE_Bsp5baMI^E z>1$^OdVY?-g;!lRD`(|tTo_y^VVKd&%;?i+1&m&f;9+|wAPv=}}k)%gR zXlxo%RWpW{aJ*XAbT+nb_%6|HJTFL|9cDJdUn1#o{H_8{yx_DzS$Mr5p|Povc@~K- zieaJq*s}wTT%=~Mi9=2>sO73U0`St<-0z%V(Di4>Y4+JC81%~7af+`w%%GEm-)R!g zC!)7!%w2z&L7zGYo}m&T$W4M0m_OSbE}1L+;@@_;u%CF&{I> zEev@1oH!-$A*790DJS$$jPG6lb$(3=wXfrOx4V9cF7$)FE5#cA$KCmFQ($6O-whX#FIB$_KB z;LjO5{^*BTn`FcSp)8aTh!-n}%kDL(RVZT;0`ZD5_r7}#vVI(=*^k|8&@b`hnR^ZT z=Z~d;s|DRBAySjBmi4E^KVRMp%D8;*Cc;`vn zxP+jU>nPrIpFzKoxHlyP?dZC>%kMMjljCuk-Flxv`;C7@N%}2(?`=>@@UVp8lAK(BizdRnN#5I>2)chNz?KA4;K5)4~pZsZ@ zX8-+igZBGroZ|ny+#pjj9g+~`xH~rYV^uR}(>9c<()v{5l@3742?c~|Ih;YLmL)>mTS9=OTCM;{S=?4B+Lfwk zfBU%lNixKB~?}7HvXd++Ia3F z)&2gMFTMLUo;GCV>FtZ+s=r+&Z1$57vYe?d&~5pJ^tW9?3ovlL>H^*4egS{PJizLTwGfe-fMPUT#qTC2^YllgkY{`;s_){L;%|6Bs|-DbPPih#bzF zLGed^YS6pn%Sm(Abp2z!WQi5Aash<(Kgk zLfxOc&?@+r>y3H5|7u*){9Zz1(^rsIuP9ifwjY2e1@!g?rECH7jSm;>ik+Fo%kVA| z7YAIrYr3U@uDwjIeE9r`O0tK9$mP;q=Po$WpqC+C{43WQ^jYD%r-T6AvFqIaYYqD3 zFJWzJq96rH6l|H}5(7wEGOQei^6P zKfcePv!}^uO`&KPs7X?ONkYjgaq)cywOn1t9Ix4P_D%O0bhl;{tawZnyhXUIkx;lP z!G9YPJOB;|5Q5*R1b;see9`3<4b{p|$v-FzauQ08EPq+#zfH-X(flfcr_DkVYA8$c z=Oq+2b8Mo!SnRVd4?5Pn_T*)gc@tOjTI>UR!Yuv*-ib4>HfZ)WN@)-5Irp-w4f^aA zahiSg)dt!4aqHCvZNiUxuQurZD=Ouy$dhqc92!#wut-7?2j;?7Ucp<15sz8~^>+!4 zO)gAcX?-tz%$z9Zc$Gxz&c?%378gnwN%U1oB=x&z#u_SR7bY!V?=_u}bWa_w_!yhM zicII^tPv|mbSA&kue%cOROzf3R;6ccj?+%Qz)zEKR)H?$`EGJE8rpigkZ1JAZf4yC zi#D=#E7(9cDTzPvooL>X4RrtDbM4n}4z>#YgU`LcvN@)`odXw3I>Q@2#H<^9^uLAapPVwu@1}zm9`$z~)y%npGwKd8cpauoENx~^vzsFf0 zQ_1>0&icAa)`}h;6^I^lwr>T+40JgzdHh+zAg_onkLDw^4CFO6+KiS zGn4683vSr7F)6%vKBB6=h&D3s{VKdRGH<@I=Pdqt)~_r37|-ID$BkFTDS?fMeb>~n zE`K;9f$O6;UZY;AT^ZhR*zjGI=e81}=bEy&>Lnq)B_XQk{2AOOzARAz39qzdZ`CVP zNMP&`lu&!|C28eNb*&^di5`X|G&cPYw;g_+L|;31n+DqVD)ewzU9L3Sq?N~#A$A&; zCE@QSj525igCnlOlBik8IK#t4t?*gDLKN1Rcvrqh)QXaVh#-^{K{`D9IUljLz zGrc}d6M~tP(Af0xC^j2>`aeJ%dSpJ^v4gQR_F~@g^MzE0on``1UXV`V} z^87rW3q&JWzTNrSIMEELn}rMZuw2)1lfG*gvb!&A#{;!Iq{{G135`vn-tLEAtVbIQ zQghFQW22+G|xApG*goR7E4$K%sQCfETR?x^h;O; zjLew^1?5UujSkJ3$^tq~!YVL6{pLDp8W+I*5(<#3_u)_BR*It{mBho+NdfQhm{LiQ zC{6Tr>>Ie|dc5N$`ufL?Z=e?=>C@~1nk3<3359{KThGq=u9+`p9cmHGsDy%@kV;|jUkuEKKt_q>O(}@9|ZuO?&urBCJGPlI>S9qq0^zVu)R*g2>bsq`|H5X z#%p={53_$65zPKS%>Glq4YMy;8@OAb31Ru5gu+^vvSPkzniR}GC9J{@nHi7Ix+&iD zxKjNb2?Kn^V~3kklYowv(AZ?mVK%sX219A0t?cNMzeSHwz$4UlEFLSsAolu5Y?9sH zR^Hn1N`=yIVN8i-YaxB=MsRk`ycJH+k672rLJlC|Dv!A_tW49(r?U=wqH&S_F$tx} zY^v&|<#k}k2fozv%Qpu7$ZdRg7{*f_`=b~S+5U)?_8pfdh2I+zhWY++ zeFM$8MFhq}`z;?Ku$-8GQWgGT3Bx=OySRZy1D<%ec{-loTzqg~M~dyFu-ouw#Xiio z`OXHapAb>;ujD%sX`!+VvF9WW4c}POMg|8 z9x7p&=f!gyXwGdSDIN~E?IR=|!f`uK6e}EWmoUt^@6HDLNx&Ho4@NmxeC>igLM(&P z@uYC#+5SnuOO6B@FY#wx_-C5XIo(yC22VD`lK4jSH{s|EA;(^Zeqw z^>jzT6A#SISanxj3p~9QH~*?fSdutPs~x z^joIq6e`@x!sS&7D|Y|uI8WwgZ6G84T0QlFRdxTz^UT&v#=B6DoH#=b)*Uh4H^6tcbinOI$-rbkcSqNA#=`?KcvJMe{Fdpcezt z@UZ9arxUH1Gi~MR1Cb_#;f%kl3@Re6XOU)EWSsql1{(Q&oM_viA*P!N^WC4`^TdN^ zKK$fYbo?TYzvcHg{rR`A{&x3DJi70GtUl#e@HdFC`cpP4>a*h@_^;bR+(Pw+5?z;+qC4xOuxN0y}f^RlIg#zP48bhkZkK?#NAU7t^KQ4 znO@h*uC=WUxOFOEbyr_<+0p}6ncnK8f=p;g-W+Y~Thr${!~AgyE_;Z~OBvlxHl(nS z#saD`+-^H>`^=y`yP~}SvZk=U;A~L3)hZ9DD;y^`;Fc^-U00PD?P+I%HaSJ;Z*N`61Z@q9uz!Eo zfJ&lEpeXGJv@6| ZClmul_lRf0C@%n{$$-?g^2niohNT?e$Q?6s+;R=2KPn_Ai1 zGtkp6#7IUf*QPr9+m&d#_EoA?YdYKeT00f-V_`8?u1)pyM#vx6z)`{p9Ym}AgmWkMoKBf0ir6jvL_YE@C?GVvxlKqRgD7xh#I@#X2mZL+) zp6mj8F-M22J=xXS*CkobifE~|yI-}9kOd^WI+FwYc62M1gsd&u)!DYHTN&Z@5jJhT zqSsIxWj4J^RXaq`1IYmuy<;?bKw9tIDbc-axIptF(QEoUId-Q=>;Y|k3fvft?noZQ z==qW8wF8y%?;IiY_4jr#ewRq}{#`w7t2q7>k@zlUvb#ni`}S8>{>eye;B`I~iR~X) zEoBcih>pJYR9DZy$}UySAww2Q?^-2f$e2Ot=&qy**|SiBG$ET7%9utumMoLisex7KA5v|7 zYmh~%ODQufa93yh+5jfxP%X6g^>%lQ5rp#P=-xG|El!081q>;f@qzCPwOx+yUl~v$ zewk_QDhoLDsq9d~N>3K?*_<-fHqf1FU8xE@Rdgn<6xSV6noha8SEUT8spDUX80%IVCM(XmorY;`oU3lB ziq_^7Ml9E7ny&X@)AMsqwx^U|fg86mIMW&CmvY4I=ltc8-(UZydmh*N&hN#P`+xrL zpS^p>>A%$TzcH__Q7v>Dqz7$$@pQWoDS7hYP-$U2Wx)zUiw> z^oYSXv-_2-l9h>OrN<7wnO$l6CNtDS2j9%DNGk8I2M&N*!y>F6IB@w2cA8n}A)}HB z^ED=DpX8fa{tjEx%olS?$9hyTR2r@f{6nKetj4$D(<&?Yq^>GuIaFa|MMZD*JV!|q zsvJ9St+G8oSsGHwE5==o=_%zaFqKP4aN)z4qU9=P3iahmzaF3l9N)}^ArEMi815=4 zt-$S;%jLH|(B_JF0yto#)u5%s7MF_f&6Od($XZO+q6TR@95-!c(@fRvKcFTz zSXL2d3~{iWioVS~tRg#%l~KN=kv+e+1+XTUEWDm;{ub%5Em+tlLWf zV9siFLcpdQuaiaYr;@4lzd0Zvsq@<>MqHTnr=hR3||6Z{YU4Ka=&0X9~HW$-1u($jPEv zNLoI2;wmw9iw+>2UfNXEqo+dwjioO-PLA2@X;FmUZMxESKV8*yR2K!^eWr?*Y!7;IDUiD}=M0%S?)aF=ZdFYB%&f(9I48y| zsKRu1xR%nYUMvoB;MUS@nW{MvCxR$>!#pYP^P zPq`1>;{^hAnCmU{ei(-+As1G$8Q{;?Lx?@AX#Hl|>aYtolXdSFu!rB{F#yvSRV8N$ znYOr!2DQM$G5H1UQ}gENfL$1?^tIa0_!8ZgGd+*adZj+pP2|ndWZul>D#^;Bp-9op zT1ozB4>~*T5jh@vG7ue}hk>vfS_R>Q|Eb8HH%EJi4)OXd7iP)S@DvT^Qj;H3YB5YL zTRJ4`-nvIjO;i3#d@Ti}I_yz4)wXq|f?A4?t_NcGCD)afFr=asMo@tCx*2pGD7fxJ z(as_R7i|js;v**mJPe%5VMTI6c-8PbfY2Z^=V0ZzI0d3Tq)u=9d9xVdq7{bfLZvVp z7CkJ3iTt}4!ND_4k4qF~afPD$1w~n;jb;jIx+E)154ZYxmXDVQxFZ1XeUw@TD`u2h zZH{)Pc~2SitUYSpE_7R2GuJ0~Zg65vF5-F<&$kLbS8}K#bt6&t=7h(RdbCubakk-c zikay!v5};wlxLc5Be@D~rKK!hkInMt=)RV2si7Llo1^VHOWoFkB8EsA(>F1|uzW6_ zmIAvi$NDW#NvCUx<9iEgTB0l68Zpx))3-8eaY9Q~A*eM7UHl56Jzw<4ST1eidAl&+ z6jzzvIwt7RAujDOvBw7G(Ahh=OqXwIiq0Qz3io$y{=O5^=sY~x($$GGVIb+k=grZB zEZ5=KkV_e|{lFH0*Vzx*eiA)4Vs+)Cxxh5F-Rcw@95;hTqFWLt*3t>f)|^@w*s7Ci zDFUJ%7^ZX1(2(V3ER&ZFV6m6qbnP2|dF0JUzpV|v9czG7C$D&Sv{u&lbo)XX&|P^e zts-3#-rja(f(K{h((e8Vh4q zS{XZy7PuPc=z-Ijg>fA&W|dCC%vFH3GwsUctO`VHFPmOrrq^d(Y(-*n{MGPMU^dNj z!wMxV1XEbW6>>Q10oTrEEf*@L&rV?~G)$$K7G^87Hr#l^M9q}HmVmiJWp!t2ucHyJ zWp#3=s~|du3Z%^`$s}Co;5v@aMGE(Z+6V9$C1?3zs`fJ(*R%_Kv;eDC-a6c>1mhV$ zMbCJH?i6Djl!O7HC68=+CAh39_;yZq$y58Q^&$BM!Q1v%WZPUTV=IU*g+Nf{oLKuI zp=hgNx-LRCtr#YAW?I?!7VVC*X*JJBwQ0cdyH#9KHr+d7xe5deSA`3eE@KUwrJN6& zSZx>Vy!43W@MsB>rGhz>!?-%ltykw29(s7PrqO4)X-g_n*RpH**vc~MyJi@m7Xk9- zD29~q+I{QBJp5*HLvM0}9QrNKa!0sTC)b&7Mp;w{2oDL5!ed8EkvHnqbnu_ePYU18B%Mj+~Bw%@d%a65LRd2E(GP%X|*SW z8l?D|Tuon9%34rS2ooCM21ea)rE?~hM|cROMA5dFhs|S2hK`B21CH-1tnn-+=sIM= zYO{b_Ymr226bdhz1=gwP`*@v>=Q07Ae*S8GXvBe)3|16ukZy|zQlYWmV4`MPA@=!h zGHvEeboL&Dv|JSsY7471$Ur;W6naXTH&~2wC5McWcARsveYKc`m+8U? z%|?$`yiz`Ix?|lqCXBHc=b}p)kee$sz3dhe&W;DX2rMmI5~igIipE!wWdQozmg2jo!(ZPH*ZD9qxl2u!yv&(8K)E(TF%COO8J7%-zxS4JAC zjx_`A2Lv0*QXSo`YMV@GE-aA!Te}7V95bl}*|$9cIZ~@H)z;nH)1F$Z-o=-7frZea zCSIXt8xXp>Wl|RI#T7T~+iI14D4~8_sC@(dt!*M}sO1TDZAWjvyyg#=L^1Ab?QfSY zO5y%lsA}(qQbM)BJ?;DVNMUM7d|+~IQuY^?t3^(>4-9k%iFHere3euTk_{ozX_k_` zZBkYTNQcGen+lEX%qOr}U3O-$pB5D1gV?E4D`VPOdWFkh}dJ%lsanqK}tpba`{OORBa-Cs#Qp-&SZ+Jib zT0JT{WG4Wz3*#w91)yyofEA@-_OkHw|MOaSUM$h^|=xVzlB5I{o zzHiv(1}kbhU4^bnb>`(?TeX(8b+s8I24;a!fAB%raIG3ag0xk zazfp$q&kc0+_~hVN1`e9iVi}Ds!+v7RB)uOU`-A5@cpU8uriLCN(^h{=&8i0peKaL zeYNVT4?+fFgsQ18EJ3K6`m$-ychs0CR7-soZR^&+yW3%)eU@uGsxGuj{hXJ~IkG84 zR}rFviK-r$rIL15y^dy0hvZD!*?nzU8x4t>w6gPB| zP)QjvfJ-C5GE`P3{BJ3b^;ubZ36+?sIAXBc91SskR<~7{lR5##Yuz~6REyZzrj}>0 z8VQ2|PK&3RboKJE5o9f-Cbz9K3;kBwvPY~QJBKHRYFmmzlU5-U#_5u2+{#iOyJ>h{ zj%>9T(3nos9m4d)$>9!id|m)ZZFe7n>tb2TBAZt6vqEp1^4s>P2daWzw_bC;jEg;3~JJKK245yjVAR5T`ZsSzN0uSy7l9+#o2)fV$FUwTJ|(xj$rnO}$vRIS-mUED=836x zR2<#a*~8JHyzHzfjoqf!yk}>*hT%*#7thWrvxkQRDZ&Y=2?!y9R)5$o2QS$Fu+ko3 zj@n05NUP0JCWU4jIc(g4@`7aHKBT9_?{LG5n0M$h@U{j$Qq#>lZx;L^+xM0&r8{4% zr==C+uttlac4|+lEo~Yt|^gD;m zd|?S|fGUzI(rR11sS6G5QyuoGmEnZVoTfHS9aajh;)l|y^3VYRh?Tn%Z<; zo3`vjcrqzm1TNVMTkTs74|kc+Su$NU${W|}RV3a7q}b^OrAYdS>A3EVc?{03j1y_q zGoizE@--_)QSqLrx6pz8U$ERMiTfPea|&%vQ4J-hPZW$Qp|Y7KwLgck#+WEvn?x2w&fI&Xmzg;Xe9 zx(c}g*RnJuSnv`kq|_C>Qu*?9wiNKv0+&(cePnmeMCs+3a%UX*;FAza#fHl zy*gE(*o7pkfJA&QTrIKiIfynVV`X^DVi)c)f*y3wrCGJQ*$Q2c10!^$hGDgomadb!AM` z)mfos9j54xr9vt4Mo<(@kKBcbD=%|aD+QF%Zs6^8A?p`1_;#x>Em^HwTv+66}Fp|~JC zJIk3fRgc00DtDIbgc+a*;?;nZx538!hA4p^iwh2AD_W{D_2?T!ERd!Kdiy&1TUWQ! zKO*DC3O(7U4xED=wMkCinq18!ZEJbEfW+MVv{s5~ykoL_z4)nJKJ?`FIN0}8QhrUl zNv2`c9}E?ByJ1p)sZd#Q(c&>_rIoWVx`%huZG}nwR^F+MO10>kCQDPgfiP*cld*@# z0!ehs&_vtHw3}|umg7pgfkYtPrY`{9P6RL#aMz6_Z;tN2PBtcT$A`a=hA?|-AL(&q z`(PDCug->arxJCz)}bY5 zXjc;eoHp0O7oZ@Yb~Y8N=B-^#h1gzDLq6?kDkLnVGf&;5G%dYO>{a`i3Nbuk(@v&B zRx^DFs~t>*$n#1jYOhiuhS%h@U#XBeE#`QfUeD#D0G0DZ?3mW z%J}s86hWv1OPu=iQ*-E4#?HfAM(E=ylDac6B8}Ot2A46`vBu~FDiuE5th&u1OXZ}G zsZ>P1E#k=K@%a%;!*H{m7fl8 zcVQa8`$M%cG1QA8A@0o2Fd@`OfzWSdOF7eBZRH(zi~+hk!Kc)5sS=k~_nL?frlC3; ziCxZMJ&^}o-VZL!bVpaA2sho!fr782=B!bn>25AWTeMh}NcVFfwz{sV z1}VCWLp+w&SvK9ZA-ba^U4rh^5Z#53&QuQY>pl&%)w1_UcV&nTt_jfn7h?HN2F_M@ zTO7~p8cfigl@LmD6M*idKu}XvSta0vx{m^VrR`d2zpEm%?gK#WZ0mEy2ZUNPD3$H2 zx>v#Xy7gA5_dd{;3QE$-$=Psi?s;>xza*o|4?YN8&E}O{*U6f`Rav&%ths5TEX00r zizdpvJ2Xa>#af-K%)KW0-DG8Cg$=tAc=e6=q3md4=7pkf|A+~&!mpwdraoA+G9Bq1V|GcZ)6nHj*R{OyZ8JRQsxx z>b9CsSNg|P-$1Inw{<163Z?2BNUc1ur*(CgI*OtFRBC1Ioi8f~Qma~%>ZT#>rVyPR z=pSfRH|uCW#e@S_2L$cNLFnvRqnW+&-UlB<$!pvDlLx8|Gh08XL0s9c?ihMEN?hCC zpX%uDOs!~5s{Jpa;wD%1q}KEV33auklB-w|L4Mk;rIG^!ygtR63+V^(J-q`5%H36A zUIQyqo!z}F#h_!l7v820dU7nUoDHv`aX}R911%eHYb_VhU=x5~bjg5OWqNw!r$Xo!1Hg*l ztMu4#ZLv&RYXGo!)~3#X#x}t2Zbm+x9a<7%;$BoD;F~BZ@v_PMB_c>8wME*vmC@NM}(_9x1G*MC_UAK&dfY9z%&( z^CA5#C_c`u1ue)L8zo|^9#&G|-Hir}@^zPey?t#x1C)sUt7bk5luWiST||l4zdr=i zvAUHKv47S?K(A{L$jj$F60z57qSA8XLn1bjNOFn#c5Mg=j8(&wXZcoPgc7m%Gpf|M z?p+s(F{MHUHM=Hi2#1$E?qWLfzDJ4J_^%bWiQU3EDqN414MUp*`uRwm%0ZRR-u~WR zsI%-UhPd=pi#JrVbD6a`IO-HA5i8aN$t6RJ`66~o#OT8PSQ{OY4DG@&v>;X6HX|%I zu1M*2((5S^YZSl_-meeI0YJchxtPzkdrW1)2yA(VB|oUjb9e+*vJ3vAW$LD(M6AhE zm>b>-=LO7?#Q~;yTFkPg0j8xU#^WJNfSFwzgDa>42-So@oJGs{_M$}WY%!1jJX0;P zK*pzqEL$p&i)%uZyaFlLhCp0FjMhf@rf;Vq^RlI|(}|sxitUIk;06H99)KWUA@Geg zZFt4-k)1^Bc(IBz{}wJcK#_AhiCFogfqaxd5gQdGUNP%@53^in2;Y=S#I_0`nrAk2 z?L#6qDE{)4Nb#nev_>h5!fe?$!bXeS)|zm66VI;UHuIgG!*o8ptS)9x#Ky&Ue`%*M zq~uwAAdio1CSw1n>8Z@ji0xTx)CR;v?AbxpKyk1@7k${~Yl2Ynhmzl))cPBEVefJF1EJ0 z=qCQMhE0C{L19pEBoXfUB_;M_yM_zTM+wpNgnHDc!qoga%PgiS5u02$z}$CS66Vea z?(jB*Klq1+*;Ld0sKaA?BLqMbQVr)u^D;-1mg%O~;c^S~Z9}SAeXv(JOa1~RpF&E+ zCPozEe-5ic1a7Hi!?ciYoF>b%)Kn9NJ=bupa2DckqD?q2Z;B`pTOfeXmcpV8X~5ZH z3Q@qQ2E0(4Ln*x;<4KJ3#85713fB+-mY=usl!#p{c|=`ozRz_qR%nt8-ifA12~koz zhYJ*7DC5E=I$q>MSy5n%aEt<1S5AEOSGv*Sc|luJC6xY3WL$?v&rWmx}7M0(|9TB1SJNml@^fjd=sB`Y=`PGkvto!J65YTwEBHPh~8K zR<4ODPCd1jh|y!pm`*$~T)Cc|^(;SS<}kWx7Rx=7A`pzkc&36eht%!DlfsaUJz{69 z0JE_s#*s_y1Jst9sA1f}5kSUkLh`&`9bh)s#KNiCD|@ zh#VZmIjT*hPdvY8O``wozoC;w^E#n22^)P0{jpVVyOav9q|DHW6E1lTF^q z@b};nu?eY<=ma(23=4csS^b~?6>ddYkj7<{u<6Y(NqwaU^k&KR$1 z%66P=^J)+E)KXI|5v0doU{vtFns76h3+n3lnso&LEWPOkrRgo72wMfHxJEeDMSp}E_68VdMnem&d#A1e4(Z(V=RR= z2(itw15w5VjTl>h?)TA4FgC89?M36%3SVFCI&`z> z!%2wI@rUVV(bq1JW`VDGYM0yN zkS>-e5&Ke2qF5FxTdHfDFNVbo*0$-NO0-M99Hthm4H$1h_OI1sZ{~7EX+RqVFr^F4 zu3_@! zdxpupCDtxv6=w2Dh1n9ps4mm%-Io%v*J_ppTTESN7(1BM0B!P5iqVcnxW1w=+yIn_ zbxX0L6_CbRXVt&W5J0p#(b|(XzSawKJYL#bcXPOGf+=~tlC@DV*G4cyW+rPFR0-9f zpt#vudNbM=ap}7qsZ6?EW+87DVmbQzA1c@- z)5EZfA`zP$SHOFsK%BD0Y8enuD0_Il8li4GPQ=PjD@bf%6uRkhD@UKXgdi& zX)9QTm|YuZ`Rg2YgAYuVPuAiRT1?xe>-v=6)Bx4PKt17=&LyN^x+ zigux3@$@`z76F?S7x`c$&tcp3eD$5%jOm-`W`4ULTfy!h3pXYOQQz&LMC<@D?|pU% zgNEhOVoJmwmv$5#VPL-K+8K*4H$Yy(rnFbM7PxcAfN5QlCAly{&0-C)B%e)0!CJ0T z#(n5l!c5XxX8;=tF_?f6N>0&Nfa$E09Lobnt%*z%ev`N}lzK1EL`{mAK&?C`?4 z+b)zw#o+@ev-tAuVI2Xe^4!-N1HTD@UHR3p_<(gbRti(PV2aOQ!btHL5rgY$M1ik*PsyB$Sp_q+iE4D(%!zLv zuOY_>v*TQ7lV_TvbY(#Ox#y+WnncH(X?|V3~ zGVe3LtfR@%PNvVkwvHB3r_+?qXZB1x`J$b(nzGKKg^QLiT=LZ>*UFkhHVsSCda;Rx zYt3BATG&pA$s%q2Kv}~dUKnzCmZNvMS5!+Xn86gTiK!sZr(u>+_FQh1RYpH ziKf`hSy27dVyWd8>`60S3rS4kSH3$8sjx;0+v_oVLeQz=f?3WQ1wt3GoPfkrpuNKY z*~IIFnr3-vvuJssjZUSB2E86T2fEJS!EKSj$1r<+d|OsZtg5UF_DDLeZ(*O??hCuE zLZv$YF4byms^f2pJ48F*`JV>56Q3tN!fhsFXZTC{Xr7)&G^T9iLJ31mcLCG4ejlef zHqkC%`Ng~9H0Ka``1W0KQrYc-)uWHhF1f)h(u8Dl;o&OVP{*J13oKXr6uTyCWPDA_o7_$W|6CaXeo^M>wgF&UW&YER)M~Xe9rnqoMz!lW%|aG z|7xIr;}NaM%1|4CU;Sg8W??7G*LvP;pri0Kg0?|l$MgETYYK*T1}iO#Ous%QDw~Nn zwA2f^*4z`PIYavSSN8;R_Ch?GW%5#V-=AJ?pl$Ds)2t!={QZ05G_U#EI+|tDTJ%US zFhKp@<-R!4yse5lh*@6GeMqi;AE~IiV_U#&v!Whrz{&qok=4V$nNGh& zZbdqs0lPhb^ud$!K%C~a0Fb7Q2C}>WbZ0$n8{|o1rNn(yCeFW z(Z;VZxQ*k{A1l%o#+IiWh##@9nXWLNpKKtSH>uKJ#_7NLP@GV@%eZtucnI>vPrP#` z4V0B^gA&3C48$L~VGnLTW_qV{T_}J1Fm>DPR#u|;r_OS;Qr<|%>4~8p~S;C*3;~p6!*c|@7!2VUw;JL z5kFpu|L2YMbj%}hV!+dn2=~u@UzKWa3Bmp59hm#>kD}~}`kU&h`DVr4SC7TuarWnK zs;5IAjZ*@8n7Fx)({EPNU9ZwFys4h(7D+$1_ojL>9*fi5{cozLrH{oaK6q0-{pTnp z#eXG)ZtpYZ9(GebWgm-^0?j;Hfwq+ppe+h?EZW=cl&nV7<9P5m`{y^+)4h+0 zs9SGQqLvd})VYsyQ6Xycgc5ZF3wDp>wM9bYd7q)=`HRH;O+wJN7(~owqp&%Q*~~sh ziN2$RfCg+nBXM7l5Hx0U#ZC3JRoGl%%)RxddOG;=IK}^XQ$5W;Rx#|95Y=|}PILcq zQ$5{|vLya>$4qLzRTc8wo#t+H=S(`_=DTB4e#(* zwqdZ@B5WoUn~uK0o)R{blKd43Lu|@V zK^mf#kL%I04D@MU&((D_d8GP4d-1maKZE2TX)KF_(?Qy%?<*ea>+wV}%n|x6zd~3u z6_9m26CXR%XNH3#!Gi)lRl*8S&+@aWY&uQjLb+VR3c^&Ic88qI7)=Oq=i{TI&B)*l z8Yb;a7E_ZD*GmXa8nA3Bm4$G(gi!$2EGC80dxFkKvsk>>G8z=hgAzu0?6qhyO$w#| z#9BNSH7{ODgF<>x!YGr)%}bZlq>%bgs>Nk#^FGUHP)LtT80E5j(LRf5Qb=o0uEk~1 zvL(xx(xA{Dl`zU?$>P12EvHGLtv#g{pJjXPwPYC$3hhw|!6%l&0d_N=S+~NNRu0#vaiL!%VHJ+8e?q7aNLYnZ z=l>^#yvN3Aq^r>gS_IoFVHN988X6SPa}rj8D{nW6eyC*lp@h>zQw1mOkNPw&$V(-x zO5qjlTn=|*(1bt=r>RV;prwKamj$%&^l88{3x_A676I+?qbPVrU;`T4ZTh3A7DiFJX z38DVv+-Xqk1;&N?z4N9)u_Gu8HM?mV6#Ig*P_sXt2Bq9VS;*P*r-3PtP!@9bC)2=` zQz#2LJ3b9;(UL{YdoQN4(6c|C2Df&*`H4XT-?0R-i!8HOl1LNFPsLrbkRObmozV>vH-FdO#@uMWcl)C&C97Q zfb1`(0WMm$_uhLiUbKwLg2-Mx4RXnnz4ltVbje~W3nF{TG{|LpFKS-C9IZkS*-NKE zE?Tm5@uI!=Uc8*j0?A%B4RrCcmF0>uHk!mPlB|((_#gwg})L39Ep@amivD6v(*}P6u7Kl*R?}q=Z#a zE;z1tnH0o(5>_Ey%P+ZwW};uIA~#4_1(d6UnuNZagjG1akHo&TW@-^gzl2rLY?|MY z1jaNdxVB#_Q9c6Sb^r|u@(>9>BE`xBs4U16CH#mKD-NJ>L0&51N2Ex0(S#uXDB(w> z=wD8gf_zEBk4mu*(N#)E+elcIA`^`5*Dj_e0bO#nN;Ex~cO9;`GBhF3e@R%CgzLDg zkg-OIu2F2`5`GAF4K)d9frPceNo=2K#g4BQ!R;&IN8s1cpa9oP_+bg~iTtwQPLl8= z@M~yXfR{=5AqiH{gn;gn@Wa4sXi`uwNcbUW_4$9gR#Y$HM^TsHWzF$km z&);50WkGKKf0Hq9<ZTY;*+*g3-_fD z3N{cIqE(=Aq24256)K%`JZm^ZlLB~8!YUvi2U|q+2UUQb zC9J}^mYJa@q3$DL6{=_#Eou?!eiGJ1Ev7*smn5u$l{~)5x-9hHOIU^D{Qw!76#6R? zR^eRJ_AH`5s*-+2!rCwli>XB*Yb30KW-Y&HXJ}C9c?qjs<}VBVED5V|`0!gQ z?eZmL)%)PRS!JTwWaMZzjH);-#?PSOrGNd(9vrc2@3 z+2IWtDhvGr39C3`hnZ{Ui!>pK&)z$Y#Mo%V`{(jSY7x*o64qj?2H!;YDSq2ZSPdQX zR%2U8lK_emRslr`3@!`k0ST+X;HtKpObTS?{YsE3Xuwy&n*?@{gjMjonHfP_8x+8I zB&-4smwaoK%0j+a!YWuAp9G=_As@VD8Y!_sCg=0aj|K&FoPVBe4^k#szYxgjG=PRh$A&1kj{_{wrY>*t7f|r@)6Pi5^tS+e^X#ObN%R z>|BzLmgXhyt)mt}_Wj>FYj~oC1!qGg{caDboP!)c@ii>HT4{UOwld$K&z1Pv>4h?m zqg`>a0N&HjjBhuwWfk7K(QYEx!jwN&w5WOhh_Xphlkk z&(1$xPt?d)meG#5{frvToSiMu+;f>Sj0;OzIcA=US#K9Iw3GU69a=JT)c6mEX4A~R zsr?zS^n8~V9K=71zB}Lytg}7((g-4GK~&yL|5mSxwPZ2PoUsiRS$5hrKq={F8gVKJ z1v*%cn6hA-a4GD9sH(oy6n);kX$WUS<2%rCip_j%bWr~+f?Ny!|1H6zIIRbGwRFvDKu1N?=aI^q}-KyHgRDY z0JLhpN`^`tD-s>VRbl0DGC^f2s9?R7OPgu|VTRnv;K{Gq;nR@!{9)a4GF@fQ{ z!L2HniU8Q7&iS`|Wd0f3rR7tytR&yz*?P?s>Sw0QYcjP9YOjCuozKF+oRWOpc`-k0 zqpGl3_pI2}qGdF*E-~RuDMa2Za&`yQ%no~~M1`zQ(V#lJO)W~FXhfDvtA6))h=f~) za2Zk`YMVG2KkuiWRZ@=WXPFzZqsF5FZiKo3fn1M2TR)v)+XeW5-J9eGj9UJbJwxB~ z{{f+Y@*&_e1oOGhT z2ru6)rF~}BSF;+6>$7~~xB1i0ql(y{d9-{9p0u1HHk-oi(LgCaf1+Oe>Cl*Oc|`2u zbZSPu^IScB{+kB}tw(X>?5J@ksT{iV`Fd*P21k^wZy@3p8OIJWYQ$pCZ2qZr9$}*k z$T^ZK654%SnWHm2>{)(m!70#eu0t(jn9+Bh57h?mQp6R2qQs`Bl(5W~n?FH`MI4(J zCFa*fH@u)VvHpwyKQs}rh|h2Oonj$cP@Rko zHO!dOzXWNHeIZ<6-yEW*`Avq@DGN@t^hMZ*a(bdpwCxDM6(-P#2a!) ztqeM3i}cw&Dw(8{P8ywxe>P;5ua72#tzH$ORhz; zxub35&tqeJLyg>9HmX}(Xg)vDf|{IPf_lHXXs?57QEz}`Dr15MYoj3lWNiBhS0P#9 zA6H|KWlL#heA^ZoPlSqZ4%rL)tt`Ja|L)5u|9L94E`J!Zv2On4zZIadtKfS?XT1!= z;+^9jt-6k%`h3@;3FA-v(9dr;y1YK$rQ_?CzQWC_Qphm#rkCsKli%DYVjiouZyHni zad8r=^sujG>eD}?+c$Y3z{eGb=%^ASp;gY-1o+kWu$5bL^7 z%|Yy`NsL$O_1I@fU+9JphF~;DImN6pKEh#&ezUM1COm$E5bc7$oa&7j9U>7ylf%VZ zE3G2UjL%e*&=@jr`L3PDr`f@)ikwa3A|Ul)iq%fWV$jqPSvFlE$zLVwYQJygD(cD@w!tmYJDWf0*5=bGDGK z=_DmVB?I|*neEoh9w*w>Wi(c`deIPI5oPgr6`mL-cCAEq<*8-|5;%d_B1AndRxUKj z0}rxaucwONsf?5&klDK1#-xbbTEy2@rbCfri(jv&UHQt6C5vgsj9FwUrD#F&eA~mk za*rZZa?jJ&ne*vD>E5!<#21xOBeoU|m4+#9|F@o~5k~`^47Kp+voS?0)ekHz+8J8) z;!6O@%?Z?pyUwVQm#>mI;ztLpAoSXvT-Z=Ha8Uy_V#(ro<3~(WJG6!ibe(~lvZyg# zaI@IlTLz8|P$Qg*N5|Kx6dC^F#>w&oTeWl6y2EIr#CSNs z2aaddap%;?>jhSZek9KYYeUk`sx_T6C9a5zM34`iRd*Krd83WHJ?U(r<01!Kd_bG( zl+uIiA85Qz>AhfC8NMJPPZvufzjBQ3k~%nFY6MR#e9`70RXXd?bs~8>>tO4oaWxf9cRk%z*Jq$U&0H>L7uM63IvioAMqV`Hn8)kx;<`b(tW1_B>r}0& z#^wx~uF(YP0U5M5lqZymHE&&4!7UXM{41uM zuZ=F2N3qmSt3aC@lvwJ3a-UVmzyNl(gW*FZ*NzBftNHT;`@Lsi}? zE0@6`th*YNA}W!zrQya{LwNF^r_HZpTot(TEa94%c@z6i@hMq4J~qE;mG~4@+4QG3 z;Uf4Ui!aJG%d8_5wTK#3X;b_@o|<0aG^va=Y`L^x&fDOSr)H&gHa1$W{FA89D^gLh zkceWMMkT^u?>j}WNM%Ds6iwI6)A8yAOQY#Kc{`0!LCK?yhUgT|i!VDkLt?UyouRYE zrLY9b6bx01ur1Fnq%FEwFo<#aQV7~?;0vV`R380G?Mn}y`MWB=o)WjtMflla1arh}&zAQf@Gmv+~9~_Hx{$GW1(Xk4G?|8>d7htwZUi zfSr6yJn7>d!-S|Th~@i#?vhAv%)@&{v_y}#NF*|`JnK+;+)$p7BXXwa>n;HHY-RHF zf}#8dPTy~p+T_=T=;huraAOUYK(lElV>Q#pI%OoDidaNv>xg2S#^ovN6w`FEJeY;F z<@t{5(dN3QcVMgRRElZ3P7qLE+8?C}d4_SIwcb_t#dm>+zs26%Ep@MP`W!wZ;?WCr z%9~+1*rly?lkWp8;~Z4*TjH;?=~mCPJ)b{=LFE|te0s=`r5XPY&28DbY4-fdKdAQG zm~(>V-*vXE{OZICec78~2O#bA#J4c6=~7%OBMTuepWiZDJb~$Ei@}h_bh8x4#dPqF zh4s{^+IlffO``cCEl|aFtu)S{TN!FrUYR$|Ss7ZS9%V1rVt&#BOa9xuRZpMh$q6Rd zO^1J%K6tC1b{srTi7T^^fOh^{Aq8284G+muyzIdj=20UrV8>ZRovBK4&sz~KDgX8G z+n5ikMfi}G6mix3!B2{o*l4T_5tpZNon;nD+7RBB^DSy5-Mm+ndV=EADo*2Yfg05a zN;DvDlpU2g(cug=v*e8BLd=JVB*f2ulc&ndu`)HJ z@NkR48XYh6h1NyFYjmI8L$CG)euD3p>39cL@eRc-v?Le-HSW~%ZH0LF9la8^@_Zg` zScMN;6O8a#Fn|0nice!P?GY(2!+lyK`wHdIR14Iqj_}y{4lmXP>S^4mEUG~L1ghZG zvwB_uxH}O0J6cP_zT)kMAZ1lqH#&U?@m&$MmQT&9v$s9@!q-yO@VrtQ*8$O9>Ji7%3O+4YnZa{& zgKE*wzG>%Zm3mH7-Kzv|tY!g&c#T4bC6@v?$=vv{Neh zM7V%kd7nc)`!I^DXEe9jss%w2{NkWdy*Nl?_e_R9p^6DAyRjy<4D4Bj%qT5TTyT}p zC^hScLuq-7^fraep|nappiiX(egJ~D5+!igdm%3XEged;=QrJrq7gL?+pgymDIKAo zmWtF|RFYZmhq&;?v=pCDcL^6{kCh&oR?{80`yMY;#KmZCDrqvzZEE8AbdF-HQ%!;V z^!;$1!KPdq{QyQgpi=G@)Ul$inqQtHbyh4AsY&XFb!ex`?&Q+9+3IPS8gKdl9Xh(i zrW@YEPmF1l!((&j#LE?2hNx;Lu4PtPzxRINqQgDjmx5P6@Z00xRYK24PWr$d3_f5W z55gl55(G*}XU^Pv=FTDao_jgx+{pw@y#m^_wKZCl)cTlO9|09pZ56fZSZhmtQc(mS zG%9L9L433zTKRvzYwdmZKKC)XAhrMB@cD#$_G9g}*Is+?wbxpEZ9oH3g&j{$#!uw& z=G7+E#(hsLq2-#q5@CtsKxLQZZ$`^X&%MYHLKV82GPHc#NU~00bsAhovsR@HYrIzv zu|-vF4n|=DSxf~)L5Qk;xE6{F|f*>sIpyC9C9vlriiQRAY~_x%m%D zwYD70WlrxwXI2lTded06EN>eF^2+{~EU%@GM(z0UAx%-4h!JbJys{w zX_p3b^I669Q-PX@PN27X1QFB%N|>DU!XY*Kju+~^-jGd0{;Azua-gN$*golnsgYz( zEV3}fk@u+FL2as1Y8#v`LgJWVID%ED{IaB7?w0)`C3*+1xVbroZ}x)4>2vWVTj{T? z7GKCy2{sowRdVQOfeNixWg6dklR8IQ<$dQ;EEK8WqbO5qsvFTY$5e+uic(XK= zkfu}7%3^TVs=>q*ISq9{wXlPQlT&*$G}p6i>{@}we0`+h-&EPYT;sD+jMrxl)6Elu zoDf?1>~+v>B?zS}|9Ejm=`TlysWloKSwh)m(s;5U ztVpVk4AcACRvj7UAUl1nRrQMF^9kViC04`9VlR1?!WO1NTFHjmwr2yW@L+GoT4mT6 z_`C;}P=Dj~(gCvq$ywqFK3u6klWCi1VJJ@Y%BBdLj(My9&+lQkQh%m^z~B*dGc2Q-9~=x%DYppUF`F!H-F1LLJH5o6k+$FFCxCX^!xMqFxzTaJe#*nov?X zn*ndGS=F@c<(G}^6p+l1jb0gQEs)*}bR-|fy>#W4p*|(3y5*9hME>RZ4SK75abEL) zTP%i6-a#faXf0n0t8v~B;?+Z@82fItBo>=fs#8-8&#oGJabEjcZ3?``Bj~oqLV}{#Ib9D#daF_e~l)$XEIOUK<0Ooj=pJ1WK0FKkF8Xoa5m;-nGOQkAv9Z5#g)9wb5i``H zHP6VHbu?MYtO9vMm&hIGz^ITRApQ|jWSV6~7a6(ZA?pLZP)k0MJI>DH4wo={q1D7! zjs(g)5GeU@wW=7Y+4+@BjzpLPU2ix{FgFCP>PmMbBJ@GBwb)vG`K?DA!AVP=nXizQtm= ztnDblBgu9zS5kBP*W!5=e^}EmF4(SmGi7^MD=bR9bpRllc zX*XCI7`eIc2@Ge3k5Fs@=ELIcoM%S6( z2|HuzqGMMH2%HZzh)v2cJo3a1;NZE)IhOXsdN?Nbb8AUE+HA&^>>1T|U9u<}8_ z#U=YBO<}@G`L|$IGQ((Lclxujw1}?^L+hV^nY5E&G3m!MULmfA)R&w4jAS~2)(pUj zmlvrltM^SKrrHOeouTJd+}bvUllI0pJRo+X+(k?2*n>Ao3vfP#0v3jWgjWP{Ztjnc zwq%i$x3w+f9M@1>g|$_4)elZzfb?C+WnqEOAhp;!<`kn?gw9$FQMIjr9EFKtrx?Z5 z*Y#ndn-<@5bXUT0ysKu!T&B7afw`HKC!@*J2d`A8p+ncC$afHmF>90qF#4}F@L2nl zD+7QiC0946h5yYC6pz7N&`c`NWa4qm{<))NA5Er&fd#SQ9ic|+)V7opO?ZCnZ7G(HDjPQyE2&F>B4R>(LW=Uc1$dVV(l@*p?ivG-|dYP`4F9FH6lnF7A zz~hla+SBAaAHtpw9lJ+`K?mJ}chz-XSf!%K3XC6aZcIzR%6`R<6Sosw#^M%s&@3BB z9F-JNqvt{ZG)st(`LoBShGlEb4VXYTAD5y2xv$G|VTLBj@5@d6n`COUiW(9(iq-H~ zO(oSPj>{M;XQ_a-Rhdi=?h$b2q)`$=KL||b-!8d{g;ZrO?a9uUB`b|2LcV+FR%fXv zH>Ne*5z(tb;U>hAqDvf`7K(E8J|{!{^OrU?qI3Il2fr&>ic6Wwn1c|ivNFVc5$#AG zK-0E{aE)Vhsw-h{XJ)b%xk*2+X}@=Vg^jX`mqIUa=_vVN!uK_86A8FaI~Lu!-ucB@ zIGYOY@S@jK6LroJ$j`BMfrPv!fA78KjR7G&i<1F%bLUy(w~w~ekkbI98B&=+R!Mx(c>{1|-L2Z!ui5{)Kha3gE+ zwCTqtw?_YE6WEw`roDpn6=lFRjmB70yNxl^(RBIGKF4Nan0RqIqAmBQRIFySQG#GC zPSlnwOs?3$VK7Z{yV%4FW*21e`Q5gn+9 zMC`gSANP;lCYcF8mw3I)=H~xiGT`%4Bx2tXLu4s6{9L<9NxSN~m?a;T%BIQ09Rz^- z=ilF)U#QiUCpbSuZ|JM%p;h3Kv&=Mud6>ALxa2&v93Mfw z!f*Z4J!i?8s$7j?NjZ3yY-vb2hy4%fkR+L2TR40n)peM$pngAdIXbWY64Z6>9&33B zi7sZ8c2ZV;z^!VkT-`~1f{6ZxZA>Yt9IrY>d0F75iy?1(>WIs7>R^RI#%?L1jkoac z@M3Q^ril~z_^d$!)oCdUR-i@?yAYd>YK;Hn1Z$l{qN0p-Ti|5z!xgyzpmFAs;7q7)ZV zH*1>Kq@Hf3ajlSN?PW?VWlgP|X!0F&)o`(5@tbwBed>60c-g;;_E!JCJ^#jWqNi`> zGt@u!HsQg91to7FH*u1ZA)B=XIO0K4?!~bhgfB&umEY_Xr{YPd-L+PTYWjX%tpN23 z9V2WB6$&}>JE+OUa^>ujXk`=!1Kso2(MfkRZ$e#5C;yaxkJIzbHcL_hZ0y9i`pd>S_wOn6rOzY$l+VJ`$ zwDW_~d5V^1;cbOdUIDh#*px1(o_4qqMlMuc4BcYwt1XQ9cbU z&)0kvLu0V_Hl50jFkR*+@n~~y{uydR+q_mUF&pYZfwKMpq%Zsi*J^$32EXi49@6Pk;?dLTomh$jp#2T-n|E|gmPD>om}OHa*E|HNJaY8r#rJnp3A4t`6r z9N8rk2kR**;aqwuD8pY{W89$`ya_25LQ?Q&1H8bbJMSDfzg@szK4A3h*X;+$PGag% z6AaXx>sdB|D2^#lsZqu4Uqug*g}>!VG6bRQvWZ!wDhDeZskiAvH-a4`)r?pI)5m3a zdK3!=z5KLx8%Vm$UfaSB9h=^~SY4-r5kZdhVW4{x>?ekLX;6cwVG6-}DA~zSfM9@W zH1R+C5VaOdy0n12w8fmX0Y2$&dcR6Mb+%CU8G?0ZX?y{Y_nl_X03ERc;W7HhRKN&B z{(4ZTRw`A|K0NF6cGOQ5u{QDAjuKmwm2IdZ^zRj2+N^wK9+Dzh&)p9Dt1X`Ro{}UNN;dp1?NUTh{<1Rbs#~*gB{we5y;noI)6&r zr^}Zg)FY3SVFN}58a-+dfT1^~F%||4krUMBR%R3*rBxLz{@g90oS?x_+;zCBm%h-Z zS_O6h`ej>^NnX~_i^qeQ76yAMbyo^1VlsLaX!mL5pfwr^A6o@dtengrqe5Prvj7-I ztDpoOv)al`m`w5-UtMBQ#|e>??hXp^h_c^XjS)#~MhC7JuLanNpmvVv_Un6JF^V!= zK~(5>Uf-KJGfCUJ)2qdFPixw_ZsbRFP-k!>8$Gvnkw4=}-l6Mzp}Hc;+w7LSXtNjM z0w+Ckeec>{v=J5D880Y#=T+S@J*F#!UZL#z6^W(MxIy8gQrCuF(T{1*4ZYVgnmk(~ z+IvIqoA?`4V-o{M`k;L`^uGE^T&LzU>4Ro#7GN!Q)txrJ#+DngEfP1(#f`|nx; z-L|3!Xe5OX+@)aEG24su*j-Duyfn2`2_L?8&^mE~m8AOq>w67*M)gX?4R;Ye&P-XD zt_M3Jnhl1T93BEV;e|!)ff9)Oc0zF(dedlgl3c;j^)4@2h%W$$8)+y8TtX zr=Nk6j1wIFY47#Dj~|buXjjBjb>H>9vP#8X6w}=G;>KlWy21UF)huIeH+LIrOniif zIb}FQv*}|7UmVm@ttn|Dp56bDacH__CvfT{*@}Hg{+EWh4liQAXE;OcOhqd?SNZa= zwS*`GR2#_a)&O#|F=)&zI?^x3qG2iDC7BJ2^y)Rx{b4*XtBW-DFBnUkz~DFr(X%FF z%u*H%tQk#6WSaqSV^^mElsry7Ty<6Kt!pfntxiob?^zpxt9EPCvM%(EHI^jBY}{n+ zOcrTu`di$fO`0dy;jKJvx zo%yX5S+ZnKxRVjdd=zJZEPu4YitZb+PMgUU1FSE}2bj5-w$|aJg%0*XfqK!;f_8HlD#U|R!pD+g{@`6~3o#W<}V-#E>v`+5c zYY#udE%&5e<_ECgSWK@kS?#m$Zec>10q+E5e$>pTwq;;W%I3ztB*%sJO~KrBn5F>c zv@@|buiAdvwqbdV$`C2p{OJp4W?BtXD;BKs=$WZ?asl9w*cy#S)18|}qp`?LsInh; zZYVpUb@mqtlY8n^+*-{`t_xv@6SqxdZ1O7AaF+@UXy%&@^@T4=F9Q%=uojtJ=lMCa z3QTNWfJd~JD47|U`K|NE3zA8d)&iioS~0mFqR)W3aW!j%>jhjv(wk02$wMs(W+K+y zVt$);eaP>ox4k$+jW0Cm?)LN;{ZRQz#~mt3Xd@3n4?lw+GXtmXT-zloAkH*?cVti5mAbBmX` zep$qH>yWcN88}w2Ice-2>xk1V-_kc;YE8j}+%3f{W17k%cBNwDM&DyV-U)DNNA+q7 z$8{AIpc>P_ac8BZSOp^yv+25*+9ycpZec_DrfnxO=QJJM_r>XphML)fYJ7fxlM&U= zf~o5bvH~WZGx?O8P}+M#d6Rp^SvF3Uf(y^V3(n3^fBtJtAXVmpBXSeVlqws`&Q`Zl zD<{(wF_dI=lF91Cey~d~K=>_DbTtW)!o?%49$-<92L9-5OcPe=2u_Exf5u5u<$5%Y zI9~gYV4Z>Kl)~@Uv%vCLArfNACWozUKD%tfj!(J=zEi`A+{*1?w`T3d&(F@#*s{iq z(1C5$y@tZ+vVFP6=cJryK1jSZBj{v>5(d$9&5xdK_PCWvs7qVT!@hX50)BuFg4<^$ zut7k56}W2}z^3*y$LwLP(H(2SB<~Om6DFzA?dx-mwQ4Z^qW0m2=A|B~+X(DUPFab{ zz!AI<21KstGaKxp#qc7%M_A--34;=kwlLWl(IQl+L zV6KxgcN~A@1_0%7TPSnqiZ_~stvfxhM)#~>^_G+o18hcI>l5oRVJQ zSKHziytVNx&8-(wWBm%C*w`Aog&nx^w9YHXF7010L{WhR>A-p(Ei?CO^olWSB3qLn zpPTrlOgwA)sEa>5pEz2Hn$*!QGoSh@nBF>xOG(rr)2h|X*VkIjL**b|;7%^Dy?t$Q zO88RWyezmg%B9VKHXtrv#}Z+(oR0G}#BGW{lzt)5pguG_{%072PHKqNLoHxX8L>cY z8yoDaLu*Eobvfmk2m#qH4Dq-{(qu@m6q`^oxLJ`IuAmi%tolg-WR z?f?}MBQchktdCUz!m^DDSLCg*kzF=t$Ej%a7&S95IOo=eI3O?*KbbJ!fk_9*ZWo50y z3NWWe`R81~Tawruqns(fh89)r)hp-#ICv!gwjbB zwTyDrL5|CqWBkPJbR?d0YTN;jPZRr(ef8R#TQSxJHbd&!I!ipx5PYYkTd^W=+~ zFyY%5weP2HUuZ<9{n!iX1Do0%s3mX0SZ8*4yL9+cTmmBr{^`Wj_c~C-nI`9~3$fa0 zI_B9P>r7%98(@4*HwUFp)w1d4s3fsX=iGV$u?gi)ICdUfX4)vjx-%4&*!jHvJLl2` zlJ3)m@)0+YZfMp5iLgwyyu9O&BotQ4HL2+s7b=f4qeH$NokzF|&nlwP6|LduF(< z*FUe~C@$YNYRH?JxjKs;~HOS!3rBvn5T$(X!zR4)sP(^@e3BIQtlp^J}*vy6# z{0#I7UX4Dmr5&f)C2Z4rjE#(*2?f7t$S!>S7K3hE>&)sQ09-JJUj;|p1binbci3I( zR0x>%&o7qU-mH0v0Rv`>*1@ajyU>`C^)-#1g+RS!hay&yYp;FOi$a5L+xfLwSkORoJ)`2jhl%XlT#+?c@qcl>^u<2}QBrl4g4K$J>Rg2T;A?d7Zw7lHtrm>hA4uf~*b(uW(M zZ@eti&GPJ-bAbnE{7$R0N7)N-`;5BSP1?ZhdD&CK#vD+ln(#C^pib+l2X+Hfr77w{ z)yh&ffKE~DbibV`>SF@PXe?}f(eHFH-ajp8s#>7>y^Dk^VkqGCn?>XF*Na|!b!r`N;4 z3&Gn)vU9cUqyl90D$~x&ns2eK^*HH{8gVdKSokQbx)kdfQNhL}i4}KNPXsRv&ktg+ z1gFIT$@Ri8Iiaf8D*T{UH^)|avm!w`jnABgX}ivh4BMhpTSpXTvjltxAQx;i6lp2K zj}N9>suQudYiGE+(gy)KIm#7k^_8r)$Bm!OZjr1PfX9ih5)SEH{HUw3<&WrVCOF(S zIlYb1?-!iR_HU^+ieX{g_<&ZUSPHb))z%Y z_n|LNJt!(gO5+8*+$Lk&1fsDWV{nGLi>5BKH(rpIweDQf4Y3gp(+%T1Uj*(%Z&m0? z-0D;{60nQ@2xLz-)fyGXEJ_)2Ds?%mcm4D$8JXqVRwL@$$S@CBlT*fGTE30n3RT%n zN`i!blhAmay$$VfVs|aYy9H2~g%D>3ebj zEVUNQ=O*rxQYmeIsivQBsgT1qal=M!p!~~trW-!#a0k0)T}iKX3VmQMi`Qz@hmr4! zc3n1k+Jr^WmdUGp1+i4N&fd1AahivNe*fIhgt~@1`MfNzbWS~F=`Ooi)O=pjI!!R2 zviG}PE@ug(Yg}~P4`Nt-?OKoboqX?eH+#^}^*Efzq&O!{r{IGhqLnY_j;#I(PNrAYlHOOai|;sIDxVOA#_@Fhj74|dKLuTTw(w9z{ZYN}kH*=!j> zmQEFd@_SqdGgfg8%g=bU zS3Ru;oB6&)-ZYBCg$@CX=G1oqnfuiTJ7FDIw8KY9cEGw_eFW9XYw&U^WKnX$YBi=i z7PaF;gYh3vWeoGz;80mtjxP+eWvm>6yx3AH?*9 zQU<;%YSL)~5AJ<;s1=#hf)Up^=@vN~Z#3kBXTnu&9^ zx;3k}qm@y-gQG39T%65MR;y+E_H56N%mNP~9R|*yT$AQaX_Wq9NBi+m*;ks~0;=eB zh$)KeMTfR&H1-djV~f@@`myf5GO@ z?PwZWh0=*T?2ecS#}7Okjua~Jg%z3F8W6QfnOhauG_?dgv%qk#F5CR3M^P zj@UEj@LHFJyIt`EzE`a+7oFssWK47gWeEE139kWK7;FnNiuLsZn-J*Ke3GVbPM*#S zR_eb0v1eo`_mOHQHB+7ptTk18I_Z{(FB0oNGkoHl&39691=borYqfO?dSfN*c1fY- z+lIDxDEG^1hMI1OEwY;BQ?N28lWp!bn3*C)+F%zsMN>oFT#3$yuTP&@c5AiJn<4ss z4HGeef0rc1F5ZC;pvcz=3K%F~f z?a|Deofh_l)DiXJ)>K!V^`x2|jX{ls9I*4^Py_dZWUd%mDEGW~*X?<)NvSfe%X@r$ zpcQqjQf|4-pIP}tgrmMi42IOxDa&6{GK5h&ti{62P1azY*7gO+hZ z3sMH)_>4^x334wnOU~HYjv#i4M#FMAg3>@Ac4f@IG=m|W^y7&7Ht$S{;5L+>&hWWs z&6*+eET`miB>qR9Se!l+KJvt3M5bCW7)Bc|lpP(RIuLfFV*%cx5V4|d2^A;;0W6aI zF6J~xS%NQI9+8aG_nvX%B3WTuVh?bX#OCb$?oPW((hy}&+Qk$=3()ZE=JY{R?&;vf+xmc2f9u8+3DOY z^$qRra%yyFf5RwXk+E{1Tz@_qe7;20cYncQjKzr_QTZD zB)7}|I0!W(Z*6M;r+0$#<5zUWo$XG*oz_Hs&h1LRHc~PqICg)|@22g$Q)FmE`_>~x#ZPr8e zlRZ{*Mgnew|C13PYWZ|@L$kO}8h#ZSx6^7_(;mM@PCdM2@Z{RPu+iPrZ4*pCs%ce` z=~~Jno8N7#*v+XDFF%N`H>zniE7i#1`1xH;_@{`C^C}FzW(u5QbzGKYV9oHW>~q1F z^jFtgERxLHRFQqw6jPx{`8sKjQ>$`tpuP$_lA}^Y&ik+D?W_qIX>H^6m`SOyzWQW!v3(V zPuXvw7Y0*P?JsWxi8Tu#eVrE-=u5B0wZ`T*@009DdUE+ckc%46h@71z%F8dtbb!g|6w1}e4@%mrv>tgO4GYD?$h%fwUJ7Fxn|%Tb zfv`w>l*{i<6xiD%3&YNs_Vq}SoyEk*IP%IwJyJ{H z$;9=L>&*;G(~#yp{Q)*JP-1RGKFmhAVW<0>BTt73^NNT?0H8xiy$=`a7J&_K- zoj_C-OHn#>UkqW8-$Svq8)l71HT@Dh!Z-CP)A`fU;Isb(l;`N0cy3r|*(ThjSy3Xt zgsZ8qBFqT&M&F9l*#0%juRU0+GobG3i|3IUTatdH>vnIo)i#*gLI45;yVU0aW&FbKXVP}$mw0B_j?p@8gYT7#5zzyG3X}XeIj_Gsy{+lGEC1AzO?9fO zZ84DG&h&&+QYolvFQlLv`%}A=3x>2mE@|WObm+Ooale>wnVykN4K-{eYF>C5SKPXb z!@uwwHdesxICN_o6L(c2ArEPZ#a*ogV#giUdQ5kX(qcO9h_-r%tCD4JNLjqiY;B9g zl0UP?=Y@&qxh%)*z&T16EXKRz9~U-Bz0W%?kzx?M$>Qo{dr;Yk0Fz{&$Pbgy@k=sv z%>26rCJjhp?$0xHVnWY2^n;S8i{7G(w&b7r=f9O$+2IA;lyqr?PFTp+c~f3!E`TV z!Mgh|x?=Jay$u0s3m#%Rot=z3vGKx*bj-(Y@PDeu8ZYe>hHy zaia%+%eSqvuW&sx z-Hm73!X)eUZ+?SC86zuko+Z$@Vdy3SSq`J~m&#YYA){;& z8Mn+#VIRo?Z>LG_q*j-@+NW8nByRnOCy-P>Y}4<&$vTKndw4`@=aZhAav>#+Xtsp zC%GVHuY%icH~r-DO@OC>lkRGvRF%^b-@~&Ps*-xk+KI~%W#7WD6Hf&yFp@d2Gy!=0 zP3bU|HOsjcG}7zeUcUC!e*HUHBUjtxMmsD3mG7FDHu!DS4giwlhXAl ztPkoHdu{Wzl1GdOy=aM?S~b!$!w(9{w9x2Tpni0-%|DWHNm%qkx@}*(ZNV;Ko!_N( z?kAqRtcB3}P}Y4`>I`jHzII=0!`!)%RJ(_t$>XJQBgkM%v|ahfOXJB?tWN>v1N*v~ z4($vHE%;e`s@a*Mnm(5U)9%kFUA0*M>n^ch#S3EU{p+YU)Gl##Yhp`B+dAS!wL}9E z)e;p%R7-Ra=zpH~m2TFF=xN4z^_#mQRaMCXMr5v*i?;RFWVDdQnl@(qlZSP&vFWR{ zOpES~NxuzJfAlw9^_y)a@OOjg(zIun($la#o5N`t^|jC&csol^hTV1j!?%C=Te|Ae zRAA7C1U}Pg8-amvpV%vjTH+=nDqc!kWdwnfcafi--dT{X&aiU1eb;Jl=q|p>B&3dhArWjSX?y5{y z%NKgP?1>-`NwVs~iFQ>sy3w?@GM0imf2#QKXvI-CH1vL!2K#}xbv5wK_uJcU8?_o` zvHN#5X3Y>!e0x`jln^Z54@!Lfx|95*3q6V3gOV9+!Un?q z6eH|EAlba6eN9+nfOiSRumoq`Y9S&O?O9wyoaSI03BV`j?D+#P+H=^5NEa`+x@bsH zoGe}LhV;$9wQ>_-Rb^V;w;6s$%p9AZkpZ7+rdD;{^S50wQMl7AW8qGI)T$FJg*z#G z<2$&m!%IT#;r`@rZQ`i*=mme*uJ1Z`(5Oj5wpc5hFf1Nk7*Uo3TBy&>ZWQSSU?-P$ z#4fut^l_~uZx@ybj{_q53b-p=Kc>?;#qf~EC2-9u?V)E}&4f~}+JR8$9-`S3AI@em3{9vj|wBnu6EpbhW zqGvUvAbz8{9j>{%Q#+h%duv5Lr)^Lsv7fy&Lp{zoIluQV<{HhRsu-R7PHRf4L{--! zTI7%8S@vr3Oo%`3g<(+Ds<6l(FCa*Yx~m`g<8HASs_B~QBk)!5-|$Xe(*|vY*K~R{ zo3uu)h%y@xI*W`SUaz_ z-DFK*Q6_b8jiT`=2^<+kup=QS=6{1-TNqv6k9|jFqv-gntBvtFz6>X+@yzAfjR3seYIR9h6znC zUdNCgsE`59Zd|f=qSCZa`xd?FJ9rH`A+`nat?#z!ow|w-2yHeg?o7q4(O1j*1(`mttI>>Ne7RAe8{r{@DGj|MJ$kBwVgso^U45A0T#YxYr@&m!#qtY*?5CL8H$9|g_4p2{p-B&oUlZrW^bq!w5b~J$5NJc!>lI{s+vJWLXK*if^j^$+j2hfAIs=leZ3;v#mV<#H98_k%M1_!c-} zTqu1{I;V3-a}!TUmQxM9#2H6$RbGR9TWoZv{Gf;& z@xP?ft?hWbsgPx{@QbrrZ4=ce1xQ4_SP$%`(~X>RD=;`rq>E(OEvqN{e(-w{R&FvC zAbY82L*BRnq*c#nm?cLSp-bM|uA51A>SmBm-RQZ{YtcWw7u%T|hO{qx&wEodSQn*d zzSr8)bgBZd&+;AQcf1)}1fq`O%Y1~&&aza=TDU$QL%AAVdt`Wc zR9tMt8R*cXP1lbOJ!*U8F$~^i@Yu>p@3W|qy!xFkvow2@aHSoh+7!7AuNTq04JhI4 z=2CO^{VQ80g8!QeHd65_)OYmzA+p5oB;~i@XA=z=e`&b#zGk|M@1-RL!7-HR4*z?=ilCmm<9Zg7E@#BwfO7 zc$h_$M_ON+D6(T(`7J>R&FW*DUST6nn&?7HjVK`<-RS)Yk$J^T15`#&XYK0fsrr(& zC6OAHAwa4lfFls7?;{78K@NYeL*=KA&+9&5TXxgv+SXl&HS!NTCWx7-wTE=$fvyg@ zWq-zllBy%(T%b7HtQ=$$(Ir!O)I$i{$>_@UamvbyD;0kiXGwfMp|c1T96APl>q;%e zK!T~K1?#UK;GK8X8LOCQN9ni^TGMj5l>zkL+mmMY_x31Tpgjbd*V>O8z_b~+q|%E% z2!!-p485tcSBN)x@pQF#Ijc2#KV%`8EQf6hT0D*bJ-mQ{;)NZQ{Tw3bfZ@$6v1Y+< z1MBt=cEwLdk85_B$7yO(8(cT&GsJZ0>2 z7>qJ7I9!vQt{u34OVn=phpq^~F|&;JPDj5oTs7(1FI-#m#BdP9pe*8Qku&KQ)k%rE z*a^65_s!q>kM@LbIZF-WOr!-&wWFn6M_Yq~`2n8#$ePQ{SbOCkR*9-zqbn%y`LHEF z7E0C2aHg1a3p;SivKg7YCFX!*3y*;^!2ZfAIT&-~s19>qG&tgTC z{qx%)QsZ5$i1zfH@KJnK^efxF}MmX^*!He$& zWHpDit?`GqTccqB_2uX@0>g<{5tE6Wc!;tfm_=k$MN;BDeWf%8miclxtpE07nD7=a zEi{`?x!sn53>%^m8OYX=_+KH*U;k4xStR92k);#H|Mc-Dl5{Hg&W~E;cwWV=bu2k{ z!BRSw-Xz?M12GtyYb-?WS8QBL$2M+~T3EHPOqgRFJEz9GY9771{pGhSHq zrfB;2=J{BtiI(&r{se|>+wjPltA>Wp99gw$ba>c$m#{pwbytP1v#GHBFolOdm7zzT z;J>EB$E{z(e@7ZRD)5#(6UF1K5#^zV@ITJhgMwtXiWr_#8+CJ?Uko4 zml6N)yoG+kxhCJz0M8W1!8Cp~Aa0D1B8%@LG|t~3b8qrh2x3k2nc_IB%9Xlrra11_ zXO+VtzE}s;SAi}oH3ACHmGc+`&6i$zYCRq^e&Ev`u;*OsRTFRAFM4peXMMHf$#&Hz zh#7oR)6o(-8S)7t08F&82Ot5Wd46Ys-J!5!y)fs1u zSRs48^3=Lr0iFKO7X6kVrtshWbEg?A4EC%P{{VcSS@(+Lv0Ks?d5f5TYWAftN2TDO zG1A+HMpq4=F?{A3BWJ7{99bh_h*l5LeQAt4lmg{{Em*ak3ujw%0c+glc;L7iz}Kkp z8H*&zglH;cEk&AB*vdxulIG+l0B3&&oz(1%Oylj8dAp5)2mx9^&2M16R7z!l zrOzD801JDPITb1l<@nS|p#>n6z3da%R8$3}%+iAU(}}{TKaD zS`UiR`Y^19^rBM`hxu(9gdWytS5!f?=)w*<3&9n~w(1fIEp^e-MSf(dhsVIVCq0F z@uEl(X_krf{^pXkvg-#zgMBD5{|+gEyG9-Ug!r!TAE!t|0fHTim`gq z(w=PNnuUttd8u`NNK3Mdq!@K*RlpfzmU#xt#*M`Z%U%cDeMEdwo@gMskla$`=zjxW zwapJ%biC*eu+Ix5>O}jtrQl$0;&>_L@ZO*lo3%I;lgOLk;ULDJz6ur>M<{j7TmKc4 z)-C&`fR2TrftzDqxp)qz^h?SP(Ed32?Oj`U%jEo&fyh%Alotbe6o)iWz5@Vjad=tv zvS~k})8B}M4pb22U-xfv!OUwJbPyJD=#t(gV+#%_sHF!OwiORCr0Rq1vId^Cjk^BwVFwquMg_`+ew!4!V# zI2jn3FLcC;*ZrOUif#6_GRIc5UoqU`M%uzucfe4+fmx= z#?wTyl2t@qq>d%C@}4d|6$%yj6sSEyZid`rlmA^O;3?1$G{Z1b0z!TZ4eifUMl=;4lSScR;HxSy!IOQ2+8-cVCtb&T;(^3-7m%2GIQ zcP7Dv87k}+^oBbzR=k8}@BI(_j@30zXPTT}aEjUkD8KkF6qtnb%Ygh&>>-29M^FbR zNu!d)o&o393p>16?d9+(LWHG_vc>EST@HD7KGVcGmoAWWpDvUi(mriwLBJ_Ydxaee z-j$rB&sm4>{cTKOnCTBMP1#w@YCSEIBeSIeSr~rd$sjkJ=V)Xc-Obu) zjNv>%Y?!iqGrN1lY}oWQa3mvsNl@_U-mlqwXVNX-at@f!DlKv<)QiL;q-csH1{TrId|wH?UER{uIr8zpA^LhM)caw=b( zFQ#tiVs9tqKMz1^BjCn*?$$erZYy{2&4Q9DrqXxcol&ZwQ=y>}nI`}8-O&1!q(Y9D zcd_m_6?*sG2{~)kYWX7W$+=&LeMo(`3PRVkTR2HTJ5aCTwC5IyehCorpkbDOD|!MQsq(?Er-;Id>&r0}?txfvw?H#=N%9AC2fr_wOqq4w zwRNxV5q;<$(1aEAd2W&8h0y^2Zf+e7J?9>qMjB2&m)C?xPY|<}NL1!CE+R1e`#ovm z=!)0f!?tD~2oHh-ImeB;g6YV;nZ(ZgZ!cX6?`p5zb7skR z@DcaI)$~k>j3}oS@Q)?6@c05gqnJzz z%*g(Rn$0I~+g=ZRT>o0hQS?`hz~^968rk|y!wdTt;)P}qncUnD1cY-@RU5Z9`r538 zlU>nM=SLc7u6^t`nZl{$)k7e0L4f|q!s}1F#%uKu9hIB-p@3k#SXlwQRPYXkmz-Xk z@LD}Y@Bb#2ffQQeJAci$u;(a8jWjW&z-TUiNVU6V)d&_ylHOcG#W@Xcj~t@bfQ6wb({116=nk_ z_4qF3-MZkf)z&+bQa?(G?KRw@!*eIHN^iZqvDOq^nk_N$+PSE2(M zIlshVJt)xM%NGqaL;dNuu_}%Z$~}Tnwr@Az_@A?pohnz|7Jk&f&Gz=a_M3w}A3g z?-tPlOW6s^P_ojU^tZ-dja7g!)$EYglYGutnqAu1)07d5-KHnoXs)t$+SQhyd~+?S zls)R;!%g6}dhj=IG8moGge48;=9elFnGGg1dl1v5$~OYEK+I}n<$N8*J7BX=qOc!& zC8ZHU9IKLAC1{|zo#o%b5H+X1<~xvEHwfk{QrX_Mbk=ua34B~~Q)N39_dMuNqe1P!_dp8h@0CIA3rH~J6?`B1E-s$3mUM=Z?$8An%a(ar*KOd4?2y?2gXv{v0A|$alg&eA`7!A;u~%8unKH8 zJCsmDA)?jzgU_5o-%p4!5uaF;LG5OA$*e`fY;H)3=%S zsn-gknqMx{oc==1&2bpf{+h^c;_Af0r`E-{wNe@n8R zio3&u%(E83Na%q>&2l`~ zOd=W`{85TC)4=X{FhxmUYFVV*|06@npZ)~h#*Vna4xm9;enqnS3oQ*P4bgO!`j0Yn zq8@Oj2cHV*IkEia?Pj&V#B(2N z*Q(C7j@GF)5_Y^ntiQy@5-oFx{e{LP=jrwO(EZViecy-(E=-gJp^$Bln~AxbRuIZy!!4raM-}xm1&SCBdp?$uuHM=3k!Il=tIZh)1fVW}cHT zPBItD!(?P{Icxj&af68Z9s$#)yn;H{zVD|t7EO*qf72F)rb1TxAe9nV+cw`+)BPFR=B+t! z%P$m$fx*ZNSBj?W^q<=_Sg53R>{^FFTugIv5F9{l+iTrgqC#8<(sviaN*u{Q%4n@u z6T1U2DcYAC`;?UHfS2X6l_r4H-}Q6QNRQtpw{|{a9iILR*!ON1zzJ{Y+}T`XUb5iG z!!o)v4L2KdPW~_OX~GY>#^XP?)<-EiksCWz?HJgw6+PkIppPN8j=AqGc*LfY|0l71JCH=2;r$8&xG;=<4rxl`WC%~c*sx&`4p8)pj%&Dl`ufP($B zw>eX*DnEY^Bl8!{*}R}*J@21y$>VjMhpB&JlaSmrs`iBq{|%L3^H!oVH|OSirCzt2 zJI;1AD4e18bLi!)%|?O#(SK!(B_^@M%)eavmqVo{JB%uH)qiK`#Hbp^E7`m^Ch+viE zZ1qcUMS!+k{lT`%54NdVuScKf)uoUV5G!rvrfLvR+jS)Q3eVe7ba%C8tgDA^jH`T0 zvY7k)Cso3F*<;4E5a64%%7}+!^2ji)Tf3BwowMwAu;icMS6?_4t=!<3y-f(wX+1=_ z;xx&FW3C87KX?p=miKbgbV_sXU@m{JWI31Av;>68S}e8AEX|c~dCb0!ph*70df?Bl zJkN`_@B;}O%5Dktmqvg=5Xt$N*)a&wA#EGB7F?hk&MVplG)&U1^1 z)3<)M;CV%_D82vsFVXuJzFnXO3K8WG@K=GcQh|Q`hy#1S9xI-M&a|L^_Og*Rg&mOU}GBMuja08SVy-!Zu@65wp|R8ndDS0K~2?TTGjo{uikmq8^uTL$9f=3M8vhH`{i`)i||7+pxulLp_H zoBN8ucFuJpPan5fLc)y3imcWi!ROh(2A1i$l5_!M(LaBr44d*RO+@+)d|2SCi|Oi# zYu)NK9R0|eg&Wo#-cfK3W&iYXEMg19uz7L~zT(%`{&uW&9unf|dG_f~MZw|? z51Qs2Y*)Fr|4&AT!t#TT^Y^a(LB$01Q$>8DMbgmAUzhfOTq9MdB5V zM5Q+>w*R6Z`oUC{Hh%gEtV%&O;3xcPGp`~}6c?-Y_>vHN*QJsKukoPB{oleV1eCbB z^%|w3FHbHUOG~ML?zPelV5Kvh+`)T^h=`oY`V`S!zxn@|d-L!(isOH{Rx9o7*p`tc zB#X-tw@rxf1%ZSR`NSqZWXsrqA<}4fv>LRRXJ=)Z#6%Dd=fp_}m|#HRiXkDGBVY*F z;xL$SIpH=0WWd~q2?5OgKA-BE-PzTwG4J=u^ZfLOdb_H+y1J_R?&;>-adt)KIqlhw z{6r^}$)$Xj^XN!8jU5SxRw9Fe{ZttbcA@D#20m4Jf(_9ngmZQs2?t$hhQgNwGz!!& zwQ`3Q(zY3Kw*;)D12INlAJEX4xIB;M!xxCPXFEDfn?69+{W2Ch(1WNSIj~IS{s+(F zNa}M%|1lP4B5ZFZEmsgFuD-{>?y7(gx!E=|CN2hG-LvE_D4;+IE1AtunTn+2*$f5M zZ=C5&Q@KRa7|T|u$Z4jXB6W0zQ!FG+AvnoGd9qN+nNwp$K*Ny??}e6ANAxXKMdyQt zQ{nqL0w^@Mt}|+}_kd#2(;IMXC^Vg>2g@|78)#JJX9K6xSnukqS0H6z*aD;37}ewZ z5>m$qWMc=0rzUs`HephD0?LfiTG3W4m5NTXV>k|TgMj$SNbY`b6bLtZ=#Os_06w0W zX4@IM*#k)PP>I$BxOG(8N~dX`GK~*QEm9Z!^RjqT?pa= z?3V)vD3?24=i|jCe5trGh8}rJYDW3a&F?Y<&*OWdskE6?uk*I2QbOXrE)Yz-_v|6w zk<53Gh_|xZ3Sqbfwh+>hyYNj3(rwu3A`06`nEA{amV5X8r6lfsG$@Aa_PH{+uAhH+ zD*p^?N76m|qQrGS)_|by)!H3V_n--clP^uxa%wsv%g2MdZfHP+^XL%rd7?QHJ+S|G z)I2Gu4e}n(5C|pA4SdFpYmgeM%$P@vS3?(Z;9~3qVELN`&&O*%-zx#ptIxT&@Cy=nu*bS73hA5Hcr(c1mJQM9z=UBXHjoDqk}yVeDL8ew`bF7)1I8lCZj}C$}vh-pM!@vLS9DnG5DyDBmE|^o*Xg- zk?*RQZ6v!I4&n32M@(!e@h-o+I39j=2#SX^)G!o99n>d!8sV>-^`xO1?eB`h<*uVi zO2wn(E_ikFWzbFVqZW@V973Vbs46@v9KbkB%IP^S0gbvtEG|(AShv)HVG@ zNmqblcc|-^9hL(Zt32^l!bn9;^wW3q@2Bp&lT{Ebq{zYVxY^-M=`;--M|Ih(s?7Tx z?Su{XEBP$Ghe`h2Oq3t3;j^t&AIUm=)d0^E^C!3S30o_9{D0IDrz{?S3MRNmOr%4v z4^i);LT#_Bz)kh)xRP8|-&b_W)$X7;+&d%aEh}Wwi|g#i9pQeoa#+^sII_`*M9ef+ zM`I?PJ6tP%Go~u{t;k^VvV5uIDdL$Lc9$rCIa~hQl)(w-4A)qTe4TA>+qqpvbhhkD z_Y}0rg?CuByQ9}03d1=G#yupnEE!Q>BIca~`}VFwzH&6Gn}2Hpt15YT@_>DZNIKit zS{R*TL^{n`R?=)XqTg+pVPqyvYZ0*#nR9Z&0 z3Fo$)&@yS^v^=1B%B)3tFZ$=i@Cc( z-spImmWx7RG(8ucK6?@!n~RCcXhsf_(;3M}`!kG;QW_nXBT`zUALIbg6V38OTc%B* z*`D~ciQ{NaL3}*TRqjD{6vjY>!aA$BLrnWM5B%BW+S|Q76$` z=BZb*DBj4=59V*GOXC{8jAJGpex{?ao--{GUiS;s7g17p`*f`4jauyeqNSp+&8zSc zz)a#9o2XO+SFE%VZCET9eCDOY^ZtWKBe7IbV*YL*Ve%}T`~9kX9gytY77L#l2mV=u zmPj#oSCb;K6vAW*j=Vt8aZNOo;qRJU3Mzv%rSeMK?z;tajEvqAY?Lar_^GMH!p{m zD4-y3F8sFRU=BEdGC!4aGN8}Pl$_ks;s=H{eBn51?}KPJGA6PZlra#KTUvbK$YgL~ zk%F`FM@>sA&3ZM#Zl$F1TovwlrGYioVkQR52fa^CB~4#sdkm(;-dx@hk|_r#)LeTr z1sDt}VImdHyH_lNHTJyTvl-K#p0Xo@YP6Gbj5u5gcJkU4FUwj+e1>VHXIb4UJ1^eI zWUP!c58upxy=t%|R|jG$wa39TOHDJq$iO+BuUWa`R>sLQM#b{-jVz1A&B6A~I7{K_ z?4w@$CX60mxYGjp7MOOTSX&MZ=L__uhErL|0)3{9Y{s0^;tS?a+KMq)9vsVF;57@N z<9wm&z4~I>V^c<4$Qzc^x?sNbMpH`E@huEuxZ$L*ilCXKD(>0qb4?*Ne`jyB?5)(3 z;9KcDEfe(ycyqNL&hNHJv?8DgT_9Q_`lSH51)`M_Q!Njz3S7irCUcWReS*w4HMAyx zy-BLiwKBBUg`n1m1Qn+qBUY-TlO@R1_g0NNo$Py^~U13wd>s_xt%P;Xgt0JcytkkX1WQ6WyBtSk$^ zjgeEns?#dj$H`T4>MK(!EUMkKrc7DLQ>$rhS=Bx;skc(nrm`grR5gm8775&%M9-Do zLXgs}LNp)%Cs%jqH4%a<4Q=uL( zK56f-pG&MEud{pym{wyXwL|4<1O1+zC+BEBiMr5ukB^)Jnj z6O4E~6>(3?aZl5#Kxz&LrzZ8*M13-zN_Az^?!yAfgd&uO1(K}O(fQW9HM1;3V;jdp z$7s!4aW=uEBRv$h88?lL8KouZEywJ9P6 z0!^pTM6e1bL}?*XFi`aIBy!!-#D_2@$kyf1eq&1R|D{rf^M-l@eC9VP| zF$}V*(Yq^vnT*o95ekybCSnm6N-_Q>Xa4>|yux6<0i-44Vrw+u-mnL?XL>l&57 zjPO{$U*G_>IEIsSS{n# zlL_kCtnxwuu~c^WIJNk$)>nFqD0<838~FN>do~(5N26+rsv!u>`}I2iq`5SaQ+5K2 zI(#bBfV-aIUa;)(2yv%+fJ4)uUoAv9J&I8tCSny4^E zmZBpS*lQs=TEUcM+|8Imlh9N}lQRX)Pym>KX7O*#$lT^A+8$eI*q&M0vwzH=N&nd& z(IffK%0?|7UvN#=+M;#sz4F5??s;Po47yBj58!Rpa)Wy-8aL(3%zVFBz+uxNTAsJ6 z9MpeUekd19S<#r8bO&?jdef=6`*u-1ejlH7thjVAN{o8!QBZw?vu{wXYf{C;zA6Tp z&8TbO1P_|Ws=0l_=#l#&#CFL9##3UnWCGPDN==G583S&H8l9v$*XBQSo1Rp$6BH_$ z$fT`g5(h6&RuDUzTtaO;bLHRMkEYqM^-(K>y%FlU^II5>#HM3PzAEs&M#M7NXetKz zX zS5`DE6DK_2n|@QoY{s;UT2VWjImi-5eNx&o zpWYXR$YoSCMdcnbhvWrkj}R$d5iE&Tt$)LEuZ+md9jGvKS^cONW>m$CA$fU6EgpaP zxKjr0K-sBOejywm24U4RFB)(5O;qP8@ZS4zhiTNmyl`arX~0JrUz2ZBUi(N%bk!Ab z!n6^k`rpjK(0tTlxscD@sa;Vt{G600krC`!MH{h`v^Rn{(SB7Yhzh4oeJ+QLo{g~6sXO}tu=P<2UFrQ3IX64fUVys`KKt0bn79x4u zCX7s%yOZl3k1REkIKVA?yk3kIOQviyxBcry*=D5MFA4WWJoWKXM@>BEk5lf0P&{ep zYFv048?qCrRt=I=`Szz-V7UXI>SeRYj!ilSMAWQ`_MIpJZEOJ{=j2nLx z&&|}#>x?2EXJB$RexjG;<06ueK{9c0{kI%5KhNTZ1U=A9$4ulM1=m*On}Aspv_U7P z%6(dZug}@j2p}=hYZGAMR<{YruV7*W#g)@L(7~6GsuRKTjI5F8M>mD()=u!NFlbnF z6{e^aM}OR~c*5a1(|fkvXYw=X`3d8_4dn$}E941!3{Up(zC*uDtPVN+>sknkpSv_^+W98kv#KvAOt^K)yLYBD z>qJva)w)F<+-Vw7)5eE1j#-TBNTr-oIF}uE<_5KH8FLA5LNUU-MC4eJu8cwz?esFn zX9pO=q!I}d*iS6xlQEYZJ7rM5SP8*GO3r04ub-UlXm&hX8<^DQj~MupVEcClR#kS& z2voS*e&$+UAcF>#i>X}C5lFxqn@ED{f*_>OKbB|4c5uei996;*2WE*YdgtdL-(*0g6C?PfgVUhv~JZF{z3XZg2hJ946NIh6JrmebQ`lxR|NUhZxZ ziDSFVQ?3iTTQvo)Ox0M8qxu3LrWyrwQ^I-OjUCr#-F0|&NcKExP;)GXVE1*j8&AL* zw&Tv&;H$tNsqpNI?ixI-jak=>-%rPokA01rRRsP5uc8z3arh6lsW{S_Hg*1(Cv>h` zP`dvwU?rA?@@eH6<|G6d&j~Bp&1CBO9QPI%oVw%%NY7jd*^~5S$c|)vC_z>8z6*_j7uEOTx4H?# zFKhbiB#mnOf2UT1(HY>18@@QhPXwYSjcVI2P~;#*k^>i?;#T2;hj2ap86LlN4>7O4 z2i7gMrZR5A1g|AF7ahnvJ0N|Ym2}25@F$txjt%EVioRrbsYV^`T{K~5Q}?<}T{LO_ zbnpH(o)e|wPj$V675Ira?TJU@Lj{=E)kBF69^HEGZ-04Rg0E-8Dev6h{MBZau*53PfVu{5?E!MI`Rn%>C`p4++Uon3@(T#QueE zA50j}uR>7&3BKrYM-U#fpxzuBYp?Pm$r1c6%|bU}ZbH_cFw%6+ahOTUU;edX5%iWr zeX(iBXrIP!%RM{-1oKq-d~#gdnK2^{-B}eP>TM~;Lqd^uJrHr&o26e5){0=Qn@>SM4q{(Bg(X%<0Q&Z=&i07^4pT#mJ zl0RiFf5QKXwOGUgYbnSsS<7EeZ4!J`{={0U@jZrn+FtbqKmMe~xc1`F_Az`x)1Zpy z+DUOb)TP~=XXam@o`y7TeOeLtoTE7tZ3_HkGNjGbs3P|JGFJYSaf&GZCstvh3ap|a zyJVFj0k8BHK{Q?1#`8G+7{YrtU!`{6gkRSNu_>rD9vcLw`q{uYuT@Cv{uLO+m;8TX z9TvC1Ituc2tm7-~;j9PwlbXX{-^f?>$I$INDoWQM>3h*X9z%F(v!pe>Ob;zc_La7* zo(AJd|Fk0TJ&vZjO}itWT1uM&j{=adPo;C}U_$v*mMl&DKd~c=T3|;7*(E!cmi0?- z!NiL0Adwe+nhnc7hW@=SRN9p8-oWx>X#HsPkM5tem~Lx0i0`4Elq6tmDLa;={h!#71ud|lg6xtFONx4dw^(97*Wfa9JBGSnswip5-0Vfn_~AdiEE*bW#B<^IL z$lt-d$A2_Vj2}ZXGbN(>81eaglGPKn`JcAUZmLqh`F`N~as0in5m}P8Y_(@DYin|3 z6)R|zTV9KFnGTIb8$k6|Mm^s}6J-f68;O{i3>~hbX#=O4=}48?Qp0li{-LIP97myO zhKfh1`Owet`ozJYTq4D(LP_|qzQeLJ4$&f8b)p8;530|Y z$!HIaR$Q?I*h6FUktKBG-Yh)Gme33p;bpE9c!dztLXW(iAa?)6$X3$%|6^m^e@OrD z*_cZ+*u-P!=1t7Mb0+2l$HD;~ZQ*_c zxo9D7IVRQJ^l%yVy)uny()W~6BORM+h$NziMN)~h6*n7Vsd0_tj%=KOEB<3fyG7pQ z6@EwE7ormRj6Q^)Rv5#Y znA_2T6b_M@(?ERFSEogeo`fZ`a#9QMa7iHGW>A7IC(7gF(IP__G=z$PXu(U1t zAsg3AzVoW`mcZ&VA_`O|iJmHhac_DdOw}0*JXMCxfLC4!Q)Qfw*srIUQ z8twOD_^V}_7B>^rCX$@{`XGt^#S$I=qAStA%3pL~jW4LkU6j zoFZy?IZVXa)rguJBm~h5il`+=)FjAR5`ySOMRX2`D5TBTs86sTOBh&Pd+2e2w0EIjoejPN@4O1n(V6Dc{%zqnGZ7g6?GSduaWf$^OqzHtY&W2X`;Y|4~6LLZDFcj zB9V35!ZgCBfV%UOhWeIbX0jV+<5kn@Pck``iZedokDr-z7+qEpeI(<9CGq2qV1n|J z1QW(HK}AV|BPKFI$e-YNOGMO4#2i|h0%sG^%?nT~g! zC7;TjkVrz66v_vBSgFHlxW;|rI{*!s!6tOEMtjB_!Hob4#rpeFG(k1tWN>xoJoYv#m22NWrWr^UFGmmx~ z{51>GW2fL7NT%v9(dL0{wvp*#qHp-K!hR#VfJIi+>14tZ?UPH$4Bx&lv@?b+I0>_C z{#>RjQ3mjvmS{JlLRP8}pqrVDS~fH5Ezx{~YEm>RL?w&>B6*z#1?Vl|A9=EtPOHOV zrIct6K`QbO&=B9g2}XcRW=IeAX6EyRY5M`Vh^i@^pJd^|8mc?&pJmh+Rqu`VZ`_qh z6{oAfe_X#Z)l55`7^Np=vJ_>&+W`z1hFkOw{}B4jQX@Uzz&(C}Kn>52=!OqNRAZ>L zHSH3*ye#Sj8wzr6Ev8{dI&;!aG?mnW)j@Y~|6NeOiN3sp=(|7pFhrwXafdLBqe_d8 z0g?Gim?}?IzaM)g>}FvlGp3Cz&stKpLrs#yq7FAF3~>V0O7eps`kt?bsoEeq2u!;W zX_v^2uZF2^0OLuE4hHsP02=NqL%yQ{XnGBUBq?0R>Tsr}mL{o9GTRvQ%XBOJ%5hF9HR220HbhN3~3Mq_^tQDR9CgBj4BiH6g|kvE`C2um5EME zqK~`}8PlM#=ozLM{olMhvTO|^(<%uIExnCpyWqcJs!Y-=%;CTP4O958Q#6_-DNdFU z75LRa?Y~aZ=->~+RJG+4jZVUkS5MLCS08xtb@(f@K1uh5goQbOQUVw9FicpG_<~m*QXht?lHcUu2hP7_;4J_e)Ek5?5BLZa61nQ5FxB-# zX9+rw(KS2rvS*ehW}9}*q&CU_!)`x0t_ec=={uB7uVFS)?tH|77}$d#XkY2=NP(<>5IcG2UE{m$n|F1E5$ z4!<6?REhOKj|vNI^(E_Q&F4x-Uow}E5lfK74*f#a0)@+b5k|p!dA@u#BB#UpKSSOszOOY1wA&B87k5BKf z2t9)3Kb5#~^dbC1%`nE`5xSI}6Jw}|m3@+6j+;tK_cp`9o?bP{Xt!=$;=VdNfMS5(I#x_3}Hz#cy=gdqj;nTH@~cg zW?0G!&|YPEwc=FeVTO}RSP`mw_31Kd*rs&buuHm?ltB-h#?goH(|}lZN!ezO;Zd?i z>1wH)=&-{c3DKuPovOQyIMHFZ@2H?jvAiYAT>Qp>RwD5wh z6?8PBNpq=0Qx!Umz?d>^Mk%n6cijpzZb4y@--PkhCfP(JEX?lQz#oQ$=yGJh#Xgt6 z*?poyFU1ih=oMCHNm$78R{<0u9C9`Js{qRI-H=W+#A_NJCb6V5lbB%H*hAEVAN=ch zR5!vtLx6CP6TFEi9B9vWSShO0wvxED5p)=+ zX(y`uH&*=lTEIrWGHUWN$Ha)eo%n65nuro=FeBSE@Qk3)g3oZ%w&_RwQckcq+YT!p z&lTYMq$-H(i0wotgF!N+Q(fCXxV^W~58ezw9{@=@6@Vi&ohp&dsmR9C;C+KLLs`{Y zMZe@UbjhF`pDaU`k7_zq<1@ts(UZK*QybQ41l~%dz>{U$@WsOjWEgm|3|V5h^%Qs5 zCx>;aqX)}q*y;1f(i;q;x|I*I^jkQ3OBnLi(L)UTh++HbXx^7w8Z|wn`i3{kYA>=h zIv$Ad<(5W^QcBpQglM|Al-2&t(&%Ck>GxS0^-Ah(Wwl!^jkF;;RlRO$GXKVC=;69QNr5#C(IxwTir$`7?y+Wk~^eYL0+C!mk6VOu< z0=1_?RXB>_{t^OpqC(9TP(nhW)|4yUMFP83Le$Oa3bjo@!K~s8)UgV6n1E(W2-FOP zS|*?iB?M}wLTwb#OA-RLoM@=3P*JnP$i|(?*$y5$qDu5O2rgkIVP#dpbLc7;YxGP> zB{OCu>sZ|;zvvC>4D)!|LLavoQWYcVWK`J#Xm5h-dO#2hKLQRTx<2oDCgU$YgLa-o}nr_&n2e-eZ zh6+VGn`}fOxLZc@XExnR8gVus>A?ms4dDelcoTXR*(|5J*Pkz=fyHVxOb_qMV9rfi zExZw%k$vv9@r;Lv>4DD5E|ZIyLN4&ge&}0{>;alppBKN*TN< zjUmk=A*w;Q9=Lr+1r6^`(>@r;49A#d6viyWdCg#d{@EQ*(*Zy$zKx>~;kRkWH1gMM zfj~`ysAn^}NMxHwAD`rt4tav%7^(bA-4Ei@@^RfUjd799B*MvE$d)ygbTz3i;+g&M zG@TKEM8%1-NwX)NO~ykHmLjO1@ zRKw?-_^0GLx{yyX7fwp~r2JEo;tnViUsO%$G_2&bIG@=_r-@b||8Am>pUT+=YA!{p z28uABk%n!JXwLNxeMgOL1FJD~4`8kr8}ev~YKQ7n-DNH#iouT-57lWzx51WU0F8j{ zVmuD5G|7T#uN$gUC0ak~G&hH6;V_-TbJ7|;{HDs|eF>3MXKf~}(UxI4Rh^U8Xn3Vg zRV&jPO{&BU?&`EgOW#tdR!N9dU8I9y)5B#PO)(P(X~AR-et^ldV4`nKYt$>0JyqL~ z%WyD%FRjt-Z!6|oBn0#2wb~MmCJooAcDE%OIry>H5{;f6u2apAs^IE! zuFV5lY7$l6`o7}rQR$`tbUJA_SErk}a-NI0QmR0n*-fVrM#Ra&MHLZ^fMwz1o4Be_ zq?NQ|jj|G_D zq#ALjZu|h7YrsZtT%u8*kUkNpox4P%=W2ASU9?1_Z|{zbPFaC3Iy<5N$1k zi!L6NI%?U@GHHG3LsgW2eWXH9@;5p8&2?@Iu)PdTK*LC#>KZn)i~gq!F1mcAjy0

    6}zg=0xMxs0^g$&r-S|E`i5&OaQ>RK}X{yVl6ym=@9M26<8YA4d5XHj4 z5_}SP>|U58LZ#?(&*U!ma=_LC#+}tHt0P61vdbK>w@!7<|16_Q^%B-~OuuMvD3BJ{dHkq~3HlH}v4 zU&w}i;mQ=q36DN_Ok;D_p$5UeDPdqWR%H1g&Pn(}dK)C~Avy_Fq5c~>RmQ2~M0%~sO$?u{7GVIz{r)uz}i;L#Js7Jk5gaFYe75qMFBDR z%Ft?VxDMSCeWnL!4Sm4Nh6AG6rHA1qh5S;79wuw(bviR!8zFK+e=Z7pmV#2Q%9ZoVTSsBco#_JP9tHc%J&N7_nKpQIU9rsVVJ_a4^oTL-%Oyoc?G zwcK$OxQC03J+-K8J&iv|r^*aHz=}2ziPJw=$Eyy~Rk0qG%$|`Df5NU5JA0+iZS?cJ)uGIg`Nj;W4k#UH?5v4r;R1x;j zr}+1^2g6rr3m2h&Gzw>(X3~p{`~l+ZNc2)5v?WAqM(e~Qh0{c|%Ope@p9t)Z7J!r% z4ilk|k`NTnDJ?7?BU)HHMzk>M5NN?|1`4#m&Bi$D7dFExTwS>B0HzL8;--5xl>Yy%^Y5cug5a*vLBH4hn&biv#6=#LnEA<$wSEH5>VrCwoui-h7zLR35h$!0qF zx|4pPzD;ulLxBU;QKDwdaQ<>N8GI-q*w3%syhNi9Lrn3iGC94$-kNSlO-CxFGM5)gZT8?I$NWvMxAO$*&0o01h7=G`SO_o zN&T)qsMx;?pxoV!Zn=NQ1(bsSjyrx;@@p7zO`}eARgag6#V+7m*C!pOtN3{8V}Ns* zTiAf)7?u#CUKrrg{^>9&?G~m+X?GW@y(9#6Ux15SIaa6IF}6lcV*&LRmuIwN8gsr# zLsTiB8LGm7_+o_U<-n<1LX;WnI^)Y+sN2TsR2ijh0nCAij?)R_p%yd~9|Z1wy@GxT zP;@+f$^?&%(h_ypIGXY#OE40)yuN2B!9G8A&s1f51!36p~)#B}d$ zCcJwB_N|OKoy|->n1DhUwnm>w{y|BCLj1g}l*sIRZ9;lrIW#*MVB)De5m%@P8!x=dN} zZGrt)Lf~#FV@qCsxK6vnlH`_>+sSd%B;`p-7+5`wh}?D(MAR#&Cnc0Qj^_wA4Jxv;M8ju9ea93yfbJy2y3DFaW>+0M!B6}U7d(U0x&vzFxr(R*U=Wc_UVrbWX zgfK;9O(D~v%!@B`k|`1DMZg1IgmrF)mU*CA@Y39}hdz)sKdX@mN-WU8VkDxaMM0ab73`w#|#BO`dIOY&stERv9&j;^~Q9 zSsb=fR3W?HbIhe!EX1`v^6^v9N+}m}dA>cuH7a&n)OOJKCBH=y0<(|W8aZ1)S4ap{ zgF-zjptmIiYJY{=qe^A+Z3%%oRG~}({ZvAr#wyhH0(w|Npbl54j|DVRqzCG3*(sVP zu!w}fog=vO1a_T-Sc^Y^XsDHHY%$F)c%AZ-9B7JqD~J6s;L=S?Mj22x#7bc!qNOus zJMLyh|2Ac9wRd2p8qM6kj7u_5Oft<@Jk(AL>A|&wDCSNlJ=i-4Y}?0UdD@IPW>nE^ z_Mw@R@@#bX6%&}Yy{OYnMoiL!^vYoA=XP{tOl<0GFHSklwx`7Lg=({vM(UMb0&4S| ze$6JWNGfU`h8L!(?vi)Ph^m!SH0+XBbGiyImqu(_DT}FnbZp#Huz+N$iA+J5%kJtL zm94w!nkKq1fIZfCrRBPiR|9B72K{(I9pS@Cw^iJwuQ?J!ma(*&pR|4lu^zgFBNLCp zB;ho=iV0(gwU47~8FwAW#?uWPd!J(yXdTB6`i@Q`TScrhC9LF|e=lcQPW%q~l~N^} znN$aIs9%zH)E1U7Lv()tXK#M_9o699&s^OS-p}Hqgq!%+@4ky-jHQQIxMvXSp@%v0 zjiZ4&jhPlOa4Jzej{B_~d@2OH=rY>j~J6^^+|5S-Xa((>!d&i(Kj$u1=B?GPnAZ{h- zFB~2DeVxMhuh8f-$+28=M1yieS?$&p8l}HKSng@boX_=1ijPJX%9_SO2l(6--`Ar3@R;B4-0CO2WJd5sjW$>SNXN>p+b+ZujKOtvnRVbt>hzi zRGCcEZ}{imCu0~(zvaj~lXa?VdV*Iue#ek~r|4AI3rK{1A4HWqZ3-{tT+ET{5aF8B z$K(Sb->k^5W{RVxVj}Ql8C6E;8ixD?kY)w>3qx+4iqhe)(CKp}%y~nblyJkIg(b}p z{VfQe-!@gJ5lIUCjm4qLWQK0xpA)C)RJRhjT68NzVt{N0Btq+0j{a#}wDlZ$9}zCv zJxqSkbQI(%F31B+@e@Fr733j?Yy@Pbf;`HQ9n;;S4J~M?P_$__4%A`9^ZA#-!RQt< z-oe=3Kp_%C7;NAp<(FUHQ^fiB1=D96J&Y_bOqa>pb}D8#=4?xizbA)pl^7!zkQkAOnRfU)7L1o0(u#5~jHYSD{`o@OEJf;WJ2Z07FeHZa&03ZT(G9c}hEk9Awp(|NHc&%w%!JA&FI*?oJv$j~@I+=<8BeLNa!#0mbs|fh%KOC(o$9uuVXitJE zupr&^G>-mL7a-r8iIyf;AS*LrJPn8#dyMiI=d{jeLzJGW#5pbTVg-#j&Mn_*IdOi* z-T$e_DS3X*u}h9abBgRO`Z2QCe*l3707=jI=b@9${vsm}tP0Y!;fqVrZ$3qjA2O zjvEm(VJ4j^orcZnJbe-pPHLGlb0#D54I$ucO4Z(cnHTB!blSA17#a1=V_vRVsihux zo_>Ml#LXOiUahl@o*XpSL@DmfiUsQJy*Hmj+)A2;?KZvDZqw2@#c<46%C@*o>6iKa zna^SVE{#FslnAEwr>Y4N950YZbzrX4<%>#@9vtnDLi^R^i<*OFhS5nshO^K-#(gmf zWR>tmL5i{dC>-N!@I}ogJ=o@tfiC*|QJDFy@kb>gyDw@Eq?qAb;5m@J*&l@yh`yL9 zqz9k&wN*1jpONy@QZuyP?2kgJPVh&;_-+0ui}YZRKMJMl^+&-kR{Enz57zr)T2QP3 ze^eJzrTt3W0+(srKA4pM^EE8NR5K;1);vW_3~; zYia%{C~$@^swHAuX$SZL-%36y8aJSm8NR+VsWSy+vp+IvIH|a0BwJ@#rk#q#m!&(A z(Fy+4w$X0EW^EBs1&{jN- z^7s4WvoR~F6tt-XL8pZVVY4rGijg$%Ic)2s_LPn1v<$fFKnYq~new#~=xoHuz;PzU z+YPb$c7M`Nqbp&M9t`_-8&f*jd8Dh2vW9@Nhnbp{7F&?+})rD$Cf~+ z9d_y?{n6Q^X?3J*xZMnYie+irN};J}E`hhLc$~91!IxmFnK5l%olKX&cN<9~X4r6? z9)A+6+sw31>dM+^msa@Gq+&MAu+kr!O~+HqxN@%YC72dlmUdw9!j_`XpE%xbWSH5S z68L2agH^KDAMbQpsWcO;^CdXeOxZDI^-cZ+aU+(BTgtSX{Yg?zCui}rKiW2uPA4=r zPy%n7XiQ%7$7WA8Y{P-cwwEACo@&I6)?-u2D5!Rnpt2L$u1*k;?*M8BYdKsB7t5lG zSCv9r9aii7RHv1UEki-;OVMSMDKu&gCGd{TQjGRTo9(u_6!p&^ZP`Z5NFw_tUxJy5 zv}s#LymgXoh|_fX6DB)N+j4ljD_w#j!+oihN*eLjW}`E1bVId0yF_g}oyy~SeaVkA zx(#WZSNIbAz_1*)%_Y$2ph*v& z;ESGZbQ-4`Ntn2^1VNXP;SYe)CGc@$nW4suJtZiTQPni}mcm<+PQ&CHzoG<*9qBYt zij^hs8N)Ubxu$QGKb48^)U2p&fz#R&G^S%(t+S0~+!U`XL6nS|tv|53jIJy+*I$Cl zPNBPKoszXPRyT$mn|4lE*b#2_C$`v&pY}(l*!^ECflQ(UV>NI0r?62$cKGA6aYy+H z`OY#Qu)IkprH+PowEkzFWa zlRqw-=|nwi^T#f;j4m@7Yi-UNk(eIDV7%}+DrV`kMk>u2yeeumkr?Ip%XX*yu zS$(q+Pb{-d{#8(%7f{Nis&TL4 zWR)-7eDhR;KN4N%kH%^rdTC#5i;*yFbn3W2q69_OHZq+K&kmmUC+Re7H8$B^3g4}q zb%#IRibhohBj44T7Auy-(GrV`87@JS>@?y~c$Ggs=fy{sz}rS^ODd5zIg_RmM9Wf% zb~HLO{PEdj)E(tD`%^57ryQ$wjuGSe+6g6yY|DVn+I-OqjF=Hm;j`e*QuuZw$?ayk z1cB8$3-zd{Bzl3eM{h}jg%;0ASCk;=;^M6=flXMLcdRObO~$eqR`&U$&3HD3inqoe z-D#*n@VZiH?&JNDR=cSdpf;7jcc4qd0@CIZ1a@cEfe$|Ii$5McfSPj-_!2B+>9+gg z78%J%CtQzwmjM?U*m7%~V)3Lh>`QZ^d78yzih6%ERMX&#I>|^H?Z#<_-P*DwYuNCe zvA%@Ob}EeiKZGE z*rTn>Z|!!fnYPV{q2_#@{v?(WvBf66z7*4X9E=b#mFf2-@RsCA-zmk6Wob3wo#Bg~ zIklyAvXwOKWvz45rfoPWWY%1gc7Z*J_ym9AsEJjbv|7h#^QAd1WhFgYUg=9TD;2XM zM!a>d9X0LNX+7Alwo>Rbj`SU0&PgRB=o2F7zow+3W-H&diiwMF&pg-ZH0{<&@pPxr zZaO?XczP#GvpDqp&0!*NVI+1j!!=@>m& zV%aI#qE5>(Th*xmJ$R%)t!<`J8=}w)YF5&KBec#oY%F%I@J%!?i<{A`RF16Amu$Wf zg_DsUT;q>7V`^n)W)g&|maO$9Z84J$&U>~lzz|q1WWVN5nd)#_r=}d$MvV1sd0i&0 z&DkVA8%I%agw>b$c&wV4(binugNyl6F2ou-c(t~eaWkUIv%{CP&@@%PE${SHJUT_~ z`7Xnrm2cbIk%~vL-P-BPg0V0_x-=S7Cc3Y6u~;_!7=R5$m(Wi%kCDALdD%1IoRFvvk8pT=<0 zzrEN!jlpMV_guY;1d~M zF7SlWGc&0Urhn=Fxp~i4_YkSm5amOZRR_>A;xJfJIhq^e0FJTV^YBK6`hMEqdkDd!r zjbmq>P9mI88g9|gLO6gl+@_y}ZlMq^GT}SXi*8qQc|_dX)pB<`Lm5Uq);J~W;8`$a zC^sZi&}C)zq~ocmnJd-pr>N4o-;8C5YHakD76UDKDBj1KckH zJ^#Z&f{lS-e{I&OI+JbBI5sKB_<62$V~__0J#KvR(6 zW2Sp{0qgH01|N4kE+>G#67;D;A73Ej0^3T=GCLf0rY4bZPWvD^pRa(PhA&j#_CH?% zPitN1%Al~2;e`swdi6qGT|uIv6u$iyjV$4QuY{1}g^JooZ_((jg*w$fb&E#dTclIf zo406m7JmHq7LA@?1iG9~A@6)E)~N(;6G5j%1_}Hc3q0ZkCGcx3aQg|azzPe2UuS`T ze*zp0dRl5l=}m^!o;WCH)>4~fwq8Pymw&*S&NxwJ`T=L!d!n1E!g`z&52^7bhs?KM z_+1(uRG9Na(Ek0x_xupFUw@KL)l%2b523cVp5*3qK396G+l~@h^m~q8eUeUfW1lUf zN}Dd=#$fbfocc$regRV~UW^hKDqD^5`b4Hr%t5mKMT2aYFLv`*ajH~b6Z}X)2Xt< zu;Ll|k^!^Y@MXYrIQ>4Bp5xS4gC;VL{>`y>5VPocrar>Jx7qXpM_xcg@fu*j!R|FJlVa13uL4K=?(#DOm?^fT1kmAuh(qL@Z1BpdK9f<2=G2pNppN z&&YSKw%LJUG1aaAqKx`?D1o*=zbj)bH))0ZXdHcr(QdVvOUB@O!ARGnOvZ}wTVMv! z?OQ`s!!?F3*jhm~M%;=eaWYiJ^Gq0l&eDB6Em=%q;Z|WxPqE?%9be;MF$0M71`ggiz#-n2z zg+U;IA;^>43QN&$ISYBhGN#c;V?GGF_HLq^UI|f6yXCkej(ov8vdIXpDIU{ku?iic zqhAft@GRb?`(qf2&&vW>AW)Mg{vI`_?xJVz{FtY*e0^I1_rEar;i;^n1`cb(IEJ3j z&FdRxIx{_G^F4!*z*VPveO-o9aOL5qx-^LLLn@=)Y8-vY%%n5P#=9(&Ehk~5$27K> zEKfU8)0_~wdPHWK zz@PaPF^U?F0dWVhC}lLxzSGDoFk+r`d9F)wR3k4MUJzAx1?N5Z488_^csre0j@~Ap z7WKw`4J;6-=^|P+00+)Eb|jVTZk*|)SXi-YKH+G$enL95TY&&v36&T%ifHXi;FEW} zY%;>f$CPKAJ?WI~n9re+6x^s*K*MLD}crKOhEU z%$_uVqU-89uOn&l@VJ_vN*^jxsY`D5aL-X}fpZJg!*@5%k92c$+fDS*tGF^!H5+H%wa)l7t?pxsYEdcoP^-U zd&2k}AKWfMKYh2NAR{BjkMKYpqVc>K>e9?yvUW7;Vs8^qSYgJP4oVGxaiHJZN~Gw$S@pi(uQ8&R%{U@ykWXRXlE5$=RyW@e!g zxBPjGJ_JjaHu@CHv5dHN8m@2*)N~S^@PXIXxr)tV=Y1+K4l1MH3jx0wdhvfkM8Uj2 z=epi#bdnt-cVP0@Pt^d${S?(8T8@#$ViQApqUA8bA5C}Ey8Pm;A)-oSZahlA4;=Gi zh+Z>w(nqe>sNn^5XZIfhwMVYkXrB(9YMa(;6zR|@eDZpY=6#~FYLyVHJL}786YDiv z-+_@DQ+0?yj)b6E8DOgSn99FQT$}nOO~n@~Cr_cS4xm&A#B{2*QSs<%cCJ%nZpp3= zaM4DbjytHXmM@l4U33lqyf>!vjW`k=(y5bv`g)DhQs`>~wdb$b$n3;O^pf=&{pd3# zLa&4<#8wEGX%Yozq?fH3%{gkU6EYXyB4l$gm4 zHnnZWWW?AY3i)A$d+#vV1Yqs^Suwx0l)3L`tvrpGbkTG_-yHVaQ(Z;f&kCVB8Yoi} z>rDafr$$aE#k@~KJV?4V@Y+iudgfG28#WJMt;C^s0;!in^t&!h0k@W6V)HI92h5Jc z2`GHedW}vIflUb^?xsNPbL%y_6J+|f^%||*syyzAK&`exqooO*YIob9(Vh6Q_Xds1 zlRE8w@CJ>j>aYzO%}QeAkCX$F@+p<_CrL@Uu`t1~l$)U8MU~YvDnTqI39d`&v^%o$ z=JQ`93m>&Xqn?0LNw0(`#(M$(ddWlLnMr33wTYE3)KqGZ8=q4KH=diua}Y9CKBo+W zsNVymM$8KEE&xfQb9lf!a|y2Fb8I|xNayfn{#Pt^jMeUc&rD}|uNl8I<%`bbhx{9+}*NqnzwlSRk96V=hh~DgG+tjrIYSBi{ zu3@Q8mA09ojhx+YmwK|>Sd^VgL3Q*BvsER#kF$GsDeh`gaQX*lw_guur$;tuwD}cP zJ5~p4&)lHVq8^=g{{^a@LRY=2(3dLoWk{)CutB3{L0lQEUAsY}S9^4-TDL)?!d8vT2jPE~dN z8Xb6=PF4H$YjnbC!uaE%it%R>g7M9Y@h?sj#*du_#@s1gBKfbC5cT+)Aa_ckAEAwy z(63R$YpR%k4%Ys#U!yrc(y6MWU!#8fNcL+K`Y}jPUawJ`klq?3j`vCYM#Xa$6N2Y} zApW6vp8sRv8CtFr^PIIDJeMN-*H!ip1#7SF*XXx7L|PEnDa1w~@>SSM=0=l!Qgx3R zp_JpcJ2uglAf|IWmZJ(|O1Fi*>zk+RRGpjHZQ%;H1TYLbw*+x3)0L;|q+bs$h!oET zYoG4d=#A5LsvYRpXrG_xRQpE1Mvq2Xcqm8%BGxmz zyGje;+OX?kk}r z8p8(=?dT?Z$ZH|`0udg>SYSE*r#e;QmH#DZL=QMi)o_)LbabXoZpfSe z@S3|cY7v$vN(jMLl`CDWloDR7baB(UqKjAX1G?B_g-)!C0ihIKEE8tuN(iQ0Bvx_5 zTS~>N728=WgzZo818i?}*|rI#uzgh6Jtbj|EvtBlD5XY1U@uiF9x5O&isi|x*j&o% z1WiJD!(M|l{5RI=wiOr^8!?jjvY+Wx?Jk!9h)({eKXA`Z`M)WEo!i4T9Klt?!t^Oqz z?l}?N$&k&zl!~tyP+i|!c*DP)HZza%U!jI=x=W*mx0OZKm+$@p>Ok%5cWHFSuXL(< z?=FqDXAK5og7Hh>H-v|nNEleng1)!XE!nLho^AQ)$#qQC zJ7uU(SnM-uko0%5^auRLWqN1m6)g8vVz?WE<`(@%Cp~_*M)Z#Imb*i>7v8PW&wnEW zsLjIsF$qzuYb$tUcIR(U8Xp1kYlaOX(ozXMmfXmqZO@6ek+%bBRhZ(ViXq&@Ry2m|+bPz4>jMZ+xkU2v~kDX`nLH{T4=e!s&EVL)JaXzg!> z=y--TysOe~(8j$Tq7@8l6WHC_AKnhp-vQ%tuNKkzBt(&J*0|j7FwvuTYqVC7cSs1L zTeaG)cWboo`OqMU1_b$*gdnh~RFj7@BehTp3PG&X5i`fK^UYnn~kx$lICz2_kf>k#Ms zURO$-(4bf~NeEdUP)fY*_weY!EfZSw29aQugdSJk!IHd{%X5p3-R~r&_k#LiI_4x%(;M-Q1%@cZVMw2+`RWxFx@v_oP)T{Gud# zOG4!LV3=Fsb%ptjmgRaZG>#GFw@GH7?q8UxL$pPQPT#yhDSr!Z{Z6q6HTH%m6pNeCfd(Ai-RUIn5z?$$^b4)qd(Xsb@)x_dMl zEwDxjfqPL`D>H7+=Xh|h=^lr}&fhF!8CC%309DS7hp5n1vP1OANQ~A`T7?-1FDrgB z5>3J7t8^OCVH*k4S(Y{_pr8W6^|S!J_C$!N8YB0>CnGO?B}AXE(y6kCeo+q=V=vP2 z7|I#-L*5Nh4_RSyllgh<@6=*oKBX>R-hg9(SOsqc6`a3wcS zl@}kRl+-05h<;PgQ{_{c=sWjlbk)I%=voOubZNb>_Sq2QXh3vd|4o%rY%t<B0A6|kwsF7RFTSYq0?+OxKHS3PE5-@F9FK%%>t zxqS)Vt=XwPmk=s>v0g2p^uDJ$;eXWg`pRoa#S1S3f_O+F8ZW~j4=XYa|4}LasSr*M(JP3@ z6yo+AVzVF~R|x7u0dhLT%Vg7dtENvh_oK0{1~s1Vb`y2+bhOWHaJt}~ROwJ0{`{Rk zVj+$a0G|IxDB}GxwWQvSb%ITQ)M@0a!n;CvS4QYGAdk2l!i2HlzDYJ`4%k1Lej#CE{x?}q59%U$8G4xp-$jsb4(`|81%YXe~n zVgD^$-jEQM`T{o==kiwj*gVJRm#pf>7i6jY_Ii~`WjaD@c^c956{iN_wN1i6-UJty!3ICQ!Y#(dYH3$D?$Kzo6k~N+ZO=U#y$AMrnT0g==La-Mj%yfk%1xNFyBlJQ~ZX zBRZ1!4L`zO!)8wPy{qx|(SK1D*{iqkF6&uWV>H$e@Ih8blHLqGToIy*Kj~DN$k0nX zNS^g4bUhet&Xf|&k`S)=Pc_2RgZ<0J&pYa!Jgy0GQ~9OrTkGuUvCMiD_S zkq`{t3=vCkp1>}V5V*HPM7ifKBSt)~W*Ygoj3ZVd(nHn!_& zwFcwtcMUpG(^<&-rnFic_fiE}3W%ko)f$$P)?R}J?MSzcCY>(j5!Oe5@mqOVsS*Ti z|NU!WIX>1fJxP~xHs=DSh&lIb82V@qIv<%`!+F*HIiDP~%=uc*@{}SJ_vzPa=+dt$ zLeXD2hqsHsE!eoYgwOaK{uiB}2F#Lkj&rZWiUHlh;-7h)S}fpghdZ=Us3&-Rcq% z^?z6q=-l<_bB+v0qHSo>luwKRMnsy)uu%Umk z+~cm-sjli{T$ahu#~At}KnL>B7Z|z`(B4nVsFK%p2UyFWT#q&f$2WmcOx|PiZ>_~S z&rfq1{)eGU0d4yXoq3AhXBK~1%Pi^!0JZ36Vf5!Otc8hKrk{nO;RA2L_T}d}Nq^4J zlWyR&RF?+EHr089TiMFzA;nt2+56_34y_Br@$bGN=Vk!j#=sAlQ}~^GH2Tv~stU!v zqe4`>ziG8Y@6~AZjWU67Y5Ij0G&@47%Pg04VF`izEJTWVrvRUn5Xf~Jw{I@0*Mo9- z{#jtxONeCP$=f>HKUe+09U5=zq;HgMopq3Q;|7g}e^-@cgoNlpWn1UX8)f%p!c9;m zZ-O*^q4?dY@y1HWO|l7c5q@A}1H8auSgHPSxDF52T0$!8I3N4NPSNUVM~Z2 zY|(15w>0r@BE*mX=2E*d)r%h7kB(Oj0MbvnkdKSi`7PPggUvbp6B6#t2PHL41z z;-9D2zHzTcuLHrO)wC3#M?z@oa-D~(WAB6?U>tFsAa9lsM7Qfaty;=N@87FYji_Lf zgdqBZUOQx?M%Uh{Q`KG@HF_RD4%n#Ci1pGe>?70%ONdk#s$&#W*CT%nsSgw61PMX3 zN}Xp}3L*+OZq#VHVCPE+s)A{jvYT3-p&80x2hLQX$8dMEF|J*&RtWCq6@ue7xMoyX zULv`VmlBq55DPrW7FdgDN1PsE3%rCFZ1)`7?&yA<*dEPdk9(9oQvE0@R6SSZIzd7d z;t{3l%bBR|9*q_YGAbd6HtWR84NC;JTteXfDN73H3hX=yfqPDtOI_G+3vgW5pFqaN z?yrWpO`^UX#|={B`XTWD@Lfuc>xZC|8g{p>+UXQTOQRSHUquj}N)^KOvfT4;VW1^bo8^p2e|c zX?lj)--;-hZDD3_Aleb9XPMbP_kvklSr9AcFASOeeu$dy#StrdiK%~zNJpGrX6jo& z&6ZtTrfS-TA*!Y^qH&`}+XeB+5Vcluxv1_M31N&!hH$0Ydn4Qd4clJ?dA)=ndUyz1 zW$s34I?n_(XE8RY@_tsbctujZEg@1rtFrhT5`~Z3sL@A){6azyZ5dK)Zq(>CWRcjY zQR98$C7%kBm-x=zxve$sCRk!qah^ zTz|Z1C>mS}qp>_i_(UXxxPKZ-6#Dr_joO6y5(xvVYx_28v^>XY)iAW~9w`?Z@vO-! zvAvS!o!Nr~ymS}@d^5-8(qX7C=q)Z|e%l|w;4r8v%jLsRS-$-bcnJi)O88zUAq2i` z82jI;Akwda|A|qq8pg-}9v9kYBt#m66zSM<KCTw{6gmF z4(O`k@TzH#V8$Ou6y3?Ch@$VNtA@iRcRb=M?JAarM!qFH4-%eun1)He|0wK;q07@k z@~ni=!PUcge02_p@`AGSHO|R>wa_a}4{RwExSMDr=l{Z^t~?uub7SGdOAU6Kghj=I zL9AY8R&zGHtX@{EFu;6eIF^L(*sLoxr$x=%l$zh&T%cwpeY5)fiW(%NM~)wq;qAM@ zlKcJB&G7c!(66JR`}=NaIGg^3hOQ#W6MNdg*mM7-qhkj!O^@#eV>|*7H-6J3uh|kp z!++n68^6F~u4gudl#e{V8++zbq3x9rX$+z;&KzASus=%(+`o2H4P&pcc|frlCdC^e zAxM23yd`c$Od1fPr6&y1$)_WrlZlV1q0*-#V9mE4*QxqclGubNTzx58s*D(E`kX0G zdjd_(vNU}$0)w2#5p6dzCVe>qnwtEiPL&7s&{fq(eh{M95zEk;YK)HdehQ1Zak{Y@ z{yz69o$C5SK~m>w&!~nu&IGVoQ~l1*s?qN}@RUw8a@;~yjL8yKW@sfdt$G^9T8ShX z`h7J9PNzN%5gfXRWA}nU4VDHpWtKCl*f2poL>^_Z-c?NY0 zBNrEWUm+2O6-%CxVZ}Q9z!2ukXJiPoUZ}mPWPCAxiwvojZGm(1Sf(MYM7*(@bY$8l z@r$cDqrV^t#!4@25&jn}Qi{1qLWnN>4|*1Ci>s*|<>(c^n0}&4?{+)gMBA(3A16NR z`oQ*TUiz==3&U9S9$RVv%(+HfC7jks2npU(8m@T`666|3RcjYu2e3`Dz3rqy+5ff% z*-wAY&HlGFe0ZR;gML>7$Fcs+8z-06z;9P0lE~0CH8`*_V5fns!t?_8pN?H!}3wGmTw>X%`2f|0*r_px7 zX@UcX+lSO1cb`VPzn~KzGx$Jg0z!iYfZq-!Vg_>s*dZYp+&GLG%y1bj5L}ytE`z-C z{SGhoovg%tTtYnMPvkC4U%`hLfBZtx;l=A;(EXRV2ZYP4QxweI`3so$l%kksAti7Q}$KvC&+TGl$F~s9(5^Gjif^Er2C3?t9tgipa%|K++u;DJ-r$cZC=Zm6HsButK#us|4} z^L{v*f;u%u`K6?aNm!6tjvV=CF7DYY3D1?VfPtKA^f5dR!ehT}3Qm6aN!phr6dvqT zI1-+INz9MP70^w-b`SQc1p5>_0Z~+G_yP&NoUxJkq{|tRy^9>6A7fV+ zB*j(zPiL~Tx2I=^4ZE{}|39g0RT2VdZCF4AQ;~&bg;f?dyV+O?M(LU9-EEoaf$kZy z@Q@5uT52U)(X!&pM!~9B6=Os#VDz?MNPQc!L}5{M)rd_h&s17Bj7(p0;c$(~=Qw2=C8BL*opRR-tClM29(pC`wW@h@!=sLBwSq6s037J4XaG z&7_KiOhoN2m$nw2F`>`8mfpEoTihHmR^b(3R(MN9!z9Y2*%1lB%cPcw6t8x{+}4QR zXK!UnHll=G4_sSB)z>1R-5S&Mv&10IsV7$R6(-J&h(lgr4?Fde|1aX1YA0OcK z*@6C2-W^eeTs6N%ZnEM!H@387kA2SB!S~p~sKwTn?6HUJ;zw}$D?Yx*r=Nm>ZM8V6 z;BE}ppLYwDQD(-6SIA=%anc@}2-aZ5&2QN;u#s7DbHVCC{sZCEwHK^jui*MzrOtdX zILQXI)M9soE>kgc;$Dq8@z?p|V-{RdKNY)MXLdx#61`p@Sek)2U`DK8GuG$~r_75x zy=0F);`sX8hc%T72W8ijtRwg~*K4-Urvs-O5rk6}tm4!p03G;f(10_-eQG8q1%!T& zB_V(i^ANK;&?)witSm+p`C-p)J3opv!Bg_}|ItIqI!x8|D$6nTA`j|uEd^^^v6O(1 zc7a@Y<9d)nwNyf?%c&EZ`&_1x44P-eDTFxJhG!S=bt`3?+WvS~f~Nkd-zV=f6VyR# z%kBA6;of|?wAC#-?IY#Rj?U#BOYUp;oe?|dl8btAmKTWW7{Wi22yC~DM1Od{fik)3 zFtrWdlSHDFTjBZ4Hku0#C1#kQQ;&ou{8n-rg)icNA7+J%)`7zP-YH9bocf>C$4!jz?&kaOjG!PAYJFznlT9$Mh!Y5fzH>*;4q zz?l%E`mURSl3UW};uUj7i&?eW6T;$J%b6E8Lc=v}Ca!at22LANn*|HCR(o8iEOW_X z!A^%(YqZc|$XGpo+0qElzpz=XLYSz;zu0=5&uCL4qiiOMRnyanNDHu{9x9|Ke5X*& zI}eWfPB2<77T5|XxhciYs|LPbqVMfQX1pgvnfT}-Zm+FF{Nns36run zS&Dj2m_$j-QZ&)6V{*b)h(3x17C=Xa#!kxsxW%j=FaR!uV<=m=V-e&IOLYoiktuv;nmW|1ha3 z99?x>+)NY3rMOe{ph$6dcX#*V4#nNw{ctH1cMdO7+}+)s;;!GlU;en?W|K{BH@h?Q zJTu8ig;P2mL|r2PF>OpwH|qA2Ol(ZI z?TYb3hW7CydOFofSx$^(dW<#?6cP zYE0eZ(WuAY;-}$I;K%5lkpXkmhIh_J``MQB zlj*5pGh zYGgRH?r;UiP#{0oO`VfY35FqKIr7>Si>qN-FiiCRf?TbcNR_ZUw;@D z)0^UNLhHpw`Zp8H`$n0TCo}wiLxho$A6O6&pP#leKfmhA%ZNh!w;_JIc|x9dB6d(p z={$bUcV=ehQ5q|oVTAUeM*;{mp`j*8Vf*qCEEilZI{P|j@Q8vU0ohP&x8!o@C^_ut ziBYi#WDOa|NDYy!!NRzhxM86K^x|aakd!bmUP2o0ubTJeK7Xb%GsN$17mqfTgx-B# zbWY2QD=RC{e2uLCouIXNd;eDC)GMWbG4FZKx>6uvLQ>qK%^2hPq}$1+w`$WZ9cqi- zcAmUs)KCA6Rea_Ba(I`xU0|+^n-d_}>iedZ>tIk8>&+0-P^PG=3NWD{p~cm4UG(cJ z&^kG;dd*h#{}n&kPQ|x;s|6GSCq1R*CB5+7L9Tf{WAF+ zhqcSLZy0@q-bdppW`M0m!e0Ts^0;EC1;h3&Xy>;%HUsTJxC|N=M({in(&V-N{S}ox zmNQw&`Vv=E2-c)G`{3HpDJv-4PhYoLBI!bgoFvt zLU�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 hxDzhDyKQ#i6_ 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

    vlHlu0t_OsIW&&c^G2 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 VyhggKap;zRjlm5`g9C{d{|_jHuM7YH diff --git a/demos/shared/signoz/user_scripts/histogramQuantile.go b/demos/shared/signoz/user_scripts/histogramQuantile.go deleted file mode 100644 index 9540a774..00000000 --- a/demos/shared/signoz/user_scripts/histogramQuantile.go +++ /dev/null @@ -1,237 +0,0 @@ -package main - -import ( - "bufio" - "fmt" - "math" - "os" - "sort" - "strconv" - "strings" -) - -// NOTE: executable must be built with target OS and architecture set to linux/amd64 -// env GOOS=linux GOARCH=amd64 go build -o histogramQuantile histogramQuantile.go - -// The following code is adapted from the following source: -// https://github.com/prometheus/prometheus/blob/main/promql/quantile.go - -type bucket struct { - upperBound float64 - count float64 -} - -// buckets implements sort.Interface. -type buckets []bucket - -func (b buckets) Len() int { return len(b) } -func (b buckets) Swap(i, j int) { b[i], b[j] = b[j], b[i] } -func (b buckets) Less(i, j int) bool { return b[i].upperBound < b[j].upperBound } - -// bucketQuantile calculates the quantile 'q' based on the given buckets. The -// buckets will be sorted by upperBound by this function (i.e. no sorting -// needed before calling this function). The quantile value is interpolated -// assuming a linear distribution within a bucket. However, if the quantile -// falls into the highest bucket, the upper bound of the 2nd highest bucket is -// returned. A natural lower bound of 0 is assumed if the upper bound of the -// lowest bucket is greater 0. In that case, interpolation in the lowest bucket -// happens linearly between 0 and the upper bound of the lowest bucket. -// However, if the lowest bucket has an upper bound less or equal 0, this upper -// bound is returned if the quantile falls into the lowest bucket. -// -// There are a number of special cases (once we have a way to report errors -// happening during evaluations of AST functions, we should report those -// explicitly): -// -// If 'buckets' has 0 observations, NaN is returned. -// -// If 'buckets' has fewer than 2 elements, NaN is returned. -// -// If the highest bucket is not +Inf, NaN is returned. -// -// If q==NaN, NaN is returned. -// -// If q<0, -Inf is returned. -// -// If q>1, +Inf is returned. -func bucketQuantile(q float64, buckets buckets) float64 { - if math.IsNaN(q) { - return math.NaN() - } - if q < 0 { - return math.Inf(-1) - } - if q > 1 { - return math.Inf(+1) - } - sort.Sort(buckets) - if !math.IsInf(buckets[len(buckets)-1].upperBound, +1) { - return math.NaN() - } - - buckets = coalesceBuckets(buckets) - ensureMonotonic(buckets) - - if len(buckets) < 2 { - return math.NaN() - } - observations := buckets[len(buckets)-1].count - if observations == 0 { - return math.NaN() - } - rank := q * observations - b := sort.Search(len(buckets)-1, func(i int) bool { return buckets[i].count >= rank }) - - if b == len(buckets)-1 { - return buckets[len(buckets)-2].upperBound - } - if b == 0 && buckets[0].upperBound <= 0 { - return buckets[0].upperBound - } - var ( - bucketStart float64 - bucketEnd = buckets[b].upperBound - count = buckets[b].count - ) - if b > 0 { - bucketStart = buckets[b-1].upperBound - count -= buckets[b-1].count - rank -= buckets[b-1].count - } - return bucketStart + (bucketEnd-bucketStart)*(rank/count) -} - -// coalesceBuckets merges buckets with the same upper bound. -// -// The input buckets must be sorted. -func coalesceBuckets(buckets buckets) buckets { - last := buckets[0] - i := 0 - for _, b := range buckets[1:] { - if b.upperBound == last.upperBound { - last.count += b.count - } else { - buckets[i] = last - last = b - i++ - } - } - buckets[i] = last - return buckets[:i+1] -} - -// The assumption that bucket counts increase monotonically with increasing -// upperBound may be violated during: -// -// * Recording rule evaluation of histogram_quantile, especially when rate() -// has been applied to the underlying bucket timeseries. -// * Evaluation of histogram_quantile computed over federated bucket -// timeseries, especially when rate() has been applied. -// -// This is because scraped data is not made available to rule evaluation or -// federation atomically, so some buckets are computed with data from the -// most recent scrapes, but the other buckets are missing data from the most -// recent scrape. -// -// Monotonicity is usually guaranteed because if a bucket with upper bound -// u1 has count c1, then any bucket with a higher upper bound u > u1 must -// have counted all c1 observations and perhaps more, so that c >= c1. -// -// Randomly interspersed partial sampling breaks that guarantee, and rate() -// exacerbates it. Specifically, suppose bucket le=1000 has a count of 10 from -// 4 samples but the bucket with le=2000 has a count of 7 from 3 samples. The -// monotonicity is broken. It is exacerbated by rate() because under normal -// operation, cumulative counting of buckets will cause the bucket counts to -// diverge such that small differences from missing samples are not a problem. -// rate() removes this divergence.) -// -// bucketQuantile depends on that monotonicity to do a binary search for the -// bucket with the φ-quantile count, so breaking the monotonicity -// guarantee causes bucketQuantile() to return undefined (nonsense) results. -// -// As a somewhat hacky solution until ingestion is atomic per scrape, we -// calculate the "envelope" of the histogram buckets, essentially removing -// any decreases in the count between successive buckets. - -func ensureMonotonic(buckets buckets) { - max := buckets[0].count - for i := 1; i < len(buckets); i++ { - switch { - case buckets[i].count > max: - max = buckets[i].count - case buckets[i].count < max: - buckets[i].count = max - } - } -} - -// End of copied code. - -func readLines() []string { - r := bufio.NewReader(os.Stdin) - bytes := []byte{} - lines := []string{} - for { - line, isPrefix, err := r.ReadLine() - if err != nil { - break - } - bytes = append(bytes, line...) - if !isPrefix { - str := strings.TrimSpace(string(bytes)) - if len(str) > 0 { - lines = append(lines, str) - bytes = []byte{} - } - } - } - if len(bytes) > 0 { - lines = append(lines, string(bytes)) - } - return lines -} - -func main() { - lines := readLines() - for _, text := range lines { - // Example input - // "[1, 2, 4, 8, 16]", "[1, 5, 8, 10, 14]", 0.9" - // bounds - counts - quantile - parts := strings.Split(text, "\",") - - var bucketNumbers []float64 - // Strip the ends with square brackets - text = parts[0][2 : len(parts[0])-1] - // Parse the bucket bounds - for _, num := range strings.Split(text, ",") { - num = strings.TrimSpace(num) - number, err := strconv.ParseFloat(num, 64) - if err == nil { - bucketNumbers = append(bucketNumbers, number) - } - } - - var bucketCounts []float64 - // Strip the ends with square brackets - text = parts[1][2 : len(parts[1])-1] - // Parse the bucket counts - for _, num := range strings.Split(text, ",") { - num = strings.TrimSpace(num) - number, err := strconv.ParseFloat(num, 64) - if err == nil { - bucketCounts = append(bucketCounts, number) - } - } - - // Parse the quantile - q, err := strconv.ParseFloat(parts[2], 64) - var b buckets - - if err == nil { - for i := 0; i < len(bucketNumbers); i++ { - b = append(b, bucket{upperBound: bucketNumbers[i], count: bucketCounts[i]}) - } - } - fmt.Println(bucketQuantile(q, b)) - } -} diff --git a/demos/shared/test_runner/run_demo_tests.sh b/demos/shared/test_runner/run_demo_tests.sh index 3a035a47..7feeb9ac 100644 --- a/demos/shared/test_runner/run_demo_tests.sh +++ b/demos/shared/test_runner/run_demo_tests.sh @@ -23,8 +23,8 @@ do echo "starting plano" planoai up config.yaml echo "starting docker containers" - # only execute docker compose if demo is use_cases/preference_based_routing - if [ "$demo" == "use_cases/preference_based_routing" ]; then + # only execute docker compose if demo is llm_routing/preference_based_routing + if [ "$demo" == "llm_routing/preference_based_routing" ]; then echo "starting docker compose for $demo" docker compose -f docker-compose.yaml up -d 2>&1 > /dev/null else diff --git a/demos/use_cases/ollama/docker-compose.yaml b/demos/use_cases/ollama/docker-compose.yaml deleted file mode 100644 index 3f123d84..00000000 --- a/demos/use_cases/ollama/docker-compose.yaml +++ /dev/null @@ -1,21 +0,0 @@ -services: - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environemtn as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:12000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - jaeger: - build: - context: ../../shared/jaeger - ports: - - "16686:16686" - - "4317:4317" - - "4318:4318" diff --git a/demos/use_cases/ollama/docker-compose_honeycomb.yaml b/demos/use_cases/ollama/docker-compose_honeycomb.yaml deleted file mode 100644 index 9b44c0c2..00000000 --- a/demos/use_cases/ollama/docker-compose_honeycomb.yaml +++ /dev/null @@ -1,26 +0,0 @@ -services: - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environemtn as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - otel-collector: - build: - context: ../../shared/honeycomb/ - ports: - - "4317:4317" - - "4318:4318" - volumes: - - ../../shared/honeycomb/otel-collector-config.yaml:/etc/otel-collector-config.yaml - env_file: - - .env - environment: - - HONEYCOMB_API_KEY=${HONEYCOMB_API_KEY:?error} diff --git a/demos/use_cases/spotify_bearer_auth/docker-compose.yaml b/demos/use_cases/spotify_bearer_auth/docker-compose.yaml deleted file mode 100644 index bde2b082..00000000 --- a/demos/use_cases/spotify_bearer_auth/docker-compose.yaml +++ /dev/null @@ -1,21 +0,0 @@ -services: - chatbot_ui: - build: - context: ../../shared/chatbot_ui - ports: - - "18080:8080" - environment: - # this is only because we are running the sample app in the same docker container environemtn as archgw - - CHAT_COMPLETION_ENDPOINT=http://host.docker.internal:10000/v1 - extra_hosts: - - "host.docker.internal:host-gateway" - volumes: - - ./config.yaml:/app/plano_config.yaml - - jaeger: - build: - context: ../../shared/jaeger - ports: - - "16686:16686" - - "4317:4317" - - "4318:4318" diff --git a/demos/use_cases/spotify_bearer_auth/run_demo.sh b/demos/use_cases/spotify_bearer_auth/run_demo.sh deleted file mode 100644 index 6623dee5..00000000 --- a/demos/use_cases/spotify_bearer_auth/run_demo.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -set -e - -# Function to start the demo -start_demo() { - # Step 1: Check if .env file exists - if [ -f ".env" ]; then - echo ".env file already exists. Skipping creation." - else - # Step 2: Create `.env` file and set OpenAI key - if [ -z "$OPENAI_API_KEY" ]; then - echo "Error: OPENAI_API_KEY environment variable is not set for the demo." - exit 1 - fi - - echo "Creating .env file..." - echo "OPENAI_API_KEY=$OPENAI_API_KEY" > .env - echo ".env file created with OPENAI_API_KEY." - fi - - # Step 3: Start Plano - echo "Starting Plano with config.yaml..." - planoai up config.yaml - - # Step 4: Start developer services - echo "Starting Network Agent using Docker Compose..." - docker compose up -d # Run in detached mode -} - -# Function to stop the demo -stop_demo() { - # Step 1: Stop Docker Compose services - echo "Stopping Network Agent using Docker Compose..." - docker compose down - - # Step 2: Stop Plano - echo "Stopping Plano..." - planoai down -} - -# Main script logic -if [ "$1" == "down" ]; then - stop_demo -else - # Default action is to bring the demo up - start_demo -fi diff --git a/docs/source/concepts/prompt_target.rst b/docs/source/concepts/prompt_target.rst index 98eadee4..9514054a 100644 --- a/docs/source/concepts/prompt_target.rst +++ b/docs/source/concepts/prompt_target.rst @@ -172,7 +172,7 @@ Once the prompt targets are configured as above, handle parameters across multi- Demo App -------- -For your convenience, we've built a `demo app `_ +For your convenience, we've built a `demo app `_ that you can test and modify locally for multi-turn RAG scenarios. .. figure:: ../build_with_plano/includes/multi_turn/mutli-turn-example.png diff --git a/docs/source/guides/orchestration.rst b/docs/source/guides/orchestration.rst index e8553b8b..3170b65f 100644 --- a/docs/source/guides/orchestration.rst +++ b/docs/source/guides/orchestration.rst @@ -342,7 +342,7 @@ Next Steps * Explore :ref:`filter chains ` for adding guardrails and context enrichment * See :ref:`observability ` for monitoring multi-agent workflows * Review the :ref:`LLM Providers ` guide for model routing within agents -* Check out the complete `Travel Booking demo `_ on GitHub +* Check out the complete `Travel Booking demo `_ on GitHub .. note:: To observe traffic to and from agents, please read more about :ref:`observability ` in Plano. diff --git a/tests/e2e/docker-compose.yaml b/tests/e2e/docker-compose.yaml index 79494d57..0f5ddffd 100644 --- a/tests/e2e/docker-compose.yaml +++ b/tests/e2e/docker-compose.yaml @@ -8,7 +8,7 @@ services: - "12000:12000" - "19901:9901" volumes: - - ../../demos/samples_python/weather_forecast/plano_config.yaml:/app/plano_config.yaml + - ../../demos/getting_started/weather_forecast/plano_config.yaml:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem extra_hosts: - "host.docker.internal:host-gateway" diff --git a/tests/e2e/run_e2e_tests.sh b/tests/e2e/run_e2e_tests.sh index 3de12590..80535368 100644 --- a/tests/e2e/run_e2e_tests.sh +++ b/tests/e2e/run_e2e_tests.sh @@ -23,7 +23,7 @@ log starting > ../build.log log building and running function_calling demo log =========================================== -cd ../../demos/samples_python/weather_forecast/ +cd ../../demos/getting_started/weather_forecast/ docker compose up weather_forecast_service --build -d cd - @@ -46,7 +46,7 @@ uv sync log startup plano gateway with function calling demo cd ../../ planoai down -planoai up demos/samples_python/weather_forecast/config.yaml +planoai up demos/getting_started/weather_forecast/config.yaml cd - log running e2e tests for prompt gateway @@ -59,7 +59,7 @@ planoai down log startup plano gateway with model alias routing demo cd ../../ -planoai up demos/use_cases/model_alias_routing/config_with_aliases.yaml +planoai up demos/llm_routing/model_alias_routing/config_with_aliases.yaml cd - log running e2e tests for model alias routing @@ -80,6 +80,6 @@ uv run pytest test_openai_responses_api_client_with_state.py log shutting down the weather_forecast demo log ======================================= -cd ../../demos/samples_python/weather_forecast +cd ../../demos/getting_started/weather_forecast docker compose down cd - diff --git a/tests/e2e/run_model_alias_tests.sh b/tests/e2e/run_model_alias_tests.sh index c3b1031f..4c2aa7ee 100755 --- a/tests/e2e/run_model_alias_tests.sh +++ b/tests/e2e/run_model_alias_tests.sh @@ -37,7 +37,7 @@ uv sync log "startup plano gateway with model alias routing demo" cd ../../ planoai down || true -planoai up demos/use_cases/model_alias_routing/config_with_aliases.yaml +planoai up demos/llm_routing/model_alias_routing/config_with_aliases.yaml cd - # Run both test suites that share this config in a single pytest invocation diff --git a/tests/e2e/run_prompt_gateway_tests.sh b/tests/e2e/run_prompt_gateway_tests.sh index b719c0fb..bb9cdd43 100755 --- a/tests/e2e/run_prompt_gateway_tests.sh +++ b/tests/e2e/run_prompt_gateway_tests.sh @@ -34,7 +34,7 @@ uv sync # Start weather_forecast service (needed for prompt_gateway tests) log "building and running weather_forecast service" -cd ../../demos/samples_python/weather_forecast/ +cd ../../demos/getting_started/weather_forecast/ docker compose up weather_forecast_service --build -d cd - @@ -42,7 +42,7 @@ cd - log "startup plano gateway with function calling demo" cd ../../ planoai down || true -planoai up demos/samples_python/weather_forecast/config.yaml +planoai up demos/getting_started/weather_forecast/config.yaml cd - # Run tests @@ -52,6 +52,6 @@ uv run pytest test_prompt_gateway.py # Cleanup log "shutting down" planoai down || true -cd ../../demos/samples_python/weather_forecast +cd ../../demos/getting_started/weather_forecast docker compose down cd - From 5090000fd232a75864ddccd73c310772612f41d5 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Tue, 17 Feb 2026 03:13:55 -0800 Subject: [PATCH 14/18] Add OpenClaw + Plano intelligent routing demo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Demonstrates preference-based routing for personal AI assistants: Kimi K2.5 handles conversation and agentic tasks, Claude handles code generation, testing, and complex reasoning — with zero application code changes and ~48% cost savings. Co-Authored-By: Claude Opus 4.6 --- demos/llm_routing/openclaw_routing/README.md | 122 ++++++++++++++++++ .../llm_routing/openclaw_routing/config.yaml | 48 +++++++ .../openclaw_routing/docker-compose.yaml | 8 ++ .../llm_routing/openclaw_routing/run_demo.sh | 59 +++++++++ .../openclaw_routing/test_routing.sh | 60 +++++++++ 5 files changed, 297 insertions(+) create mode 100644 demos/llm_routing/openclaw_routing/README.md create mode 100644 demos/llm_routing/openclaw_routing/config.yaml create mode 100644 demos/llm_routing/openclaw_routing/docker-compose.yaml create mode 100755 demos/llm_routing/openclaw_routing/run_demo.sh create mode 100755 demos/llm_routing/openclaw_routing/test_routing.sh diff --git a/demos/llm_routing/openclaw_routing/README.md b/demos/llm_routing/openclaw_routing/README.md new file mode 100644 index 00000000..93cc5822 --- /dev/null +++ b/demos/llm_routing/openclaw_routing/README.md @@ -0,0 +1,122 @@ +# OpenClaw + Plano: Smart Model Routing for Personal AI Assistants + +OpenClaw is an open-source personal AI assistant that connects to WhatsApp, Telegram, Slack, and Discord. By pointing it at Plano instead of a single LLM provider, every message is automatically routed to the best model — conversational requests go to Kimi K2.5 (cost-effective), while code generation, testing, and complex reasoning go to Claude (most capable) — with zero application code changes. + +## Architecture + +``` +[WhatsApp / Telegram / Slack / Discord] + | + [OpenClaw Gateway] + ws://127.0.0.1:18789 + | + [Plano :12000] ──────────────> Kimi K2.5 (conversation, agentic tasks) + | $0.60/M input tokens + |──────────────────────> Claude (code, tests, reasoning) + | + [Arch-Router 1.5B] + (local via Ollama, ~200ms) +``` + +Plano's 1.5B [Arch-Router](https://arxiv.org/abs/2506.16655) model analyzes each prompt locally and selects the best backend based on configured routing preferences. + +## Prerequisites + +- **Docker** running +- **Ollama** installed ([ollama.com](https://ollama.com)) +- **Plano CLI**: `uv tool install planoai` or `pip install planoai` +- **OpenClaw**: `npm install -g openclaw@latest` +- **API keys**: + - `MOONSHOT_API_KEY` — from [Moonshot AI](https://platform.moonshot.cn/) + - `ANTHROPIC_API_KEY` — from [Anthropic](https://console.anthropic.com/) + +## Quick Start + +### 1. Set Environment Variables + +```bash +export MOONSHOT_API_KEY="your-moonshot-key" +export ANTHROPIC_API_KEY="your-anthropic-key" +``` + +### 2. Start the Demo + +```bash +cd demos/llm_routing/openclaw_routing +bash run_demo.sh +``` + +This will: +- Pull the Arch-Router model into Ollama +- Start Jaeger for tracing +- Start Plano on port 12000 + +### 3. Configure OpenClaw + +In `~/.openclaw/openclaw.json`, set: + +```json +{ + "agent": { + "model": "kimi-k2.5", + "baseURL": "http://127.0.0.1:12000/v1" + } +} +``` + +Then run: + +```bash +openclaw onboard --install-daemon +``` + +### 4. Test Routing + +Run the test script to verify routing decisions: + +```bash +bash test_routing.sh +``` + +## Demo Scenarios + +| # | Message | Expected Route | Why | +|---|---------|---------------|-----| +| 1 | "Hey, what's up? Tell me something interesting." | **Kimi K2.5** | General conversation — cheap and fast | +| 2 | "Remind me tomorrow at 9am and ping Slack about the deploy" | **Kimi K2.5** | Agentic multi-step task orchestration | +| 3 | "Write a Python rate limiter with the token bucket algorithm" | **Claude** | Code generation — needs precision | +| 4 | "Write unit tests for the auth middleware, cover edge cases" | **Claude** | Testing & evaluation — needs thoroughness | +| 5 | "Compare WebSockets vs SSE vs polling for 10K concurrent users" | **Claude** | Complex reasoning — needs deep analysis | + +OpenClaw's code doesn't change at all. It points at `http://127.0.0.1:12000/v1` instead of a direct provider URL. Plano's Arch-Router analyzes each prompt in ~200ms and picks the right backend. + +## Monitoring + +### Routing Decisions + +Watch Plano logs for model selection: + +```bash +docker logs plano 2>&1 | grep MODEL_RESOLUTION +``` + +### Jaeger Tracing + +Open [http://localhost:16686](http://localhost:16686) to see full traces of each request, including which model was selected and the routing latency. + +## Cost Impact + +For a personal assistant handling ~1000 requests/day with a 60/40 conversation-to-code split: + +| Without Plano (all Claude) | With Plano (routed) | +|---|---| +| 1000 req x Claude pricing | 600 req x Kimi K2.5 + 400 req x Claude | +| ~$3.00/day input tokens | ~$0.36 + $1.20 = **$1.56/day** (~48% savings) | + +Same quality where it matters (code, tests), lower cost where it doesn't (chat). + +## Stopping the Demo + +```bash +bash run_demo.sh down +``` diff --git a/demos/llm_routing/openclaw_routing/config.yaml b/demos/llm_routing/openclaw_routing/config.yaml new file mode 100644 index 00000000..8cbdde08 --- /dev/null +++ b/demos/llm_routing/openclaw_routing/config.yaml @@ -0,0 +1,48 @@ +version: v0.1.0 + +routing: + model: Arch-Router + llm_provider: arch-router + +listeners: + egress_traffic: + address: 0.0.0.0 + port: 12000 + message_format: openai + timeout: 30s + +llm_providers: + + # Arch Router - the 1.5B preference-aligned routing model (runs locally via Ollama) + - name: arch-router + model: arch/hf.co/katanemo/Arch-Router-1.5B.gguf:Q4_K_M + base_url: http://host.docker.internal:11434 + + # Kimi K2.5 — Moonshot AI's open model (1T MoE, 32B active params) + # Great for general conversation, agentic tasks, and multimodal work + # OpenAI-compatible API at $0.60/M input, $2.50/M output tokens + - model: openai/kimi-k2.5 + access_key: $MOONSHOT_API_KEY + base_url: https://api.moonshot.ai/v1 + provider_interface: openai + default: true + routing_preferences: + - name: general conversation + description: general chat, greetings, casual conversation, Q&A, and everyday questions + - name: agentic tasks + description: coordinating multi-step workflows, device automation, scheduling, and task orchestration across channels + + # Claude — Anthropic's most capable model + # Best for complex reasoning, code, tool use, and evaluation + - model: anthropic/claude-sonnet-4-5 + access_key: $ANTHROPIC_API_KEY + routing_preferences: + - name: testing and evaluation + description: writing tests, running evaluations, QA checks, verifying correctness, and debugging failures + - name: code generation + description: generating code, writing scripts, implementing functions, and building tool integrations + - name: complex reasoning + description: multi-step analysis, planning, architectural decisions, and deep problem-solving + +tracing: + random_sampling: 100 diff --git a/demos/llm_routing/openclaw_routing/docker-compose.yaml b/demos/llm_routing/openclaw_routing/docker-compose.yaml new file mode 100644 index 00000000..9828cd17 --- /dev/null +++ b/demos/llm_routing/openclaw_routing/docker-compose.yaml @@ -0,0 +1,8 @@ +services: + jaeger: + build: + context: ../../shared/jaeger + ports: + - "16686:16686" + - "4317:4317" + - "4318:4318" diff --git a/demos/llm_routing/openclaw_routing/run_demo.sh b/demos/llm_routing/openclaw_routing/run_demo.sh new file mode 100755 index 00000000..6654d621 --- /dev/null +++ b/demos/llm_routing/openclaw_routing/run_demo.sh @@ -0,0 +1,59 @@ +#!/bin/bash +set -e + +echo "=== OpenClaw + Plano Routing Demo ===" + +# Check prerequisites +command -v docker >/dev/null || { echo "Error: Docker not found"; exit 1; } +command -v ollama >/dev/null || { echo "Error: Ollama not found. Install from https://ollama.com"; exit 1; } + +# Check/create .env file +if [ -f ".env" ]; then + echo ".env file already exists" +else + if [ -z "${MOONSHOT_API_KEY:-}" ]; then + echo "Error: MOONSHOT_API_KEY not set" + exit 1 + fi + if [ -z "${ANTHROPIC_API_KEY:-}" ]; then + echo "Error: ANTHROPIC_API_KEY not set" + exit 1 + fi + echo "Creating .env file..." + echo "MOONSHOT_API_KEY=$MOONSHOT_API_KEY" > .env + echo "ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY" >> .env +fi + +# Pull Arch-Router model if needed +echo "Pulling Arch-Router model..." +ollama pull hf.co/katanemo/Arch-Router-1.5B.gguf:Q4_K_M + +start_demo() { + # Start Jaeger for tracing + echo "Starting Jaeger..." + docker compose up -d + + # Start Plano gateway + echo "Starting Plano..." + planoai up --service plano --foreground +} + +stop_demo() { + docker compose down + planoai down +} + +if [ "${1:-}" == "down" ]; then + stop_demo +else + start_demo + echo "" + echo "=== Plano is running on http://localhost:12000 ===" + echo "=== Jaeger UI at http://localhost:16686 ===" + echo "" + echo "Configure OpenClaw to use Plano as its LLM endpoint:" + echo ' In ~/.openclaw/openclaw.json, set:' + echo ' { "agent": { "model": "kimi-k2.5", "baseURL": "http://127.0.0.1:12000/v1" } }' + echo "" + echo "Then run: openclaw onboard --install-daemon" +fi diff --git a/demos/llm_routing/openclaw_routing/test_routing.sh b/demos/llm_routing/openclaw_routing/test_routing.sh new file mode 100755 index 00000000..d630f920 --- /dev/null +++ b/demos/llm_routing/openclaw_routing/test_routing.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash +set -euo pipefail + +PLANO_URL="http://localhost:12000/v1/chat/completions" + +echo "=== Testing Plano Routing Decisions ===" +echo "" + +# Scenario 1: General conversation -> should route to Kimi K2.5 +echo "--- Scenario 1: General Conversation (expect: Kimi K2.5) ---" +curl -s "$PLANO_URL" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "kimi-k2.5", + "messages": [{"role": "user", "content": "Hey! What is the weather like today? Can you tell me a fun fact?"}] + }' | jq '{model: .model, content: .choices[0].message.content[:100]}' +echo "" + +# Scenario 2: Agentic task -> should route to Kimi K2.5 +echo "--- Scenario 2: Agentic Task (expect: Kimi K2.5) ---" +curl -s "$PLANO_URL" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "kimi-k2.5", + "messages": [{"role": "user", "content": "Schedule a reminder for tomorrow at 9am to review the pull request, then send a message to the team Slack channel about the deployment."}] + }' | jq '{model: .model, content: .choices[0].message.content[:100]}' +echo "" + +# Scenario 3: Code generation -> should route to Claude +echo "--- Scenario 3: Code Generation (expect: Claude) ---" +curl -s "$PLANO_URL" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "kimi-k2.5", + "messages": [{"role": "user", "content": "Write a Python function that implements a rate limiter using the token bucket algorithm with async support."}] + }' | jq '{model: .model, content: .choices[0].message.content[:100]}' +echo "" + +# Scenario 4: Testing/evaluation -> should route to Claude +echo "--- Scenario 4: Testing & Evaluation (expect: Claude) ---" +curl -s "$PLANO_URL" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "kimi-k2.5", + "messages": [{"role": "user", "content": "Write unit tests for this authentication middleware. Test edge cases: expired tokens, malformed headers, missing credentials, and concurrent requests."}] + }' | jq '{model: .model, content: .choices[0].message.content[:100]}' +echo "" + +# Scenario 5: Complex reasoning -> should route to Claude +echo "--- Scenario 5: Complex Reasoning (expect: Claude) ---" +curl -s "$PLANO_URL" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "kimi-k2.5", + "messages": [{"role": "user", "content": "Analyze the trade-offs between using WebSockets vs SSE vs long-polling for real-time notifications in a distributed messaging system with 10K concurrent users."}] + }' | jq '{model: .model, content: .choices[0].message.content[:100]}' +echo "" + +echo "=== Check Plano logs for MODEL_RESOLUTION details ===" +echo "Run: docker logs plano 2>&1 | grep MODEL_RESOLUTION" From 5d2279a7964e22daa99e3e91e624d64c42fa27f6 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Tue, 17 Feb 2026 03:15:42 -0800 Subject: [PATCH 15/18] Revert "Add OpenClaw + Plano intelligent routing demo" This reverts commit 5090000fd232a75864ddccd73c310772612f41d5. --- demos/llm_routing/openclaw_routing/README.md | 122 ------------------ .../llm_routing/openclaw_routing/config.yaml | 48 ------- .../openclaw_routing/docker-compose.yaml | 8 -- .../llm_routing/openclaw_routing/run_demo.sh | 59 --------- .../openclaw_routing/test_routing.sh | 60 --------- 5 files changed, 297 deletions(-) delete mode 100644 demos/llm_routing/openclaw_routing/README.md delete mode 100644 demos/llm_routing/openclaw_routing/config.yaml delete mode 100644 demos/llm_routing/openclaw_routing/docker-compose.yaml delete mode 100755 demos/llm_routing/openclaw_routing/run_demo.sh delete mode 100755 demos/llm_routing/openclaw_routing/test_routing.sh diff --git a/demos/llm_routing/openclaw_routing/README.md b/demos/llm_routing/openclaw_routing/README.md deleted file mode 100644 index 93cc5822..00000000 --- a/demos/llm_routing/openclaw_routing/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# OpenClaw + Plano: Smart Model Routing for Personal AI Assistants - -OpenClaw is an open-source personal AI assistant that connects to WhatsApp, Telegram, Slack, and Discord. By pointing it at Plano instead of a single LLM provider, every message is automatically routed to the best model — conversational requests go to Kimi K2.5 (cost-effective), while code generation, testing, and complex reasoning go to Claude (most capable) — with zero application code changes. - -## Architecture - -``` -[WhatsApp / Telegram / Slack / Discord] - | - [OpenClaw Gateway] - ws://127.0.0.1:18789 - | - [Plano :12000] ──────────────> Kimi K2.5 (conversation, agentic tasks) - | $0.60/M input tokens - |──────────────────────> Claude (code, tests, reasoning) - | - [Arch-Router 1.5B] - (local via Ollama, ~200ms) -``` - -Plano's 1.5B [Arch-Router](https://arxiv.org/abs/2506.16655) model analyzes each prompt locally and selects the best backend based on configured routing preferences. - -## Prerequisites - -- **Docker** running -- **Ollama** installed ([ollama.com](https://ollama.com)) -- **Plano CLI**: `uv tool install planoai` or `pip install planoai` -- **OpenClaw**: `npm install -g openclaw@latest` -- **API keys**: - - `MOONSHOT_API_KEY` — from [Moonshot AI](https://platform.moonshot.cn/) - - `ANTHROPIC_API_KEY` — from [Anthropic](https://console.anthropic.com/) - -## Quick Start - -### 1. Set Environment Variables - -```bash -export MOONSHOT_API_KEY="your-moonshot-key" -export ANTHROPIC_API_KEY="your-anthropic-key" -``` - -### 2. Start the Demo - -```bash -cd demos/llm_routing/openclaw_routing -bash run_demo.sh -``` - -This will: -- Pull the Arch-Router model into Ollama -- Start Jaeger for tracing -- Start Plano on port 12000 - -### 3. Configure OpenClaw - -In `~/.openclaw/openclaw.json`, set: - -```json -{ - "agent": { - "model": "kimi-k2.5", - "baseURL": "http://127.0.0.1:12000/v1" - } -} -``` - -Then run: - -```bash -openclaw onboard --install-daemon -``` - -### 4. Test Routing - -Run the test script to verify routing decisions: - -```bash -bash test_routing.sh -``` - -## Demo Scenarios - -| # | Message | Expected Route | Why | -|---|---------|---------------|-----| -| 1 | "Hey, what's up? Tell me something interesting." | **Kimi K2.5** | General conversation — cheap and fast | -| 2 | "Remind me tomorrow at 9am and ping Slack about the deploy" | **Kimi K2.5** | Agentic multi-step task orchestration | -| 3 | "Write a Python rate limiter with the token bucket algorithm" | **Claude** | Code generation — needs precision | -| 4 | "Write unit tests for the auth middleware, cover edge cases" | **Claude** | Testing & evaluation — needs thoroughness | -| 5 | "Compare WebSockets vs SSE vs polling for 10K concurrent users" | **Claude** | Complex reasoning — needs deep analysis | - -OpenClaw's code doesn't change at all. It points at `http://127.0.0.1:12000/v1` instead of a direct provider URL. Plano's Arch-Router analyzes each prompt in ~200ms and picks the right backend. - -## Monitoring - -### Routing Decisions - -Watch Plano logs for model selection: - -```bash -docker logs plano 2>&1 | grep MODEL_RESOLUTION -``` - -### Jaeger Tracing - -Open [http://localhost:16686](http://localhost:16686) to see full traces of each request, including which model was selected and the routing latency. - -## Cost Impact - -For a personal assistant handling ~1000 requests/day with a 60/40 conversation-to-code split: - -| Without Plano (all Claude) | With Plano (routed) | -|---|---| -| 1000 req x Claude pricing | 600 req x Kimi K2.5 + 400 req x Claude | -| ~$3.00/day input tokens | ~$0.36 + $1.20 = **$1.56/day** (~48% savings) | - -Same quality where it matters (code, tests), lower cost where it doesn't (chat). - -## Stopping the Demo - -```bash -bash run_demo.sh down -``` diff --git a/demos/llm_routing/openclaw_routing/config.yaml b/demos/llm_routing/openclaw_routing/config.yaml deleted file mode 100644 index 8cbdde08..00000000 --- a/demos/llm_routing/openclaw_routing/config.yaml +++ /dev/null @@ -1,48 +0,0 @@ -version: v0.1.0 - -routing: - model: Arch-Router - llm_provider: arch-router - -listeners: - egress_traffic: - address: 0.0.0.0 - port: 12000 - message_format: openai - timeout: 30s - -llm_providers: - - # Arch Router - the 1.5B preference-aligned routing model (runs locally via Ollama) - - name: arch-router - model: arch/hf.co/katanemo/Arch-Router-1.5B.gguf:Q4_K_M - base_url: http://host.docker.internal:11434 - - # Kimi K2.5 — Moonshot AI's open model (1T MoE, 32B active params) - # Great for general conversation, agentic tasks, and multimodal work - # OpenAI-compatible API at $0.60/M input, $2.50/M output tokens - - model: openai/kimi-k2.5 - access_key: $MOONSHOT_API_KEY - base_url: https://api.moonshot.ai/v1 - provider_interface: openai - default: true - routing_preferences: - - name: general conversation - description: general chat, greetings, casual conversation, Q&A, and everyday questions - - name: agentic tasks - description: coordinating multi-step workflows, device automation, scheduling, and task orchestration across channels - - # Claude — Anthropic's most capable model - # Best for complex reasoning, code, tool use, and evaluation - - model: anthropic/claude-sonnet-4-5 - access_key: $ANTHROPIC_API_KEY - routing_preferences: - - name: testing and evaluation - description: writing tests, running evaluations, QA checks, verifying correctness, and debugging failures - - name: code generation - description: generating code, writing scripts, implementing functions, and building tool integrations - - name: complex reasoning - description: multi-step analysis, planning, architectural decisions, and deep problem-solving - -tracing: - random_sampling: 100 diff --git a/demos/llm_routing/openclaw_routing/docker-compose.yaml b/demos/llm_routing/openclaw_routing/docker-compose.yaml deleted file mode 100644 index 9828cd17..00000000 --- a/demos/llm_routing/openclaw_routing/docker-compose.yaml +++ /dev/null @@ -1,8 +0,0 @@ -services: - jaeger: - build: - context: ../../shared/jaeger - ports: - - "16686:16686" - - "4317:4317" - - "4318:4318" diff --git a/demos/llm_routing/openclaw_routing/run_demo.sh b/demos/llm_routing/openclaw_routing/run_demo.sh deleted file mode 100755 index 6654d621..00000000 --- a/demos/llm_routing/openclaw_routing/run_demo.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash -set -e - -echo "=== OpenClaw + Plano Routing Demo ===" - -# Check prerequisites -command -v docker >/dev/null || { echo "Error: Docker not found"; exit 1; } -command -v ollama >/dev/null || { echo "Error: Ollama not found. Install from https://ollama.com"; exit 1; } - -# Check/create .env file -if [ -f ".env" ]; then - echo ".env file already exists" -else - if [ -z "${MOONSHOT_API_KEY:-}" ]; then - echo "Error: MOONSHOT_API_KEY not set" - exit 1 - fi - if [ -z "${ANTHROPIC_API_KEY:-}" ]; then - echo "Error: ANTHROPIC_API_KEY not set" - exit 1 - fi - echo "Creating .env file..." - echo "MOONSHOT_API_KEY=$MOONSHOT_API_KEY" > .env - echo "ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY" >> .env -fi - -# Pull Arch-Router model if needed -echo "Pulling Arch-Router model..." -ollama pull hf.co/katanemo/Arch-Router-1.5B.gguf:Q4_K_M - -start_demo() { - # Start Jaeger for tracing - echo "Starting Jaeger..." - docker compose up -d - - # Start Plano gateway - echo "Starting Plano..." - planoai up --service plano --foreground -} - -stop_demo() { - docker compose down - planoai down -} - -if [ "${1:-}" == "down" ]; then - stop_demo -else - start_demo - echo "" - echo "=== Plano is running on http://localhost:12000 ===" - echo "=== Jaeger UI at http://localhost:16686 ===" - echo "" - echo "Configure OpenClaw to use Plano as its LLM endpoint:" - echo ' In ~/.openclaw/openclaw.json, set:' - echo ' { "agent": { "model": "kimi-k2.5", "baseURL": "http://127.0.0.1:12000/v1" } }' - echo "" - echo "Then run: openclaw onboard --install-daemon" -fi diff --git a/demos/llm_routing/openclaw_routing/test_routing.sh b/demos/llm_routing/openclaw_routing/test_routing.sh deleted file mode 100755 index d630f920..00000000 --- a/demos/llm_routing/openclaw_routing/test_routing.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -PLANO_URL="http://localhost:12000/v1/chat/completions" - -echo "=== Testing Plano Routing Decisions ===" -echo "" - -# Scenario 1: General conversation -> should route to Kimi K2.5 -echo "--- Scenario 1: General Conversation (expect: Kimi K2.5) ---" -curl -s "$PLANO_URL" \ - -H "Content-Type: application/json" \ - -d '{ - "model": "kimi-k2.5", - "messages": [{"role": "user", "content": "Hey! What is the weather like today? Can you tell me a fun fact?"}] - }' | jq '{model: .model, content: .choices[0].message.content[:100]}' -echo "" - -# Scenario 2: Agentic task -> should route to Kimi K2.5 -echo "--- Scenario 2: Agentic Task (expect: Kimi K2.5) ---" -curl -s "$PLANO_URL" \ - -H "Content-Type: application/json" \ - -d '{ - "model": "kimi-k2.5", - "messages": [{"role": "user", "content": "Schedule a reminder for tomorrow at 9am to review the pull request, then send a message to the team Slack channel about the deployment."}] - }' | jq '{model: .model, content: .choices[0].message.content[:100]}' -echo "" - -# Scenario 3: Code generation -> should route to Claude -echo "--- Scenario 3: Code Generation (expect: Claude) ---" -curl -s "$PLANO_URL" \ - -H "Content-Type: application/json" \ - -d '{ - "model": "kimi-k2.5", - "messages": [{"role": "user", "content": "Write a Python function that implements a rate limiter using the token bucket algorithm with async support."}] - }' | jq '{model: .model, content: .choices[0].message.content[:100]}' -echo "" - -# Scenario 4: Testing/evaluation -> should route to Claude -echo "--- Scenario 4: Testing & Evaluation (expect: Claude) ---" -curl -s "$PLANO_URL" \ - -H "Content-Type: application/json" \ - -d '{ - "model": "kimi-k2.5", - "messages": [{"role": "user", "content": "Write unit tests for this authentication middleware. Test edge cases: expired tokens, malformed headers, missing credentials, and concurrent requests."}] - }' | jq '{model: .model, content: .choices[0].message.content[:100]}' -echo "" - -# Scenario 5: Complex reasoning -> should route to Claude -echo "--- Scenario 5: Complex Reasoning (expect: Claude) ---" -curl -s "$PLANO_URL" \ - -H "Content-Type: application/json" \ - -d '{ - "model": "kimi-k2.5", - "messages": [{"role": "user", "content": "Analyze the trade-offs between using WebSockets vs SSE vs long-polling for real-time notifications in a distributed messaging system with 10K concurrent users."}] - }' | jq '{model: .model, content: .choices[0].message.content[:100]}' -echo "" - -echo "=== Check Plano logs for MODEL_RESOLUTION details ===" -echo "Run: docker logs plano 2>&1 | grep MODEL_RESOLUTION" From 50088d9eff41442d5ccec3aeaed54e064d4b207b Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Tue, 17 Feb 2026 03:22:12 -0800 Subject: [PATCH 16/18] Add demos README with overview of all demo categories (#762) --- demos/README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 demos/README.md diff --git a/demos/README.md b/demos/README.md new file mode 100644 index 00000000..a2613454 --- /dev/null +++ b/demos/README.md @@ -0,0 +1,48 @@ +# Plano Demos + +This directory contains demos showcasing Plano's capabilities as an AI-native proxy for agentic applications. + +## Getting Started + +| Demo | Description | +|------|-------------| +| [Weather Forecast](getting_started/weather_forecast/) | Core function calling with a weather query agent, interactive chat UI, and Jaeger tracing | +| [LLM Gateway](getting_started/llm_gateway/) | Key management and dynamic routing to multiple LLM providers with header-based model override | + +## LLM Routing + +| Demo | Description | +|------|-------------| +| [Preference-Based Routing](llm_routing/preference_based_routing/) | Routes prompts to LLMs based on user-defined preferences and task type (e.g. code generation vs. understanding) | +| [Model Alias Routing](llm_routing/model_alias_routing/) | Maps semantic aliases (`arch.summarize.v1`) to provider-specific models for centralized governance | +| [Claude Code Router](llm_routing/claude_code_router/) | Extends Claude Code with multi-provider access and preference-aligned routing for coding tasks | + +## Agent Orchestration + +| Demo | Description | +|------|-------------| +| [Travel Agents](agent_orchestration/travel_agents/) | Multi-agent travel booking with weather and flight agents, intelligent routing, and OpenTelemetry tracing | +| [Multi-Agent CrewAI & LangChain](agent_orchestration/multi_agent_crewai_langchain/) | Framework-agnostic orchestration combining CrewAI and LangChain agents in unified conversations | + +## Filter Chains + +| Demo | Description | +|------|-------------| +| [HTTP Filter](filter_chains/http_filter/) | RAG agent with filter chains for input validation, query rewriting, and context building | +| [MCP Filter](filter_chains/mcp_filter/) | RAG agent using MCP-based filters for domain validation, query optimization, and knowledge base retrieval | + +## Integrations + +| Demo | Description | +|------|-------------| +| [Ollama](integrations/ollama/) | Use Ollama as a local LLM provider through Plano | +| [Spotify Bearer Auth](integrations/spotify_bearer_auth/) | Bearer token authentication for third-party APIs (Spotify new releases and top tracks) | + +## Advanced + +| Demo | Description | +|------|-------------| +| [Currency Exchange](advanced/currency_exchange/) | Function calling with public REST APIs (Frankfurter currency exchange) | +| [Stock Quote](advanced/stock_quote/) | Protected REST API integration with access key management | +| [Multi-Turn RAG](advanced/multi_turn_rag/) | Multi-turn conversational RAG agent for answering questions about energy sources | +| [Model Choice Test Harness](advanced/model_choice_test_harness/) | Evaluation framework for safely testing and switching between models with benchmark fixtures | From bfbf838b19b5cc703b8aeeca9c0ec0c6ca000369 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Tue, 17 Feb 2026 05:45:44 -0800 Subject: [PATCH 17/18] release 0.4.7 (#752) --- .github/workflows/ci.yml | 4 +-- CLAUDE.md | 33 ++++++++++++++++++- apps/www/src/components/Hero.tsx | 2 +- build_filter_image.sh | 2 +- cli/planoai/__init__.py | 2 +- cli/planoai/consts.py | 2 +- cli/pyproject.toml | 2 +- config/validate_plano_config.sh | 2 +- .../preference_based_routing/README.md | 4 +-- docs/source/conf.py | 2 +- docs/source/get_started/quickstart.rst | 6 ++-- docs/source/resources/deployment.rst | 2 +- 12 files changed, 47 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4211257e..4d07452b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -75,13 +75,13 @@ jobs: load: true tags: | ${{ env.PLANO_DOCKER_IMAGE }} - ${{ env.DOCKER_IMAGE }}:0.4.6 + ${{ env.DOCKER_IMAGE }}:0.4.7 ${{ env.DOCKER_IMAGE }}:latest cache-from: type=gha cache-to: type=gha,mode=max - name: Save image as artifact - run: docker save ${{ env.PLANO_DOCKER_IMAGE }} ${{ env.DOCKER_IMAGE }}:0.4.6 ${{ env.DOCKER_IMAGE }}:latest -o /tmp/plano-image.tar + run: docker save ${{ env.PLANO_DOCKER_IMAGE }} ${{ env.DOCKER_IMAGE }}:0.4.7 ${{ env.DOCKER_IMAGE }}:latest -o /tmp/plano-image.tar - name: Upload image artifact uses: actions/upload-artifact@v4 diff --git a/CLAUDE.md b/CLAUDE.md index 9f431033..b8c1c1bd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -58,7 +58,7 @@ docker build -t katanemo/plano:latest . ### E2E Tests (tests/e2e/) -E2E tests require a built Docker image and API keys. They run via `tests/e2e/run_e2e_tests.sh` which executes three test suites: `test_prompt_gateway.py`, `test_model_alias_routing.py`, and `test_openai_responses_api_client_with_state.py`. +E2E tests require a built Docker image and API keys. They run via `tests/e2e/run_e2e_tests.sh` which executes four test suites: `test_prompt_gateway.py`, `test_model_alias_routing.py`, `test_openai_responses_api_client.py`, and `test_openai_responses_api_client_with_state.py`. ## Architecture @@ -91,6 +91,8 @@ The `planoai` CLI manages the Plano lifecycle. Key commands: - `planoai logs` — Stream access/debug logs - `planoai trace` — OTEL trace collection and analysis - `planoai init` — Initialize new project +- `planoai cli_agent` — Start a CLI agent connected to Plano +- `planoai generate_prompt_targets` — Generate prompt_targets from python methods Entry point: `cli/planoai/main.py`. Container lifecycle in `core.py`. Docker operations in `docker_cli.py`. @@ -106,6 +108,35 @@ User configs define: `agents` (id + url), `model_providers` (model + access_key) Turbo monorepo with Next.js 16 / React 19 applications and shared packages (UI components, Tailwind config, TypeScript config). Not part of the core proxy — these are web applications. +## Release Process + +To prepare a release (e.g., bumping from `0.4.6` to `0.4.7`), update the version string in all of the following files: + +**CI Workflow:** +- `.github/workflows/ci.yml` — docker build/save tags + +**CLI:** +- `cli/planoai/__init__.py` — `__version__` +- `cli/planoai/consts.py` — `PLANO_DOCKER_IMAGE` default +- `cli/pyproject.toml` — `version` + +**Build & Config:** +- `build_filter_image.sh` — docker build tag +- `config/validate_plano_config.sh` — docker image tag + +**Docs:** +- `docs/source/conf.py` — `release` +- `docs/source/get_started/quickstart.rst` — install commands and example output +- `docs/source/resources/deployment.rst` — docker image tag + +**Website & Demos:** +- `apps/www/src/components/Hero.tsx` — version badge +- `demos/llm_routing/preference_based_routing/README.md` — example output + +**Important:** Do NOT change `0.4.6` references in `*.lock` files or `Cargo.lock` — those refer to the `colorama` and `http-body` dependency versions, not Plano. + +Commit message format: `release X.Y.Z` + ## Key Conventions - Rust edition 2021, formatted with `cargo fmt`, linted with `cargo clippy -D warnings` diff --git a/apps/www/src/components/Hero.tsx b/apps/www/src/components/Hero.tsx index 2fc99651..f98bc4d2 100644 --- a/apps/www/src/components/Hero.tsx +++ b/apps/www/src/components/Hero.tsx @@ -24,7 +24,7 @@ export function Hero() { >

    - v0.4.6 + v0.4.7 — diff --git a/build_filter_image.sh b/build_filter_image.sh index 9c76be60..318fa542 100644 --- a/build_filter_image.sh +++ b/build_filter_image.sh @@ -1 +1 @@ -docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.6 +docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.7 diff --git a/cli/planoai/__init__.py b/cli/planoai/__init__.py index a3b304e1..9e014320 100644 --- a/cli/planoai/__init__.py +++ b/cli/planoai/__init__.py @@ -1,3 +1,3 @@ """Plano CLI - Intelligent Prompt Gateway.""" -__version__ = "0.4.6" +__version__ = "0.4.7" diff --git a/cli/planoai/consts.py b/cli/planoai/consts.py index a2538e73..fa94efb6 100644 --- a/cli/planoai/consts.py +++ b/cli/planoai/consts.py @@ -5,5 +5,5 @@ PLANO_COLOR = "#969FF4" SERVICE_NAME_ARCHGW = "plano" PLANO_DOCKER_NAME = "plano" -PLANO_DOCKER_IMAGE = os.getenv("PLANO_DOCKER_IMAGE", "katanemo/plano:0.4.6") +PLANO_DOCKER_IMAGE = os.getenv("PLANO_DOCKER_IMAGE", "katanemo/plano:0.4.7") DEFAULT_OTEL_TRACING_GRPC_ENDPOINT = "http://host.docker.internal:4317" diff --git a/cli/pyproject.toml b/cli/pyproject.toml index 84af6ca3..673e821b 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "planoai" -version = "0.4.6" +version = "0.4.7" description = "Python-based CLI tool to manage Plano." authors = [{name = "Katanemo Labs, Inc."}] readme = "README.md" diff --git a/config/validate_plano_config.sh b/config/validate_plano_config.sh index 0a518819..8eafd344 100644 --- a/config/validate_plano_config.sh +++ b/config/validate_plano_config.sh @@ -5,7 +5,7 @@ failed_files=() for file in $(find . -name config.yaml -o -name plano_config_full_reference.yaml); do echo "Validating ${file}..." touch $(pwd)/${file}_rendered - if ! docker run --rm -v "$(pwd)/${file}:/app/plano_config.yaml:ro" -v "$(pwd)/${file}_rendered:/app/plano_config_rendered.yaml:rw" --entrypoint /bin/sh katanemo/plano:0.4.6 -c "python -m planoai.config_generator" 2>&1 > /dev/null ; then + if ! docker run --rm -v "$(pwd)/${file}:/app/plano_config.yaml:ro" -v "$(pwd)/${file}_rendered:/app/plano_config_rendered.yaml:rw" --entrypoint /bin/sh ${PLANO_DOCKER_IMAGE:-katanemo/plano:0.4.7} -c "python -m planoai.config_generator" 2>&1 > /dev/null ; then echo "Validation failed for $file" failed_files+=("$file") fi diff --git a/demos/llm_routing/preference_based_routing/README.md b/demos/llm_routing/preference_based_routing/README.md index 4cf2ec05..6c8ace08 100644 --- a/demos/llm_routing/preference_based_routing/README.md +++ b/demos/llm_routing/preference_based_routing/README.md @@ -15,9 +15,9 @@ Make sure your machine is up to date with [latest version of plano]([url](https: ```bash (venv) $ planoai up --service plano --foreground # Or if installed with uv: uvx planoai up --service plano --foreground -2025-05-30 18:00:09,953 - planoai.main - INFO - Starting plano cli version: 0.4.6 +2025-05-30 18:00:09,953 - planoai.main - INFO - Starting plano cli version: 0.4.7 2025-05-30 18:00:09,953 - planoai.main - INFO - Validating /Users/adilhafeez/src/intelligent-prompt-gateway/demos/llm_routing/preference_based_routing/config.yaml -2025-05-30 18:00:10,422 - cli.core - INFO - Starting plano gateway, image name: plano, tag: katanemo/plano:0.4.6 +2025-05-30 18:00:10,422 - cli.core - INFO - Starting plano gateway, image name: plano, tag: katanemo/plano:0.4.7 2025-05-30 18:00:10,662 - cli.core - INFO - plano status: running, health status: starting 2025-05-30 18:00:11,712 - cli.core - INFO - plano status: running, health status: starting 2025-05-30 18:00:12,761 - cli.core - INFO - plano is running and is healthy! diff --git a/docs/source/conf.py b/docs/source/conf.py index f4d88f19..fafef73e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -17,7 +17,7 @@ from sphinxawesome_theme.postprocess import Icons project = "Plano Docs" copyright = "2025, Katanemo Labs, Inc" author = "Katanemo Labs, Inc" -release = " v0.4.6" +release = " v0.4.7" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/docs/source/get_started/quickstart.rst b/docs/source/get_started/quickstart.rst index 7bccc1a9..5fda423c 100644 --- a/docs/source/get_started/quickstart.rst +++ b/docs/source/get_started/quickstart.rst @@ -37,7 +37,7 @@ Plano's CLI allows you to manage and interact with the Plano efficiently. To ins .. code-block:: console - $ uv tool install planoai==0.4.6 + $ uv tool install planoai==0.4.7 **Option 2: Install with pip (Traditional)** @@ -45,7 +45,7 @@ Plano's CLI allows you to manage and interact with the Plano efficiently. To ins $ python -m venv venv $ source venv/bin/activate # On Windows, use: venv\Scripts\activate - $ pip install planoai==0.4.6 + $ pip install planoai==0.4.7 .. _llm_routing_quickstart: @@ -90,7 +90,7 @@ Start Plano: $ planoai up plano_config.yaml # Or if installed with uv tool: uvx planoai up plano_config.yaml - 2024-12-05 11:24:51,288 - planoai.main - INFO - Starting plano cli version: 0.4.6 + 2024-12-05 11:24:51,288 - planoai.main - INFO - Starting plano cli version: 0.4.7 2024-12-05 11:24:51,825 - planoai.utils - INFO - Schema validation successful! 2024-12-05 11:24:51,825 - planoai.main - INFO - Starting plano ... diff --git a/docs/source/resources/deployment.rst b/docs/source/resources/deployment.rst index 1848c149..2456a80b 100644 --- a/docs/source/resources/deployment.rst +++ b/docs/source/resources/deployment.rst @@ -25,7 +25,7 @@ Create a ``docker-compose.yml`` file with the following configuration: # docker-compose.yml services: plano: - image: katanemo/plano:0.4.6 + image: katanemo/plano:0.4.7 container_name: plano ports: - "10000:10000" # ingress (client -> plano) From c69fbd8a4debe9dded98a26ff2f205f526850feb Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Tue, 17 Feb 2026 06:34:54 -0800 Subject: [PATCH 18/18] Add OpenClaw + Plano intelligent routing demo (#761) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add OpenClaw + Plano intelligent routing demo Demonstrates preference-based routing for personal AI assistants: Kimi K2.5 handles conversation and agentic tasks, Claude handles code generation, testing, and complex reasoning — with zero application code changes and ~48% cost savings. Co-Authored-By: Claude Opus 4.6 * Remove redundant provider_interface from Kimi K2.5 config The openai/ prefix in the model name already sets the provider interface. Setting provider_interface explicitly conflicts with it and fails config validation. Co-Authored-By: Claude Opus 4.6 * Simplify config to v0.3.0 format, remove explicit Arch-Router entry Arch-Router is implicit when routing_preferences are defined. Aligns with the preference_based_routing demo pattern. Co-Authored-By: Claude Opus 4.6 * Clean up Ollama/Arch-Router references, make Jaeger optional Router is handled internally by Plano — no need for Ollama or explicit Arch-Router setup. Jaeger is kept as an optional step in the README for developers who want tracing visibility. Co-Authored-By: Claude Opus 4.6 * Remove run_demo.sh, use planoai CLI directly The planoai CLI already handles startup. README now uses planoai up/down directly instead of a wrapper script. Co-Authored-By: Claude Opus 4.6 * Remove docker-compose.yaml, use inline docker run for Jaeger No need for a compose file when Jaeger is the only optional service. A single docker run command in the README is simpler. Co-Authored-By: Claude Opus 4.6 * Clarify testing: OpenClaw channels vs direct Plano requests Primary testing is through messaging channels (Telegram, Slack, etc.) with log monitoring. The test_routing.sh script is now documented as an optional direct verification tool. Co-Authored-By: Claude Opus 4.6 * Add OpenClaw onboarding instructions to README Includes install, onboarding wizard, channel setup, doctor check, and how to point the gateway at Plano. Co-Authored-By: Claude Opus 4.6 * Use OpenClaw onboarding wizard for Plano provider setup Replace manual JSON config with instructions to use the openclaw onboard wizard to set up a custom OpenAI-compatible provider pointing at Plano. Co-Authored-By: Claude Opus 4.6 * fixed readme and removed unnecessary testing.sh file --------- Co-authored-by: Claude Opus 4.6 Co-authored-by: Salman Paracha --- demos/llm_routing/openclaw_routing/README.md | 135 ++++++++++++++++++ .../llm_routing/openclaw_routing/config.yaml | 33 +++++ .../openclaw_routing/openclaw_plano.png | Bin 0 -> 112794 bytes 3 files changed, 168 insertions(+) create mode 100644 demos/llm_routing/openclaw_routing/README.md create mode 100644 demos/llm_routing/openclaw_routing/config.yaml create mode 100644 demos/llm_routing/openclaw_routing/openclaw_plano.png diff --git a/demos/llm_routing/openclaw_routing/README.md b/demos/llm_routing/openclaw_routing/README.md new file mode 100644 index 00000000..7c201687 --- /dev/null +++ b/demos/llm_routing/openclaw_routing/README.md @@ -0,0 +1,135 @@ +# OpenClaw + Plano: Smart Model Routing for Personal AI Assistants + +

    + OpenClaw + Plano +

    + +OpenClaw is an open-source personal AI assistant that connects to WhatsApp, Telegram, Slack, and Discord. By pointing it at Plano instead of a single LLM provider, every message is automatically routed to the best model — conversational requests go to Kimi K2.5 (cost-effective), while code generation, testing, and complex reasoning go to Claude (most capable) — with zero application code changes. + +## Architecture + +``` +[WhatsApp / Telegram / Slack / Discord] + | + [OpenClaw Gateway] + ws://127.0.0.1:18789 + | + [Plano :12000] ──────────────> Kimi K2.5 (conversation, agentic tasks) + | $0.60/M input tokens + |──────────────────────> Claude (code, tests, reasoning) +``` + +Plano uses a [preference-aligned router](https://arxiv.org/abs/2506.16655) to analyze each prompt and select the best backend based on configured routing preferences. + +## Prerequisites + +- **Docker** running +- **Plano CLI**: `uv tool install planoai` or `pip install planoai` +- **OpenClaw**: `npm install -g openclaw@latest` +- **API keys**: + - `MOONSHOT_API_KEY` — from [Moonshot AI](https://www..moonshot.ai/) + - `ANTHROPIC_API_KEY` — from [Anthropic](https://console.anthropic.com/) + +## Quick Start + +### 1. Set Environment Variables + +```bash +export MOONSHOT_API_KEY="your-moonshot-key" +export ANTHROPIC_API_KEY="your-anthropic-key" +``` + +### 2. Start Plano + +```bash +cd demos/llm_routing/openclaw_routing +planoai up --service plano --foreground +``` + +### 3. Set Up OpenClaw + +Install OpenClaw (requires Node >= 22): + +```bash +npm install -g openclaw@latest +``` + +Install the gateway daemon and connect your messaging channels: + +```bash +openclaw onboard --install-daemon +``` + +This installs the gateway as a background service (launchd on macOS, systemd on Linux). To connect messaging channels like WhatsApp or Telegram, see the [OpenClaw channel setup docs](https://docs.openclaw.ai/gateway/configuration). + +Run `openclaw doctor` to verify everything is working. + +### 4. Point OpenClaw at Plano + +During the OpenClaw onboarding wizard, when prompted to choose an LLM provider: + +1. Select **Custom OpenAI-compatible** as the provider +2. Set the base URL to `http://127.0.0.1:12000/v1` +3. Enter any value for the API key (e.g. `none`) — Plano handles auth to the actual providers +4. Set the context window to at least `128000` tokens + +This registers Plano as OpenClaw's LLM backend. All requests go through Plano on port 12000, which routes them to Kimi K2.5 or Claude based on the prompt content. + +If you've already onboarded, re-run the wizard to update the provider: + +```bash +openclaw onboard --install-daemon +``` + +### 5. Test Routing Through OpenClaw + +Send messages through any connected channel (WhatsApp, Telegram, Slack, etc.) and watch routing decisions in a separate terminal: + +```bash +planoai logs --service plano | grep MODEL_RESOLUTION +``` + +Try these messages to see routing in action: + +| # | Message (via your messaging channel) | Expected Route | Why | +|---|---------|---------------|-----| +| 1 | "Hey, what's up? Tell me something interesting." | **Kimi K2.5** | General conversation — cheap and fast | +| 2 | "Remind me tomorrow at 9am and ping Slack about the deploy" | **Kimi K2.5** | Agentic multi-step task orchestration | +| 3 | "Write a Python rate limiter with the token bucket algorithm" | **Claude** | Code generation — needs precision | +| 4 | "Write unit tests for the auth middleware, cover edge cases" | **Claude** | Testing & evaluation — needs thoroughness | +| 5 | "Compare WebSockets vs SSE vs polling for 10K concurrent users" | **Claude** | Complex reasoning — needs deep analysis | + +OpenClaw's code doesn't change at all. It points at `http://127.0.0.1:12000/v1` instead of a direct provider URL. Plano's router analyzes each prompt and picks the right backend. + + +## Tracing + +For fast dev/test cycles, Plano provides built-in tracing to visualize routing decisions and LLM interactions. Start the trace listener in a separate terminal: + +```bash +planoai trace +``` + +Then send requests through OpenClaw. You'll see detailed traces showing: +- Which model was selected and why +- Token usage and latency for each request +- Complete request/response payloads + +Learn more about tracing features and configuration in the [Plano tracing guide](https://docs.planoai.dev/guides/observability/tracing.html#tracing-with-the-cli). + +## Cost Impact + +For a personal assistant handling ~1000 requests/day with a 60/40 conversation-to-code split: + +| Without Plano (all Claude) | With Plano (routed) | +|---|---| +| 1000 req x Claude pricing | 600 req x Kimi K2.5 + 400 req x Claude | +| ~$3.00/day input tokens | ~$0.36 + $1.20 = **$1.56/day** (~48% savings) | + +Same quality where it matters (code, tests), lower cost where it doesn't (chat). + +## Stopping the Demo + +```bash +planoai down +``` diff --git a/demos/llm_routing/openclaw_routing/config.yaml b/demos/llm_routing/openclaw_routing/config.yaml new file mode 100644 index 00000000..b94dbd7f --- /dev/null +++ b/demos/llm_routing/openclaw_routing/config.yaml @@ -0,0 +1,33 @@ +version: v0.1.0 + +routing: + model: Arch-Router + llm_provider: arch-router + +listeners: + egress_traffic: + address: 0.0.0.0 + port: 12000 + message_format: openai + timeout: 30s + +llm_providers: + + # Kimi K2.5 — Moonshot AI's open model (1T MoE, 32B active params) + # Great for general conversation, agentic tasks, and multimodal work + # OpenAI-compatible API at $0.60/M input, $2.50/M output tokens + - model: openai/kimi-k2.5 + access_key: $MOONSHOT_API_KEY + base_url: https://api.moonshot.ai/v1 + default: true + routing_preferences: + - name: code generation + description: generating code, writing scripts, implementing functions, and building tool integrations + + # Claude — Anthropic's most capable model + # Best for complex reasoning, code, tool use, and evaluation + - model: anthropic/claude-sonnet-4-5 + access_key: $ANTHROPIC_API_KEY + routing_preferences: + - name: general conversation + description: general chat, greetings, casual conversation, Q&A, and everyday questions diff --git a/demos/llm_routing/openclaw_routing/openclaw_plano.png b/demos/llm_routing/openclaw_routing/openclaw_plano.png new file mode 100644 index 0000000000000000000000000000000000000000..66b2ee73c075c7c28322e6e887b1dbfe8e649f1e GIT binary patch literal 112794 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
    {DPxR1UiL;f>x11c*dq?sC07 zH378IG&WV0&GJ=baiyE09-wN6Xs*7BmchA(sI=7PApsZ!RkGDshVF{iv`e*|$ns3X zFNq;+HVr!nEa=3QM8+x`xL#ZBv&q!0N5vK$p9IKYN|fAxR?8f$IZ_#K?1nM}WB{Wb zZY$O`dQAwx!WYEk?l;45Ta+F@!rHtUu98aI|Cvd zI_4@>vmvoqeGo|?g{zEfpyX`1%Ji!Y8keAJI0e0ag-msJ{uti$6l zfSb{ED|hocrYZ-cazFQ+D=Kuro2CB<)cPU+lqXCO6@QR8IoypVfG)`X#}hVzI~kY+ z@Bn%m+b61X$TKP|5l_#MpMRyk@#5gIV`jhezcWra{=3{NTlke@DESa8lcU(BC> z(Zv^sf}!iLyRO#hi7_UGxag9LPdRn+*4(wX+<8Z(-&eczWdP@+<9g-_G@#*{4kF8r zt2REd#@A*qAFE1`xgb_c@g*3Gq+SG4?j7>8m+2J%EEXHs?L~@2h6KHM^jqoB%jumUoy{L%*)?DKA^UZQG{{ zzL_)o?RP)>B%x!+`U*QDDP>_{0qiT(uJ(XG*ZqlMJ4z#woSYo#EJ6rd+?U*LcTBVq z5lI;e#g!Zc5mQrB9S%p>%z93zJ@53ERA5PJE)T3)D2j5~6_>yK(o2PrDOA5r3M|72 z6O?N83=i99v{p<&fFQ{x&y4DJ(*VhhroP_PzYh8kN?nKpRL4L?D`}~;fCwO3DTL5E zdvC5bZ4-h3oQQeCFo781W?_s4knvGV1mI?Dfa)j^^<%)TpSK7@0NG-th5(W%g>epG zMkQ9qYHkNYu#vMUtBPYB&R95Gj+lszFo}-^CQwnEw%ut*JO1Wi$kHsEdA$C{5SO7p8jyQ;TPYmfiyL&lWM?7{sHJh^Az37*6bQVQEM&Kx@Ss@xUx zOe5G%ecKB}^d@#1I^qH;3|nmA2nYcSxBvd@56^Gi_??up#%yLEN&q2@%JRaBvK?DC zezzpG>!>5H@7Zr6W2#*omXxw{w~@)IIeUsXwwMAK0h80ZJDiCPBRq%*5J`&dTbHg~ z@!sb3-{>JfptWAEYuIX4w)#@6^0*h`{Mi?vy>aTd#3B zy+$XcbVWo7WZ&xug)m2qyJmgv{7|T}jb|imqXZUXEVE;*jAVyz=TLSN^-Q zMv`ycrQxXD&D=+#W@Qksox4kbGf?yKg!_cQ0K_fQ_cHgU0h`AYBv3>7l?7{0xHl*g zs8K5csyP^IekCD5byD6|ebVX5Z8xP~Fy({KzqsOG|N7vYuT3F{ND?8zvJLAe9&^l# zGiUzmvP(mHX!^bP)g~i5^Z)+uhMR8Mv~tzyr=GU6PJkf-3`2f1a|dm4VYlGW*ofif z73Fzbw{9yg4k82@(@BO1f&ir;%Si4bu><68qGF(+C9DQyfJ!(s=Gs?Mc3Rr`XPte; zjW-BYdEwdT?w>wAO5~vRSAF~TJ@0}GF1YXlhobztaM9d%-g*DiPj-})5RsxNBqad~ zDG?ym?eV%@x?%3FtN;Mc*n(BdPd#Pw%d_6-+PinX!9WO6TwDS%5Lg!SHgA?v#u-8g z04XUck-ic_#2>VRh#rqeQIuFryJXx1767QKnw*kSQc_Z{8UWyQI&2v)UG8Ss+=u{@ zB%0sDJ1s5kw%c#N{@QB|!wB0%K3}sdu$;hbNr{GlK1uP%l3CG(HDv+<_=$ekgTL$1 z$qGA%QUWjuLex5`;@rr(G(8C^A;5NFBA@`;WatbaPQC;IRK#JL~i#eP z)&9tV2!TO)m3hZ~yr3ZIzB?X$`suO@&i``B5>_2kLm+A8=1rGhb=B){&bspItG901 z`qGOp649X}Mm+lXV}Xi_o2O07&EHn{x+KtT%-z|>G{^`5z|T1|@u;zBJ9ZSUTetq# zU%y+uvM_H;-p-vq(~vbsvA>jASbO>PC0C3|04b$YQO-L4gez~nalo*lMZ0%jcfp09 z&!2Ct((C44tWEZZhz^J2qKhxO;>s(#<>c(#u;J#r@0q`7(at?30KgCl(G)^McJRP~ z$BrI-z{rtVT{FJv`h8Y^2PABc%>`g;b zVp5B395r_cAplsU?a7l*nf3bXzy0=Gcmm6&5JE$b*bN*ujkt&uw0lRU_Dy12Omxi9 z!SXw`)4+S5u&!}{sx_GmLcl61x0(h4F~EFbN`Uy=4*?EP9brpBfKn;S?IW-dFabHo zh@A-mdMj!-u8O8=jWxt6?!-mGK=i{@zy!wa>eE*1Rgx@e<`+vl+R={as8QNwD%Ce=e#$QzIKxmlZlmOY6AKb8R)dxZth}DlzEU0w}DlgqSYsSRE!_OT(;TB2K zuFzdX=+gZ#k0-ga5K-Zdeg{mFBy6e%0kUAI>ht%n-@JZ-Fm-D#97`+Jv=0DK z@vil6&pe@fpYh|4zAGWQ6WL;hfJi{2C)~Vs<6_ecwq-NVHb-DtM8heQPdWdB^9$Cm zzv|j+w-*;vjb*z6FqJu;WeHK{wbtiHp*of)<&vob=s?`oZFWmRu$IK5(*G&xejo)P z5!eUFXEJY3R??=*nxa z8$5bcK-U*7UOerlo7d*%a?ULkm8z;%QZ^zoO;gu(DP{K_Jsx=Q!AU2dR8~~<@2$_P$E2i2RA2#sh&u}*0C>D!MTzMV zmPER)$8|CyKuk$V4%?Crhcm9iYmk)Oq6C)N{Oe3aOixQY{me6$FJE3u+SY|#3alvi z*DeAJ0D{eVclK4Z%>#T*@Ouh0vJR`X`ZfJ*)GgT&5QsF zVgjPHuMa4Q+f1Xf^^ya$qaE#N2qGdWe_HtTPm7->l1=tPvhos^6m9tUol7R3{8+Dk zN7=RcBBjXbHD<|zN8>N59ks9`zdCgu7Iy8@SQHhk{&>!%L4Ww{OpON-fxoKgy;)OE zKIhf0Jx0Y}A_LZ; zc;*XeH(pqPfixSO9Ryp@;tG!3T@B=bt;} z+&}WSTOV55tMi!SUgp{7t}Frw00uAw6$lsU)?`@1s~sSpk%3uKFGooL3gE%0OlO{c z$W!W?&PfSOF&}tLNlEU1#l>@;f8mUOT~Zzh)IQHdH2?eW?zrOL55DmHUH9Cbo0~g! z{J76%zxCLR8FFt8;V|U4GFL;zS=>NW9Om8ADR(Wu;cD#Jod9@ZLhl0x^*UhC_{k?< zzA>+KdXY=R3^Y%O6eEqeq z>wWw7?bW+??>>DxckY~-nVFcBXo-d@E339{+2Zq6oqf(Zy?XTc_Ja?ediJ@6OP7X( z$q}WL3gd?zc;H!QpMBKCiQW43Wr%Wj32oR+g}bP<6nuVQOeQ6|2lg8`cI=WB%L!n6 zaq$OlzdiNlo1o5wA`}e8ZZpIf^ZERKzdtoKHO`hzP73dV1@=)VRtRBChsLe>vgT-R zwnf8#we-A#B)>WQb`U`gjsD{Z+eLk9zp~f%^16PEl0TjB5v%NLH2? zy!*!4rV+IF?hp}xnE&227hJheb9v)c&>(VE>)PY+(vmIq)UT0{!W6=o^U7&e6@~FP zltu1r&-?M+*U$RDi{?o{TLe(18S2z|=!UiPV>=v?@dJiWk#@0Hglkv6x8T#;r8MoB zDG(6_{3Y{VKj+v}pXxj4_}Im6k%4;1*LTo~c^ekST~sroZ4p?EvGnxxM<0JIH97gt zyYKm72&xN>1w5g(0(2w0=16y{Xe~u3JZ44+Z>8xJMXYKNu}jykm;d|U*Ij*0 zLvAj(uPCP&5k-OJv@3)Vz$Du_^jKlLR?6Q>s{|+FaMjghcP9q4!U)t-I~7u{H}w9h zLyzy)5CBK)r)Yl~dVLQV0F!8&FdYm7QgS;+A{C$$SMp2)8X74ABq1B9If6h<)|DZE zpX3;)`@=w0kRrZN9EeUt31E|%4KcuNEt>)A9|bk)jJ4i-jtE@NXq-+xjWr^8qIxiL zzE@vm2=1ukp0aoOs)CsrkvkfJ)4^&l0TEnI?3fWPFRQ}$`p)A znl>78STyK2AK$_l>(OsQ{Lc3TvP<`ojPYvcvNnk}L||D3^N&=Yq(o16}OmKMI4?p~HacOC7Z?T@O15h~z zwK(%kMZGoxKpB?S3uK1lKka&@$S3maC0ex0I$ek!;YNQxpVg+gMV83 z(`~ojx;8hL00s>jH2pvSIqme*GBYzPN=pm!^0sZ=_WSqWuP@k9uw`rM&Yij*a%hg! z&e=IR-MeRI{=972r{66G#;i8+dcFTQ;pp2hyFA;Jd+vGQ*G1obye{`!Gf;qR7%C?# zt`tz!afd@{nwUEmn49hK6%_w&N?|p7ZgCMA2CGBs=(-*V24fUe5>Y4^3I&5!Z;VHZ znUI*Es;X&*r`T;#U|BxyyLa#2=aKQdZdq3mk-)MkgfKlV-AYDjOKH(TQZ}~-mIXv) zj9qxqMQ^=1`?p_zt@mv(7_Yg$g(xQO4*TXYc7`xF8Z~KIY=U1(8)L^}1OntJY6s3D zWfX~_1YB)Y&*7}vuQo!bV?v1H%|wF${Z;Lw2!!fZ)08&JuPm}Gn}?r%5I`nZIz{+4 zMj(IzaG;`Pa=yik_&#wXvn91+%}G%QSa0a96PWrBKvaGv3>uXw0TCLN1-G%sa}J5# zMoi)~6*aXHoztPAL;I(aRMCJXMSuSC{qsaNuf&MRFairdzvuj`7T6LDBWZC?Lvp8?0kN&QG^q;=>602tY2 zvYEgb`{nx?TQ@GYU4l#`SN-;Ox1OVV_M2z}4M32T+$HwIGdmr?xN3`Xvt;*%kKXxL zb8w49r0c!~pWe}_^DwtJEzZ&yFmGa~E;%E&<^9-Z1?6pszyg4@w6sevyDV5%ddtnz ziYm%$A3hJ@9n76v+bN(P^n{$d~mm^5L+jF(^bCMPG}Jng|}pJ9x> zE%h5zcV^fn5u*6)3;gkyfjxT-P0yIWr)00rOZ4ONWsAT3A{YvN@Z}eF#ru4ArL zz~)`kTV`9tutPd<1&9F1eE10{*bRgXV2%tep)f1tW5Qj(JLRBM39mI4optHZ|EUM znw;Hm(|en?yb-MUjZ6oybGZ8?bo52$Ai&HH%Czf^t8PYAq!0$+Hijswo6KKP;onp0 z>5x&&J?Xk03^YRI5( zogB`1qtmTF&*+e$X<8)KFP0K&f7mArMnu-#u`7phbU2;PYp=WRUzc3$_xbByT_6w$ zg+dO8BhK=T$UVw76L$i`dR|*+eQxtP{UlqSXh48IisocYZ)zfTpQH_Sq9G7qt*ILn zuX!f|=tMbOb0CJo&7e1%dO+Hftr;T|SXS5Ssb~qv<2(}s=){!+RL2(6h}2`<44JKc zK$miTWGcBG?Py0!LXwoi_~`9ROvB$C%P=BYQI`M32R9yf>XY$HPJ}cwIt}28DomrD z1CJjB;Ba^yuB3Q|Eh2Kd64xx7)7;h;M6`6_6TSN#10W#|r4Ipmycy8q9f(L&lokH) z^+U~6J|Zmoe0ulZMDB%>1iww5fQJw{`$WC`px|B6F+bG(^^#` z00Q00T!*7dHM3h4zzOICv=~ugtIJhG2ml@6M(MjlR+Rt&BIA7gvB#!lW}>3Fyj}ue zh$Uox7LMYvu8(|G@{uQ9ra4L0ClZJ#5DZ>&$t9OxbybzW{wO;FmC2~JgiwSt9NbsA z?Pfp#DUEv{mY;nFz$Cy9kPnc*UL!NaBuzVW$~k3aWxxOa`*SZm|H=IMC!Ks!sJP^Y zsplOya^!XQPoKYVVP0WjK-U={2S7vtU~vYFF^hjBA|xW9!)ZzwdU~Q!3Z50j>f-5GmIT{q>kis%O?{7)I5muCBl&VcUKOyL?w-sYM+0-n- z08wF?Gv;u$COJn_P)TBw`Ip9r0M;4$9%06Lj}agQ)I(7d8E-gIBY-^9@JVSG*UJDp z^Dy!l>(mEpPA%@390uTEIKk%|e0>!GG>4aSwT1Ops_I(t%dD`eifjQ9RaF(OTm1vQL@nt(C@7=!AS%w+-rfCTuN%w=SjfCPXvU|o=P0oDU~A|R__vZ6Hh zK4rdC!|GYRl>y{~yjS?=QHWbIC?YB4?>{WrdDMh$+qQl9(MJrCqy)f4B6KcOdBal> zA#=#DzlDOGM}Xo67J&LgT{(qu5LE#$V^Lih>;pO!w1*6eM1cVL2{pl%0&71jgGvh8EcraVaidMj-UV|0JwCLv%;UZTbT0i1|^RV@%l zEMAEeRYa`D;gJ9egjpy=U#7$v5lKL4jHe*m4fWN01mGjNPUr`7mn}YM1ki!=hTW2Y zIKWWVVT)(KAQQ@X z?lzpL>6t|kka5+U*r}pyd&>oXk@Qs+=PrM@d4(KZWmpqj8{S5jbk`UyT~gBBh&0mO zAl;(}BHc)LH;8memvnbXib&VD_dC1xYyZy9dCn7e7}Etkoc|6)Q8gRh!7bM#(3UL) z!c*P?>LC&(#R&!FQSN_tzryipcDva#NOfrHgSlEBT3eAZ1?PF6T=lwvKKMf4*UD4& zksLqbtT3Rm+GqGakXqA~7Ij?ieKbJF$p85;isgdj#_Z9u>DKEn{h$Oz6$efO-a{$l z<76%I>^;+v(t_}?nv8?dc*1bk|+*6kP+&nez%qh00?$ec8 zV33K90vAA+z0Q7w6+sb*X+GCOf;48cJUWSp5dXRX?Wr(8IgzHwV{G6mJDR9YmZFOv z4Wd54k3*Ece?-5k`3;VOY4*f1@qR=e_dSa^au;B~U+i8p;(%Du(Tlj8UGp4HtZQjN z!cAaMrZ9Q+`CV-CfSnOWEJ`$|6A z{N?_grS{NU*3pCiMn($(2Y}jx1Au;gui3V3*Y=P2e!sOx0EcU!?Gy5`gSVH8qM2%` z$0plCVMD_&&KQ!-U1pYp9R+Nh;UO9@q5bLG>JI{G zD4;q1rG_0Z-a|(-yUbRK1LS}&yWTrY#_@SV-I#B~8V4wXIZNU!pw+4ksJz}nogfVQ z)2OA7y!&?H;sfGz6iWc1*1M6tE-F-b%^2t5yYW{i%rNLX5O+FaLJRIWU*uTAY{2&O z<|6K>O${gbLgdzN?ot|OogksU(|ggmi{ZEL z-Vn6s_nOkAeY%A-;cMGB&tt4rQ5+X|`)#oO#Q}I@`n+-@>DD0-S8}of zVFKwp+xp+*O6(thU1UDYMJS<3tDTz?!bXoqB>}S1?fQQpEPEwpih8iHyggsl$vlW? zwl6gdn0TU2&Jlw9SrtTB4SH#36hV)GiT zeNmn*3&-rGe^t1*CXxL{6P9Wt?~^=}1#YVh$&>Hg5U| z3kojpUVdLc_f@r65UGAHdSIK`0+71pCE4KO-~RaH+ldWlXfr1<%-__DgK^N2;gB+Z zF8oZ7`2>pyGJPd?a`8FwjM)&>EUPZtIy|#GeL5X+5jvin-ehm5p?9+mBxZGr*eaew z!g?|Q#s;T~25D@y-aWF2y5Cgt1-z4MFhW0L3=qY(yPseyi>?;v+ty7Nc^PK7ANG$E zq<=rZ`kRUi2hThFL6I2!Q_BNU7ohV#c4u+9!v zMSZ(OUyz)e(VK+#@>Z3<%tU7ZR}K#@ziZ@mJsytgAGo6BAPbR(lS#f*%EGw!`WK>%Es|> z_&W&`G@1vv8GNJl)c$7R<5fjUDk}(xI9*>>e762T1K`L*z`4;5*KZ5^tgsgQa>&F> zH8+wMD?5+H1W$=Tb+`kLeXl}lF4FQ@j@iEj&)Ys}2B`c%OGm518{P!(gu?1#xl?GY z=;^V~llRw*LSAr!(Ryxnri-M{Q#V;b{mM~m1Qc7Snna1V0M|U+vM@CHCR|iH%>7KI z`}wqBf}P6npIEbbd9Zl5kc;8(vf4;w@0}N#Ye!c7k8Mk1Df#SPLXd*?_Gusr3V>`L z9uAS`@!2=j>k~Ns=aHY+AJkoEWP|p74UK8X9b-I996m{o4i^zvn+C7dkt!!(xI~qm zMn8#-^H30uEuPkTAVFNVZZ{(l9!M8e3sWkC?WGZ6ZX--Qm`;v)w2+?kkE$D$IWV|9 z%~uWh#({uAPbw$VO-wXlo)fCPDqrUHf5qaHZI_A5eE7yr-dBYCVYaC&;B|%9hD6o5 zoXAa2z##BtfAGj8k#Ly}1RdbzhN)p(O^~~k~pO@M|FZnguAnc2ols4@s z+IfT5I(T^qhs-Mb%B;3i+OsxG_WT*L;^>6C1?KQ!7^XS}V7vIsiSoLdMsuOC0`yIp zH&knm^d~M9A$DfXGeHp*2SQdM^vJYAMyt6QfY)QY*+>JV>(!nO^Sr58#tDyU{aWgb zS&&=5(MocC$Jt)-J?={%a<|!Dn#jAS&~82$tZ1ptTxP6pM7qv)T?fu+s`63eM}q<4 zzomvkZ_XB*%!4GEbWNkx*VNt$8IC-Pj>>{lFP2x7}5 z9|nXkNOg>`U-A%3@K|Yf9X@;@^TFXO{&X`$4X4kHksv^j!6d>Sf2K=^)RbQ=!@bWa z`Sw^6Rv48#RP(h=kR@(p&WPsySj(K;7=gGT1yo44l%}f0Q1Q47U+AmREetXDbIa#m zf~y>q{SNG4dvQ8ow89IAZvLDL3^o3@iojl;smE(7j1@`ybcz#R6AcodVFCbeBBiwE z51QW4f4PjhzPme+B68cStgyQy)FCLPM6X)Gm${$+*{Ew_=|(_>6vH*k%kllFz?qnJ zsnHr6fRixw2E?Laq=YrYj=>sYm$tG%GKP9;6x7TaY>8#@tQ8r()O3}|$AN3LzH0m2 zVVE9RfJjGl`w~Pgg8=nqVLD;WQeKzi7W@SBHk- zZ?u}{Wy{V#_1Q5na<>yj!+AU{BR2$L@CHT}bhBG-F@TK$#>%cg)n=BN@6Eu5xTSJx zV_v;dZyX#(ny4`#w)kO==(8F!K)Q;F!Hxti6U#D0rel{CB=8L_##MovyEY7v z96zUkH;7*^FRisN40>rGT9pzXP%ncJRQ;mZPBI&eg{KORi5(yt3^*RhWfI<-{bT53 z&~^9pWd#NXkp=MfGgNrd7pML8?=rJQCjBMcmaqbD+o4JYL8Ox9Rv4}+)5EVrgI7Z6Lp9x2*Ln$GDx+`8?QeVY}2wwv2GKBiV)h_X?7DKxmP2HlF}yvuYf-y z6>Bz`>rgd|W5KeoK(=0SeC4s_XjI-FLW@r$-{ck$qa(^sdqn+@1rMI%GSxZ(165Q7 zAXacdC+{magA@g~h0Eu-a}B)Rpp^fPk;8&UZY?^P>NhPY_m^x_9cT=6_%w|h8B5B4^Xzk>*IHZ9@&3iEKYAA+E+Z`&Er!4e0Kl|Y ziDVn5hSq%>p4qCp5x~&k=n`-g!*U*eJevAj8OQWCB;+GTJ&26i+NF#1QU;6aKpjD% zgeG|0!fI8x6#p>jR0Q{|(9Sl79GC8w3Y5>3EIwe8H%HXS7RN90BDqqZE18IxczGe%Qba*W%CdYPX&a_* zazqR1t{u>6UfouPHB!j9(sEX>{Ui8fxHZ90<0?n6d z_d0)?;NN7`%VGikl^{yw1>ylq^LTz{)PHC^3_^38OwIQI z;RxNFm%rSaQV4$X|JQbZm-Km_%q&{*d&YpsuUkRV=7dmfBnuV$xh@?vs6?}_6UoP1 z@muw7^?-JM?w2r3e|CRig&Ubb>MM#b`py>GbEO{q^(7YgM*z)avc?Q2rGMVoOGnj5U2Go0x zV*))nNlejLYna}YI-*ylN{_MB0RXrnR8tePB>~riX{q?ydU|?Kl00yPt0XKHC6$r` zx3as1Dp(7_R!I>9B(4-ZZ#Mh>Bz#$ICNp&)4j{0_ZcBvmfnya6)JkB*u~MVg7O_gc zvT)`5Qt4B&;c_yJxa5?Hu;clqmW?xsS@)1q74S^>b@{Nu$lw%bK4Bo;_>{5+7T+`d zbKg;Lq@r{7`u`w2Lh#3%WCuECgJahs^*Rmgd+&}~Id`F?)m@ZTc!(lA8+Q!8lK=p~ zv#6R{1VZ1UT!{t*Hy6>f0OD=~gULXEwc_ub>Sm-CL|750qS8CBBi{I(F|A_3B!NZc z{8kB_u2&QQ;Pv%1+smI~e*Pub?IPLmOtFEr&5JzCP6!c%h`L|QC=NxGl$S)yzZLhD zL@%MI^O-FhiBm_Q%MVirA^!cP1SVOlb4|)}P^g?gPxhO-h?}X=`E?FYQnc~LZ_Q)q zzaC7gwz*xnP5DetW9R}7CbJEUjbB#`oIPIOovFx-JCSmV@6z~Uul7_KuWeub`7bd_ZC_B^xL;Fg#iq%NgVjg)+2=r0RK8Yp{b?i<_hzJkfAMlK2Beg^6Fc`1iz3H03bN7#378eGkLROw%)4@jW*5^4HR4?B;5QWG^AHcw*R_+O~Jq!WEj1A`nOc zg*0UTM`l==%gch7zgX7qHC+R-`owIUr8>Ko4nygIy5OEH{Z#E*!GhSim7n#in$~w# z`YHOB=*+?^S^YveqLOqg@7ReYE6|0+K@P&U>8`~crezh_7(n~hbd~ow9 zXd>cNERU^BYOC60s$j`fDs(%djq z9*(@eKfNSV(tDNn>cV<;>l00^dLAxAVg?)FeAar(YjK&z>_6x7GaNo<6v`HhM7+yv zUA4PuS-k)hGx0N{zgIEfZ@#%D5Yj6R>Q={`<*oiaslNSbAu}__JiD*v9Z{Tf=k>RB z&((m70MRyh-K1sYTIu7FV6?=Ex!Qs~EoQY1EQZHyOi#;EYV*UH+G~U@~~n zi%`7BNc)K+BX;A03XAp1P}0V-lPvthl61(xLJ6F;zNSSkju-odk$T+SyX_Vgi8-vG zRIazjL>$1ja)D`U34tFBNg?3{9ml8;QvG|?mQK&PBE?jFREObTgFz5T1oim0b6w*> z2lxhG^f_r0mMaCr(4$XRf&EIEKTe1kszGQD45+cyTY4xFdiI6tC z@f(`IhCz5`v@?ErtWefF0CymUolO1yq>-NAMZ*f!XUwQzEficR);HOAJbB4<8A#`g z%Zy8o=GoAtoV~*^K9mRpPc|I{bng&Db`3{l%p66?n{h}l7%KIS-%NIvWPD@gc{jW1 zuM|%q{S12IZP~x|Q&!WIb$`0)EiN3L(ahZus;n> zKHwt`(eU$NnnE;OBtpjmSgf;p*GCDsb3K14c$jBOV=wxfd^{<6d6(|-Hb6gWm{+B} z3998&=2#aQF@rTMSVhZ(IHD{)YdwCqhL$UQ`iJ(wLBx8l?1NQ?FD!r|MbU9ZbI(G* zh0>Gj;cfn0e7F)S&CfXM{}?E_9zRJd!UD9qnP^SI>5;?AK4Ipa)m-PQH@uK2yM#Wl zYQ=on=&w@=8A2FQvFZVL)JAix;@D(d=t!$0E{1Lj(TzKSe#wN_dGKVp(a?<`Sn(k1R2lq*?qoNh4fuaB-=X zC`!Hg<|RThL|PmFD%f41NlFj6MD*6oeo*m{y^hAArYqu=87#?_?z`ogSFB%)$vP{0 z%0$I8`>uH0FWE!J?^(6$Q(ePSY_W+V4prE9tWD80SOyXabG+g9_S8W74C#R#llR!1GCgIED z{qE-0_$)dJ?UOQvRITQ{`Wr`_UMFrWycDk7qqLvom4lBJ0UzZl)NaBdqC|Zs?E2St z4!xu|z3hMDtEz*C$s@7wK;B8ukIl3glQcXRoUXsP7_)VopoRwa301A!I3M0+l|QMg z%(Cuc5~c>+sR~~>z~v?dQZ3;Q>v7~_ftvxhB0FWYx9iT`-tVb+r3K&G!ZH?X^zgmk zUFUfbEd62B3Fk!Ix9LHp5%t zHV9F=s?6plUM$)y116vFky#69clalqnQhS1^oK)D`gOvr>Vv`3+$mGWx__5Vm0}XN7>+*+q}8{ ztQo8ol}`^;n4X8!%eQjuO^Haj=(n>J8#1Zjx`BXU6Q#VL1vxCKdm{bDIo~lGa>Zl9&wcK`q=?o zIV+u)Co2Pj+G(+FfY@tjRi>TjzG#)VyY`*6AIm+NEY#74xcnKSwkHENhM=FVi{ z0AG^xiff2sc4Gmq{hJAQsC8^VYk|{=Nkx2{a11Mucp|k*;xpjh*ZTr8b`Nl?yLP-V ziT5i+{N$3@tN>}c@VgPd#XP^A!ycwANfI*Zlmx-Hs!GkAw>H=$Y1jY#l|>wlzmRQB38+gWN6My6xQ&~a zmsDG3#YA<{4H{KlOHggLtM0{2#o>Y!xKQjM)+yeDc>jgJfk);4)>{VOY;1!F8AR>C zzp1Y%2$Yzu?vrK6EwuM_6dpx(27Slk4XU{H{UZ+2i@#h%88DzA_dy;GED~|yySFJ_ z*^K~ErJG_%P4HCWVB0~*FE3#PulikLe+bB3qP$(jgjyc(*ym08qEW{Cy~f%6#3VP! z`tZY<;Ff@VC_gl<@dame(*Yu5<@DGC#|e<R<1GKfBc8I0Aor}1{0so?v{>I>^*2LN%tSk z92$F@{;|9;sl*8=PrnbvPUURGDUiFb`Yb)a+aXl|Od5D)G0IVVWf1Eoby(al(-9?;*V&ibe+J0 zZ6mHLvd*3xzbf)QzF^vF*)*#{vDd+2Du&u|*OI4p@Tbk-|AX3-F(%?!+i zm#^7OARggU{5LXx=C@qbUwe9yh%e*v$pL)V--D6z-|2Zio_B-kRWfvIZr}Y7J5H7P z$e6O018mG=BEn5Xiyj>3R?C>_9Q_cGEzdA2l5CbiJf3TCaSDP_pPd~SIjj3uIWEGTi-Jj{k_1i(^wa&Y3Q2|H#GcBh9S4l7 zS(l*V##hr##Aj?h{;`@~)e^9Cjg3^V?!Er{J$vPo73N$p{7eup`DFz_Q|tfsQn>*1 zS{oZ5LYQNqlI>Cw3J02m}Pyg)OCJ*vJn>Vq4) zP|Y{B(*|}+IG@59mmWJOi7Ir0RWHMnRLSO-n0#-a#(%pDWwCK%vA|tUx;1?KWg!V= zF4zWibqLt*#dRUo(LKu2Ux?V>KJ;fwV?jr+zvIvxe>_;5F2O+#^Z4aoduWYz!y-vZ zpd}dDZ7{n{TJuG`r=q}ru!pyw7l!4(Qobgn#p9U!}-I`4HV!jY; z>fd#EPF;yculiQDAOcYex31GvEk!m0Hs{S6&SnXuH7TOK&I} z_T}_&f~#y5zxQn^ht`iyg1Oq=1Q7SHG6%CQzwT@%US@u4_c7M@PnvK3@sU6ojZA`nbnnx!m<BLp?e$z2Z z^5T94Wwh~$IVJYF_@NVHozp7OKxzU87|X#)d@fYUJ36)(Hv>KW;ZHxlRj_ zeIrF3jASwsf+R=nxfE8yp#7Ffn&f@^RD+kyGAVw_omaSxIDkwS;Ta(OTG=p`kBI{v z!P!jYGcHb_JuLr*{K+KeTzUU9Asy$Jfq()hKkgh$4kXIcj%**alXAKtC_I2>opxhh zd=J$3a&_vO6Q4sBB>r_YPv~osa@9G?2l6E;1jzuo!w)WAw)#h zK)|n4v;jVcWb78FWYff0kdnXwEJ~^V>b#WPqL?act#r&t40@(MCbrd)9d8OxZZ!FS zSg@FdZU3EZp2}}`Bvs!=vx)w|*X;;mEf6f(*CD_dzepvj3&H3Z_7ZM-$D*u^Ou*UC zX%B1oG%#Zub>SYiEw2bwAYhab4;f&$s!|38GTBUj>facxOTA-F57neLLO=wtzcY*7qXQVUFZR0M(#Mi;&jOJR3;vW&1$&VcTeC7x0>zYz2{Sb&~ z1ttdYqXVnBQ zx9~-ExIf1TrYK(P6qy`=(~JMsk*&t2I9Zmhr#*x&_+Azao;f-WB2}3l1<$umyd|zn zzhAb_$>6pet*UMzTM?+zz}2Ox;FS^`?=HipSV%^|J>C&eCHT1rCF)MP0{~Z!^B&_nP8TTX0t5okS ze{PICphYwRZO(*MFRHEf9&b)Chf z{5_s`&a?B8yU;BqxqGAhxkALGpbsI{e9~zk1|OnwaK{G*HSKc#WwB)C+7OAGIu*<{ z22gXfm)O*ms-R1iJEg$?swC=xJJ!0`0b+=9tuHo%w zvs**cF-~E0g7}yBe*T9oAG|Nrk&H0eW)2?wp~svoiiSAKU90nA(O<@?p#nWth)MgY zv3YV9HeYgWclI@*est_iLA^5`b39R-O>0+WpGTBj?M0{)o*k%gQ;dP(mp>n!#)-e+ zz0oq5ACkTv*|gtE9M*?Nrcax~e#m8QV6m$CJwUFMeI9^tNkW)u#60+WGBL6+So+&| z$b0j}UFDXwq;JaZe%k`<*4e*S@$HflWVEFRtY9#CI=i8%Z&$w!#V+T6Ub-b;*zJFq zOvorODTBebN9%CvQiJZcgEoBa7oTs*ljNH$xO@3Y!PCaeB82t6|3*-wp{;rWa$cen z=N~K-;*YP<1o_vLLxt0`@`)RLQ#y6@*r2&cJj19Of5dqds8klv`f}d<4)q8+CPdmz z_R`I+(fGaAvxeBkxciuxQv1)E7;~BL&znlQC6QnU6o1r=QuN0~p~h}rv50J&I?k7% zQ^WjUfy^3d!iV+zANd=5l)>G^yMH9D3HV6tNwR)#C#xy;4Ze4(*lvnrFJ#E~>rr0KSfyp!t)Js=n zw!8J?$qTE7(X0~lFe@TRO}?n%RZ@fh-g2~JeDu&Nd%YEhg+oJ^fAxWmkV z^3x=+?2)D1@y?NSsRk;k@b6K z+gN1Vt z=Ib>6b@w}5In4a9(kHxJdgFKqW`v@`VGTi_OAZ<6lZ{qNa^}{+h3%j+EI6DMDSO*) z-%`)*w+Nyb>RR^ONN6_eP>Gv(OjGQ>^(>0qi{0Fn|oc}=DoFo1ZBaBlb zuN@fd-A^}>RHx%@PCW6z%{(5)Q8pzsJh(;ss(7HnQe}@?{UiG0l}AT29Y$cLx3I{ ze)<~QsPo|)6b%P^WaUchA*e`@O3D%6kS(M@mAWn{=h#Meid#3t=8^fMbN8)LyX!xq z+Am2S4_P9F-X?7|2DZFdZW#o92?fSTG&2?&s z;E&wb*6K@x(P%rs#WMV!x0_Qp5;sQMewjdY3A?qKCMCl&`q8nvcPwMIs776Ai3$>K zn3Y1?0f++Ak4yEged%B z97wA-0tDfn?5mTf3-?OkGU3BQ$t27bl!Mcy&B*qo3k0N1o;T1+f`5`B*6Uo<|B&|T z0E%@NRRzn!XrsWOWi(7LfiYE>{jzDz+poK# z)Cs{WOdO#$3TWo5=;BxqjZLELvAqiDPA*jMW+LwA!y{mY8>@;u{GsiB*soO=va2d# zPzJJWDpH5eg-nFu)SP%0X^f?^`E5;MuenXF2izMLKaCnz!cBFgq@=8^5BbFIe+NFE z@dx&Wy~WTSuS$7Km|Y|_kA%Ex-j2DZ_S*Z`d#=%$^t~*apq&1T_^P=$9-B_iSj;bL zC;?dMXK74aX`enfwPvp#$lJkgUHgg-e=3yzMCUhDUz zg|R}%a~whUmxr&-<((qabs&)=r^)l8{bfjt3~>dRg)TnVDn1=};&QAgcIk$3hsTLt z0=)l6*1hG00-s$W+;LRa9?$t}Ctodsp}maJONg*OFbMgWriHc*(t4?jiro=1kL`X) z+wcYoI+nPm#y$aIE%liH;h3XjndUJHhVhbPXfc2;)$`h4qm2aNOj@ zpe+26vsaOx61^Hv(fPD(0mr|F5e5?ubX6O53T2H5#P0scIT5Nk5sE$WadPRE^q}8^YX~H)I1I;5>b+hA50>&?&6;An*J1ex*>90UIYdqiX&j# z-ny$=lFT&{3PrF2k6oV-DHy7Pn6TSo`h;VCRBAp5dct>qG1{V-a7OM8naP%E{?v^I z+nQU5f^@3sH=i8^;@3MllXLs&3usN*#bei@vrjvlX?p+u{V{RyLy~GKb->;B)s(PU z%Eu%nM+g1wwW9I&uj^iMkK@)^Sy_)vZ2KMsd9`2&UP0V3A$-i0uBWJHkTs{zb0y-n z8PKP|_>PZHK~GBzsaVqm0JmnoZhVmTiEx^h8#fgiDwpuWya)-VR57^mr}>9~=Dk&U zGW7JlYgjE5MH~l-Di-q%eR5PUL)4k_iDhePTsyK?gHiF5UWAq_%hF^M@79(0w?me; z`dtE5WjB`^T7)VXd~KuQl3Janb36t9{nzQ9%tL~EnPBq${ZENMgO+KZRyv&4y#k*K zpFKB_kaj|m^?R(#<_u5&c~Rzkme3M;QTLW<4jD+*{uAeZ=<|biEXxaSoAEVoedMUx zi0e)~ePqp<73wSD=QXmzBmJbE{oFQrm;aLzQ!PYLoY9o(+sCy9tid@JiGSg=aZkP1 zi@}c{R%|=HJ7z(=d4RZOQ`N>v7lB#~kk1z7#7>-N=>cIEN56dcN5a#A zGVtVwu$voeETd|I0=%&QYQug^i0RO=n&63ZQptI*P*}?E|Ms)T1wPRv>Ue#@S~Ohb zH0`@^?((_W8z}%s2M1qoVQ3vM3fYJLt0QH73r6-OKjxed44rH`82?K0MB3m9p-u0P zp`BS03F7QQIEY`1C>kEjG^`aSbSaeoCS7mecBOj$&_S&Q8uN^EdE+&CHS5ITRVJQ( zH@C1l`FOA5p`!AvIGNa)==30|9$xnut6n8OpiNJE& zD;rIir4AYF0~Pz%$(h@-O35dUl*b2!hIeQM;^D8C*tJI8fdNeIXTn_?Kf*{3fe6t~ z%&PP`a)fwJ=-bfexkn^mv*bAE1d!b1x<2JeNCg)Dz){1+}T_B#Dh?VV~4-2*e);0}UozJ_AB*^VfL0)p^cj(NVpw7(E; z{yd%_XXrCXnDx$4BLKrPQA0m9JfEpkN3iQc$9oB016UY&8MZpDtB5`788>y~pz(G< zBGVdgDk(sy7Fh5;*$OjXg$6;WcwzWA1~#vv!5O?fC|4f^N6dz`B48}VIV57VZ4K=E zHmi$y-dD}~ahm-PD(tI%>(TH4d{7NBTdKe4)o~EHJ?eF5`0D!tgVC6H7YlH?85pc; zZGPw0Gw}O&IkcIf?En09MO>wyk{f~)tmAcbYQJa5v{S0iI?PgjQ1o{C6Q($Vm+hg| zWY4*jOSc}_n+h$1$45va!G!eHA52BYDXR91~b8@Nt@KR{Huk^;+z>whF%FU z6y)`eiNB_kHS4bKDGVoJ-2Y{yh6b!m&fRu7uYBo)R^HDzL}J6eYIjdpBJ#Lf76H$9)UxB$}r z(2l!^B_oYV0O2zI%PxF&DYGwZy74ehhH1r&#jK2nN0VvCb_?nDp&Y&;5Ln8Dh?^+wR7y)J;fKgMlNH9tbmQc`e)AAeNuRr z{-$>BciK`C7%ocADJhV8N-o_8atvE&qmd#NltyTe=ZYHeKUa)M$M#^cuFW41weZ&& z;8^&5;(myCv>9#jM9YOb14ZkYI%ZwJ{CrMv1BHd*lu~>ip155zr^82JB9oN<`t_?M z`oi-t2Zl5X`vr!SeXHV}D5w{yn=&3no%ccLh+OhJf- zVe|$?p-J(+JiclOGMZGi+=sk=t|7}kvnYZup{SgzLASvf7q7X5K$=*h@|HjBd^_0I zfYT`t8|(a8LWYw!v>c%G$e0v>x7?`kW&<7nFp&-JeSP@(>&r9929&LMlk$xyZ;N)VpfQ*3%7uFhrygsI-2G5W zs6BPQReA#0=HHJi=Yoz{7kzDbx>nN2k}qA0hy#I^u@iM4ofvoj_1omf<3otG$l!D} z8;`Z*7QwJ}#2p%WQ#B|V5r?9U&W`y<8l=8cxQNul;witsXT#V*4_Xn0rJXz}4@ zs*^C&hIKwflcY}k;*tGUNCr1lBB(t#&`}MsvdCzzSt5>OqG9#c>s15?q^$Tf9HoXqpqF_pGVeG4F{z98o3Xhg(W&~|J`~C3rnHyQ2sUR3~u+q(MRg> zSl2NMyoXD`1{`EqFYxliTZ-UZC4uQBBIaVj5RtkLb;J_y_eS6Gt&AG2CW?uT|85z- zYEa@fDx;f52+F&aKmEn&r}%NChP6O3sq%B2h(>jeD}6hmch%I-d~c*3*n2s}sjRT) zC8pL(?Cd)!TF(|f5cU-rv!Hd|L5Mi+HZdz;)2)^7j7GtM5A{ocvwWf*tz>EU^H`pf z7@+i^8z&}cSDm}cZTWK3m7ljo6s4S&bc$!{@opjp)(h+^q&6GVyAY?yeNkZ`wF&#KJiwu0%fa}q8faWI>ovSb0;B!{Paopo(19-fQe%?~IY@oL zx%rzb2_+ZBfGxtC+L>&%I!5#^V;DFD$Ir35zc%pl3+3%9aY_`%xC6=0n)b6FcKf3* zUFO`TsJioX7rn`^2B`VTip{OgD^0dD1u|+cyHTY%zINLoNQ%txnT|%H+$IfN%hX|@ z1n0r1nCP(gS?}Y=*?y!L7!_RXggRg^p)gkT2RfOydUX9!+$ZtyIT=nITFE81>w*A} z3+#UJ%i@@qe(@0LY8=~Q6z8U4C@|ABomS|~uf&uT`qp#C*p)|IDkUzm7x~D8zw)!Q z2KJLhi#hqMNqJ@-)Z`|o&-Y+A$T{jn-NX@lU zf?e?B7M+v`M1=d5jPE#7$2j0%aq?m63x}cS2>n#o3mLGAAe3G{{r`xYphLa0we(=F}Yw3 zFb)eOR&n8MPE(%rU~(RzHpn>TT>$ZE7$uq{aJNEoEu4wDjjV!*xqVrQP{`r%me4)X zL8{L@IYEtHHHxo_3=HCH5c}@pUtTT?2qOI(^*_!UEpnO7R{P7kk^+oTMe~5ih+;z< zhATc1>qK=-?}*XEp!&i$^Bmv&&x?uGGWnG3DM!a&p$ORirwMXbIr{;0Nmw-Db#~`E z_hAAD!V}g+?;jr3voxc$#R3`nAj8Ng*+AKp?`AC-BBUCJ^8Q5e)_1`dy0t}grp4zzKG;S+sSj2C% z`t#hHyVkLTb-?uTJ;aOzK5y4H>2mv-VI6oq&ZDoxpL>~7+tKO3+_Yc%zSH*kFBf#5GuHMn@D0IVcm zh~LJyo?9H64QyIo+h=zgGLSMQTO-B;3?VxlOj8p`V9q~Yo~oJ;fqILGKV%tncUy&M zB~CJerj{R<1izT2Mc*;OSkoiqH1f~6QGn32<;Sk`Cw@Pt-{@wNsDtl)+;`ddpLcqu zDAPu)oWH+3T(N%#XDDmq!Ext`;Sw$)d?+BDJH;quH_vsJOPACK;Gs7D3M%gfQ6vYxy` z)d}W7`8KEZzb_jBAOwS-5K2(}7;c|`%PY*z1c^$3-+h1$5u@@Hl z1`2M`yhEfBDrQ}Wr`=9IaUwQ7*v#STq4wb8Y> zGSD+DG^ouD1YpWbn(}huF0|ShLWUE8t3@BKA+PlIRrVh&KNZ>8mA#|+tJe6-W?A>| zFP_30?E&*FufzL}daX2GOY4{l;?(8q0uyl7_RSl^iZS!NdI>V5&|!B*uOcNUY!l@| zieP7Wl?>Ovos>w;uJRYt(2o;yx4jzWFYKv=7tcTcgHp$eoPT%rhtui45aoV;a&-=< z3rkno0yhMK?K~l*d)F5-2QwDg)xtUE92ZFE!H(0G1qc5B9TFnH3rRMsbFn>d7m_6TBrNQ+_ zZ2>PT0Fw#*$>DNm#`{kLz5)qdcYV`w81s=i8s;&QE_HH-nsC{NT<_ z3j1>OVd;YQ3nQi9{w7gBe~%2A<~dYC1=-ozk;%qUi3L90UGB2zP*hw^UIo0OY(Bz0 z-Y~8q$$L5H3= z=Wm7N-atlQcDo%>)`Q&4-SV!=+V3~F%t+AE`EsnZNfwiAfe|cufgC+7#$*@aG&4c; zv>LZ5)U^BPAHhGQVT4+Z7x(_EOwl1IfNHeJSKih><+ULz!+v?WViDrM=ppA4awOk> zm8U57p(I%McBrkh@RMm`X66Klh(y0oL`xNbr!hyQi7}nIDmaFOi+@8OSq6uI;c z-TDjAOJ&s1gl4WK9=Q&GBwL<)3rIO`>q2yj5Lh>d98)r(WN-WD>a=t8nDQn~qT2Fo ze{#?QHY1$`wvJCnZetr^#@Ush%deaZ!$#!N3$~$0w~7!E62$UP9EY?1C#=tBCQFO% z@e}Ss6rUqkr}FQj`V=LZI6t4Y-FD-~k85gb8Z&lm7y{OyzxJ59wY7C)OH1K* zs+PJKcwqIA0*3>AJftlK<@FKUwu4Bw-i^Ne(o1*TcH4OuTo6h_r6}Wp1;7dE>M&3% z#P{kNzuC5aWiD;1M+j1(#A6eU6>=-n+De*R8P*)rnjnpO5^+HSL<}Y{;4$Z8V+8<^ zWYIg`M+1sD3?U8z(7^t-3S4)=_oDKr-B5mzNaNkNmOF(ZF=btxq>eO52UH8|=9u>@BK8UPa zM6<l!2{D9uE5#$cUV`%e(Ax4(({29=26tGtlo}f>`LZ8*%crOJjw36?C(LwslvWi zXTHv<+u8iKsF_V7n4x8W4a^Hz_n5o^SjYSw?s!h>>+HH?Trn5M={of~`+>uk23E5E z5YBy^oyo?R$o{;rCPLad3$VQNR4C&Z&ix%kv}J%d*!wd(4`_Eq&gz~EHtT^90-&j5 z#$0*sxnI5fa-a2k@4tWHdFQ?K;!8pZW>#fWqWT39)z{a5^V{D#^|UWN`tT#~&7Ys{ zOxw0SVZy{|)2Gduv-S2nY@bYS4mJ)%jZo~jsv}@IjuTcS(Eu~eM3sk3|3=n|~f(bH-#t5;MY0WmQ+0vS2nlq(YE2K#< zh!nE}cv=%-f;1#S^X6`LvNWd{hN^l@P>2NC@w=HZi^wf@gDvnJ&0Mt-qyqG&>uk_U z^wKw9bTW%PXPRl33yBF84Jg)2dYQFFL_~Z{8G&)=A2FD@Y3w#&UEwG}2>J9Q-_3Nk zMC#SY8VYC1Ohu9k1|6!dKWX(DG65?X@$RQ|hn+tjZU;#FXyxQXDmX|pfW>pjh;-FZrQ3bpM zeMO9CAy>Vd zHZ79|*`d5}cAU>u4E| zzyqt2{Kw!I4bv#K2O?_Ou;K2z?!NMyS0Q(^g^p6XOgY8Q@Jj6wpupn|l?<-Ott>o&9rDG zfqEfElN=-EG-*yV%t_LiD2;j{Y!ZP&sQ}IFgT25qCkV?WG66r=3FnzEjnUHBq*axj z#luB2kCDc7X)f~J-peX0lyU&8D)Ai*_~2)pP81snW|$w&q%Sb-uxf7h<%rr?uU6g= zj7%dUBDRE-W))i_A{a(2(mRG0W}Yy47tiagM0wDxozB*GUjI{cH9yuc!kCIOSPN-Y zf0$re@esyB%$1k&93+M~h49kLE*n*o`1<9SEnB+{3P=sF}+auYHmz384`94)F8r9g_@8rOhVJZA)`DG?6qyAP z3(`uDtEsv4yz@`^%2y^$o7$F6Uw!qDZn^pQ8(TK^kQlVm;Xdqz!a+WHuyBJQekaT( z0pF{};=B-I2>qu_!wg-Np#p+%s=^=D)z{COIdkS#vu4ejHG9sS*|TR)oH)_4ZPPSO z(=?<(qU#rZ-_K++e}C+;OE0>(qobqud&u|w%5O7fmQt1q*$WQiPj}vV`k7};m@uKz z#!8^ILTRbAlNrQeJx~NNvkM5K7%2aS%!k2xL7sIk@`(Dqh(#NeLNC{@AX+w*j}X8> z4T;O@MxVzztyvIaL^UKtE~XU)iG&U_6}%T{^A7{}XiD+s+cY@xS%&2^hqQn-OthcF*4R@F@xK- zVVyuWl}!?Whmj5c>N9U&7Y5A zF+@tK&?el4hg4mmCzMi#Tf{JoP!b*ohG|(L3s?*yvSYDiB9Tlc6UoHbvE!yrojQHS z^sTqqX6voDnK*GmU44B%P%a;e1?C>vL$+-v5{c8k{AJg5FTLnu*LCx^S?~|fb3?h! z%3lJl_0kVM_}L9NUUTidK~ft_rAY=oM!K6c9S+oMcYP0l-O{f0h7u82I_yq9c!}6V zw(PoxRZfu?-8UD1D`UzF^1BEnfJ62cuYs&M6>2z^~ z!1bf1iOMd4VZ>K`_$rZziVuFwVb;obEwiSA8;Z16HHpR$kE$lBZJbS_z-_Z$g;1vG*H4!oy) z;9l*1MpnCiHUI)lU~e++;cTEBEob!vdtaqkaPXWriQ$_4X-ASOp=<55b(~)!r z**_GC!^rx*&i;eF&fJ?XKX=OI`Z0hehvV1cNphUEMHrw=-4#>|-u7cA&; zQ+ZzT)WZHErQD*5ciSzu9C!S2pV(`!!4a^^4YN8&)*y^&z4p<4>5~IPu|ar=25Hxo z?18~1VUyNW5VuuJV!C1Y81%rTqAMSviHQJ#vRcnEER)FX{}s(*@qdPn~udtRdPRR?bSC- z0Z_$&J|d#gqo?<(QPf}9&9?hqc6d(5t2*xuJe7CYVTYSC!c=ck%y5} zOioelyOVhoSx1qz6-hU68R@>09tkM~JiyKZj&DVBNM>nAka;O6Uls9xIrA0R$gSaf zfB-Du+amrryYtxxh=KLs3sve3;oTq-pC4R0VpZ4Be`P*0!K?vph49sY3I^zppIOEbwo2E<=QmkFG z<~!f{?r(qdn{+yzH`^|?pYm1JMhe-?pbJ<4EZYvzx2wOHW@sK*L^N&sv>*NC$HAAu z4G`F|_fGKay9^|R7~Rk?Vd8`Z@4w&UM_Q{;ZZj#RC>sRFKq{5GZr;2*@4h=0i-n$a zsms2lI+?*@M2w7raue%|1(az(mna-I8`j}W@bTT zfCNYqjGW7%3l6LFBmoXE!>|%0JXSrDI@7F|`O@^FI!Uhr$4~e?NRr^vX?wY63o!WVq)fpnTAIv!gMK$|Ms`XAOHJfk370&&6=+Bwxzer5SG;o4WcSVU|E(q zbOKhmRS5Hz>OqzaxI$1lOwW_e& zA)uqZIh3Qjtk~ER>|9FOB?*Lg^HC6+D1>6oN(Zyzv2}I3Y`fiIhabNCCqFrD&g`Z!V_DD} zufKl(^*22G&ws91u_Bd9q0gEcGdqqGin1_-P)@)a>?hwa4BNH`wTberhggMhFs$^0 z-O65*c_Pv}1Obbgg%Ddj30mt-n>O8g>n%qdbz~)V4~tSNg)q4D+LYodWL1Shpi-^T ze(%9B0X!@%r3lEdZqeOpJ&=k5JmkN-}jsP0q|clTxZgEIvv|i`~wT&67HuVc`F>cjfU>RoDNV``#=`COZMbjvye5 zAP9)4xZ;9aUF%kB6uNMgdwBm?IA;R6%$=HBz(z3(pHd(QWO&r{7%iHFT(z|zw53Wpt6yKiIf zFhN9+lQ)Vfwm3%;1ZZyD)%VPFC+H0V3lSX-$FJ|X`}!Zp2k8MB1_&a&PDZH^iu zEFvH>08o()$jiI(toe8R{&xdLjNqJKaP`&Rs_IoMR($Z*+bg#gHM%{Trs=wFeaEWU zlDlpj;yZbn5FmO1#Bd4(08*+5NM*nQ`241!Ko>(+q|}wKX-1 zUw!S(H0$NIp;ri@>xaFPrA6B%8;I!2%csCKifiOz3eGOW> z$%p{<3Em>PGoEc*H{g@vJuUF9mq~ynLH~8>$<01S04iV|=M6F`$wvCo88Xwm8phha zB1AB9sI3cvDfZ<+1XaN?BRjwTpej@qM~~<#eL=gD9CkcvL=WuA%4C@?dpEBKfZS}B zliigXY)THFNdqzjIC|oF8(06cch*HmPdXQUF{M{Ble7a7Wn>PLGU-mu{pdd2Eqhhf&bfBz?+79SPMdjMP34A! zn$|^yF!{JE2;$6wO$=F6-L}+pzk*&Muq@xRtFF2F#)S*ZHgCD{rkggDmN3Sw5akib zu0Y4xXdj0x7Z?Hv#3qoXk}p-{`&nt#EzR3NUL<^vu#EH3E&;ZK6cGh?3)axPh_s8z zF%^}BXR7*ENPsh$txzg^pe;8d0X!zdMZ|Ar&Lv9bV$$Cwqk?3Iy?`RLSI4DC68Txg z6Cwh_klef(Q>UJB+G(esJ%9Z4=`}Sq5C83NrKP1OopkcdS+h>L=)&`^x!PCXP*%39 zV$Yr(CENDaR9BamSG!w19#6pQ4I_dj*Aiu^4ybTHUBwX7k!9p$=VWCUW@i_U964;{ zh@%UKjF>oa#Nffh#~tm=%JO(Tl@%4sUVeGg*Bih2=9|*e5_hZHGWc7yt~vt|g+rm9 zek-Mbh^?)yy;GOV-Pf`-F!-T`~ko3xqhf1D$^QbjQx`pXJ(B@-p&NywgCWR&` z8iX(pay_Gn>QiUmtrBJhH;=K|200SInvqQLpFp(B1c5`#8-C-tEp=^g~?&BtQ zo;f6n5^iiY^vMoK$9*V4P!X#nZ|>y1>qoNCWe@AvL#ii5^>ixhX@^gwJsn=(Lwk;J z5KWtXUD1XYOe2(3ZUvDI89rmcz+*&w`Q`}-BnA8py|!aCO-%|j&O!)i%!IQxu6{Zp zCdCOQ0U5oJDRyUiuHRqZ`;6R>;nPhc^xg54OmQGnJS}?}vk_?VG>Mda^tjVATm_+E zbJE{#WUj2i<0r>^Oil#InAg4UyBk7?h%=5q{?W%C^VHQ}f9-V}%XcwE%TeT9wEbOi z6#|oyz%&3*Onnf*Ae-Y%N%!1%%dg8yUwZ4!MuxY^K(3NG5A3DH#X<8l0W=U@Eqp7L zoSa^K^Cf^CuodL5M6ePB13<=r$V#ENoXoYt90SUkXukp-OTjEAAv+ln+u|nyn4(yu zkF*?Wq_h|;Ml?7l=k()eo_*=1bLO5nXynMWjErC~`0r<)`NtDa?A^21G|hM3dOJNm zebngD^G=<&V8Mc^)21DN^2tQRO;ZnRhG_)q8)|m%X>hl?O|!YCy1Ak<=y)*ZfBa}b1P&Z`}HKI@S;N+y)V}Svb8v5a{)Yy-H9I+sToV-z^#-3cheQ8qPR3bTf z`jt|eaq=%Y`UQn1A7SN0<=5Vbb%=4LqFr89zRPa84jM_2~Gkl92&OQIQV2 z!X_Sr$4&+USz0Q-Db4=Jzn*wy(by3q9{$(Ansn`2;eVcGZY18}K`#RA0dY44{tsOl zNv5x(WRoB0L((6V;e8|kkujE;k)ee(-82Y50%!nRftL^mLKW~}_9`0rg#gGHB4%e~ z3>q*XGbbnA>C9qEt}Aoo*rP^Hm@skZ@CkEH$jHw#O|zw?rFiSsWlNX6@%rn#cI}GJ zcARsc&sSVjR9sZ__@j>%6cikL?6H%NopSWimb$*b@uKf ze3%nhmgW)kN?2bX5?G3&AWMpHRRUp}rlxgpG@1|%EC66iw>+?{8Wlx(?bX*Vz5Mb~ zBS)c~s-1P>099-nmnY5rN&-ltuMMp`ES|-7 zE!RRfXXK+%Z5c6I>PEg*oDV<(>T^{T#i!s2EEHV#6V0|partCRgatSOVI&tpYxhKsnUAKPGYp+Qut&PcLXn#n_$cSdYKmTSq>&4uKeLP^ zJ#VX66)*_$12Ps#eLb1FrAkF~^?3`fzTt+JJ$vuF=bk;01-BI&NB|us8n=?J*%f6_ zX6B43$DVM~+~en-G-~+poPq*-dKyDi8M8SYhLnDvZ(CVe@teh)Hf<~|DcQYykH_t9 zM;lo`M%jd>rlv2y{PN2$zhsO#ozCo>?Ch-U%&aU|Mn*=aD>o-MGb<}CEzRk4s;UCk zd}f;AP$(1*`Mf@l#}f*Lg28~_AMp9SKCe&LbbrfKS$*3M2ulu{&y!0L(iyp(ds_U*5~`r5DWxjP{} z91**?3j*?y^pnhn)F-gW$yhlzL?^3hJtall8NhDdCR$;Q`IBspG=_c|FLR^-Hc5U6 z?pKy2+qq#-oFWMOOB86alIQFBj$% zW>22aVNlYxxQ{pcafIVA@OeGL!H^9dIrEsQ-`nxcyUE#xp{hC-T>hlP>59L6#?+R^ zU4k3EwPPeA*--n2}cqMtTy$ltFOw=&VKlzhZ;OyB4PkjQCX~H8nH7wA}EYaI~E7z zTT?y`Dqxe25lh~po#o1pZ@p~g((QZp{PBs$TNri`oJIg4fX8LHndtA#Wyh#)dIDgz zp&ft#KbHD~6y8Xt0?3#mNsb*d^dEnG=!_p+D}{hN?wM}dFGgNQ2kbo#4tpHra-DVZ zDRbw{IdS&vadS_!r=<~*5TdEEamViRii(QHhDMLaQ?Y07u3bB~mXzpP+sTaO?$KGK z-oexo5rsmbP$*PiR}T>_p6=YW63Odmm1+GQyIW4iTxIo~=H}*vm)vV0B2CkRy+U9? z-+Evj76g`IY8~YSkU}Oz#Jxu#BGWV=V5ECiNpxXlUZR^B2Ny$AJTs z=#m5xYU_CyD;=j3^KHBkc8YVS0 zcYe}9ke{ohrR}di7$UcacQL&VDo|9l?Y9Wv4M@Mg)4N54!2{LAWeh%CfF#8k3m&Yl z*bwm5CEoD?Vbsy5j-7C(Y3lJWgqUKhu2_$Vy+{G!zTK-QO}jkaQc%gt9&+}@55M>7 z%>bgWI4mLx2AZYh@h99IFld6!mTsE8B*lve1BXl=GGZoCyncNBNGyn;eA_3pPX1~9 z=gmTxQ)m64Y}-e*RhyIJghfL~&6;@J6;hb-_9Bwp)OLLHPRg=ZkW>PThz1TEcXY3?=yE3 zGL!(8t3zkwqvi4R8tE;Pe$CQmqKW`98321?f8>MJ3v__(Bvz2|9vNFeZ~&DlilR&% zH~x|fF1YrF8w$scp{8c}=ZDRw{yAE4Tp;cLM<(ka*)f2{(EuGcZQ2vhJ)4oAuZ6>3 zZ`xE_TU%UIynfxfl9G~u-yaRoi;_oHM!)XUPy6rXAgU|+9(MRbMlVi?f6AeurMacA zs*WF0%7EYR_4<0Jx;`YZY^s_lG4kZWG>s_v8w)8DBjSDtaJ$|2{q}c%f9gr6(;5E* z>^g)nMAR%evpM1nYD+d4fLDkzZgwUVn3^GkAt`HPeEu^S8?V}VBB&Drs*ZytsTJHU zM81*$=8^y$h*NC#rCP9^JqQqzR3}BQq9&tv86@8c_uwSJGH*PnsW!XN7$gwhDIWYUEvb}5rs7BVlZ|dn3#cx!dj>8PXt++ z2bd!zgf!}G2P7orNEY295djxn*+WD``(JGW;JmByzq>%Ds`m3QfAWnNuHsxvAh&`{ z89a3AxtBa@@&vF~KqR=nw|seTvOh#rx%(?_YRKYECoLr(Irfy3=ij~JlLru$_#HqF z3FPIuo)L$^_-MEehyR;wKVSX`|47;Lnb$b@QN$1 z98^&7$m_3%i4;TuFbmZ)n4NbROjlJe{_t0!FdzUSb(Othr#I7WFt9Mo=@>t7aDmNU zR8bM+CIBeNsPm+L5?~n_TZDNfbKcIJBS7ImJkkzbv<5}~CIB0N3Mc`}NGt>6Eotl| z?nWTSxF7^Le(boP{`8j9FF1eTuwjbLMq9V>U)>|utYgeU1Sg^box7hB5kp+PapPMr zE&jpnw}nEXXP^1^d+)v*4u_*YQ*Lq zLniuKV6|&7z*=Ee@=hrmBPBx!!zAk>G!p|D%#;C20+QicM=v#p>VZW78qq#(7AR_G zgkX;#0mj=pNbrP!9H>_CNw&o6rmF}=y1v=yac-|ohE{4C<7|mx5@SICNKn$zc+!tv zKxeZ}hyS1Cq=Ie9oV#Co7gJ@&_9w3IMg%*)lR#EDeA?NUJo3p~cL=U0!uJ6YalpXw z7hLg_qNoXZvJ#}&iefu`!5{4QjO5kQk3$9#>AHX4 zo>k)}Er>tB69EC)W!Js<(VIW7+Pl`;*2h~WA^;8@F>AqPPatE7P>mo}b?n}`EM?`} zEhLe^VvJpR)%P2#s=r#b8W;m20J?@bU0pp71PKIyjMa}FJ#GGJm(MvNcl0gTWx@ z91)XBg`^rhZg+|^BV7Oyy*_U!6zqjtAfn97zRW_H;?2YuGfdMoJIEC+IOjax9MS*) zJr5TnB6n-+^Z$8n&WUpz4o93$SY2vh0RZggh8-cCAVs8PfB+PP)q1$om>dA3V-4{> zMu5m4amGQwLdBMiiiCJ2#~45(7v4i%Fj<1@71BH&oe5cim;@74hl{a*JmBbvfH>i9 zZk!DnBASvVL68I=YQYZWBfCb3<3{+s~`H3z_Qbpa~jI;8T-t{?sAM+~GCM;~)e z?oFfLeDT_Fur*E&3lWEooORVrZyQDc5)|--fK_`|_a@x~&{kJ{bx}_4$b=Lp1wU%S z>EkCa*s$`cE$g2T2R%aQM1aVWyY!&wW)QvZed(D6akFtu2>s;w_q_k=%|aw(mDph| z$Q1jzmp(pb{8|0#SE&o4O>3S#dg6HrDGZU>)3Pr8!AqaMbLY;I_ek=1w)V&r#*_(D zE;{d$#|<->sQ6RHl-=8xGKR9pIfQx-NhGjxa&sq6np9T2wXU^QWlRV$6qK{k*41~2 zAaY(ha@XF`d#dR9SBwk?6y)QCiOPwy2hW>(!3{rLaP2i))~mv)qcBv5SDaf1XXMCDwx|Ch8b z4rd4;z|EU}dB+uBd~xHCestRDr_DR{)Yg_(B8iOYx*iM!>g(%w?cB9~-MY1F*Hl(i zMxImZcB%Mb-Ca{tljU)i;{3?LARBcjdLy2w`odBfR;1@aG;^8Z2(gO2QId(yRPg)n&?m= z0lY$dp#^(-2xwirB<%lbW=?*hwciLJAZ1lzi0^*%qaR5D0U;gW!$u_X3dUY{%f~A| zd2q+p_afeNJs4UL82~Y6JMFytCrt3004HMSVv@5hb$O$%;^j6A3Wq(!we;EID(y}AGS2@N^z%| zBobKp`FWX{nU%ZC-L0)8B?2vA_5r|*Zl0z}DNPf&3BfQldT47IU$O);vy|^$tp4Tx z>8G7K^~5=6&6{`gFMi=ObUT3ypb26TtP%`MNOlj(p55Z!c+eSRod_|Nfhwd^~5u#49enbjoS-gcTR2CBY>@@(JVzavecu1_QNYhk=ePZ3_y41j^0JR5Cm=PAOZ|&iyw^FQUzciH^rf@ z_^q#%al-^ch&MRIf(>w(qE>YDD%A>ZB_d2jJ^QhP8+DQ+AocJ$FhI8yYxVF2>8`|% z!4jmGs8vb@@Q_=lAN}Y@QbCdfDhH0khzQQKoO3UGY|?R;ZC>|$P37075d>=UOpef5 z6ni~HRuKT0l{0kAg!wb(EOccLl7c77_sW8%`Rb~-^u>TemE~Urd<_nVD`9tp2tbHR zM%Li0oS}@VfGmk~H^J&J{?<@aOazEnUsGhWr5R=@{#jT`K6Uo>!C=#t^@{}86Stm6 z#@N8Z$!A{hP{H7dL@6#$+7BYYk}XTly6De>>j`NrL)Yf87gUR$-< z@2zdCu5BQS3_;Kqi`%A>hM3_RSU7Cjq-mEOHU11K1wq21D~JezzW(Y-nc9*gkW>OI zFERJ2!+ z*hu?xBrPX%BZ=o&)~``~O2#@eD;aqe7L;U=G^FGROi@%-&2TvE&NRj8$jopJ&dSOw zC>S?t^o%K!M^BnOZo)V}Nk)aQ^v^JpAz6Z@$&q+Ipn=VOh(Cnwn~_&*w}_OMQ*-c92pkic(x$)N6-nedPv) zh&Eetb@UQ~K)}yUesEiGA-YOx)olnVy3PaG1vYQm^xs7<+;HQMRQ1rGq$T3sMQ3Z3 zVyzZFFWn_lc+jX8yg^7S_U&LGfZpcmlv=K2wGja<1Ym%Jm@OgpNuWLa(1n&P8>$4? ziJXbxl?XruDCoqYsYY;(C@paWmIQDhex--~hvdR;$*+8_h0aNHvBU*75`Y8PZmxMq z^psQUM?d<}YuK`G(a@2z2M?LjPDl)qkrYEl&K@)VOuw&T>!!t}MQ{2&)sh5A2}o^0 zAP5N7*_@&%wqc`YPn&ha=<%nMG`TQH%EYFMLuB84{X#h8hF;$^5|OU?N;bbXea?-E zomLSM0f{JiA$V;S0m*0{6~yMooq!AzF%4UOE~m`DyI}CdPv8C(k&sfx=SPN!$e1#1 z_76`#_xHLPBx*01Nm3%~S94D-AmFaj4^EkXkD5TOPecTeB!`TgHR|Y75wM}AxNQ3; z`}VAMx9m1eE8|4l>JkA}TUu`3$l*twIQE#chmJU&hzuhr1qZ|gYJ)JuhPrJ{4cmL5 z@7PC3;^s3eD+>T>cJ3koB+3As2&(AG5qfl2u>WTS<5 zP*?ZMhyJ)6j3=4vIjJut!{V?Mz$az+WW_cH*{$gO2{=7KKD)z@A+Djr@&*sg7*dF7Y0~6STnfup@Va`as-fCSYHEgNKUn9_sDP?;(ZCGA z0dN^QS5tt;Y{^`RH>2}Rw2cHM9g!0}P2s=EFaW5E5}Ol^1JrBbhLVy^+qb{)?mI_~ z9{v6EFTC-#TOWD!v6D_d`L197s;Q~TqDYQBCJPY*{y=4A<)A@>`r4MB!D8P$9?$BP zt9q@{zT)_-5W5`OZj7XNf&EPAG~DUGH*fm}*%FEo-X8{?JARAzx7vLSPw0+swF>!V$nP zWvh^dYNAwHAe$*2wn4KLje?J1_W0H7qcDk9=^;9#?Sdt0xy95P1s|j&Y@I^@4rHZ< z9!PQD`hN7|I}AyZF}1#C%b=mhb|{XoFh$pc4u|XblWv)D;zH91hC`lEutn26!qfl= znayF(aAxGCr{~+9nX2jlWSoZ)fF;JCbw7xtNcXYb#0&Lxj@B%^)kKtP2loNGWZV9@yd!4pn6 z_2*J@AxtSbwJq`)Q&ff77*l{T05Z%l03;-yF&0EbAV2@$H&P~E6e8hBB7v2bo(=%5 z?p8oVqD;hL$aqiALaji*{hXJSph^CV|7F*FAFAub7oW?jTKgL>-hTi6t5>ahbLCgR z5TW;!%oZs(5x3~;&BWi8`Yp_90;m9afO%n^5ivvs6aXUAkbX_pH_KhSBydDxfMz6J zVcS6rDZo^)+W--SY`cSQ%rp|B$OUnh+0T{p+U_L1|D+J4?sso&9 zIeB?ghYuf^onr`5Qdv>m(9ja_hYh2&tn7dP`sepPeE-E4UcBOpD+&vTTz%!0p-{*) zO=~TEB(124$nAEoTf6pz6HX99Fve1uC9yz6Rug!=-WzYYp|Y~F*OnuF*z|{me_Sva zf{q-Nq?AH%##o$EYeI;wRj9fE5fv8~fBezMKl$k`-87@Erx6g4rfFZT`0BZTKP#o| zB7~3utT(hTw9tHKo6>ely-p%xA@A~)(NiphPy$JS-7z6`48WO~qhHVowikk-W>EdCZq7~fQUTq%6)s+j6CY3M5Ji!V-Sh2S3h&!WsfJSK&#y| zTm@%d@X)l`*KghUO4Xj#?v}lrTN=lmKU{L_H9z?PKuP&c&vy>HcPw?c?9Is^mGG89K)^_-AQ2){RR@71=7PvLX2lXF zYb?U;#qT!Mev^#C6OJSjSXOM2W*F9E&gh{GhXSw<mJc$Q_}Ap^_FBmfTZs0^RQY@od4sAzvt%WUU=b!xp{ffU!@L{6@A*43yct= zvZ7+yvSly*_rIGqZtBg3@OV7ER@dQ(Kp=pO(SaP3)yG1iuti`Ua^Z+5gb*>>c|C$< z#y_8W>ar^?&&$i}qI*ZnCnAr>v+?V%mw)-?=bwGP^_y=j2D1wTBtVGd@4d}_DbIGM zXDf;%kdXln6Pd2PyP&q(5dj>4dxf#l)UcEIK?^}CQzvXo0;qu7O=BlFSmdCE01}n6 zr9p6a+|rOJ_3N~>EU&w^V)s{jb}X&0DGK-+ggDS$nz8h>yu5<3!$!>-J^swX zp;J}WscSwU5?t@>2@^m#(Cqb8V}jH9_9FoxBF>G^-oNL{8<$9tOb4Y%NMNro%Sllj z>sCC0$PNo4JE{6L2-cp;5_|3;Wyk@BgYu3HwxGO~rRfkoK}BQ^AOcB%s(9{Yn0LzL z6J{KL?6J#MuYQ&E?=#0DCG%$C|C9^_tN?Mf@PDFYXT{WhFz+4n8RD5mtd*_}a39D! zMc^~!K`R+b zz44~Ckv;-wEF!9@uD<=&+y3+Hvp>4=rb{ooG&3s;VjP_?g5ESK`fM4tDI{2I!snlT z_RiaHuV1&mzP{cxj3hn(Hf6t<_O+hCmd#s|QC;dImeXnXA@&+?Cj=ko+~@PgX@Hbc z*Y!BX;CJrW@y7=qc;vCiI{a;Hhp(%vd+~)A-g*0-^0Kl(ARtM0Q+|s8ss+E>+q5WX zzcAf(p)+HUqGqBZfD9rta*YLy`4GJrQtMakJ|?(TU>B z?$;f3XhS<4LjXua^a=5xuem|+=vM?lixdFBfx1o`{%z}1D&vL$!~hSOv?BnWsLV9d z(wW(%Ol(xu0|6X}PGmtTTcy}y>YH?Jv#IalMu22clIYy`c)MwEI>duP88O(hAq}y} z(7)8<&59)fHt5<~BRt2E)_wK2Xlq98Q2-ps6a-Dm=Y!s+Lv^?8M?4?`MeRz?Us18$ z?^Fe`{r|<37IUVG2#92}b;aek_cliCBIY}?@{PS76s6PhrNmez6GUJLih`ZHIJXlh z2gX2EyF82d&cq}UpsG58fu?}JF+C%{ug&QSQu2!O71fm+`jEW>03r$o8cR06I&IeV zhsEBt3lNcMYGpe^*3225>oZ{6qx&KtE>A%;?k{eYivr4vODBkiFuQ zxhKy3WYwy2l)sh1f3nP{6xYqdznnM&EFylN3_Zls9m&*xiQbzAump_zM6e2EmNWf= znKS=q;lf9sdFGRqUjdP|Rrr$(0{{X}DID_7fZ_P*XT;RVX;0gxkHP}oHAdOX)r((Q zJ!Qf-lgDq|xX~XD3zGF-&rSEWm=%PP9@ZgS} zJLRGJgQOIQNYk_p>o=@lxBlL{?>^_;b5EH!@3`sH^YZetv$Gsdr_E*)LLg#?fowhH zwql=Htp0kGw_=QO&JA4;1cP3$x4NpTsHkYos?}>&uWo5+!3dw#ohMI`l5u~h?rfb+ zQQk^X6e%U=oO7;eS~wI627}wSZF~8}7gM>pyRgl={Vp!(jG3|?oz?DAN{dLc{NSRG zh?}NinnH-Wy1Ii$WFj(6v$dt=&~70bwrLthRaKRyY27KOi^89I`k4zayy)apPF7;n z+^t$n(`;#JDcQPp$?LDb`NkW;K(I%hZGS}o8d0&S7kTxEyscC0j^k|hqg4A?#WqB> zr6Z;xOG8v6eKL{|qg@r9>MH z)swJ{4@jxTh(q+K(?`E@;D-bI6(Dw0xTPI$k$qtxuN3QaZBfv>gBvmax?mE07!IE8 zbmew*c;C)|$V}FD)E0dL1fT$}&_nU~A4SXAElfa&4Zb{>jAHzNn*s{SPMI>tJE|!lGu6o=nxq3!UF(F6d>}FDAx5wA+H(tn1%oXXi>m(yxmD% zl7=yD72P?IAP5qLNYo3lgX_CYW22#OHTA=Ldv`cv*x(*4S&3lykRDvGC^&lfx1>Xf z?UJejqlWb$eTu{W?d8WJ)5S7f-CnU0ihqosbiSfGlW@o#DUyWMXiTv&MFjxb zKi5VAQ7s0odr25o)mgUfV^wt=?oa{OT*OWM^j&8#Zj{@L@xS3>|y)*b&2rA2nvosL`V{T`tvTJ9x(zJA1XG zsM`JK!M`<4QwxV18X9VA>+0+4>g(z&_U^5&u5N5-sIIPVX=$-&i>Uli_aAudlp5uy zqE%Zli55%cZf$M0(A4blc$%7;ni?CMo148}Z);0SQ&Uq*YpWgydlDzwaVQ<~ab0i2 zqi%Fj`pIIWOw%-UL(?@wH*{UoG%b7}bX_+LL)WxmFcc1lLcvfV7zhPJrfF(gI2_h2 z=$ckjTYGTR5Rnj~p`if)gb~2?2t; z`{_LYbKdvE`Fhs9cddKo!}JW@J?yU9yJT0@uS&pH%2LebWn~}hJg!QU%HEY5Lccs* zR~M>`3w&hCHHJfE;HdvBfk=+{nZMS$-{E_FFcU0$Iz8VY$E)GbOz5e&lhM1PP5?g< z1G`>i)OY+Fvj8p_UTj3RaI|dlUw&`1@L=M7;tl9w-#)2&6gbIalb1A2ep$_6^Hyyw zAgWyY+_9>?6`lJt0iS{;9LWzB#vh1)Z$1_k2x)DqWPSeaY=r%-Fqzm)hWMKhuriTW)77YF=-BaTbS{}^V9 z6BRIzVnFMbfQK&5C3BoyYsFn})3blX70c9sepqb1yJ}6#Rp<44 z8xLdH+ZJJa{~Tp2N8ft-B<~G2e^#q=f6CRNU5&RMmss)ri=WlTFB{WV>h(}mD#T0? zaz#Z?{tBa^^Km2?^+bCZ@4+Ys@>qct9}0;&VNuktgi3&6L=^ZyfX&XFLKfMN!jC4_ zJ=@85z7KE!eEX(^@%yEXecrb7u95bDVRqPddA|Q2?svWr>@Ja z!!kYD{~dz!QV+p8t>T!GIcM*K51(eE0gyjYsixLq{IqTHrADDB7~b&uw9(V{e2L}A z|LTjwcG@pr??ZUc>%KzPckqm`3)mO|@zX5U!GOA-bpCZV8ZlbSTUleX!+QHo=}4lz zk)b~!$Cb9)brty(Z)kE&p(h1k4*h0AjPFg|%U#y``i*alprFl4vw#gWgWbj0PJ0qF zxw&omh=rcM#++&xePF{bl8DdYA94-Y{qLRELYF@*DhkT^#RaDxDCv^o;x_Dff0Ji1 zO>=Q8pu$1AMcJ@UJq0u8=H@{8QP|&~wx8zxaIJB)tfi)gixJAKY2y2sEhX7+$0MZg z8`QgDM>hh`gU(5W;;~}mTGrOm(vp*tQ&W>u*b1hmwN_SkwwB7xUo9-@A0> z^d~N8D^gB5gOJ&FbmbNs%Dm;ly=jH7La;HUd5e{Kv5{dU|1)+v07>dN3ANrzr5$dQe3s;-ly2cySJjM~~il0^HTP?M{V*(vQx4 zUe$wCQ8Kg}$&l_K8Bv|YcE6`Qlcr?rtOYSaG5LlvWU+>FfrI=nVYedh<%Ru10|Lu)!_I0lbuwO! z`!}Y0l$4Nd?KhCIE8$}U*i+b{9L~+TrGwWFpl67Kf2aIw^lKseK&lNNmxbyvTYXev z=hDO+5k*WQNBn?*oO(mvRx2!I!p{KBU8&B@n4A(;Up0&zjYD#Z(WDG-RFw;Pja&+S zCrWi!6ff>a&2#nlDIDHh_X4l3c@L>pc`-I5^mt)#O>&_wGP!4Lq3i96#$Q9R@%SXZ z9rdo7={`)x_*^pM&H9Il`Kp=ReVg1I+qH7!2jbA~_o26^O(l4>(oxRT>GL8YU&f-4 zF*^^wlH=LB+20?MF}yR|7vRDMoo<`EJn`=gSGd|G7!o(Wmw&$!>fMb~QP|VQ^~}U1 zue^8q-f<4vxq=3)0Gf!$4}F!OM3`KXw=}s7tqHOWf0X5cqTD0)KIbeXc>m1gjhlS? zS9QLaB-6_F01m(r!i^s|bp5x?GOv;f;Lwz=S4JT8ccF584k>`Xy&{ffjXlP8!ju<5 zz~@!hUDNH=^~8jfirp_E$h+BBRp7!f(O$gUgQkE!He7r?@T3W6_%@2&WF))W>_eKvvn;Jbx`XwzpBK2d z$G6B^4IH^BIbMwY`4f}Otbg4{_|f&4i}&T|ON4hy7^-d3sU$MfUzeFw`xulO47MCh$q~>bRyyw!CLNR*!>X4AG z*_FDe=~n+hvWt)3AojDu|2*%&*Sv1ofAGAX1Fe@$AxxR#s5munwo}zVrT#HL^KKrx z=CO&cFzuwjBQ7(Euy(Dq3_TakEmHWN-@C$`aXIVqtUO7?9~OR7FYE+$&QG+OFXuZs zbR6TmSt&ncipN7k@D{eUva$lz`46bn0&5I%S56ngc{6BI`J)xOf7%ftZnSuAB6#)E$!IuTa5(kr z`o(puF2)-$Sv8|OWaRyS7f@T*`~P$?@Ecc^7s1M`_b9iF+zO;S44_2|M+Za;>?W3a<>V5&C*{Vv)s z?E3Kj&jqFr&r6SpuT@%@dPoDZ&&h21fz>xmf!yCOU_cmbpS|kpg>N#4cz>Q(T3flAK}ny+#_|>(3HWE6#?_^R?FofPOW_RJxy2018sh`~-3=T)eWXZAR)2 z-w9blkY5fm1&>=NB^mjz5l+{?YsNk|f;;rx03#z~LRhI*Dc;fb7Tja}j7P0U_Q9c{ ztmKgRD2yc1Cx~G5afi51MF7%w49g%CMgNJTT_PGmo;(`{cs?;9qYOp{6bTBzd?~xz ze=CuSZ;?^ut9qvgd0Gx^*9RKzh)DDy52Dq;;5JI6i>+{+KFp%uu5D~XFi5~6@w3?6 z8xBo|%}+9SiRBu?HlMPDZ*IVR1O*;`O3F`4@!Y26X?L6jZxA4GMt~5*ideQUW7Z(l z69(>97rrh`c#d+|zuHd^sFGQCLP75G*P8JVuGBr+%3Hcwml#ZxOzuUV+?Ki`&Xv0O z9_`9y>uGioO+u=qXwYdl*+$k56{0rzJ9V2O`ylLb^7PQ^68u7ESO^BQvCyE$e#^LqbN!@5L7;XRRQ`_;aeV)?FphDdpM{gNt?BL%f zdpS4CT-0$Jix_Ph~hfA6m|m#Z(O@I0UF8kW@xe@7392y<3FISS2Kvc@)%! z4rh+2=qqY@Qlh{h#)I9syx9W-l8-gwik5yrO6*-0ZUk~B z0=A@^0v%*InfJ5G-xEd(&$5Z&%labDWHIvw-gr`sN% zO!gjJg_uDc?2~f7FiA)V)eZj^MQO7U6Jye7MRa~8m`}a4WqjnICO+W&i?rTOm~}(& z-L;t{7E&6cW&yrh&j1S%1TKKE^Mm;9lrt>=V9_^NPYP%mtoCnQ2Fbdk2Jj}fx~!7r z^+1YOa-C0^HCNd^S2k1r0ed zIP&v#af_yNsV(avKmFaJyey>t+CR#f3Zy#Xhcy^ed?MU< zoN%D4<_g6P`<;j^DV|LV4`N`y`s!-7(_hn%B*0pftzv(X!c0 zQI^YV-ro;o1HuoNoM3F%>&u9Cjhs;Z=SX(VMAgKDj)^|@g+0Cg^)oCP+_9eBweUo^H(^TbiYM}uO8Nf5FXVVJT@Pf3pv7>IGc^fp!dS> zI2j7%EHDd+BolqiFV3Y-lCMP<3`HgDEk-egZTt0wL=bZw4{$%;BMovrPSc|EIoT<^ zQmD$7gk=K0zjL+(H?wRlyf$sE=8+^LW>}3EVCF28I4I!)=59;IY@v8J&dGV54QmhD z-)jQ`2!1c1X>K%;)$S~1YZsJD?tR@yg&!3Cd7i{LFw?1u%|}IbvbV}Ox1A>B>$AHh zMBp>cE4hzV>~72t=mEqFsMg!Av~fT(1eIL!EkpxI-D>r(t8l3U-J)1PF)ZFXd%xnqJ<5DV_BypAW&*>ZNW3Bg2_7U7)=RIM8SvDv z|3gM+;%YSo6RTO#Fjvu+MI!)x%zl|xnk~`y{QY}iii6Yee%#kmPv_v+^LVkrap!ea zhmBGUe-`c_(HD>*C@hK97n>dE&x^1`Nv-t5NY@n8Emz1Qn2>$OyUiwzH}Q%56g zn&!_2C0*FVn#?3Yoq{&kjpu==N}D}`y_Dq2TUVwZz~8mebXWv=GFU4@{ki)Qevyyw z#<@d@wKz3Rq90q;%p(oQe_G;9ekNHm^4m<7uj;`pY&jMs1`f;3uXVRvu(!mQ&&uX4 zND;rl0+Yjqc0O})`lPt{^Cib|*H>I@GIBqBw!7v0umJ);GIC5h++E({56X+8!obX> zgW^2;_9nkp)tySZ%UKn)!Q|(B*3IFx$7bWMS%}*3_21E^lAX{pcvK21R3`M_Ocmxw zr^md-w(6%uC357Y5Q4_Z2H$O%QF1D$Xnj7g*zkKm^0TS)kwQdrqxJf6FV71jfJq{9 zJ;EswQ;;uwIY_0D#>H3Af(eqnpXf^p_6(QwBotSy=OpWBv9k*VgrC9;^TX<^i6l|; z-F=N@oE%;s5cYwy+HOw7C;cYP0%6D|OO%o$s%w0cjNge|EE_2SalMn2CVKDqhLm}l z4?^`Hx9%GsKzavF^j=#pSTf|LhILs8Ez?K5JY~Gj#1B zSvjO`3Hq=TZc_10LQ==watIB8Ym$F`&gP~Uze_VCkX>iD2~6ZzT%4`H*cqn3LlFgY z=9>zeESHnq|}HY zL?iOjDt}|sOXi`?&_HjoUQL^6hkEuLN|wl|b*$I;^WU`Z*G`o{3QNP%oeXA=jCFm! z+`%Bxj!Iu4=;GPpP`L5~+iW zc(Npni6zhXnVd4B253t9V;BIfRhjG%q}EB$6zFLZ!&D<||QrGvbS2*uLO=ZOj;ez)o-rwBtKS(o16 z(-DW}fBVBudZDZi7v|3pb2>4%4X^iP?tG>j1cpn$O6#Gtu&F_Dt@Z1KM4;x^6&XqI zuGHdzvFRb^nW3lBq&5VpNi=y#q>BG$wgCY)mE=r}?g$*S=?{XZq%fb4lEScKZ4R*L zQ!yHY7YFXbLl={0dPqT7*ebx@9VYpt4lBGs@)V4ZYL0-(7$wJ2o@1rvv5S*l%#sW? zw{%2_`j(T7-=eXT7T>aHE6n(w00K6as*Q5zwc(@9LMFN8^(RV`wC=m<%#UnO?$rs+Q(-lUiD`fJ+Pt=A$nFtf zb&Nh%^o|k6QRe=PQtOZ2t@fVg3Z4G)B5#2yPp_KRo7!wNw19o&YLg0Ya;dSaBv!6c$M``8c%BVAhR_qEYta`B6FfMVHw%cf0Ym)K7QN3fep7j1)o1?C$Mf6{f zn@PeTA?%*l<$mMyC62WE^L)La8vZAK$l&nAMX13%P@uN_H>f?wvd-GE2PJ;Se=rIQ z3!0c#Yx+PmZE_IuD;b|5qCx&0rRvl|ljFt$HVMI~`=0g^hNvW-k$r>@sSLf9)*sd{ z(v9m)j&VZg^4va@s&w@uUpxz+7Hns2vt(Z}s9}-_5K7A3c}Z{Xv~%1oKVTl~W8@ze z{VMQ1UdBbhpLo_kOX$DUJ0E5gKB?i*71Jq?N3RYuA3t7|Px+};uGwIAV-rS)1>c1@ z1dSZ2Ls!s}_f5%)gd4`;E;~>Xq=ai$5o8v;&Q4NQ{gp)%IX*n(05&xA+S;hu^l80I z{+J22H`S-7#|Xfb{HeU*Lhz<&)wmSH(w_Vq%^F-R;-%8w11TCIB?Rx?$dIAqRaK_d z1BX4t)XziX&U0vm9?vo=x0qUmfrRaI#q}tG*#=#btj39Q@yxeo{)kNIZWQ zONQ7%2)=&T;N@q~&Qigqm*}bXb)U0&D+M99ABfIg_jO)v-QN5YM3)dn^y)t~Aiz1} zl(XmS)0P~T$kk+<#(#X!rixL{(%jTOh=hkF!$|Zp%&6AsOMWy#lY8NFA+WL#!5u2@ z{&8O6J6qww&&k#6V{P(^SS;c=2ASHS9(J5<RkYfGW zq~JSa{n3>10YgG;iQoa9m9%=7n=*mPNgR?h6(i%SMgsih@H^)l-#G{9^lm4?gKS$z%x_sAFa2nc_^O=1>-Y$ z&Cb;_!_L`jW~{eZ9~ohCbsHc$sCJMsz*L?0SFJrE*Zv!LE`j#K}wW6g(pwb8(3 zKFr6f=D*eNVm>J_%#25pDM9^~i7lISm?WDIu+bj;J`9)0%`MZjH@WB^ebA~})SGr5 zMxs;oqhsN+=B;6ch+|=dru$*gRxP)i>J9nB85)E<(dj31YRJFqs-?D(e>_Z3GPvK7 zuR?!){ZsxWF-)>Pxm;^d1SL=Lfdm1_&$X_)dlY%I*@>@U52&q5K_P!DN>ki3 zjtv;fz7TL_iMx7kochJWYu%()RrTZ}!*Bs`BM1!`TafBx?QVT?t8Ai>%+4NX5_5Gu z4~;?O1r!qbBYgab>UleLpzN0}bA@)-65W1)5B0Y)QAvMg07iMhAH!dcq6K#bMp+dJ zu;a^sMZ5%EY8|NQS53`i{*OiO|I`xuHBV45G)V`dJiiKWi%u9AmTzMGW=-(wp>wv% z+DCu$xM9COGP)8$JU0G%lvdQ}hx1ULnAD3jp18TB@ogOjb=7j6_w!mtL_R(o-I3`A zH62vinJpIo)Qm)SxzY4aOHoVRTCZZExeR2?`+oInw;=)j$<||nKa^WyW~3i%u5+O0 zCi(gJL%i+I$Mreee?-b1zlQQ(Eoqi|WGt&;s1!dAgTC%5n$ou(RR6wc(+}8|ur;`^tf+IfP1o-fKT31foo%j_+P0jR?o*ct zeGP*ztNaa692sUfUYVAaFUElcV1*F_veTE_Bz$R|LRX^V4pU^Q0|_!Ej%{m0Y)*+@ zPT#_k%GB@Nugej5R!+5VNO4n`Xp*uhukb5XC{a-N^S?<4X)y5nq%sim#3q=1j}f9` zb`}LQBy4cN(31E}g^txyBE6&U<5^N16;cja>p+;yU`&BBED;FarZPCB6!3e!XPRs^ z?6mScMneo<`;-A5={H<6I>`$yrHuq4B*@P=E+&&mD{hLG5P-;KAHCg)XAc*beH#e3 zt#V0NSrpvHkEFrIc~*~zk`3!q4ymGJ&1_fxf{%5j{88St`gemW>UHh%#lfi3vCA@j25iG?|;6(99RzgNR)P(mz&hYT0t5UPhkW4T0JF(W9YMIMHDK~Lnzy6-f z0E)smD>|%{B%FFaJqQG!T`h1!PaWtFLMJ3fN_>n@(99>*#yvG7I24PGFK`V@8KXw2 z#;P%VL4>|xr*ytK7WTfkkzXoG!~uxA5_&Gkus0e-F1TI;%5G{@124k3^D_+w-otOs zL@4SF3(mqu1mej&zLdST9U1wx8dpD#T&>MG|Hkg*DJu4&Rx>j> zfCSTC^=McsnmssN0Vo3)ejg|7G5OPSHc{}l0V)_&#yO-eI3!>j#w30T)&cidk}*yE zWk4z1AIlm3ys{WO1NbyZ{LX~!2&t&=-czc0QTx{|n8T1Uv7T+j1#t%+9Yj%6nC&2VoLdAbYv$ke+VJa!d|#af1QU{@O|ZY+bEkQEDmv&JY)u zq<2gd%7_E_C0ZZ^`ddR!zVpxu5sje3*TVW+d)E7ouk1%wFX+Zc9RFFJ|Iv)5jFiH- zv`xR`^uC4aGZhu12PI>(-el|a7vBKYWRu%K|2NQ+=5fy%q`$%9E#0D(7PpF|Q|>WG zJ@ZTaH;7xgRj@i z5TyVG|-ABb9gYlZ&}=!yMB9cqg*-Z1q&y$fMX_ z299AEP04bAl7I~%2vH0N&c7X4%&zsTl`(;Z_bc@?kG?0_HIIt+DDH!S_`wJ5%rR#H zjR}t#ks^dbh<-FG<_Wc=5;t~Wnw?;_VD6iIJ=GkT!1ku5l_rC5v|*B<^qyP^l6FNr<5>(xwsvd6|&*~Q=?&%6*@Na(@? zw39c61@?ypba?|06Wg|XJf%i#jnt-akSQ;SR1sOIL^>+jT17tIb>VhD{y}D-5nVSp>{K-;cowEGb`mWZO6?e6^rz@h zD6|pH2JZA^$}}52-Gk7hjYmt=a~m?+O)SP~qCtQ~HbFdga4v?WP1m30AGm(>vps!I zOlqEPEWjn)lEM4GccQS9sweg=Ji7y5h<|3E~ zx39D3E#rYJ){2$05E%z}QQU36jF^R5W$^F4JQMD@k?{{$u}7)YL01*D`d2x2M21oV z$&rpvCM1E|geIAs z|JEkamyHi$@?3pE?EMSWE+xxm3p{##`CFJYhknZr+5 zSSlrgxk_|wxZ)%e?p1b;qCzNeFuxuf-ok_*zB;yilq^?=&!f~(v{9fav|=YK>7v8G zgkV$Ra9i11IrV)DFurbmTbV~a8jseZwdxDBmZTb ztAOR9>%lCEm8+>2d?Fpw+2BYEeCIM5A_U7P90xEUmeYT)o7UYQGS@ozosQ1W8^4}( zp8ZXfLVYSMu_DHzQw7Lj8WUDf93b!{ek$a|*>gZcYxb;^J-j))-((mZ7Th^@e!vHW zCD}RC+Qxt+31bMw4-526eHlqVxSKVPg9kESy$3LjsS@$&nLC2O_j>K&Vy-F)Xf6Dz zvCp^tXscH1_hdAaSC!--)-+bQsbr$r*p^XZP>hB$#t{}Z}LQy*|yev*3;8s9U z7k+uXFI3R1(7Wn>I2mBoQC&E;|MjPjF`4ybuETR3@qxQ-JDGjDNT`j$=+Et$yjI0Z zM*X^NkPJ3OaexCGDmm`V$=j4TeVP!6D6lkrjU)=Qcz{O0v~T5G{QVLIw4U?48c^`l z-dS?(c0ZG}y4GQBZf@QjtT6tjUO(V=s!-KCD1&zdfjy<;>qhCh_2B(BIbFv z)gLagQnD2Uhoy~m0RLq7f3(unOfs#^Nu6cw_|r$PlL`RvqXo+JaBu*VxqX3RCZ6^L z10z(#dvdqbZc?HxB`IX#v~)@61Pa~Mch#S+_NV2)Z(8?xeYTxahO4>rcT2rO_v$Z= z!tu#fSI5oTgHigsU!FHCsXRArC!NdHt|#n4nB-wdkYKEyiam7O)=4%6gW%Zzp%X|f z6GHy#OHWU$w8BIjai_hxtKbdRwTa&dF#~xY93N`&)yzH^R@-f?jcmSWGnXp~b5f9? zRF*v5nYG8pl0l*_Sl-^ZU;b*S@cnmKqysMrbUahY?(}zkITN`9Uxw1<@x{F~* zi~H5A3e|gtg8an3XayvrarbhyqA^@0;l&E+o6^}*5H{||W#nA~%~%@L?ymo;ML5eS zjUdi6CQ1e$?Z}Do_Vcr^pE#DEsvKd@o`Xh2^xjNPFRXs+yMvWUd~9qaxPMj8XQ5=H zSv*Q|7NL4!=4QTEl`W>X5v_v(xG<}f-ew(v zeruAx5%wn-(G59Yl}Qy4HoL9vD1+Iiqd_bXVf)J$Z$7?IHC0?5n-$MbzEjZ|p$-ll zoE)_=q@!cQs5+XliEpQ1GQ=g@R`D6siw)YYowa6d=1ab$E0T2hcNJxMO%;wF9W6IJ zIj=ps*ZH{c>ATi{U9PlB2`nkGZGY~Mw3ucZ=GPxlXKQ|}rI#!>$h-eqv0UHz)Cjr` z^Hqk1baEnIZUe1X0@p{2bto07s_=6KY>=#fIXcfeN*1e(mw^~^Q z-h8Uz@P}mrscweP0;5Uc$&rCYNkda8-iPvaxxs3=Qa^!4!E&Y?S?*Q$r@>kfX?5%B z-rGk_m&PB0`_Y@KIKyUFFNq~uRRDru*a$-ob|!4vwG zeGvpt4@p{$)@z?rI5OrJfUZ5K{{H^CmizsOR;QMy=w)!79!_vk5uv4;(h;F;yL$^~ zt#ib@JrZ&F-BlAw)hXJQI8|bmhDF-c<}hoiabSq+D%C*LBv9(*?kX8Hyy4`w;_mML zn#cOld2b5-VuzMY@Owf6RYCm$bnM*DLRatZyh69>SR~uGY_4K>pl^{(|N7y?w&QLc ze>f$pvhzRTmBNEjt)1EhLjbDBI+QkG*mQ?Oj$VN68@*Pg&(nR>Yo6APkk^)Tt+fub zr8PC%KQKZo1)TI@CCTGei9*K{b*YQkQ zTpG)?zYcBsie^53+n~%*6cXuzkSpgWQckm>^&-7`&lX!{9<1)eb91q$rEzN~OF#YJ zi*?B8e=FADKsNMhl&2P_!CI!_S}$S4lE@vrA~Yqry_>s7!guc~lm93F^Y1Yj8Q$z* z{_k7aHN*a!z5j79lAU0V7lerVU*gp$>i@@2UQUq$|EJo7!NQsd{<_iA`2&pf5^Vzi z6K!PIT*BgB4L=WP%&}0E%>3K~M!{(RmpZ_NDzl+M9RM@_^IX~r3ks|y%(TCsozbV924$g}IrMdfih!M5_KYnuQ1@^ye z$fX)&KT#|xF*t?#m#H!SdRSNitStjJ+^@Hr11Q=6_{vBA|IVSJ4iNxOQye2V7uFwI zk6XR~fbhr0K3s4^008v&@&6qxApd>)|FZ)o_~c+B>q5;x5_FOK9#|aGMZ*0@2`dOH z_%}apfB1i=(*8wlflmq`QW*eL(^P}+fHv-b>?}uS`uA<_|Gn-1DUyJs{+C_suAMkb z+I0qlK;)t#3L|E6Vu`}jrfW?(NcruXHKZ_A*QO-9pv0nBA3p`}h8cdvk3(Ta6o#33 zQct1 z_Uz9zFkYPf836&o{!AjDV0LE4dUz18vm+rPp(?9tCRYT61)1oUIRA--OSla64GPTb zoi3W4uQXU~`QoW!6eq|70o1n@Y)@{3;9|4{FE1}`)>}Jl*XQ|k7C|3j+DUITDxuEt zr(YPUkVk8C>%!u4I#{zuObkXg>T7GyecbOr%($0}X(jhi%x#jf%@j;vXkv2S2!{aR zV*I*Pe|Kb4GLyT%Z>bg@cY1Udj{I?Ix`4pj@zKrp#h|AN#BDtpT-x3_dFi=2N?m>* z^F~J>#QqlmM5%>8)_fjmuHonBcV^9GVNr}!YIeCQEzGqvg#Zu zVmrW|p{s_z-dZlnl9ZD&>Z9S|;lDx@(yz(*@g@XBGymOK+t`?y5dUXgeh3R0h((k~ zf+=2WR}yKct4q*zI^POMKbR}yBP~|=qzpoW2-nJmb_jXdTkg+h`D&WUOfV1-5DX`? zrf8&fI?Ef0Unc}f7fvsb#uHrJU(n2 z84F}nll#MqULl~p`F*@W(ICS_kkDn>4+%6jt&*gS(`LdzM%U?xhtnK3v9|tkJEyEu zuHu zAmBc>OSQk0+X`>cAY3xntFapbQ2(ny&*sq7)a=2xwq7cw#SwjQ-d$kNcJ(_yk{tL+ zw~myCYxVl|28!m~+7Q2A};N@x#FKb);~T9 z;!Cbj^6~P6`&Q`?{L<3WbIcw6X1k5EO*vd#HCo!D<0@BI7klh*$zW+zUSBLAQ4AD= z22KYz>p`xV{!F2mB*L2NZ?Evg<75(RxHCvrxQFM*S)sqpp8|hn(>J=fP~=b`UXv*| z!zYbw1iVw;n79Bp%rz_+i@dq?E%*B3g3=gj40;-jyT{J2ck<9N|^VA(7Ywc;@5b&KW6Rx!D|$7zbU4FfB(5wYl((I z_l%_6$=Uhg8db}PZGwCjL&#D1nb&)G?tWgLMK26YEh;TlH8N!W77-Cq4$6UjiW+-W zks>~?T{{_NtU5gyQP~kt`WH{xx*p#?++vViYp!>09FZ((X=xckU4*RW$DUdqW+xuL z+kX*B6}UOXG*imtwSUx}Jo_?GR#rAU!J1uNecB01z;8k-620P}Gg@>WJAo$X`|Pz9 zhArS~9it@U-GGBEKX~6IPpH5Og z1e?ER*)Bca6^`zoEX~hXX_RTgbihJ95W^%n85kLTc^yqb5c}8jw#vS2euCxY<@ZvT zFC06l@W&da*95u&kL{0-?OqDfIW|%JSV$lO+gfvu*8`X$&qM(SaFJyiWI98++1byo zE*xENCe#J}1VKj(zgeD%AoLnt&7DnDZN3<`I}q{41V6lQ1P$=(mjb83#E15!hO&q< ztEYo?-VPE_ikTZStWV%MnOS=8s}F6tr7zR16W;Z z;E=P`mO%Sb`Ofrk;r`~?WoHZ~xN*IR~!}I2w z622j?uR#f!tnlZWh57L&t0o%^jA&C+Q>83nutbxU@!`VhY%hUU5#*{KI=d+P$ml2{ zdbHPK;09iLQ-N4C34guq`r5?A@9x0Rm%BY$c!MkfK0fD*!|Nf&s(MQk3scj=q9QF7 zl{4^)GA&=07G;OMKT^+hT;f7`)$b7k?!hq(Gk8=ySTXG7CWC`r?~QF}hyum2B&GZ1 zu8NdYUlsJ(p=Rq(3phCh-E)^n;p;7?`xpEAW@hqhK~ZTnFDEZQJI4*oP=Z3Z4b+rb z!ViHnxrh2X&M`GstF2ef$hbJ6G%gMf@w(8`(*1{%PQzASjoYyMtr9iiG`_lHeE$-x z6ra}fc|+e{3?#&4tS_3|D(sUgDw7=^i1jwBx|$hgP$v; zGm{BO7`+WMsY^=aRSAdJ6D29b!y}@UWV|*z&IMnGZS2RY4kI&ybz!Hkj`?NYcdZe@{|3#8g z<#mK6q(FJcLWAug8V6 z6>mc`YXz;}MYu%eRETKh3P|8!6u9$0|)3_xKcCS$Q0(Q&;G7D|UomqT67JPx6}6+-|Ft z+X`Ir$=qi@2N$%*ikd1bD<6H4lv}!l#Xz&?e7qU#M35aEER`2BLoP2bUovhcAmtzIIbGH-ESy?XWQemU{w#@f_|r7Z3~HKm`_1J2+plP)rK-mC};s`87da#nP7 z^kYn-ox)Sdv+VBH78lsgd$72>r|QL*^W8hp20}(gPrW-Ecs*BPSpTV8USSZ2sN8B3 z4Fh?t+P!W@x+NiD+Vji6NE*AuGbxOy`=LL4_TJs6rO?#nCe)X8J*`j5zvFr!I%L>o z37|Cg>7L|1nERE`Q7TUv*Us&=&_t^QcZp%1zfd14Nx9f=GCUWF=Dt>sG`N}~;P$%< zT*1H8-2ZIJ_KASTT|^SCr^Y|AD7@b4+*_z{-o9=g3*MHR#BFsw;Lu1z5HX-Yl$Dfl zQEMczO!WFSW^{Bs)W>-1cR%WT4b#!gj!%=6{N2<(uhwn*FZ*kVoEm$E%Q-^KJPQ?Rr$vQBWnCe_ngV?Qr~f2eE3)cepuSXfN0ZW{4VE9@sHg$;pC3 zdzcrN7LP_pN!ZUx@ZT4F{rUMUx}2%RN_0z0Q}Z1)y@j%5kl=DvSl^$k*F1$RI-hN9 zD(zx=*GPTxt3^L?7yp!xBbmqF#L|+%swC}tmvGXz zzdW_ac`QSK@v1eW!+UL#3d}{p(H5D_7Vh>&iNU|xT~ym3AWtHGZ*+wTmqtwx!2@>D zb=y-l38B#9X%c$4F4-3e0xh@nMr&-v0(~ZI-7X9u${&uvuQ1;+g+*TE;m|}R>LtA? zW_)YwZBpplqDK|k9mjSiJqScM{84UQA_Y!& zu=(7!#aj-`>KSg6mInvh_0|G)F9u422trn!soz<>B_~R=(1pgY%k5NmRn8}sUPPdD zY(d04Ey@w!e-%6{0&?>@Ltvd)_`{tG8aldGmA-)KkHoKshI0X6L`!h%^6}1b$Q2G? z4F;c*CQo{t^y5?$gWZBxMa^bEeS)E~HmCwzO^;M(5hU*K@2%!45*nIZ6aMaPbK9T4 z^+y3a_3>01vbNZ5q@?q}H*%5kd8jLAWDLXSkEGLD5q^XRXZo$(Jy+jxRCrXnfNy7y z{=vZkRKz~Fr%B@LadL7rnLs0G=laCuD;JDHi*NKf1DFbezMRo-94$If!=8Re?2#pkVXB| zp9&@rj;TaGIf%}+r?>5-gYebtDW!=&>?@e;I1mVW!nnD$#rfh=y)YPqMBqKzo9t4z zttN*nO94+$e-unI;Sqr!O%75^D@v-#EC%rjNz8&#J!5Ony?fIdB!zz!(uMWszU6>s zYw(M~@2!RI(Zy|UCDs&0#Y)AoGObDwUA4q;ad42%d$|#Tw(j=!Uh(M^c7tEUpz}wk ziPe6O)Wy!&$2O1Aa9b$8usuEKm)zY1mz24FIzbRQCYWQ*g+@h1aWIPt4Gj%NZ;{36 za@i>x2R4CK#d52Ag|{;$_jlw`Y;0^{-@X3>4Si@ zQgC424W6zlMw3U&O=Mb{jdcx2lXcQw;yvkWYY^Aq;H#(o;Z^6V!=;vkmBp9kP!ltk z#&T~moXt%#4fR3G$B{kGD^?mb1-x6P`qEO%v)q~O;p7gx`|qH}_}ClDtX(fN*C@@1d}EAf zJmVST-M>B&$L~J}cnOcgVf)X+{FkM)dh4yw)YR0>%uILs#~P7fr0Jn)Fhif1Ntn1Z z4?CmTttX3ARsI2vwsD30nn$a%&AYX3Y82M>D`DyCaWwfwo<+OMOMCMr^jbD5GSyww z_)@#05_h?z81>rYHZ*(0Ffp+xpCbdBN!s+&#@YEb#B31d5N%e_zxX|v6DBnny8%TWut%|tC7FNd#&LyfqaPzz4EdLVqmeXzj3_mqFnL}G|H4}IK$NKa-;H^1|k+B{hHqUn|gNjGBnr_Wc*NMABBNz=F9h@r3JYu3!?$_q)1X|D>>*{_pFgQOh zTCbey`8wofW=6?Es8?Da*D*5|>L&e%ww9W0)%y9p{Yx}1?o5VKH{T{rOiXY$aoHbC z_YB9{J$^GYJGimlB4roq5fhVccG?gJMX#TgD+}ybRsKw96H$uF)s5qO6&MB%TN!v(Im`VfMM_)No z7#8^+<*~wzJAZtlN>PjsHKdsKB!6@DRSx+X+}6;DCL1FoHnYRW{0Wy+r7_B$o~5D0 z&PK)Kr66=Yl*o6sH@nm@A|k%k@K)s&BJeoUx5aryMafLgcA!&Uew|dQ=IR25ZgBV7 z!n;O6HD=5AUs!QVE<2VZ*1%$wQ=OZxPzK>VLQqk+gWx*yKE9vyOTa*&4-5ThBHnADIl z{LE`?%!vv-?Cwfsx2^BQ4<+FKDladfwtimqQhG-o7Z23FqIE8W=@?=XV8~GI>PZj` z@0b~EZLbR%SJ_<{^P~;^5DCnNK#RjO!C}v)bLBA`s~DwNV_4K}DJ^9QVlp!(jBP-vtO|@It~ngjV@^!7(d8WSic9 zpmmZ59dbk!CFB&&gaim87>PI=kd#ChNRIv@MP8p%QU)|Tcy>x)(3j=MK2W77WVNsO zTWW;|&CbrwvH3*tu_P{kb{FC!|MF$_eELJ{2lyk0({i&u^vf7vtL_j9d5mDx5x*^t z&W#J7?)@De4!3(jRz`mC-%P%Tmxn9SaHy!!)>RKLJeM9Yl^rt!vZHcf;CBKc3r{5O=O`-jY|=v#1);mb&@6F(7(OvUwE<_MAF=ryvM z%ndALl4fVd`l2q=u6NP2-i8%Tz{0_)Jn*oUmsf9wx0eo#H8H(8ZqfYmMUYC*jmZ;T z%o#m)Lx@ldeoXdQ$DPkZ>xO(N_??)9VqPSQf0& zUwJ$J_mv13xRSlC-qvG8-`(17(YK)1 zmtF2}38Zm(rJbAOGo!|WRhW!8 zQQy2|kQ*5&O;S_N%gYP*Z4Fn9;|8pQToP*J)J!Wm&9c)UFJWeKpE@ZU6xeUJENn+} zrCMi+_Aidgv<4}e=rtRW^4;R-G(?3vJ3F(yX+%fI0-hBOrpYey)rDWu&{PEQHP_o7 z4SsybE#XQgZ&9k*M1p3^$byz%_-H4}HGl%)YcBHv62xOG860DxttQIGy4h70cqR*>yy}jZ_!7owg zvxCkX-T*h1atj?|$iz>@2LjdslSpZ%=+a>Lkv3coj*fe8^^v7ZYHBJ`;n`7l(962# z8+z;vSVHynk}&4cv9W>UIPJWF4rzkr73H0VuONgkltDH^+&g+s@w??Gd3Sm3v}t8Z z(}nU*vr(a0#CeT@0q=H!G%mN~==hEeE5JGf8$I0@>oBe5>UxhraI4cd8){_r{`?%4?(pGWiC)X@h`*wApndFYr2VnQHWXk9Bcq)G4;*>iv|7@x zv#zzyw3@Ai&-Q?YrFpdAsD4_GEjKmh^F_tQF^AV3ZDp?m(c25stb&2&n%^<3|@BUTP+Zf|~Fq?>j`( z#oGLsl#cFBT8+kdh2E$Kk+V2@e=IS`&tzWv&`T#J>$BFu!H~zJ!xjF!4&Y~BQHBP;I6guoo$O2U z>RKEK59!k+64C;N(B0MHT$72C$z5rl1IWBlbIS4IxIJ>y)7#$-roa>QV*T{-b(Bo$ zJ?84)ct7Ql%aUEeg9ww!|VC%|tfobQ%T!XeyY#@7Ng>y?{Y@9KgA3+S%EO z2rP?*h43%{5DgKPc=B?8r>8$%U6`mKe6GXgb)q5SBBCIPUm@w<1ibpgY?Jd@msI~9 zz2??>cpx(i%Uq?=*)Hj%jHjf=)m84hZy{+PAL4xA%$%=s22QP0!uM3M0C67?$YHae zS6WIhU)Egcs3aeu5Oy~{H5I41mG&WD`sHa%OhS*Wv5{Uva&$*?jrl@-RA3-1oG>Oj z#G|bpT>#9Xm<&0-keQwtX%wMapsyb z!kA_!(&FRF&`@b5Yiml|2gk@=urYyY0rIshd7LCoq6>W^Ju#}@{%?WN&ma_dMPRvy z#~KWQBO6$ooB)bcDNMxFs!?-VqCySI6OLGm3}3Gr)7*8{9j^-eY28GiFuFNJyX<{D43LVNqxy9%Ue{ zE>EYa!QJ$Hl2ewbtxYUU7tH*k^=8@QPjR_%K=Uv$jv^9pbufe;3-IQ&YD<(|1}->^c#=OT=G*xPc%+eZI7Y;|?6+-TFYcz@?DAV^!xGjrf4 z5{hT`5OSXBhe-M`{NCn>E+4>`A2X*LGI?RWzsFFOReX8eQDbM!o|ne$P-l zBhwpo+{$`o-Z4V@fha{Iudz)az@(_3mS&S){ZCF*^Zjkz2x+4QDhi$;tU{CfW9oSC zXm3HM(CH>RItsarHj}{X$V8{;lzw1R>QOL7spJ(E7it40J_O?;81%@mj)SBbIx_x; z!DR>p7412Yw6yj1^@$1Vbcdqk10vWhiwKb1))@4L#>Umt0bkO1oG%YdppRhNbdYi> z-_3FOHc0K+&hz4SPt-9Je+nyon6B@t6y=m*Ndou3?nK>GIrzJul$S*qS4h~o2fjGk%^H+ z6DNNc>)Zz?#*viXl&G~dcVff=z~LzfgSCi5uR(H%;C6LMn=dLMVN!i{1%CxpBV6Dv z4t^Ufq^Bo&eo@ zl+CNJIx3GD3|`xv*9c%-oS(Cr&QEix!3fKdhow=_(vn_mGU|#d>%Ke-EXY3`Gk?8k z?o=C7U440k!`ji+eX+NcR{b_@$Y2_Qsm+$8{eU8nio8^4+t~a;FOIH%pi}>duSKz7 zXi6&#kL_#uRY7Sfuk9&GzJi9v{k#ucU+iN+fp{`0V9{JlHPM{@Y)`eg>q?#zB(eSu zkmwbblS6J7JauO^HB9xXcMih`6T-y65OF%}aoXVIqc^bkkT(9%`Z)m$%d^HjO8gx> z{B!dK8@vtif^TLz)=bBC0M*L-0Q2H|ZYLHX25(dbk_IxfeMY9H`}X%72X`%bB%dxQ z=vAa&TG{V!%gILs2KKhL`#m=4GUR&!9u6E?V$h!`Rv@dSR0DLdlL*KVzE(n*r;+n} z`57@^rKyRD}JdqYB%k>4BuvCL71C!v$J0VxSb@bU$nq zI?OYyzPk>_VvDW(SpfDeoB2{RiUav_y}PcEuI7LIO+vyKg52La-BPw`UEy#2Gx8Q1 z>==qZQ_|554)zk^5gQsBV!p?>TOVElTV4jAw*-**KRyA*5VTFcO6BbS^M@~sAWF#V zOW0}T3Giehhy*INhR8;5V|;zPLcu{a{mDDdH>XVvSAhJ$F|d=M?iHvmS)%KP6I%lqpO5R~^)gAjJW|`YZ>A!E0A(Pq=Gt_DW58AQ z3ZEO3BN@67-LoWR1l7^dNCEyN$?|ZvF6x{s_L3$9^$#NpQv*8E@bK`jj12kkw586X z3R$1%bzQnRFgg-*F3Z38PY_YClkV;`P>418B4fn34%8GCCqRmOrqd_gQBY72pgg;; zlWQVjfL(Q=*U)zhrlh328M?i=L&Vq3(=q@4+x*@F^#Vs2Fax$A{00t;_8wP3|8v(# zX18h)8U2-xj@UDrz>Ft`lSXwKdYjb~rHAxqbZRO$k%kpj(b=x2+UFzh%j!HcwOge? zOkiIHy}Z=so3RNnx{tNxj1gDY!tmHREFOlkV8OR%b_e5g>)WgmfUE;ntQaer{i9nD z!^Yk3tADov$`p5v-_R+vKJas1mutS>>P76x6sPFuVDjfTAVN~Fvf8MFliXUIotc}P znX{NJ_j$ju*4kiy6#IBvsQdXXH8}>ly+RCdx9&{K)9h_40-B@+gI0dshL&6=8A->% z_3ol#dr}H}%`>M&{lx5d=wp=$BW6G&wA#*0+={WUmnKsQ?De}FtuxgkJ1AyhZ3UPF zv-802HHPHbR$tv*d{WXo5T1d_djM=bK<7r=*F)w*IP57^HDa({Ab%m@s0{T~ue z7ZhgqkXMiap%?d!ZlZBs{b;5Fi-XH~QxahPp!>Z1`~)>+<`y@gq+o5|9v6#zRs_fi z4NiOUf||>NIeL}q^VUp1Y1iA23Q647`avTc5vDVhH-~tu$bNx@)J#l&9_#ap6%-Yl za%AGV9DY%{x0t|pugIZ-7kAxxUKp1f2{`Yx%Z2f_HUTkPWetr3ZWHvRge~$k1S7boOpa@8A z_2-YBx!nfbbI`m7=Bq0Ns}H)d3t*ngYsz}N`+}R!irk^b!5*XEW*|GJQsVK==xE8= z?jU?R6HZue!TJ2S;c#heG*ZE{ZzB|kn~at0Gf~Z*$yFLCDhU@=lCLt|8TEp?$f-#s za*1Jkd*%STE@jRW9*qc4m$0z9toU`J?ia?DdlUhtQR`N9sfUL(J#{NSG^%B?jrKcb z!)0b_)qx|j{vEmadL&QN1zMYToS=9ezN%_21felN+}HOtOR7s~5D)DqCcq>0YJUb^ zM15>@c=$N+P?(C_c6B}LEsAQw1@yZ>oB#Lr8D0H*y_Gf)%AgmHq*75Jy>Yu;f$=3i zz%ep3{FoJt49)_iHgIrcz=a{BLP3cl?)E3=1{0yK4m}W^%Jd5>Q>plT3g}_L8Wzb$ zCKJE9xv_3)s#7l!Eq0oj<@m%QZX|jf0q90w`Ac#%sw&_|EPUacP#khuQnEE z*PI}CWMKr{s&y`Pc^0ogu3+%|G;$nUEkK65SM(B)9x-uo4Iwx+Tcs^x?E5nSJ*4a% z6r*ZoKp_6_0H+FZ0(TWm(Gc(woMv+bsuzOpXcsDyPaQpr-|tw{YAlulIZ^=`1SmaU zjt1SV+=_fH1qEhHFSQ^<0sVo^M1%_aO(>{QckNph-tQ{VYK$b9_{d3S~G*;X~ zba;C*Bneo?N@0NQlw5g(An3w!Hx`SMn4EScHTJiKN*UE47q?Km684~Vg{C913|wBL z!B9z2k**5wvE6bFu?A4b2{$1JFz4WJ5S4-nH#RYG*QmF-9=6CJA{I8IMtU=t%Cn|x z;C{HzJBo<|@mS@1n)WA$m$T<^7MX~uS)t*7#b0QoWI?xrxnNV zU8;VmryQs^pZ?_^F$z8Kd&iBoTU8W{E{n~@X^lnaBr#{ zdtnO@*r_(ve4?_)!0_sF;oopL-v-;t^kHdg)|f9EGo)$)q6iPI%4Mb;e-j<-GNd~i zpP()J^YU_@+DFJ4-j^@(Zt+arX7jZmOLAf^L==)QLP^mEoG)-Veu($_f4^-p{qaWd2a@Ql|U8FH_RjSeFYgVAJlSV*IxHuY&tl-XlOJAb{7^E(NIu0T+&>Ow2J`x z#bRTb9e0qe-R~Xlr@tK?LLh8rVX1St{QO93oX=zuWshi#1 zot&6xa=v3_VggjW0?|xnePWVU)8d;W&tV+ux`!@9T^uR5;goJ~B*T#5)fTa%!tfUkW?L4V6+gILP zL%~2|(5HgLlGr5_<~^kpH>@ZFaK%=;W8JMIt)rv8fB)uz7sF0WgccNltqi(tgBJ!5 zm^Mlefk1Gc_!18;(7Hi*DGWH!sm8xYy%R?U1KJ5+96>hiihygnNd!^e2f_D%w`PJG z0ug_P0xC($Jhwsd&EK&Ww^Wh4;nRovJNNr*;yaYqw)VDMXGYTd1H%kSt;QD+7oLyE z|NB0`fG1o!$!lvnI@XD5aJ!!VTv-+ddwJyZYmnaX3;@45{j?Dw>pi2rftOF`SYS4R zv{Y0e$N_W!ZVr<5?!VguAP4!2;@6(uv^Y07DAdt}e-8r>CO@Eh8|2^NmwH}6JaE4g zfiGlzV)G!5M0g6N#l^12e~~Y>S^y8RG91yKH43m~0MjQ3B%DX`B`B78{p8#TWx!%1 zM+?E?BqKX)p34g8=guoE9J)X8tNjTx$;z6=(Hut~z$*kkMfUGgzJb25+D{*3>r*P3 zZnUMgP67H;Kg9Q=V`EE=J!>ZpK=uJpJP0cKi>v{%yuI8j%+2i{<|5`^D2X$(wXG6* z>Qfi_{~Z7^B_*~S6)H+Su|1G}sFO*-UUt_IzkdPYqyAs71rA7qIIddN!C}zk0b)`9 zQH|BCOAuHwqIU3X5K{mr^8Px*g90iQ=bKewY3ac{i>D4v>hR!kOuiPM&eThJxju(@ zFnMF%EW`Tq^ca=@hTlg=Tbt4NyypJ)qNcoh z*Vx?L)U+rk=d)S`II;xnbAVmgDcL`)@OwO7fJ6XR7?@rXgr})~!~e7%P*cEC$WKTB z`=i8M4Up>qM+3FV@y*kQ+ApHvNuxh{242PH-`KqTUo|n{iPJwgfw%hag8k?7{``4|NDoJ@6($5@1kJ-|J~wg;QqV*&$qba1;6nm zATUr@m_nyGZikNyVDcD6MU_LM5ygmJ%pz7M(uh*l;qSl~)(-fc)PaseMVLpJ_j@== z6s=4rT{%x6gV75?)RDj;tWRffQBnu9|Mv0FZ@tL%QsvLbx{7IMGm8ItC2+5Z*RTGS zcm4NZgrmRy_ftY3LfEMPGe%(UMZNzkqWkZ6k&I-YCiwroh~E8I1o+>-`Lg(*{m)84VREuakn*pq*lCZ?5jl3yEb12=FL82B?85$QR~moEfbOD8B@U-HKbdJAxX zs46rNoP%|6)cCrZp`c(BeKRY)rmE`g$y>gSBT<0Vr_jv?T8i z7MjQn$H+cxy||qv@I#>0XqJ?eEV}FTYOud|ap~*py`?TJ^$1Hlsw?|AI-Jrki6cS1 zk^|N@#Gmeo3WsRnfZAtaP!X!PPzY^{wZqKQb&Vte~%` zgt%B0GaFL^0XW}_ikd23QXl;Mb?~oc+P<$e1}!`@!^iSA(RBfoL7ng2zCOMBwT$P} zw7@%{!gh8|0%^3Oh>}53eLWzj?&86{3VM4n=*0oSY@yzgni4|_*FX$m}Zr*wT00Q2?zyR7S`sUtd2a?(FFJOhp~0@U{APl}dw~hLo+XuF(1ju?TqKpHWmu&s|@5D|&hkme9$| z%U?&J!s-UGjZ7%inNJ~qwFf;BR*?_xxl)ih~M&Fj-zEQWW$@{Un zucAN|ljdm1JPR_LG%i1u>`T&qS-lV-qoc!bwB1WdHg$$^hV?0ZEMmfhfAolPd}S{+ z(El<9{~8whMQdow;}IK9qA!>;fz$qA_vp!ddX&Qcy9HrHc({M{Z;^hLA&tu!hsXs>93@?QzF%5hp>|3nNf?1I> zZ%;jwA3vtqBL(^aUCq7aP^L_?lFKaHe{!z;d$gqm^e==!nqU8b{Q$lgp409y`S7so z=KAvT638L|>X#4`1BGXn4pUZ-Xn^lRV7E=o#q~T+hJ8CSHnrsf-5N?;y1%3M5sv{y z`k+_IJfqF_FiNiU%-rm0BJs5o*emqOypO9sq6AvJA(q$*R8{o_9CU}1H)Y4A4Neo2 zlVANlB}NT?`-llI{k7P9p_!W%G*~PUAD(%7^Bc6+5 z!@Kl|fkb!DeTt8)VxwbbIx9L_Ok^Y=t8CL4tV47CK=qscbitoLpupl%Dil2PANN;J zVkL;2NV+Tn)D6jf`J0Z;TB=3^d7cUM`u+-on7+~RzP`dq80lqDClxg3vcU%Sre z^;-jJKN}xWF>&$3nFghBEeI0Dt5-g>El@9lFIu4S(Sho~3CeTmJ<2Ldy;A8LFNd?+ zi;cYP8(!!~Ih}bek+7?UYL>jTnp_jZd3j|>OrsWy>Xw$* z6%0>LiSguUJo414wd+b!@%8ySli2jT$kbRZ0F>yExd8k~8aln5wdHrlg!u1=Oa_t_ zNnH{pzmCivFO-0h?)QMXI+B?jdt6&Sx)vwpM*`8vvxkQ>C^RuCNlu5ETuOdwc$q;7 z@_-|**%-gG`LKCmG7e#9XXkY0{GJ2G2jb$oY{3s;-maT!Jt~T;iss?|w!&A{-kYCb zyqOl}bxJg`7+om~WVJ`eW|K>ePbn{%Q1LpL`sZ~I`+8!J36Y44EZexboWc?iq)WE5yAovBEE zaz`gd);moUL}Jj_4nz^4fY7P3sw)(anwVH3ckHd#H^u}4UPeIc1;GXZm*Py@@A-@$ z9L574Uqet(#SzuJ_4;zo0#vJVxKDyiq9c19fRXnp#27#wV0ScYyMJvt4l%)*15?;0 zX_Qr7-t5_2Uw>Qny?w{#_7}f5HVzK(e4x^m%jxhSk+7S2k~>H2J|SXJT{-3qinIfUO26~q9yuQ)VADC)LY))9xAy2x=kc{QF`e3^qBBnguLRHBuAw0lNI1&*kp!oGNICm{qU^N)YMGYqB8~!ZA5Mas0%h$Ud^{h=YMg% zhwkqmjCT<^$0EO!1Er#|kxn;O=T+27H!dJ-fvo(4uKtxbaOm0@z#gq{MYszcO#pN4 zxb*l<&rBE_4Flt;m(vgq>o4ZYOa zIZU&PW0?1w-rxMOC*CW_HqmQhboBJN^##D+quY6My{;)9abZ`W6Zx^)V1s{9(BAg$ z?)I)ZK)kb+JJ-KkKDh(}f3w>;d=Ulq*W=moisn!vW_}TFt^NhTQ>9uBm-7jrDblca zOw~lrFIwOelap%-fBjnCIoQ}aPz3at=lxx~V7r4e1pq^C&$t2J;8<(OCd;C$1XRtpz ziqvF_=c=2!VJLMcH`vm&m>QiVYD#tFteA41QB+dQ&dJKiU@{n3wG)uBpjWuqy{Ry; zXLJ;MFDNI+z(qvFeO4V*2d*f*KmnTaPg>Pi#rDWd03=$^2?$gC(kD@%4{y(6nP5Y}x|#$Sel zo?1}2%GSpB9ZuKT`olA7HjB5bmx7(5dK=RwN*CuBb@e7aqiNcu8f#nDf5HA`s;Gbu z33fapBAgJ-M9;B3lLF( zvk?yP@Eqc!#It8Pryp1IDxT98wC-=^Qoe)u-|2s9YQ*ETAM3%_X2Walm~XcxiuJ%U*z(~Gu`if zRPF3J*I0LK0fHG2tL6DBO*gpotM8rD?d|mh-p614?&w79*32Nk~ASIJGx0; zLB1Y~0EPun6qrc=sEG`dj2tqu#K`2fN8-cz)&sQB^$59Q!DycY7o+ zbcFj;!>1$8A0AsU7r*kdezFU}Tl9`oZnX*A+!VyoYK3amv&f;;<)xQrWL)>4q!Q3d z0$*(T_JqsSMj#?4=G_~3l6MOOLn3Idl9Ey%t)-Ln{Q~6k72DId)SSUmnYW(DB=2=}`*N{EZU365@9JIB1BN0bG=YCAMtHO0{G$U_*^#*Q+0&QKs z7En@epqA+?D?Dz^UWrnYlBR1p1JM35=OKJ3L%u_%g2JZu9Mm=v#Bz-`avFl(;3Wu2 zNo`j~h0Ws_0Ox|l^AE;s%PZn}!-8N#+wReljuUPwNL5Pe9m>HM@V&RMUtcqTSLzNW z=qAwp`b7f|#q}o4yX9!Q`u;f0Z*^_;WFZAN1y^Gs=PbOe-q$y@gbtC-P7aHE*36fa z3e?+E)6<6q@;Drar-{Ig`5_WGabNxh3Fv}yMnI(lr)Br~b59V4nVDJqiS^ciun#O8 ztXL@y_UfgYis}k_1MxW8OobRnM9qo2M9(yu5${>Dm#t0mP(0*o3m53@p}5 z1nH*`X2fS_`X0!`Jh?K;GrT|#R1UKcex>10SLKadn^uyl#^Ru;AGqAl!Lp3Zj8>Mm zKv35{FPtsUX0`~$v(xA);dcIr7j0Zn=*?;o`i6H&XDqg|^1S{X4k)M$+D(36>ttIh zGJdh!dJhiAQ11~P$}1?i1+qJJIZLnzd77K^PwnGWTws7-{ir9@t0j8Z11SK_gmn41p zHW%R&pJ~kwG&yh8lvU&@P)F}QR##WE6oWT6^%ps6?Zspy=p9eIY*qq*+CQ%5YI1p5 zlN^ip`||>3=*e1lUQpb1PnjPz!|ymcb&>_@UR}madg0D4b!jo_od>flSqdiofqD03 zh%r;Cj}K{$2py~x-#5Y>g0U!al2RESvzf-3))CKhQn`~&DF@~2nCWQ%WbIq%NJ*;< zdscy~6=XrJsHkyPRquBys zNKEXrQ`bY&T@fu!6BpOR%@#rbLFk}#ytJT>f+9eF=@~<5+)PXi?-1YV&@(VIGrt5a zc63KFLPHTooq?V03Lyx)@BP8!{?MpB!zk$LoxVXbH=An@(9Zfm<*ez$ir$k(rvvt5bIx*r`Gcltqsch`1Dr4(c!<vR;BE?SLp5=w^rZVN+aXXpKm z_#^#+&&73PY|Do~VbXtBmaG3BC16_ay1;qvZV0w$pkAMoOKH61CcRp9Fiv4J%cokA zivlL6Z%YrfNfBzVLV|OS)0DxXgUz9bUIgxqHY=-u4Fpx3y?wp!S5dx}s_N;Rdd=ie zk&)>KFDy2kY^A{<;s*yZCiDx#p=07m&HOfVHWuFn@of3%C}%bEk@=(FE(I{K3K z?OYlH0?#Wn4E6XR1s0ZHzC?A~TT?AIwq{}2(J_-HHtwDL>hQP_e5sJ%ERG5wD%>LS4NdeW$@@FHL zW72UEr%Dz~yO^lxFV$i-mAU0HPy#Qhxs}Km13hzh)8ru^TlMktNvGljAvODs5x4cE zqyh!wD%VlM2OteDJ)BH0YAos>88inaML@+9-vFX(0&bEeG-_&c@@3SU&*`!phytCs zk=Oe>V<7Ok=o}l9ACrb&v<$jZ_E7rXzHYF4n4FyrtlKmFi#6`}+-keH7gyY0=7+T< zznPW$!~V=Dsl>;cy=_7zk*6q88qdtw_%xoI^L(Fu+~d5`28Q!)H1hqpM?hj?@^~pg zC+GihDgK~QWrxtKT3N3is6Xt8A#*BDqIziH!=52Mt?=pDsomkUC)PJJZ?5-nXAGN9 zXny9o_4W|2TzdYO5a*_p@go=nZ3Mf08?tp~DrSe{Z{sIH*V?NvHh8kkfZ3tfI0emz zK;~Ty1+&&^f=c=;ISUJGh5(2@vZhpM&n_*q_2 z@hJhlw5XDq6OKKsMuz@A9Uw^A;_}5tH#~dl(9(4z?F@PlX%oF!1$LPA>m=3=R`R^C zsvXH2uhwtJ)(X#SNJvP4mzaJuFw)!EWp#aMdj(vDv!<%m^|l<8^HR%oM$71Ih}Rxn zk4{KP+TLz6>z%uf4spSI4jYO?3-YD{Pzu-h?b+@TdJ6Dda<9a_2tOKpy}iECcDseS zJdltQ>&(5{yx0Rp{n}2u19uNFP>^VY+#;U?`VWHK`E3~%9pp8=oMiXn=<~wkC-AN;+uJT3i}3IQ(X(zvvirPEAaPBp2#jN?%Rt(CGOWzc0VjEEM!DV z8`pY4_aZsGq6LH6QjI2TYxDtHE=y14~PPkQ4<2_ zt~E7Ew!{#kVrCq~gI`%+V0?6#iW4Q4ot@LU(CEWa^kQrgF0iSn$jL=++3gbXPIV+T&FS3EzS)NnMARs57T-*T zw3J$x2j?|6<9|Vkj)?fs6za|mKOCk8C>Kl3CPpSUt;3e*Xu@bO-+KKONWK@D?M^v& zXa%zhN)UeYjtndmcMEf*NYC;W1I}nHE|D6Lp)OF-W@CB1b3;J8_BV|o6U+kJ0rKA0 zL+`RnO3d5qZE?Srf)qeHv50KTo0t5@j)N)TPfGclQN3$4F=#_nLXYDG0NSU`FJNTl z`b*_YXXobH1q9i#Zg$a5ao@kzrcJ7?{iJWZzBKi)*%<1M>^hqRlB5Oc_)jq~TlfP3 zSZmPSWr+`Ymoi+KKT`@o=;Oz}wq|b0^NHaDK8oU$tU=2sX~Xws-86^xyPOTJOMc@E~nD8+&DHWUCse?+j{Nq{Ll0y z;)a9e6c>)qx?sWxZmw@G?diNm78miCkJ23P?A*yu-La$+td7HY54l}_Wd`jtb%ud5 z9;qrBC;X5{BO=abA^^ae9W&VY&@wB#?Jv>%niUdK412dhD<=>Bri#YT1@_q@x zi-{p%1lz1Y3pc+%Ti6;}r}gA`x0$)noR=<3G0VZ>bn6sFX0)@tyS=lw)&O_0dw+M; zDU%xRM!~|w)_{aOb5W`Ta@{P&o^roPa@VW}@%JqAkrDhQ#w*1mk|6tVH*JWvrt@jF{&ry;-RO@obCK9=={8Ad>kwu5GVlX?A&-vLQ0xDGq-Sk=QM?;p}{@+ z^3%ThU^>WPfQ&?Yvr90cKL~9(8|rOj@}p{NYvEQ+rNA*2jywV$J1dk_lmp2uWBvW} z!+(E(^x%}j@7=?hv0Q4UB2gI$jE79XTZ2wn!BUbJ@6LUogR-47gO-cm9u|Qly!$|` zC_DS_^H?BTvQGd@1quCMJmp_doNr`dA!6%{MOMq3r4#Dnbam9iB{@Ak{nt$9q$`Zz zZHJQ3Y_i(&D+IfFx=7%(*3246{lI@2K&vWUVVREnf_z$y>i+hz7hj^+we0LB+d6}$ zOZRpj-7m;4ztFe1+(e!~hQ>6eSk8?#Y!Q)x6zt&y(I~qFVeKPW?L@`o2Dy6fVc@FkT;*N-q$D z0QTg5b1)?8AwoY$BB9B0LL3E*FRP`L+k-6oK?N-{(eJ z9--|M*C1=o)0_1Lgts97^7(?N-Np}D3hZZ{k`8G;wlxDKW!WF69RVo04m%VI8j4_B zbv4&0$je)mr+;_T1c05jniZt3xnIu@UTfVQ)F#yc>6a6*pFt zDJVW+p7D$c0z?j^4waQvDak3f%nZ^XG6MKF+!tun5><-A2ypgxcR`M7yEKZg<^FQ+ z*#8a45+pA@A$p5wJv!n}F477$x*y9;9q0pnQ$Tjiaa*plE^cE(VDVwB z5M)}xUjfz?%LIP_67FWH9kbEa1cNX0fM$du>{g0ZH#+p1>tS@OUXVr5}lu9mlBwWv8e}O=BO?Q2+#sZ|T zM#tob{CuXSrXC-*(p=-vw!o-O_c7e3yn62=5D*w(`NL-0R#!x%8zfe}8eV}UO9s7g zRb}P%KniCWta7~G*Z4=T;~x?_Is_%eKTK0lIH@bR&` zhM+n6`uweGtgp;cPS324Hka<>a#MXXGV|Y7?1b$-M=!{dIJYE!QV~Kuo^&ey zB_Q<|&vSUlG(Yw7^=X9#pw0sWD6L+71u~HD&*+<+!J5m;E*`ky{|WXG?Diz>BUDgc zqM)=;Fr^(N^wdr^-}!~%E6dAAZqciI1Ufl5ov8e=vbHCG<0X(@TQ6mAWf|IpTcLAj z=V?y>bYxaSrUt}sRyRYE3cr@@2dTa;z@D4wcFihhbhiA+N!?IYRdpAW)$tQldz@qH zn`+aLl6LAcR#l268epKIUyN*)gC)1#L84T%v!4!#Mv%iHUmrK}A_T?XrnwiU(o6Z* zJyARwW;I}-6k09;y;r1GL3X}h*X(?&6xRCf<;&L@PZYwP(Me`u= zGPpojP-17BjF}mz?)p{jOS^_X7^$DHE**d}al0VD#0|QQOvNFuGSfX2mv$3Zs{G-@ z2hTwLg`QPMeb*O}*%TBU_4V-&pEh(|YkPac2kOYAc56^-Z&kHjp666SfkUo$a>_F- z-L|PeQg117&z8@(=HiAuL<3q1K=vhW8O=D}5o%TL7=fCp{yz$(z$rVr9fBAi3JSVuE!OVZ1OdUpd_MJGH5{Fs z(`Wym_O3J>>bC8xq$1oEDU$9il_e!AdlEgP3}uZGvS#1LIz|mDp$Xa7n?e{v_GM<0 zEqnItd-g$=v3pPV{XU=HFVBbP!+U+0!*O8dnCpLC=XGA^`CG7Sxc+iept)JmeBO`*4%NqSTH7DbutVuw7Rgo}_Wr%P z5)bClW7v6(Fd;{o{=W8qGzbW;z6Vvfhm)&c?X@Hd0KQ|wfGTwfDT+RZbGTrA$?uuT z1F{T+Zl+K<6u;kKbCEhuGQJJW(IszhB=4uD-wD zqKt?%pe53O3=Whn28NH1Pi%OIPd|U5DcIT3-xy&dYWwW&GrSOJhxM5H8+dsg>3CL? zCGFitm)YL=QwXl?AOB=}5ZHWU+PpbNRVs-<5LrQ44o#RFKYuCsaHy{Fp~}OH%;=Da z2&(T#vS4cJIQPk8xZ7^OY|vWlyK4t%+*h%`=`||c9LAF;C=D(;4|iCW-FV@}muz@#)tOQ$HeU}UkCUg0>ml(@`AT&DhJ>k{RiaWb4!u|@Pt*9ZU`0Di-xR%;#N z;xoE{?N)GLpU z(2y`UIwo~KQYTNId@45x4;}(i!#TKi+drjH%lbPy{-yWJO;AvH1{9f3)i8<26Mvk6 z6?9pi5{dSKW+3F4I6$A~>Sh75?$IL}99N0wr$$Bs7ypr&CS00F=G6^#)6E+DokC~gyz!)($&jR0zIUgzj!_+i($XfD_E=)7+-teU@spQ z@7)@ol6Puy;(TjJM9f>p{iISqH!chjl={#yQSuObQ)!t0lSzPNCHXLy?}6IvSDz+( zX}3}NLoJ5I!!xV<+g38#w!Y&tz_Hd3-zOT9q+G`@yFK}`;aGuT6&*J$k^UUaU1m+Q zYkV>OF~O@?3MQR?Vf*7MeESVJP8KKfic5Ls>x( zDtM>iF#q0@_i-ocXGy85nhN5)EJIJrdT;nX>(PWV*xw&is&t;zN+glE3lQ&>Q?B4S z{SjJ_{sH_gJv}Pw%&$S@hKC1_9A*lwo0c#B8(%+RW+s{-Kk0B%^RV`d-%ifJt9Z!S z*4eIz-mwsiZjDUd6catD0oEx_e7l3}ySq_j_h*N4e&b$lXniA^RAXLWPs6zC<)10> zL49D-KQYNm#%$o;G8{fa>ph~bt-bbhiK4D$ki5WD1}kZO$p>El*5OBKuI|<@@#2uo z(aD1jP1jTpKXSf*g01Rtu2SATCDjH(8>+r-`--QKM8n~NV0sBGLorjt!7ufX1L{X{ z7d%h-1tx$0?st%e_duP$=S+6K^R?2uJYi3Aa!Ypdc;m3i;PM8RJhLOpNN4muI%KJ{ zCV2EZQ0U~m*BXBj^j}L!adI2k*~!iLKf;!|-M@E#b-r5-Q;3fcIhCcaneI4NBfq}c z>_g)&IpE8E4lB1CXmmCZnRcpU*JgR`G|Ic~$OE6nRd!9y=-5~ys=%u69e21devMmd zj``?Mu0MVh8c0{v@eoecs=W#P&4-AQYFf6jst1afzO;17b(5NRKz9BCMFx5`ZDO|< z;i>J4I*1kb3oAqlAwua-wDI8)xPU&&uAX{FJ6Z8a1NO>G!Khn>W<&6yAi~ z+!Oa60edJ!TAa$?!^n#W9W*Sr1U{tG{lqVYr){W9mS*OrM>pv}AeNg&Zsumas@)w{ z{l1jiyK`Qvpk+zgXkoP<>bwpe{Km^$)z`<}@AK7i9XnoP2R9-G~cl{(mq-@(Y8s+`Oe-H09Gi5G_ z`asmMZch!St<5WE8lg}IYuqwF@}Fx|MDN+JTE#ZU1GoaP{r$sIA$tZ-2PqRQ@G%Bn zt~8I`4FS~{5Gd8^xh)D}2zH}W*HbK7;!Re5d{bHoWYUb4urAyU6a`^wVG$AT*UUH2 zTdTG^rD&WEWMr!VWL3P6Z^l?_M`j!Fc+Fi0?fo=qv?uzTdt$uwn2#!(kI(W1>?ChK zIy$^IZ=kZNF5M407wlTko2ko{h0oBF7`>Rhu^imNp0)r+ZYkHs@1d#}gT#a}8ecjd zgz}M|4%L!%Y9<=+E6?vHF!bR(2=j;!(+<-aT%elkSzDw+su3hxi# zLqv*QZ6NeIbIzP`t9R*XR=;06oQSWJ$j)G&j=U-cCq*1)oPNK-q$E#(Kq*G=v=Dea#92^tnK@0X8%*3T0j{sfc(P&WA8FGXwqY&sVN^ z&joWl33A~&yPaqAT+829pEP8cbBCI)oe7?35*w9j6qmX}eOU=7Dc9}dz)Z_qE%n*v zX6W2$8&4F!eRIr}Zfj9t@j0biyb_|Y_RAx@2Y}5b$F8T>7Q zV}iq@$m(eqsin-;#Y6T(yP`eqyWR>ox(6w(jS15Cv)!xsDlc`WWf3MAs_xZJt$K$2 zWudE^KAetBdjO4=^HgCugsk}2j2znDPWTaBh17_ouD7wb?3M2;G4;-`Qrj&89sbOT z8gUyyR%d#%LyuiL?1Ok?9pYNeqPA5ZRg@_kfA}>U8{5&-DtJd8=^AgFCThkg(Jaj( z;qyr&S*Ju{L%9yebR!zRo-I`eL>-+ix))nm=#mE2v0&n$44u~oDs^LH1MT>`G3fX$ zj_&2>&*A5pO^NG{6K~m7lPCEDe~2TfRQ+-G#OIGyjp+^3)1pD=u1p!*8=0B$b3B4SjztCQLw(5g zE}Ib|lzmDJbB`6!NtoL)Qx>Mfp}wp#iG6C8T4;@YmJrg2tRQe|6v?fnMGi? z)lPDfKgRS~Fn`Co_D(!fXN-ac%xDVA06Gg+PNrKd0#ej&inJT`VccRbxVu@+`oZsS z$jDCIRHUOzKe8Y8`G8Nvd%yT2-=%Kq^OTfi<=d=8!iq{-d$5C3_EO{;>`PV89p(vH z?_bRcJ5BG1)~*CWpm%~i;Lr=tq&cSJo;?FQD(2=Q2{+{B_deyCu+H__JB@=1Exj~O zEB*1!i-Y|$I`#R>rKI{pvv#w(u&`@-{|PGrKmqPkZt>f zW7T(`MWo`XKrB~L77*a;&_{BgJoiQ3(vVp|psLn>^LHk9pX!2thC`8Rc;9@{14P8i zhXQoCXR=y%Hle4_r?znZQl;8v!$RmIg?I_O$o6(a7cMO!pH0wcyF}V84RsTz8xG<9 zdhi8~_GqlOLhCwB!^fy8DjX%*(vGrsmD0 z^8IL*givH687^740|0qgMYXJtB@C#%I=sE2VK9U+%Nz2XU0I;$SgWk9&bFs|s)Vw6 zUhG)p;&87owd*_B#Y%d*x0dxpV9bb#DbT{kMo|8-uI~D#^{Gt#2rfsl(G*ts4}8zZ zUNP(BeW~*8%MTg2yw<9sia1Lh-_F~%`%48@24(7|3WC5xcZd0C4qeg+G^LjG3NqZ( zw&n->sQn=W2m@h=AIoa;c?-s6w$@F3KaPShRq*-MyPKaLFxKvEOePNM7qW1Pb&MYo zOewTorS_GneH}~$x?zSit+zANz9~*}pgr$u#8{^d4I|T6bk{%{eCU&c7w>EmGX!9$+#DCjS7PSZP} zpyKp9J;aV(ZG8So-ZPVXFH;IIl)P8`GQybNj?V%b?p(1MvGQ>U6;8=-{2~%sBmN-V zzgS=F_^P}w=d{|n>Wq>ak*&>DN0XYyxa*2`d73Y`x3?isGpzC~S|ITjqmb>#RZ;q z`~KqGhHgn6PzE_K{;JvrZo-JHk;&8Yn zV)^fyssP6{#-nT>p6yirRL+M(|Ip^zmV1wwBhF*3F&Y$M)#9%G<@7kwWpm{#c864C zv*Q&61s50L@u+Y0Ek!_*2^>l5Z6m1WBnA(}0dU_F&k+Z<~eft(%L>zZ9y(M{*AABB(cKu~i z8`yrsQebZ58E9-?r;mup0?~X zgS<fmpDsg-_k6Bl)Cht3rvLJY!@NXvMVb;KYzH3(AXHXnB$=E*yfti z@K`Gs z9Kz^0GyS*YAswA&@V^PG8Or~rb!x$xvHw?eFEaN3Yk%D7gsAxUNV1}bPWt{(mpBNm z!TpiW`On+_pKli}KLaE?@qa0~Eo@?Fq*g^w5;?&h7~6DT_X?Fy2Veg7zaQ)w0zP5; z<3IGl|KacP-}rW0{}?&W|G$wVbS?kuOezns2(4#a_Gt0mU(^UCM!5e0N$u1A literal 0 HcmV?d00001

    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 Qdd`az+n&6UPa5+3x*H@HPRFo~RDEoY6g&UD{ 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

-eR(w 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 z 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